var oCart=new CartClass();
var sCurrencyLabel='руб.';

var oImages={
	order: ImgPreload('/i/order.gif'),
	order_added: ImgPreload('/i/order-added.gif'),
	order_big: ImgPreload('/i/order-big.gif'),
	order_big_added: ImgPreload('/i/order-big-added.gif')
}

var aStack=[]

function ImgPreload(sImage){
	var img=new Image();
	img.src=sImage;
	return img;
}

function AddToCart(sID, sCost, evt){
	//~ alert(sCost + ' -- '+sCost.toNumber() + ' -- ' + sCost.toNumber().nice());
	oCart.Add(sID, sCost.toNumber(), 1);
	CartFeedback(sID, evt);
}

function MinusCart(sID){
	oCart.Add(sID, null, -1);
	CartFeedback(sID, evt);
}

function CartFeedback(sID, evt){
	//если товар один -- достанем его название из куки или со страницы
	var oCartElem=document.getElementById('Basket');
	var sDefaultMsg=(oCart.length) ? 'Вы <a href="'+sBasketUri+'">заказали</a> '+GetCorrectWord(oCart.iTotal, ['товар','товара','товаров']) + '  <nobr>на сумму</nobr> <nobr>'+oCart.iCost.nice() + ' руб.</nobr>' : 'Вы пока ничего не заказали';
	if(oCartElem){
		if(oCart.length == 1){
			var sProdName='';
			if((evt=checkEvent(evt)) && sID){
				var oElem=document.getElementById('title'+sID);
				if(oElem)
					sProdName = oElem.innerHTML;
			}
			else{
				sProdName = getCookie('FirstProdName');
			}
			
			if(sProdName){
				sDefaultMsg = 'Вы <a href="'+sBasketUri+'">заказали</a> '+sProdName+' <nobr>на сумму</nobr> <nobr>'+oCart.iCost.nice() + ' руб.</nobr>';
				setCookie('FirstProdName', sProdName, oCart.TTL(), '/');
			}
		}
		oCartElem.innerHTML=sDefaultMsg;
		if(evt)
			ShowBalloon(evt);
	}
}

function getAbsolutePos(oElem){
	var _x=0;
	var _y=0;
	if(oElem){
		do{
			_x+=oElem.offsetLeft;
			_y+=oElem.offsetTop;
		}while( (oElem=oElem.offsetParent) )
	}
	
	return new Point(_x, _y);
}

function Point(x, y){
	this.x=x;
	this.y=y;
	return this;
}

function ShowBalloon(evt){
	if((evt=checkEvent(evt))){
		aStack.push(evt.target);
		evt.target.src=(evt.target.className == 'big') ? oImages.order_big_added.src : oImages.order_added.src;
		setTimeout('HideBalloon('+(aStack.length-1)+')', 1000);
	}
}

function HideBalloon(ix){
	if(aStack[ix]){
		aStack[ix].src=(aStack[ix].className == 'big') ? oImages.order_big.src : oImages.order.src;
		aStack[ix]=null;
	}
}

function GetParent(oElem, sTagName){
	if(oElem){
		while((oElem = oElem.parentNode))
			if(oElem.tagName == sTagName)
				return oElem;
	}
	return null;
}

function RecalcCart(oElem){
	if(oElem){
		var re=/\D/g
		var iID=Number(oElem.name.replace(re, ''));
		var oTR=GetParent(oElem, 'TR');
		if(oTR){
			var oTDs=oTR.getElementsByTagName('td');
			var iPrice=Number(oTDs[1].innerHTML.replace(re, ''));
			var iQty=Number(oElem.value.replace(re, ''));
			oTDs[3].innerHTML=(iPrice * iQty).nice();
			oCart.Set(iID, iPrice, iQty);
			SetBtnVisibility(iID, iQty);
		}
		CalcTaxes();
	}
}

function CalcTaxes(){
	var iCost=oCart.iCost
	var oForm=document.forms['Order'];
	if(oForm.Assemble.checked)
		iCost*=1+(iAssembleTax / 100);
	if(oForm.Delivery.checked)
		iCost+=iDeliveryTax;
		
	oForm.Address.disabled=(!oForm.Delivery.checked);
	
	LabelDisabler();
	
	var oTotal=document.getElementById('CartTotal');
	if(oTotal)
		oTotal.innerHTML=(Math.ceil(iCost)).nice();
}

function LabelDisabler(){
	var oLabels=document.getElementsByTagName('label');
	var sElementID;
	for(var i=0; i<oLabels.length; i++){
		sElementID=oLabels[i].htmlFor;
		if(sElementID) oLabels[i].className=(document.getElementById(sElementID).disabled) ? 'disabled' : '';
	}
}

function RemoveCartItem(iID){
	var oForm=document.forms['Cart'];
	var oTR=document.getElementById('item'+iID);
	if(oTR)
		oTR.getElementsByTagName('td')[3].innerHTML=0;
	oForm['qty'+iID].value=0;
	oCart.Set(iID,null, 0);
	SetBtnVisibility(iID, 0);
	CalcTaxes();
	return false;
}

function SetBtnVisibility(iID, iValue){
	document.getElementById('item'+iID).getElementsByTagName('a')[0].className = (!iValue) ? 'invisible' : '';
}

function choiceCity(obj){
	document.getElementById('cityLayer').style.display = 'block';
	obj.onblur = hideCityLayer;
}

function setCity(obj){
	obj.parentNode.firstChild.value = obj[obj.selectedIndex].text;
	hideCityLayer();
}

function hideCityLayer(){
	setTimeout("document.getElementById('cityLayer').style.display = '';", 100);
}