﻿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(), {
	AddItemPropsEx: function(sku, quantity) {
		return this.invoke("AddItemPropsEx", {"sku":sku, "quantity":quantity}, this.AddItemPropsEx.getArguments().slice(2));
	},
	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));
	},
	GetLargeCart: function(navID) {
		return this.invoke("GetLargeCart", {"navID":navID}, this.GetLargeCart.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));
	},
	GetProductInfo: function(sku) {
		return this.invoke("GetProductInfo", {"sku":sku}, this.GetProductInfo.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="Invalid quantity";

if(typeof(T_CART_LOADING)=="undefined")
T_CART_LOADING='<p class="info" style="height: 98px; color:#A69F8C" id="caddie"><a>Loading...</a></p>';

if(typeof(T_CART_ITEMADDED)=="undefined")
T_CART_ITEMADDED="Product was added to your cart";

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,loadedCB) 
{  
	$("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);				
$("basketContent").style.display="block";

			}
			else if(typeof(loadedCB)!="undefined") {
				loadedCB();
			}
		}
	); 
}  

function AddItemDefault(sku,navID)
{
			Soda.Ajax.Shop.AddItemProps(sku,1,new Array(),
				function(r)
				{
					LoadCart(navID,true);
				}
			);
}

function AddItemEx(sku,qty)
{
			Soda.Ajax.Shop.AddItemPropsEx(sku,qty,
				function(r)
				{
					LoadCart(G_NavID,true);
				}
			);

}

function GetLargeCart()
{
	Soda.Ajax.Shop.GetLargeCart(G_NavID,
		function(r)
		{
			var rr=r.value;
			$("LargeBasket").innerHTML=rr;
		}
	); 	
}

function AddItemExL(sku,qty)
{
			Soda.Ajax.Shop.AddItemPropsEx(sku,qty,
				function(r)
				{
	$("txtQTY1").value="1";
	


	$("LargeBasket").innerHTML=T_CART_LOADING;
	GetLargeCart();

		//LoadCart(G_NavID);


				}
			);

}

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,true);
		}
	);
}

function RemoveItemEx(p,navID)
{ 
	Soda.Ajax.Shop.RemoveItemEx(p,function(r)
		{
			GetLargeCart();
		}
	);
}
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);
	}
}


function UpdateCartEx(s,navID)
{ 
	var bx=(s!=null&&typeof(s)!='undefined'?[s]:document.getElementById("LargeBasket").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)
			{
				GetLargeCart();
			}
		); 
	}
	else if(fl) {
		GetLargeCart();
	}
}

		function updateProductPictures(id){
			
			document.getElementById('product-pictures').style.backgroundImage="url('/thumbnail.ashx?img=http://extranet.cerjo.ch/Htdocs/Modules/Shop/Images/Thumbnails/"+id+".png&w=230&h=130')";
		}


		function updateProductPicturesEx(id,skuField)
{

if(window.event&&window.event.keyCode==13) {
AddItemExL($('txtSKU1').value,$('txtQTY1').value);
return;
}
else if (!skuField) {
return;
}

$("txtQTY1").value="1";

$("trQuantity").style.display=(id.length==7?"":"none");			



	$("ProductPanel").style.display="none";
	$("VendorPrice").innerHTML="";
	$("RetailPrice").innerHTML="";


if(id.length==7) {
	Soda.Ajax.Shop.GetProductInfo(id,function(r)
	{

		$("ProductPanel").style.display=(r.value.Result?"":"");
		if(r.value.Result) 
		{
				document.getElementById('product-pictures').style.backgroundImage=
id.length==7?
"url('/thumbnail.ashx?img=http://extranet.cerjo.ch"+r.value.Picture1+"&w=230&h=130')":"";

				$("ProductTitle").innerHTML=r.value.Title;
				$("VendorPrice").innerHTML=r.value.VendorPrice;
				$("RetailPrice").innerHTML=r.value.RetailPrice;
				$("detailProduct").style.display="block";
				$("product-pictures").style.styleFloat="right";
				$("product-pictures").style.marginLeft="0";
			
		} 
		else {

			document.getElementById('product-pictures').style.backgroundImage=
id.length==7?
"url('/Htdocs/Images/no_picture.jpg')":"";
			$("detailProduct").style.display="none";
			$("product-pictures").style.styleFloat="none";
			$("product-pictures").style.marginLeft="80";
	
		}
	}
	
);
	
} 

		}

