var gt_caddy = new Array();

if ( window.location.protocol != "file:" ){
	gb_local = false;
} else {
	gb_local = true;
}

function get_caddyKey() {
		var ls_key = "CP";
		if ( gb_local )
			ls_key = DOMAIN + "-" + ls_key
		return ls_key;
}

function addCookie(a_name, a_value) {
	var lo_expires = new Date();
	lo_expires.setDate(lo_expires.getDate() + 10);
	document.cookie = a_name + "=" + a_value + ";expires=" + lo_expires.toGMTString();
}

function deleteCookie(a_name) {
	var lo_expires = new Date();
	lo_expires.setMonth(lo_expires.getMonth() - 1);
	document.cookie = a_name + "=" + ";expires=" + lo_expires.toGMTString();
}

function caddyExists( a_id ) {
	if (! a_id)
		return false;
	var ls_reg = "(," + a_id + ":)";
	var lo_reg = new RegExp(ls_reg)
	return lo_reg.test("," + get_caddyValue());
}

function get_caddyValue() {
	var ls_reg = get_caddyKey() + "=([^=;]*);?"
	var lo_reg = new RegExp(ls_reg);
	var lo_match = lo_reg.exec(document.cookie)
	if (! lo_match)
		return "";
	return lo_match[1];
}

function do_deleteCaddy(a_id) {
	ls_buffer = get_caddyValue()
	if (ls_buffer != "" && caddyExists(a_id)) {
		ls_buffer = "," + ls_buffer + ",";
		li_start = ls_buffer.indexOf(a_id);
		li_end = ls_buffer.indexOf(",", li_start);
		
		ls_before = ls_buffer.substr(0,li_start); 
		ls_after = ls_buffer.substr(li_end+1); 
		
		ls_buffer = ls_before + ls_after;
		
		if (ls_buffer.substr( 0,1 ) == ",")
			ls_buffer = ls_buffer.substr(1, ls_buffer.length);
		if ( ls_buffer.substr(ls_buffer.length-1, 1) == ",")
			ls_buffer = ls_buffer.substr(0, ls_buffer.length - 1);
					
		if ( ls_buffer != '' )
			addCookie(get_caddyKey(), ls_buffer);
		else
			deleteCookie(get_caddyKey());
	}
	return false;
}

function do_addCaddy(a_event) {
	gb_actionDone = true;
	var lo_theTarget = a_event.target ? a_event.target.parentNode : a_event.srcElement.parentNode;
  		if (lo_theTarget.getAttribute("product") != "" && lo_theTarget.getAttribute("product") != "-1" && lo_theTarget.getAttribute("product") != "null"){
  			addCaddy(lo_theTarget.getAttribute("product"));
  		}
  	return false;
}

function do_viewProductInfo(a_event) {
	gb_actionDone = true;
	var lo_theTarget = a_event.target ? a_event.target.parentNode : a_event.srcElement.parentNode;
  		if (lo_theTarget.getAttribute("product") != "" && lo_theTarget.getAttribute("product") != "-1" && lo_theTarget.getAttribute("product") != "null"){
  			viewProductInfo(lo_theTarget.getAttribute("product"));
  		}
  	return false;
}

function findPosition(a_ref) {
	for (var i = 0; i < gt_caddy.length; i++) {
		if (gt_caddy[i].product.ref == a_ref){
			return i;
		}
	}
	return -1;
}

function findProduct(a_ref) {
	for (var i = 0; i < gt_products.length; i++) {
		if (gt_products[i].ref == a_ref){
			return i;			
		}
	}
	return -1;
}

function loadCaddy() {
	gt_caddy = new Array();
	var ls_caddy = get_caddyValue();
	if (ls_caddy != ""){
		var lt_caddy = ls_caddy.split(",");
		gt_caddy.length = lt_caddy.length;
		for(var i = 0; i < lt_caddy.length; i++) {
			lt_element = lt_caddy[i].split(":")
			li_position = findProduct(lt_element[0])
			gt_caddy[i] = new basketItem()
			gt_caddy[i].quantity = parseInt(lt_element[1]);
			gt_caddy[i].product = gt_products[li_position];
			gt_caddy[i].page = parseInt(lt_element[2]);
		}
	}
	return gt_caddy;
}

function saveCaddy() {
	var ls_caddy = "";
	if (gt_caddy.length > 0){
		for(var i=0; i<gt_caddy.length; i++) {
			ls_caddy += gt_caddy[i].toText() + ",";
		}
		ls_caddy = ls_caddy.substr(0, ls_caddy.length-1); 
	}
	addCookie(get_caddyKey(), ls_caddy);
}

function do_calc(a_id, a_value , a_precision) {
	document.getElementById('totalPrice'+a_id).removeChild(document.getElementById('totalPrice'+a_id).firstChild);
	gt_caddy[a_id].quantity = parseInt(a_value);
	ls_totalPrice = gt_caddy[a_id].total(a_precision);
	lo_text = document.createTextNode(ls_totalPrice)
	document.getElementById('totalPrice'+a_id).appendChild(lo_text);
	saveCaddy();
	calc_total(a_precision);
}

function calc_total(a_precision){
	document.getElementById('total-price').removeChild(document.getElementById('total-price').firstChild);
	var li_totalQuantity = 0;
	var lf_totalPrice = 0;
	for (var i = 0 ; i < gt_caddy.length ; i++) {
		//li_totalQuantity += gt_caddy[i].quantity;
		lf_totalPrice += parseFloat(gt_caddy[i].total(a_precision));
	}
	lo_text = document.createTextNode(lf_totalPrice.toFixed(a_precision));
	document.getElementById('total-price').appendChild(lo_text);
}

function do_showCaddy() {
	loadCaddy();
	var ls_toPrint = tableToHTML(gt_caddy);
	return ls_toPrint;
}

function do_updateProduct(a_ref, a_quantity ,a_page) {
	li_position = findPosition(a_ref)
	if ( li_position < 0 ) {
		li_position = findProduct(a_ref);
		lo_caddy = new basketItem();
		lo_caddy.product =  gt_products[li_position];
		lo_caddy.quantity = a_quantity;
		lo_caddy.page = a_page;
		gt_caddy.push(lo_caddy);
	} else {
		gt_caddy[li_position].quantity =  a_quantity;
		lo_caddy = gt_caddy[li_position];
	}
	saveCaddy();
}