function ScartCookieToObj(  )
{
	var _Store = new Array();
	dlxGetCookies();
	var s_content = unescape(dlxCookies['shoppingcart']);
	if(!s_content || s_content=='undefined' )return _Store;
	var tovars = s_content.split(";");
	for(var i=0; i< tovars.length;i++)
	{
		var descs = tovars[i].split("&");
		_Store[i] = new Object();
		for(var j=0; j< descs.length;j++)
		{
			  var kv = descs[j].split("=");
				if(kv[0] && kv[1])
				_Store[i][kv[0]] = kv[1];
		}
	}
	return _Store;
}  // ScartCookieToObj

function ScartObjToCookie(_Store)
{
	var str="";
	if(!_Store) return;
	for(var i=0; i<_Store.length;i++)
	{
			for(var j in _Store[i])
			{
				if(j=='Name'&& !document.all && document.getElementsByTagName)
				{
					str += j + "="+escape(_Store[i][j])+"&";
				}else if(j=='Name'){
					str += j + "="+(_Store[i][j]).split("&").join("_amp_")+"&";
				}else{
					str += j + "="+_Store[i][j]+"&";
				}
			}
			str += ( i==_Store.length-1 ? "" : ";");
	}
	if(str=="")str="undefined";
	dlxSetCookie("shoppingcart",str,"","/","","");
}  // ScartObjToCookie

function ScartAddProd(prodID,prodName,prodQnt,PriceCur,usT,prodPrice1,prodPrice2,prodPrice3,clear)
{
	var _Store = ScartCookieToObj();
	if (clear) _Store.length = 0;
	for(var i=0;i <_Store.length; i++)
	{
		if(_Store[i]['ProductID']==prodID)
		{
			_Store[i]['Qnt']++;
			ScartObjToCookie(_Store);
			return false;
		}
	}
	var c = _Store.length;
	if(PriceCur.toLowerCase() == "euro")
	{
		PriceCur ="e";
	}
	else if(PriceCur.toLowerCase() == "usd"){
		PriceCur ="$";
	}
	else if(PriceCur.toLowerCase() == "rub"){
		PriceCur ="r";
	}
	else{
		PriceCur ="$";
	}
	_Store[c] = new Object;
	_Store[c]['ProductID'] = prodID;
	_Store[c]['Name'] = prodName;
	_Store[c]['Qnt'] = prodQnt;
	_Store[c]['ProductCur'] = PriceCur;
	_Store[c]['userT'] = usT;
	_Store[c]['Price1'] = prodPrice1;

	if(prodPrice2) _Store[c]['Price2'] = prodPrice2;
	if(prodPrice3) _Store[c]['Price3'] = prodPrice3;

	ScartObjToCookie(_Store);
	return false;
}  // ScartAddProd

function ScartRemove(prodID)
{
	var _Store = ScartCookieToObj();
	for(var i=0;i <_Store.length; i++)
	{
		if(_Store[i]['ProductID']==prodID)
		{
			_Store[i]="";
		}
	}
		ScartObjToCookie(_Store);
}  // ScartAddProd

function ScartSetQnt(prodID,qnt)
{
	var _Store = ScartCookieToObj();
	if(!(qnt*1))return;
	for(var i=0;i <_Store.length; i++)
	{
		if(_Store[i]['ProductID']==prodID)
		{
			_Store[i]['Qnt']=qnt;
		}
	}
		ScartObjToCookie(_Store);
}  // ScartAddProd

