// модуль GSHOP v2.0 (c) Baltkam 2011 // //~126 //¦222 var mgrid; var sgrid; var cart; var mcrt; var oldvalue = ''; var PARAM; var gtop = 100; var gleft = 100; var panelH = 0; var CartMode = 2; var KontEdit; var TeleEdit; var EmaiEdit; var NoteMemo; var MagsList; var OplaList; var KontText = ''; var TeleText = ''; var EmaiText = ''; var NoteText = ''; var MagsText = ''; var OplaText = ''; var MinimButton; var ZakazButton; var VoproButton; var CloseButton; var SavezButton; var AppName = '/gshop.java'; var sesionID = 0; var mst = 0; var TextPanel; gleft = getCW()-300; gtop = 14+66; CartMode = 1; function doAnswer(msg) { editChange(); if (CartMode == 0) {CartMode = 1;} RecognizeCommand(msg); DrawForm(PARAM[1],PARAM[2]); } function doClick(msg) { AjaxPost(AppName,sesionID+';'+msg, doAnswer); //msg = SendPost(AppName,sesionID+';'+msg); //alert('2 '+msg); //RecognizeCommand(msg) } function RecognizeCommand(rcommand) { // Формат команд GSHOP v2.0 // PARAM1^PARAM2^...^PARAM2 // PARAM0 = GETID // PARAM1 = GRID1 // GRID = ROW1„ROW2„ROW3„...„ROWX // ROW = COL1¤COL2¤COL3¤...¤COLX // PARAM2 = GRID2 (итоговый) // PARAM3 = НомерДокумента // PARAM4 = Количество товаров // PARAM5 = На сумму формат D DDD,DD // PARAM6 = На сумму формат DDDD PARAM = rcommand.split("^"); if (PARAM[0]) { sesionID = PARAM[0]; } else { sesionID = 0; } } function EditSend(link,value){ gleft = parseInt(cart.style.left); gtop = parseInt(cart.style.top); AjaxPost(AppName,sesionID+';edt;'+link+';'+value, doAnswer); } function doChange() { if (this.oldvalue != this.value) { if (mst) { clearTimeout(mst); mst = 0; } editChange(); this.oldvalue = this.value; mst = setTimeout("EditSend('"+this.link+"','"+this.value+"')",250); } } function doNull() { ; } function editChange() { if (KontEdit) { KontText = KontEdit.value; TeleText = TeleEdit.value; EmaiText = EmaiEdit.value; NoteText = NoteMemo.value; MagsText = MagsList.options[MagsList.selectedIndex].text; OplaText = OplaList.options[OplaList.selectedIndex].text; } if (cart){ switch (CartMode) { case 2: case 3: case 4: gleft = parseInt(cart.style.left); gtop = parseInt(cart.style.top); break; } } } function AllClick(Mode) { editChange(); CartMode = Mode; DrawForm(PARAM[1],PARAM[2]); } function Click0() { AllClick(0); } function Click1() { AllClick(1); } function Click2() { AllClick(2); } function Click3() { AllClick(3); } function Click4() { AllClick(4); } function Click5() { editChange(); if ((!KontText)||(!TeleText)||(PARAM[4]==0)){ alert(' Заполните, пожалуйста, параметры заказа.'+'\n' +' Это поможет нам его правильно обработать.'+'\n\n' +' (Обязательные поля [Контактное лицо] и [Телефон])'+'\n\n' +' Спасибо.'+'\n'); return; } else { if (confirm("Контактное лицо :"+KontText+'\n' +"Телефон :"+TeleText+'\n' +"E-mail :"+EmaiText+'\n' +'\n' +"Пожелания к заказу :"+NoteText+'\n' +'\n' +"Вид доставки :"+MagsText+'\n\n' +"Тип оплаты :" +OplaText+'\n' +'\n' +"Оформить заказ?" +'\n' )){ KontText = KontText.replace(';','*'); TeleText = TeleText.replace(';','*'); EmaiText = EmaiText.replace(';','*'); NoteText = NoteText.replace(';','*'); MagsText = MagsText.replace(';','*'); OplaText = OplaText.replace(';','*'); AjaxPost(AppName,sesionID+';sav;' +KontText+';'+TeleText+';'+EmaiText+';'+NoteText+';'+MagsList.selectedIndex+';'+OplaList.selectedIndex, doAnswer); AllClick(5); } } } function getCW(){ // вычисляем ширину рабочей области var cw; doc = parent.document; if (!doc) { doc = document;} if (doc.all) { cw = doc.body.clientWidth; } else { cw = self.innerWidth; } cw = cw/2 - 95 ; if (cw<410) cw =410; // возвращаем место для корзины return cw; } function ShowGrids(canvas,grid1,grid2) { mgrid = CreateGrid(canvas,mgrid,5 ,6+panelH ,861, 0, "#E0E0E0",34, Array(50,115,75,270,75,55,85,85,55), Array('Группа','Модель','Код','Наименование','Цена','Кол-во','Сумма','Со скидкой',''), Array(0,0,0,0,1,2,1,1,0), Array(0,0,0,0,0,1,0,0,0), grid1 ); sgrid = CreateGrid(canvas,sgrid,5 ,5+mgrid.height+panelH ,861, 0, "#E0E0E0",0, Array(50+115+75+270+75,55,85,85,55), Array('','','','',''), Array(0,2,1,1,0), Array(0,0,0,0,0), grid2 ); cart.style.height = parseInt(mgrid.height) + parseInt(sgrid.height) + 9 + panelH+ "px"; } function DrawForm(grid1,grid2){ function DrawMcrt(dmMode){ //mcrt = insPanel(false,gleft,gtop,870,800,"#C0C0C0"); mcrt = insPanel(false,gleft,gtop,5,5,"#C0C0C0"); mcrt.style.position = 'absolute'; mcrt.style.left = getCW()+'px'; mcrt.style.top = '14px'; mcrt.style.width = '170px'; mcrt.style.padding = '5px 5px 5px 5px'; mcrt.style.height = '53px'; mcrt.style.background = 'none'; mcrt.style.backgroundColor = '#D5D5D5'; mcrt.style.borderWidth = '1px'; mcrt.style.borderStyle = "dotted"; mcrt.style.borderColor = '#82858A'; // 8E8E8E' //F2FC62 mcrt.style.background = ''; mcrt.onmousedown = Click2; mcrt.style.cursor = 'pointer'; mcrt.style.zIndex = '10'; cartzImg = imagRect(mcrt,126,2,0,0, "/IMG/bcart.gif" ); switch (dmMode){ case 1: fadeRect(mcrt, 1000, "#F2FC62", "#B7B7B7" ); case 2: case 3: case 4: if (PARAM[4]==0) { zakazTxt = rectText(mcrt,5,0,150,20,0,"Ваша корзина","#FFFFFF"); tovarTxt = rectText(mcrt,5,20,150,20,0,"пуста!","#FFFFFF"); summuTxt = rectText(mcrt,5,40,150,20,0,"","#FFFFFF"); } else { zakazTxt = rectText(mcrt,5,0,150,20,0,"Оформить заказ","#FFFFFF"); zakazTxt.style.textDecoration = "underline"; tovarTxt = rectText(mcrt,5,20,150,20,0,"Товаров : "+PARAM[4],"#FFFFFF"); summuTxt = rectText(mcrt,5,40,150,20,0,"На сумму : "+PARAM[6]+" р.","#FFFFFF"); } if (dmMode==1){ hrefLink(mcrt, zakazTxt, Click2,"","#82858A"); //hrefLink(mcrt, tovarTxt, Click2,"","#82858A"); //hrefLink(mcrt, summuTxt, Click2,"","#82858A"); } break; case 5: zakazTxt = rectText(mcrt,5,0,150,20,0,"Спасибо!","#FFFFFF"); hrefLink(mcrt, zakazTxt, Click2,"","#82858A"); tovarTxt = rectText(mcrt,5,20,150,20,0,"Ваш заказ поступил","#FFFFFF"); hrefLink(mcrt, tovarTxt, Click2,"","#82858A"); summuTxt = rectText(mcrt,5,40,150,20,0,"в обработку.","#FFFFFF"); hrefLink(mcrt, summuTxt, Click2,"","#82858A"); break; } } //--------------------------------------------- // Режим корзины // 0 - невидимая // 1 - сокращенная // 2 - полная // 3 - полная+заказ // 4 - полная+вопросы // 5 - спасибо if (cart) EmptyDiv(cart); if (mcrt) EmptyDiv(mcrt); switch (CartMode) { case 0: //mcrt = insPanel(false,gleft,gtop,870,800,"#C0C0C0"); mcrt = insPanel(false,gleft,gtop,1,1,"#C0C0C0"); mcrt.style.background = 'none'; mcrt.style.borderWidth = '0px'; mcrt.style.cursor = 'default'; mcrt.onmousedown = ''; break; case 1: // Сокращенный вариант DrawMcrt(CartMode); break; case 2: // 2 - полная DrawMcrt(CartMode); cart = insPanel(false,gleft,gtop,870,800,"#C0C0C0"); cart.style.zIndex = 10; panelH = 34; moveRect(cart,5,5,870-10,panelH,"#C8C8C8"); ZakazButton = buttText(cart,10 ,8 ,150, 28, "#E84003", "Оформить", "#FFFFFF", Click3); MinimButton = buttText(cart,165,8 ,150, 28, "#647B98", "Свернуть", "#FFFFFF", Click1); VoproButton = buttText(cart,320,8 ,150, 28, "#647B98", "Есть вопросы?", "#FFFFFF", Click4); CloseButton = buttText(cart,845,15 , 15, 15, "#647B98", "X", "#FFFFFF", Click1); ShowGrids(cart,grid1,grid2); break; case 3: // 3 - полная+заказ DrawMcrt(CartMode); cart = insPanel(false,gleft,gtop,870,800,"#C0C0C0"); cart.style.zIndex = 10; panelH = 140; moveRect(cart,5,5,870-10,panelH,"#C8C8C8"); ZakazButton = buttText(cart,10 ,8 ,150, 28, "#E84003", "Спрятать оформление", "#FFFFFF", Click2); MinimButton = buttText(cart,165,8 ,150, 28, "#647B98", "Свернуть", "#FFFFFF", Click1); VoproButton = buttText(cart,320,8 ,150, 28, "#647B98", "Есть вопросы?", "#FFFFFF", Click4); //320 CloseButton = buttText(cart,845,15 , 15, 15, "#647B98", "X", "#FFFFFF", Click1); //Номер документа rectText(cart,66,35,150,25,0,"Номер заказа :","#006090");//fontText(name,size,weight,style); fDefault(); fontText(false,false,1,false); rectText(cart,165,35,150,25,0,PARAM[3],"#006090"); fontText(false,false,0,false); rectText(cart,93,60,250,20,0,"Ваше имя: *","#006090"); KontEdit = editText(cart,165,60,260,20,0,KontText,"#006090","#FFFFFF"); KontEdit.onchange = editChange; rectText(cart,100,85,80,20,0,"Телефон: *","#006090"); TeleEdit = editText(cart,165,85,110,20,0,TeleText,"#006090","#FFFFFF"); rectText(cart,275,85,215,20,0,"E-mail:","#006090"); EmaiEdit = editText(cart,315,85,110,20,0,EmaiText,"#006090","#FFFFFF"); rectText(cart,485,60,250,20,0,"Способ получения:","#006090"); MagsList = listText(cart,600,60,260,20,"ДОСТАВКА В ПРЕДЕЛАХ КАД;" +"самовывоз из Санкт-Петербург, Полюстровский пр.54;" +"самовывоз из Санкт-Петербург, ул.Девятого Января 19;" +"самовывоз из Санкт-Петербург, ул. Домостроительная 4;" +"самовывоз из Санкт-Петербург, Витебский пр. 9;" +"самовывоз из Санкт-Петербург, ул. Рощинская 36;" +"самовывоз из Санкт-Петербург, ул. Трефолева 27;" +"самовывоз из Санкт-Петербург, ул. Белорусская 4;" +"самовывоз из Санкт-Петербург, ул. Оптиков 4;" +"самовывоз из Санкт-Петербург, ул. профессора Качалова 14;" +"самовывоз из Санкт-Петербург,Шушары, ул. Железнодорожная 9;" +"самовывоз из Санкт-Петербург,Шушары, грузовой терминал Руслан;" +"самовывоз из Луга, ул. Победы 4а;" +"самовывоз из Гатчина, на ул.Чехова 14;" +"самовывоз из Кингисеппе, пр.Карла Маркса 48а;" +"самовывоз из Выборг, Ленинградское шоссе 65" , "#006090",MagsText); MagsList.style.backgroundColor = "#FFFFFF"; rectText(cart,523,85,250,20,0,"Вид оплаты:","#006090"); OplaList = listText(cart,600,85,260,20,"наличный расчёт;" +"безналичный расчёт" , "#006090",OplaText); OplaList.style.backgroundColor = "#FFFFFF"; rectText(cart,83,110,250,20,0,"Пожелания:","#006090"); NoteMemo = memoText(cart,165,110,260,32,0,NoteText,"#006090","#FFFFFF"); SavezButton = buttText(cart,600,110,260, 32, "#647B98", "Отправить заказ", "#FFFFFF", Click5); ShowGrids(cart,grid1,grid2); break; case 4: // 4 - полная+вопросы DrawMcrt(CartMode); cart = insPanel(false,gleft,gtop,870,800,"#C0C0C0"); cart.style.zIndex = 10; panelH = 34; moveRect(cart,5,5,870-10,panelH,"#C8C8C8"); cart.style.height = 100 + panelH+ "px"; ZakazButton = buttText(cart,10 ,8 ,150, 28, "#E84003", "Оформить", "#FFFFFF", Click3); MinimButton = buttText(cart,165,8 ,150, 28, "#647B98", "Свернуть", "#FFFFFF", Click1); VoproButton = buttText(cart,320,8 ,150, 28, "#647B98", "Есть вопросы?", "#FFFFFF", Click2); //320 CloseButton = buttText(cart,845,15 , 15, 15, "#647B98", "X", "#FFFFFF", Click1); rectText(cart,15,50,750,20,0,"Если у Вас возникли проблемы, при оформлении заказа, звоните по телефону : +7 (921) 953-76-54","#006090"); rectText(cart,15,75,750,20,0,"Или пишите на zakaz@baltkam.ru И мы ответим на Ваши вопросы","#006090"); rectText(cart,15,100,750,20,0,"При заказе через Интернет-магазин мы предлагаем Вам скидку в 5%.","#006090"); break; case 5: // Спасибо DrawMcrt(CartMode); if (cart) EmptyDiv(cart); if (mcrt) EmptyDiv(mcrt); CartMode = 0; break; } } function CreateGrid(canvas,g,left,top,width,height,color,fixH,colW,colN,colA,colE,gdata){ /* g - grid canvas, left,top,width,height,color, fixH - высота заголовка, colW - ширины столбцов, colN - имена столбцов, colA - выравнивание столбцов, colE - где ставить Edit, gdata - данные грида */ g = insPanel(canvas,left,top,width,height,color); var rows = gdata.split("¤"); g.rowCount = rows.length; g.colCount = rows[0].split("„").length; //8; // Столбцов g.rowHeight = 24; // Высота Row g.fixHeight = fixH;//34; // Высота Fix g.height = g.rowCount*(g.rowHeight)+g.fixHeight+1;//parseInt(g.style.height); g.width = width;//parseInt(g.style.width); g.brdColor = '#BEBEBE'; g.fixGround = '#D7D7D7'; g.outColor = '#909090'; g.colW = colW; g.colN = colN; g.colA = colA; g.colE = colE; g.colEdit = new Array; fillRect(g, 0,0,g.width,g.fixHeight,g.fixGround); fillRect(g, 0,g.fixHeight,g.width,g.height-g.fixHeight,'#E0E0E0'); hortLine(g,0,0,g.width,1,g.brdColor); // Рисуем HortFixed hortLine(g,0,g.fixHeight,g.width,1,g.brdColor); var i = 0; // Рисуем HortRows var x = 0; for (i=0; i < g.rowCount+1; i++){ hortLine(g,0,g.fixHeight+i*g.rowHeight,g.width,1,g.brdColor); } i = 0; fontText(false,false,1,0); for (i=0; i < g.colCount+1; i++){ vertLine(g,x,0,1,g.fixHeight+g.rowHeight*g.rowCount,g.brdColor); if (i < g.colCount)rectText(g,x+1,1,g.colW[i]/*{-2*/,g.fixHeight,2,g.colN[i],'#006090'); x = x + g.colW[i]; } drawRect(g, 0,0,g.width,g.height,g.outColor); // Внешняя рамка fontText(false,false,0,0); var r = 0; var t = g.fixHeight; var c = 0; var l = 0; var cols; while ( r < rows.length){ c = 0; l = 0; cols = rows[r].split("„"); while ( c < cols.length){ if (g.colE[c]) { g.colEdit[c] = editText(g,l+3,t+3,g.colW[c]-5,g.rowHeight-5,g.colA[c],cols[c],'#006090'); //Edit g.colEdit[c].lastvalue = cols[c]; g.colEdit[c].onchange = doNull; g.colEdit[c].style.backgroundColor = "#FFFFFF"; g.colEdit[c].link = cols[0]+';'+cols[1]+';'+cols[2]; g.colEdit[c].onkeyup = doChange; g.colEdit[c].xpost = 0; g.colEdit[c].oldvalue = cols[c]; } else { rectText(g,l+3,t,g.colW[c]-6,g.rowHeight,g.colA[c],cols[c],'#006090'); // Сам текст } l = l + g.colW[c]; c = c + 1; } t = t + g.rowHeight; r = r + 1; } return g; }