var item_list = new Array();

cookie_to_item_list_array();

function cookie_to_string()
{
	var basket_string = "";
	var cookie_string = document.cookie;
 	var cookies = new Array();
	cookies = cookie_string.split(';');

	for(var i in cookies)
	if(cookies[i].indexOf('basket=') != -1)
	{
		basket_string = (cookies[i].split('='))[1];
	}

	return basket_string;
}

function cookie_to_item_list_array()
{
	var basket = "";
	var cookie_string = document.cookie;
 	var cookies = new Array();
	cookies = cookie_string.split(';');

	//item_list = null;

	for(var i in cookies)
	if(cookies[i].indexOf('basket=') != -1)
	{
		basket = (cookies[i].split('='))[1];

		var items = basket.split(',');
		for(var i in items)
		{
			var item = items[i].split(':');
			item_list[item[0]] = item[1];
		}
	}
}

function item_list_array_to_string()
{
	var item_list_string = "";

	var first_item_flag = 0;
	for(var i in item_list)
	{
		if(first_item_flag == 1)
			item_list_string += ",";
		item_list_string += i + ":" + item_list[i]
		first_item_flag = 1;
	}

	return item_list_string;
}

function item_list_array_to_cookie()
{
	var item_list_string = "";

	var first_item_flag = 0;
	for(var i in item_list)
	{
		if(first_item_flag == 1)
			item_list_string += ",";
		item_list_string += i + ":" + item_list[i];
		first_item_flag = 1;
	}

	var date = new Date();
	if(first_item_flag == 1)  // if there are no items we need to delete cookie (rather than set it empty)
		date.setTime(date.getTime()+(365*24*60*60*1000));
	else
		date.setTime(date.getTime()-(60));
	document.cookie = "basket="+item_list_string+";expires="+date.toGMTString()+";path=/";
}

function update_basket()
{
	var http_request_basket;

	if (window.XMLHttpRequest)
	{
		http_request_basket = new XMLHttpRequest();
	}
	else if (window.ActiveXObject)
	{
		http_request_basket = new ActiveXObject("Microsoft.XMLHTTP");
	}

	http_request_basket.onreadystatechange = function()
	{
		if (http_request_basket.readyState == 4)
		{
			if (http_request_basket.status == 200)
			{
				document.getElementById('basketview').innerHTML = http_request_basket.responseText;
			}
			else
			{

			}
		}
		else
		{
		}
	};

	http_request_basket.open('POST', '/basket.php', true);
	http_request_basket.send('');
}

function add_item(item_type_id)
{
	cookie_to_item_list_array();

	var item_id = document.getElementById('item_'+item_type_id+'_style_size_option').value;
	var quantity = parseInt(document.getElementById('item_'+item_type_id+'_quantity_textbox').value, 10);
	if(isNaN(quantity) || quantity < 1)
		quantity = 1;

	document.getElementById('item_'+item_type_id+'_quantity_textbox').value = 1; //reset qty box to one to avoid confusion later if someone forgets they changed the value.

	if(item_list[item_id])
		item_list[item_id] = parseInt(item_list[item_id], 10) + quantity;
	else
		item_list[item_id] = quantity;

	item_list_array_to_cookie();
	update_basket();
}

function change_quantity(item_id)
{
	cookie_to_item_list_array();

	var quantity = parseInt(document.getElementById('item_'+item_id+'_basket_quantity_textbox').value, 10);
	if(!isNaN(quantity) && quantity >= 0)  //only change it if number is valid, otherwise, leave as it was.
	{
		if(quantity == 0)
			delete item_list[item_id];
		else
			item_list[item_id] = quantity;

		item_list_array_to_cookie();
	}
	update_basket();
}

function delete_item(item_id)
{
	delete item_list[item_id];
	item_list_array_to_cookie();	
	update_basket();
}

function update_coupon(e)
{
//	if(!e) var e = window.event;
//	if (e.keyCode)
//		code = e.keyCode;
//	else if (e.which)
//		code = e.which;
//	var char = String.fromCharCode(code);
				
	var coupon_box = document.getElementById('coupon_code');
//
//	if(char.match(/[a-zA-Z0-9]/))
//	
//
//	if(coupon_box.value.length > 5 &&)
//		return false;
//
//	if(coupon_box.value.length == 6)
//	{
//		coupon_box.style.backgroundColor = '#dfd';
		document.cookie = "coupon="+document.getElementById('coupon_code').value+";path=/";
		update_basket();
		return true;
//	}
	return true;
}

function check_basket_is_up_to_date()
{
	if(item_list_array_to_string() != cookie_to_string())
	{
		alert(item_list_array_to_string() +' '+ cookie_to_string());
		update_basket();
		cookie_to_item_list_array();
	}
}

//setInterval('check_basket_is_up_to_date();', 3000);
