// Shopping Cart function
//Cookie data:
//name: AlvinsShopCart
//expires: 24 Hs
//items array: items
//item properties: iditem, idsize, idcolor, code, price, quantity, colorfile, airbrushtext, dropname
var	cookieName = "AlvinsShopCart=";

function addToCart(iditem, idsize, idcolor, code, color, quantity, colorfile, abtext, dname, sname)
{
	/*
	itemadded = true;
	items = new Array();
	date = new Date();
	expiredate = new Date(date.getFullYear(), date.getMonth(), date.getDate(), 24);
	if(cookieExists())
	{
		//expiredate = null;
		items = getItemsArray();
		//alert(items);
	}
	fi = findItem(iditem, idsize, idcolor, abtext, dname, items);

	if(fi==-1)
	{
		addItem = new Array();
		addItem[0] = iditem;
		addItem[1] = idsize;
		addItem[2] = idcolor;
		addItem[3] = code;
		addItem[4] = color;
		addItem[5] = quantity;
		addItem[6] = colorfile;
		addItem[7] = abtext; //airbrush text customization
		addItem[8] = dname; //drop name customization
		addItem[9] = sname; //size name
		
		items[items.length] = addItem;
		createCookie(items.join(";"), expiredate);
		//alert("Item added succesfully!");
		updateCartCount();
	}else{
		//alert("Item already in cart!\nAccess shopping cart to modify content.");
		itemadded = false;
	}
	*/
	itemadded = true;
	addToCartAjax(iditem, idsize, idcolor, color, quantity, abtext, dname, sname);
	updateCartCount();
	return itemadded;
}
function addToCartExtra(iditem, idsize, idcolor, code, color, quantity, colorfile, abtext, dname, sname, extra_type)
{
	itemadded = true;
	addToCartAjax(iditem, idsize, idcolor, color, quantity, abtext, dname, sname, extra_type);
	updateCartCount();
	return itemadded;
}
function updateCartItem(iditem, idsize, idcolor, qty, abtext, dname)
{
	items = new Array();
	expiredate = new Date();
	nowPlusOneDay = expiredate.getTime() + (24*60*60*1000);
	expiredate.setTime(nowPlusOneDay);
	if(cookieExists())
	{
		items = getItemsArray();
		
		fi = findItem(iditem, idsize, idcolor, abtext, dname, items);
		if(fi>-1)
		{
			if(qty>0)
			{
				items[fi][5] = qty;
					//alert(qty);
			}else{
				items.splice(fi,1);
			}
	
			if(items.length>0)
			{
				createCookie(items.join(";"), expiredate);
			}else{
				clearCart();
			}
		}
		updateCartCount();
	}
}
function updateCartItemAjax(iditem, idsize, idcolor, qty, abtext, dname){
	//alert('Ajax call');
	di = 'data[Item]';
	ajaxdata = di+'[item_id]='+iditem+"&";
	ajaxdata+= di+'[size_id]='+idsize+"&";
	ajaxdata+= di+'[color_id]='+idcolor+"&";
	ajaxdata+= di+'[quantity]='+qty+"&";
	ajaxdata+= di+'[abtext]='+abtext+"&";
	ajaxdata+= di+'[dname]='+dname;

	$.ajax({
		type: "POST",
		url: "/shopcart/add_item",
		data: ajaxdata,
		success: function(msg){
			if(msg.indexOf('OK')==0){
				parts = msg.split(':');
				updateCartCountAjax(parts[1]);
				location.reload();
			}else{
				alert('There was an error updating your cart.\nPlease try again.\nError: '+msg);
			}
		}
	});
}
function clearCart()
{
	createCookie("",new Date(1900,1,1,0,0,0,0));
	updateCartCount();
}
function cookieExists()
{
	if (document.cookie.length > 0) {
		i = document.cookie.indexOf(cookieName);
		if (i != -1) {
			return true;
		}
	}
	return false;
}
function getCookieItems()
{
	//cookieName = "AlvinsShopCart=";
	if (document.cookie.length > 0) {
		i = document.cookie.indexOf(cookieName);
		if (i != -1) {
			i += cookieName.length;
			j = document.cookie.indexOf(";", i);
			if (j == -1)
			j = document.cookie.length;
			return unescape(document.cookie.substring(i,j));
		}
	}
}
function createCookie(value, expiredate)
{
	document.cookie = cookieName + escape(value) + "; path=/" + ((expiredate == null) ? "" : ("; expires=" + expiredate.toGMTString()))
}
function getItemsArray()
{
	sItems = getCookieItems();
	ssItems = sItems.split(";");
	for(i=0; i<ssItems.length; i++)
		items[i] = ssItems[i].split(",");
	return items;
}
function updateCartCount()
{
	items = new Array();

	itemn = document.getElementById("cartitemcount");
	itemcount = 0;
	
	if(cookieExists())
	{
		items = getItemsArray();
		itemcount = items.length;
	}
	
	itemn.innerHTML = itemcount;
}
function findItem(iditem, idsize, idcolor, abtext, dname, itemarray)
{
	foundposition = -1;
	itemfound = false;
	items = itemarray;
	
	for(i=0; !itemfound && (i<items.length); i++)
	{
		oneitem = items[i];
		if(oneitem[0] == iditem && oneitem[1] == idsize && oneitem[2] == idcolor && oneitem[7] == abtext && oneitem[8] == dname)
		{
			foundposition = i;
			itemfound = true;
		}
	}
	
	return foundposition;
}
function addToCartAjax(iditem, idsize, idcolor, color, quantity, abtext, dname, sizename, extra_type){
	//alert('Ajax call');
	di = 'data[Item]';
	ajaxdata = di+'[item_id]='+iditem+"&";
	ajaxdata+= di+'[size_id]='+idsize+"&";
	ajaxdata+= di+'[color_id]='+idcolor+"&";
	ajaxdata+= di+'[color]='+color+"&";
	ajaxdata+= di+'[quantity]='+quantity+"&";
	ajaxdata+= di+'[abtext]='+abtext+"&";
	ajaxdata+= di+'[dname]='+dname+"&";
	ajaxdata+= di+'[size]='+sizename;
	if(extra_type!=null){
		ajaxdata+= "&"+di+'[extra]='+extra_type;
	}
	
	$.ajax({
		type: "POST",
		url: "/shopcart/add_item",
		data: ajaxdata,
		success: function(msg){
			if(msg.indexOf('OK')==0){
				parts = msg.split(':');
				updateCartCountAjax(parts[1]);
			}else{
				alert('There was an error updating your cart.\nPlease try again.\n'+msg);
			}
			//alert( "Data Saved: " + msg );
		}
	});
}
function updateCartCountAjax(count_returned){

	itemn = document.getElementById("cartitemcount");
	itemn.innerHTML = count_returned; //TODO: replace innerHTML with a jQuery equivalent
}
