﻿if(typeof Soda == "undefined") Soda={};
if(typeof Soda.Ajax == "undefined") Soda.Ajax={};
Soda.Ajax.Shop_class = function() {};
Object.extend(Soda.Ajax.Shop_class.prototype, Object.extend(new AjaxPro.AjaxClass(), {
	AddItemProps: function(shopID, quantity, props) {
		return this.invoke("AddItemProps", {"shopID":shopID, "quantity":quantity, "props":props}, this.AddItemProps.getArguments().slice(3));
	},
	GetCart: function(navID) {
		return this.invoke("GetCart", {"navID":navID}, this.GetCart.getArguments().slice(1));
	},
	UpdateItems: function(ids, vals, navID) {
		return this.invoke("UpdateItems", {"ids":ids, "vals":vals, "navID":navID}, this.UpdateItems.getArguments().slice(3));
	},
	RemoveItemEx: function(productID) {
		return this.invoke("RemoveItemEx", {"productID":productID}, this.RemoveItemEx.getArguments().slice(1));
	},
	url: '/ajaxpro/Soda.Ajax.Shop,Site.ashx'
}));
Soda.Ajax.Shop = new Soda.Ajax.Shop_class();



if(typeof(T_INVALID_QTY)=="undefined")
T_INVALID_QTY="Quantité invalide";

if(typeof(T_CART_LOADING)=="undefined")
T_CART_LOADING='<p class="info" style="height: 98px; color:#A69F8C" id="caddie"><a>Chargement...</a></p>';

if(typeof(T_CART_ITEMADDED)=="undefined")
T_CART_ITEMADDED="L’article a été ajouté à votre panier";

if(typeof(T_CART_INVALIDVALUE)=="undefined")
T_CART_INVALIDVALUE="Veuillez sélectionner une taille pour votre T-Shirt";



var EffectLock=false;
var CartExpandedState=false;
var AutocloseTimeout=null;

function toggleCaddie(id) {
	if(!EffectLock) {
		if($(id)!=null&&$(id).style.display=='none') {
			EffectLock=true;
$(id).style.height="";
			Effect.BlindDown($(id),
				{afterFinish:function(){CartExpandedState=true;EffectLock=false;}}
			);
		}
		else if($(id)!=null) {
			EffectLock=true;
			Effect.BlindUp($(id),
				{afterFinish:function(){CartExpandedState=false;EffectLock=false;}}
			);
		}
	}  
}


function LoadCart(navID,expand) 
{  
	$("basketBox").innerHTML=T_CART_LOADING;
	Soda.Ajax.Shop.GetCart(navID,
		function(r)
		{
			var rr=r.value; 
			if($("basketBox")!=null) { 
				$("basketBox").innerHTML=rr;
			} 	
			if(expand) {
				EffectLock=false;
				CartExpandedState=false;
				
				
				{//if(!CartExpandedState) {
					toggleCaddie('caddieBox'); 
				}
clearTimeout(AutocloseTimeout);
AutocloseTimeout=null;
AutocloseTimeout=setTimeout("if(CartExpandedState){toggleCaddie('caddieBox');}",8000);				

			}	
		}
	); 
}  

function AddItemDefault(sku,navID)
{
			Soda.Ajax.Shop.AddItemProps(sku,1,new Array(),
				function(r)
				{
					LoadCart(navID,true);
				}
			);
}


function AddItem(sender,sku,navID,propsPanelID)
{
	var qty=CTI($(sender).value);
	if(qty>0) {
		var ret=true;
		var pnl=$(propsPanelID?propsPanelID:"pnlProperties"); 
		var props=new Array();
		if(pnl!=null) {
			var p=pnl.getElementsByTagName("select");
			for(var j=p.length;j>-1&&ret;j--) {
				var i=p.length-j;
				if(p[i]!=null) {
					if(p[i].id.toLowerCase().indexOf("property")==0) {
						/*if(p[i].value.ToInt()<0) {
							ret=false;
							alert(T_CART_INVALIDVALUE);
						}*/
						props=props.concat(new Array(
								{
									ID:p[i].id.toLowerCase().replace("property",""),
									Name:"",
									Value:p[i].value.trim()
								}
							)
						);
					}
				}
			} 
		}

		if(ret) {
			Soda.Ajax.Shop.AddItemProps(sku,qty,props,
				function(r)
				{
					LoadCart(navID,true);
				}
			);
		}
		
	}
	else {
		alert(T_INVALID_QTY);
	}
}

function RemoveItem(p,navID)
{ 
	Soda.Ajax.Shop.RemoveItemEx(p,function(r)
		{
			LoadCart(navID);
		}
	);
}

function CTI(i)
{
	var ret=-1;
	try {
		ret=parseInt(i);
		if(isNaN(ret))
			ret=-1;
	}
	catch(e) {
		ret=-1;
	}
	
	return ret;
}

function AddItemKP(event,field,sku,navID,propsPanelID)
{
 var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
 if (keyCode == 13) {
   AddItem(field,sku,navID,propsPanelID);
LoadCart(navID);
 }
 return false;
}

function UpdateCartKP(field,event,navID) {
 var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
if(typeof(keyCode)=="undefined") {
try {
	keyCode=window.event.keyCode;
}
catch(e) {}
}
 if (keyCode == 13) {
   UpdateCart(field,navID);
 }
 return false;
}

function UpdateCart(s,navID)
{ 
	var bx=(s!=null&&typeof(s)!='undefined'?[s]:document.getElementById("basketBox").getElementsByTagName("input"));
	var ids=new Array();
	var qties=new Array();
	var ch=false;
	var fl=false;
	for(var i=bx.length-1;i>-1;i--) {
		var qty=CTI(bx[i].value);
		if(qty<0&&bx[i].type.toLowerCase()=="text") {
			alert(T_INVALID_QTY);
			break;			
		}
		else if(qty==0) {
			Soda.Ajax.Shop.RemoveItemEx(bx[i].getAttribute("uid"),function(r)
			{
			
			}
			);
			fl=true;
		}
		else {
			var lq=CTI(bx[i].getAttribute("lastqty"));
			if(lq!=qty) {
				ch=true;
				var ids_t=new Array(bx[i].getAttribute("uid"));
				ids=ids.concat(ids_t);
				var qties_t=new Array(qty.toString());
				qties=qties.concat(qties_t);
			}
		}
		
	}
	
	if(ch) {
		Soda.Ajax.Shop.UpdateItems(ids,qties,navID,function(r)
			{
				LoadCart(navID);
			}
		); 
	}
	else if(fl) {
		LoadCart(navID);
	}
}