function sCartXML(_Store)
{
	if(!_Store)
		_Store = ScartCookieToObj();
	var str = "";
	var Price="";
	var summDol=0; var summEuro=0; var summRub=0;
	var qntDol=0; var qntEuro=0; var qntRub=0;
	for(var i=0;i <_Store.length; i++)
	{
		if(_Store[i]['ProductID'])
		{
			Price="Price1"; if (_Store[i]['Price3']) Price="Price3"; else if (_Store[i]['Price2']) Price="Price2";
			_Store[i][Price] = _Store[i][Price].split(",").join(".");
			if(_Store[i]['ProductCur']=='e')
			{
				summEuro += _Store[i][Price] * _Store[i]['Qnt'];
				qntEuro +=_Store[i]['Qnt']*1;
			}else if(_Store[i]['ProductCur']=='r')
			{
				summRub += _Store[i][Price] * _Store[i]['Qnt'];
				qntRub +=_Store[i]['Qnt']*1;
			}else{
				summDol += _Store[i][Price] * _Store[i]['Qnt'];
				qntDol +=_Store[i]['Qnt']*1;
			}
			str += "<product ";
			for(var j in _Store[i])
			{
					str += j+"='"+_Store[i][j]+"' ";
			}
			str += "/>";
		}
	}

	str = "<root sE='"+Math.round(summEuro*100)/100+"' sD='"+Math.round(summDol*100)/100+"' sR='"+Math.round(summRub*100)/100+"' qD='"+qntDol+"' qE='"+qntEuro+"' qR='"+qntRub+"'  ><products>"+(str=="" ? "<empty/>" : str)+ "</products></root>";
	return str;
}  // sCartXML


