var ajaxcalls = new Array();

function ajaxcall(url,params,cached)
{
	this.xhr=0;
	this.params = params;
	if (arguments[3]){this.success = arguments[3];}
	if (arguments[4]){this.failure = arguments[4];}
	if (window.XMLHttpRequest){this.xhr = new XMLHttpRequest();}
	else if (window.ActiveXObject){this.xhr = new ActiveXObject("Microsoft.XMLHTTP");}
	else{alert("Your browser does not support AJAX!");return;}
	if (!cached){url+="&_ajaxcall="+Math.random();}
	this.poll = window.setInterval("ajaxpoll("+ajaxcalls.length+")",10);
	ajaxcalls.push(this);
	this.xhr.open("GET",url,true);
	this.xhr.send(null);
}
function ajaxpoll(t){
	o = ajaxcalls[t];
	if (o.xhr.readyState==4){
		window.clearTimeout(o.poll);if (o.success){o.success({response:o.xhr.responseText,argument:o.params});}}}

var stockopt = ["Not available","No","Limited stock","Yes"];
var cart = new Array();
var propcount = 0;
var totalweight = 0;
var destmul = [0,10,20,30,40,30,40,40];
var destname = ["Please choose delivery area...","Delivery in South Africa","Delivery in Africa","Delivery to South America","Delivery to North America","Delivery to Europe","Delivery to Asia","Delivery to Australia"];
var curdest = 0;
function shopcat(val)
{
	getel("subcontent").innerHTML = "Loadin...";
	ajaxcall("shop.php?shopcmd=cat&shopcat="+val,val,false,function(o)
	{
		if (!o.response)
		{
			getel("subcontent").innerHTML = "No products found.";
		}
		else
		{
			var a = o.response.split("~");
			var sb = "<table border='0' cellspacing='5' cellpadding='0'>";
			for (var n=0;n<a.length;n++)
			{
				var p = a[n].split("|");
				sb+="<tr><td class='shopitem'><table border='0' cellpadding='0' cellspacing='0'><tr><td style='width:128px;height:96px'><img style='cursor:pointer' onclick='gallerystart(\"shop\","+p[0]+")' src='gallery/shop/thumb"+p[0]+".jpg' width='128' height='96' /></td><td class='sitemlisting'><table border='0' cellspacing='0' cellpadding='3'><tr><td>Name:</td></tr><tr><td>Price:</td></tr><tr><td>Weight:</td></tr><tr><td>In stock:</td></tr></table></td><td class='sitemspecs'><table border='0' cellspacing='0' cellpadding='3'><tr><td>"+p[1]+"</td></tr><tr><td>"+p[2]+" ZAR</td></tr><tr><td>"+p[4]+" KG</td></tr><tr><td>";
				if (login)
				{
					sb += "<select onchange='ajaxcall(\"shop.php?shopcmd=updatestock&pid="+p[0]+"&val=\"+this.value,null,false,function(o){})'>";
					for (var m=0;m<stockopt.length;m++)
					{
						sb+="<option";
						if (m==p[3])
						{
							sb+=" selected";
						}
						sb+=" value='"+m+"'>"+stockopt[m]+"</option>";
					}
					sb += "</select>";
				}
				else
				{
					if (p[3]==0)
					{
						sb+="Not available";
					}
					if (p[3]==1)
					{
						sb+="No";
					}
					else if (p[3]==2)
					{
						sb+="Limited stock";
					}
					else if (p[3]==3)
					{
						sb+="Yes";
					}
				}
				sb+= "</td></tr></table></td><td style='padding-left:30px'><table border='0' cellpadding='5' cellspacing='0'><tr><td style='text-align:center;font-weight:bold' colspan='3'>In your cart:</td></tr><tr><td><img style='cursor:pointer' src='gfx/minus.jpg' width='35' height='35' onmouseover='this.src=\"gfx/minus_over.jpg\"' onmouseout='this.src=\"gfx/minus.jpg\"' onclick='shopminus("+p[0]+",\""+p[1]+"\","+p[2]+","+p[3]+","+p[4]+")' /></td><td id='pqty"+p[0]+"' class='shopitemcount'>";
				var qty = 0;
				if (cart["p"+p[0]])
				{
					qty = cart["p"+p[0]].qty;
				}
				sb+=qty+"</td><td><img style='cursor:pointer' src='gfx/plus.jpg' width='35' height='35' onmouseover='this.src=\"gfx/plus_over.jpg\"' onmouseout='this.src=\"gfx/plus.jpg\"' onclick='shopplus("+p[0]+",\""+p[1]+"\","+p[2]+","+p[3]+","+p[4]+")' /></td></tr></table></td></tr></table></td></tr>";
			}
			sb += "</table>";
			getel("subcontent").innerHTML = sb;
		}
	});
}
function shopplus(id,name,price,stock,kg)
{
	if (!cart["p"+id])
	{
		cart["p"+id] = {id:id,name:name,price:price,stock:stock,qty:1,weight:kg};
		propcount++;
	}
	else if (cart["p"+id].qty<999)
	{
		cart["p"+id].qty+=1;
	}
	getel("pqty"+id).innerHTML = cart["p"+id].qty;
	redrawcartlist();
}
function shopminus(id,name,price,stock,kg)
{
	if (cart["p"+id])
	{
		if (cart["p"+id].qty>0)
		{
			cart["p"+id].qty-=1;
		}
	}
	getel("pqty"+id).innerHTML = cart["p"+id].qty;
	if  (cart["p"+id].qty==0)
	{
		cart["p"+id] = null;
		propcount--;
	}
	redrawcartlist();
}
function redrawcartlist()
{
	var tw = 0;
	var tt = 0;
	if (propcount>0)
	{
		var sb="<table border='0' cellpadding='0' cellspacing='0'>";
		for (var p in cart)
		{
			if (cart[p])
			{
				sb+="<tr><td style='width:291px'>"+cart[p].name+"</td><td style='width:90px'>"+cart[p].price+"</td><td style='width:90px'>"+cart[p].qty+"</td><td style='width:90px'>"+(cart[p].price*cart[p].qty)+"</td><td><img style='cursor:pointer' src='gfx/cancelsmall.jpg' onmouseover='this.src=\"gfx/cancelsmall_over.jpg\"' onmouseout='this.src=\"gfx/cancelsmall.jpg\"' width='25' height='25' onclick='cancelitem("+cart[p].id+")' /><img style='cursor:pointer' src='gfx/searchsmall.jpg' onmouseover='this.src=\"gfx/searchsmall_over.jpg\"' onmouseout='this.src=\"gfx/searchsmall.jpg\"' width='25' height='25' onclick='gallerystart(\"shop\","+cart[p].id+")' /></td></tr>";
				tw+=(cart[p].weight*cart[p].qty);
				tt+=(cart[p].price*cart[p].qty);
			}
		}
		sb+="</table>";
		getel("cartlist").innerHTML = sb;
	}
	else
	{
		getel("cartlist").innerHTML = "There are no items in your shopping cart.";
	}
	var db = "";
	for (var n=0;n<destmul.length;n++)
	{
		db+="<option";
		if (n==curdest)
		{
			db+=" selected";
			tt+= (tw*destmul[n]);
		}
		db+=" value='"+n+"'>"+destname[n];
		if (n>0)
		{
			db+=" "+(tw*destmul[n])+" ZAR";
		}
		db+="</option>";
	}
	getel("areadb").innerHTML = db;
	getel("totalcost").innerHTML = tt;
	totalweight = tw;
}
function areachange(val)
{
	curdest = val;
	redrawcartlist();
}
function cancelitem(id)
{
	if (getel("pqty"+id))
	{
		getel("pqty"+id).innerHTML = "0";
	}
	cart["p"+id] = null;
	propcount--;
	redrawcartlist();
}
function checkoutvalidate()
{
	if (propcount==0)
	{
		window.alert("You have nothing in your cart!");
	}
	else if (curdest==0)
	{
		window.alert("You must choose a delivery area!");
	}
	else
	{
		var sb="<INPUT TYPE='HIDDEN' NAME='ButtonAction' VALUE='checkout'><INPUT TYPE='HIDDEN' NAME='MerchantIdentifier' VALUE='3102136072'><INPUT TYPE='HIDDEN' NAME='ShippingRequired' VALUE='1'><INPUT TYPE='HIDDEN' NAME='CurrencyAlphaCode' VALUE='ZAR'>";
		var count = 0;
		for (p in cart)
		{
			if (cart[p])
			{
				var tc = count;
				if (tc ==0)
				{
					tc = "";
				}
				sb+="<INPUT TYPE='HIDDEN' NAME='LIDSKU"+tc+"' VALUE='PRO_"+cart[p].id+"'><INPUT TYPE='HIDDEN' NAME='LIDDesc"+tc+"' VALUE='"+cart[p].name+"'><INPUT TYPE='HIDDEN' NAME='LIDPrice"+tc+"' VALUE='"+cart[p].price+"'><INPUT TYPE='HIDDEN' NAME='LIDQty"+tc+"' VALUE='"+cart[p].qty+"'>";
			}
			count++;
		}
		var tc = count;
		getel("checkoutform").innerHTML+=sb+"<INPUT TYPE='HIDDEN' NAME='LIDSKU"+tc+"' VALUE='PRO_delivery'><INPUT TYPE='HIDDEN' NAME='LIDDesc"+tc+"' VALUE='"+destname[curdest]+"'><INPUT TYPE='HIDDEN' NAME='LIDPrice"+tc+"' VALUE='"+(totalweight*destmul[curdest])+"'><INPUT TYPE='HIDDEN' NAME='LIDQty"+tc+"' VALUE='1'>";
		getel("checkoutform").submit();
	}
}