function sCartMozHTML(_Store)
{
	if(!_Store)
		_Store = ScartCookieToObj();
	var str = "";
	str += "<form action='/basket.php'>";
	str += "<table width=450 cellpadding=0 cellspacing=0 border=0 style='border: thin outset;'>";
	str += "<tr><td width=100%>";
	str += "<table width=100% cellpadding=6 cellspacing=0 border=0>";
	str += "<tr bgcolor=#394F62 onmousedown='window.fObj=this' onmouseup='window.fObj=false;'><td width=50% align=left   class=upmenu >Ваша корзина</td>";
	str += "<td align=right  class=tsmall>";
	str += "<img border=0 src='/images/close_sm.gif' iclass='cIMG' onmousedown='var e=this; while(e.getAttribute(\"iclass\") != \"cont\")e = e.parentNode; e.style.left=\"-1000\"; window.fObj=null;' alt='Закрыть' style='cursor: hand'>";
	str += "</td></tr></table>";
	str += "<table width=100% cellpadding=0 cellspacing=0 border=0>";
	str += "<tr><td bgcolor=#D7DCE3>";
	str += "<table width=100% cellpadding=6 cellspacing=1 border=0 >";
	str += "<tr bgcolor=#B5BECA><td width=70% align=left class=tsmall style='color: #4E555C'><b>Название</b></td>";
  str += "<td  width='10%' align=center class=tsmall style='color: #4E555C'><nobr><b>Кол-во</b></nobr></td>";
	str += "<td width=15% align=center class=tsmall style='color: #4E555C'><b>Цена</b></td>";
  str += "<td width=5% align=center class=tsmall style='color: #4E555C'><b>Удалить</b></td>";
  str += "</tr>";
	//for $
	var Price="";
	var summDol=0; var summEuro=0; var summRub=0;
	var qntDol=0; var qntEuro=0; var qntRub=0;
	for(var i=0;i <_Store.length; i++)
	{
		if(_Store[i]['ProductID'])
		{
			Price="Price1"; if (_Store[i]['Price3']) Price="Price3"; else if (_Store[i]['Price2']) Price="Price2";
			if(_Store[i]['ProductCur']=='e')
			{
				summEuro += _Store[i][Price] * _Store[i]['Qnt'];
				qntEuro +=_Store[i]['Qnt']*1;
			}else if(_Store[i]['ProductCur']=='r')
			{
				summRub += _Store[i][Price] * _Store[i]['Qnt'];
				qntRub +=_Store[i]['Qnt']*1;
			}else{
				summDol += _Store[i][Price] * _Store[i]['Qnt'];
				qntDol +=_Store[i]['Qnt']*1;
			}
		}
	}
	var empt = true;
	var nCount =0;
	for(var i=0;i <_Store.length; i++)
	{
			if(!_Store[i]['ProductID'])
				continue;
			if(_Store[i]['ProductCur']=='e' && _Store[i]['ProductCur']=='r')
				continue;
			empt = false;
			Price="Price1"; if (_Store[i]['Price3']) Price="Price3"; else if (_Store[i]['Price2']) Price="Price2";
			str += "<tr bgcolor='#F3F4F6' align='left' class='tsmall'>";
			str += "<td valign=middle  class='tsmall' bgcolor='#F3F4F6'>"+_Store[i]['Name']+"</td>";
			str += "<td align=center><input class=tsmall size=2 maxlength=4 name='"+_Store[i]['ProductID']+"' value='"+_Store[i]['Qnt']+"' onkeypress='if(window.event.keyCode==13){ScartSetQnt("+_Store[i]['ProductID']+",this.value); sCartUpdate(this);}' onfocus='this.select()'	onchange='ScartSetQnt("+_Store[i]['ProductID']+",this.value); sCartUpdate(this);'>";
			str += "</td><td align='center' class=tsmall><b><nobr>$"+_Store[i][Price]+"</nobr>";
			str += "</b></td><td align=center><img border=0 src='/images/delete.gif' onclick='ScartRemove("+_Store[i]['ProductID']+"); sCartUpdate(this);' alt='Удалить' style='cursor: hand'/>";
			str += "</td></tr>";
			nCount ++;
	}
	if(nCount > 0)
		str += "<tr bgcolor='#394F62'><td width='70%' align=left class=upmenu><b>Всего:</b></td><td  width=10% align=center class=upmenu><b>"+qntDol+"</b></td><td  width=15% align=center class=upmenu><b>$"+Math.round(summDol*100)/100+"</b></td><td width=5% align=center class=upmenu><b>&#xA0;</b></td></tr>";
	var nCount =0;
	for(var i=0;i <_Store.length; i++)
	{
			if(!_Store[i]['ProductID'])
				continue;
			if(_Store[i]['ProductCur']!='e')
				continue;
			empt = false;
			Price="Price1"; if (_Store[i]['Price3']) Price="Price3"; else if (_Store[i]['Price2']) Price="Price2";
			str += "<tr bgcolor='#F3F4F6' align='left' class='tsmall'>";
			str += "<td bgcolor='#F3F4F6' class='tsmall'>"+_Store[i]['Name']+"</td>";
			str += "<td align=center><input class=tsmall size=2 maxlength=4 name='"+_Store[i]['ProductID']+"' value='"+_Store[i]['Qnt']+"' onkeypress='if(window.event.keyCode==13){ScartSetQnt("+_Store[i]['ProductID']+",this.value); sCartUpdate(this);}' onfocus='this.select()'	onchange='ScartSetQnt("+_Store[i]['ProductID']+",this.value); sCartUpdate(this);'>";
			str += "</td><td align='center' class=tsmall><b><nobr>E"+_Store[i][Price]+"</nobr>";
			str += "</b></td><td align=center><img border=0 src='/images/delete.gif' onclick='ScartRemove("+_Store[i]['ProductID']+"); sCartUpdate(this);' alt='Удалить' style='cursor: hand'/>";
			str += "</td></tr>";
			nCount ++;
	}
	if(nCount > 0)
		str += "<tr bgcolor='#394F62'><td width='70%' align=left class=upmenu><b>Всего:</b></td><td  width=10% align=center class=upmenu><b>"+qntEuro+"</b></td><td  width=15% align=center class=upmenu><b>E"+Math.roud(summEuro*100)/100+"</b></td><td width=5% align=center class=upmenu><b>&#xA0;</b></td></tr>";
	var nCount =0;
	for(var i=0;i <_Store.length; i++)
	{
			if(!_Store[i]['ProductID'])
				continue;
			if(_Store[i]['ProductCur']!='r')
				continue;
			empt = false;
	  	Price="Price1"; if (_Store[i]['Price3']) Price="Price3"; else if (_Store[i]['Price2']) Price="Price2";
			str += "<tr bgcolor='#F3F4F6' align='left' class='tsmall'>";
			str += "<td  bgcolor='#F3F4F6'  class='tsmall'>"+_Store[i]['Name']+"</td>";
			str += "<td align=center><input class=tsmall size=2 maxlength=4 name='"+_Store[i]['ProductID']+"' value='"+_Store[i]['Qnt']+"' onkeypress='if(window.event.keyCode==13){ScartSetQnt("+_Store[i]['ProductID']+",this.value); sCartUpdate(this);}' onfocus='this.select()'	onchange='ScartSetQnt("+_Store[i]['ProductID']+",this.value); sCartUpdate(this);'>";
			str += "</td><td align='center' class=tsmall><b><nobr>RUB"+_Store[i][Price]+"</nobr>";
			str += "</b></td><td align=center><img border=0 src='/images/delete.gif' onclick='ScartRemove("+_Store[i]['ProductID']+"); sCartUpdate(this);' alt='Удалить' style='cursor: hand'/>";
			str += "</td></tr>";
			nCount ++;
	}
	if(nCount > 0)
		str += "<tr bgcolor='#394F62'><td width='70%' align=left class=upmenu><b>Всего:</b></td><td  width=10% align=center class=upmenu><b>"+qntRub+"</b></td><td  width=15% align=center class=upmenu><b>RUB"+Math.round(summRub*100)/100+"</b></td><td width=5% align=center class=upmenu><b>&#xA0;</b></td></tr>";
	if(empt){
		str += "<tr valign=middle bgcolor=#394F62><td colspan=4 align=center class=upmenu>Корзина пуста</td></tr>";
	}else{
		str += "<tr bgcolor=#394F62 class=treg><td colspan=4 align=center class=tsmall><input class=tsmall type=submit value='Оформить заказ'/></td></tr>";
	}
	str += "</table>	</td>	</tr>	</table></td></tr></table>";
	str += "</FORM>";
	return str;
}  // sCartXML



function sCartHTML(xsl,_Store)
{
	if(!_Store)
		_Store = ScartCookieToObj();
	var cont = document.createElement('div');
	cont.innerHTML = "<XML>"+ sCartXML(_Store) +"</XML>";
	var XSL = new ActiveXObject("Microsoft.XMLDOM");
	XSL.async=false;
	XSL.load(xsl);
	XML = cont.children[0];
	var e = XML.XMLDocument.transformNode(XSL);
	return e;
}
function ScartClear()
{
	dlxSetCookie("shoppingcart","","","/","","");
}
var fObj="";
if(!document.all && document.getElementById)//support for mozilla
{
	window.captureEvents(Event.CLICK);
	window.onclick = ff;
	window.captureEvents(Event.LOAD);
	window.onload = aa;
}

function aa()
{
	window.captureEvents(Event.MOUSEUP);
	window.onmouseup = ff;
	window.captureEvents(Event.MOUSEMOVE);
	window.onmousemove = ff;
	window.captureEvents(Event.MOUSEDOWN);
	window.onmousedown = "";
	window.captureEvents(Event.SELECT);
	window.onselect = mozCancel;
}

function mozCancel(evnt)
{
	//? dont work for 12b
}
function ff(evnt)
{
	window.event = evnt;
	if(document.getElementsByTagName && evnt.type=='mousemove')//MOzila support
	{
			if(!window.fObj)return;
			var e = window.fObj;
			while(e && e.getAttribute("iclass") != "cont"){
				e= e.parentNode;
			}
				e.style.left = window.scrollX + window.event.clientX - e.offsetWidth/2;
				e.style.top = window.scrollY +window.event.clientY - 10;
	}
	if(document.getElementsByTagName && evnt.type=='mouseup')
	{
		window.fObj = null;
	}

}


function sCartFly(act)
{
	if(!document.all){
			return ;
	}
	var src = window.event.srcElement;
	if(!act){
		if(!fObj)return;
		if(window.event.type=="mousemove"){
			act="move";
		 }
		else if(window.event.type=="mousedown"){
			act ="mdown";
		}else if(window.event.type=="mouseup"){
			act ="mup";
		}else{
			window.event.cancelBubble = true;
			window.event.returnValue = false;
			return;
		}

	}
	if(!fObj){
		var e = src;
		while(e && e.iclass !="fScart") e= e.parentNode;
		if(!e)return;
		var scart = e;
	}else{
		var scart = fObj;
	}
	var pityStep=2;
	if(act=="mdown")
	{
		src = window.event.srcElement;
		e = src;
		while(e && e.iclass !="fcartHeader") e= e.parentNode;
		if(!e)return;
		scart.X = scart.offsetLeft + scart.clientLeft;
		scart.Y = scart.offsetTop +  scart.clientTop;
		scart.Xoff = window.event.clientX - scart.X;
		scart.Yoff = window.event.clientY - scart.Y;
		scart.drag = true;
		fObj = scart;
	}else if(act=="move" && scart.drag){
		if(Math.abs(scart.X - (window.event.clientX - scart.Xoff)) < pityStep && Math.abs(scart.Y - (window.event.clientY - scart.Yoff)) < pityStep )
		return;
		scart.style.left = window.event.clientX - scart.Xoff;
		scart.style.top = window.event.clientY - scart.Yoff;
		scart.X = window.event.clientX - scart.Xoff;
		scart.Y = window.event.clientY - scart.Yoff;
		window.event.cancelBubble = true;
		window.event.returnValue = false;
	}else if(act=="mout"){

	}else	if(act == "mup")
	{
			scart.drag = false;
			fObj="";
	}
}  // sCartFly

function showsCart()
{
	if(!document.all){
			if(document.getElementById)//MOZilla
			{
				var e = document.getElementById("sCartContent");
				e.innerHTML = "<div style='padding: 0px; position: absolute; left: 20px; top: 20px;' iclass='cont'>"+ sCartMozHTML()+"</div>";
				var scart = e.getElementsByTagName("*").item(0);
				if(!window.fObj){
					scart.style.left=window.scrollX + window.event.clientX - scart.offsetWidth/2;
					scart.style.top=window.scrollY + window.event.clientY + 10;
				 }
			}else{
		 		document.location = "/basket.php";
			}
		 return;
	}
	var e = document.all.sCartContent;
	var scart;
	if(e.children[0] && (e.children[0].offsetLeft + e.children[0].clientLeft > document.body.scrollLeft)
		&& (e.children[0].offsetTop +  e.children[0].clientTop > document.body.scrollTop)
		&& (e.children[0].offsetTop +  e.children[0].clientTop + e.children[0].clientHeight < document.body.scrollTop + document.body.clientHeight)){
		sCartUpdate(e.children[0]);
		return ;
	}
		e.innerHTML = sCartHTML("/func/sCart.xsl");
		scart = e.children[0];
		scart.style.left = (window.event.clientX - scart.clientWidth/1.7 + 5) +"px";

		if(document.body.clientHeight > window.event.clientY +20)
			scart.style.top = (window.event.clientY + 10  + document.body.scrollTop) +"px";
		else
			scart.style.top = (window.event.clientY - 20  + document.body.scrollTop - scart.clientHeight) +"px";
}  // showsCart

function sCartUpdate(src)
{
	if(document.all)
	{
		var e=src;
		while(e.iclass != 'fScart')
			e = e.parentNode;
		var sr = document.createElement('div');
		sr.innerHTML = sCartHTML('/func/sCart.xsl');
		e.innerHTML = sr.children[0].children[0].outerHTML;
	}else if(document.getElementsByTagName){//MOzilla support
		var e=src;
		while(e.getAttribute("iclass") != 'cont')
			e = e.parentNode;
		e.innerHTML = sCartMozHTML();
	}
	else{
		document.location = "/basket.php";
	}
}  // sCartUpdate()

function checkLocal(e)
{
	if(document.URL.indexOf("file://") != -1)
	{
		e.form.action="/basket.htm";
	}
}
