// xCMS Store Scripting
var ajax_work = false;
function basket_clear(url)
{
	if(ajax_work) return;
	ajax_work = true;
	if(!confirm('Are you sure you want to clear all items in the basket?')) return;	
	$.post(create_url("store/basketclear"),{c:1},function(xml){
		ajax_work = false;
		alert("Your basket has been cleared.");
		window.location = url;
	});
	
}
function basket_add()
{
	var id = basket_add.arguments[0];
	var link = basket_add.arguments[1];
	var b = basket_add.arguments[2];
	if(ajax_work) return;
	ajax_work = true;
	var imghide = false;
	
	
	if(link)
	{
		imghide = true;
		$(link).children("img").hide();
		$(link).append("<img src='img/v2/store/working.gif' class='w'>");
	}	
	$.post(create_url("store/basketadd"),{iid: id}, function(xml){
		ajax_work = false;
		if( $("e",xml).text() != 0 ) return;		
		var c = $("c",xml).text();
		var t = $("t",xml).text();
		t = format_number(t);		
		$("#basketcount").html(c);
		$("#baskettotal").html(t);
				
		if(b)
		{
			var bid = $("i",xml).text();
			var qty = eval($("#i_"+bid+" td.qty").text())+1;
			$("#i_"+bid+" td.qty").html(qty);			
			$("#subtotal td.qty").html(c);
			$("#subtotal td.price span").html(t);
			update_grand(t);
		}
		else { popup_create("Item added to your basket."); }
		
		if(link)
		{	
			$(link).children("img").show();
			$(link).children("img.w").hide();
		}
		
		$("#Bnoitems").hide();
		$("#Bitems").show();
	});
}

function basket_delete()
{
	var id = basket_delete.arguments[0];
	var link = basket_delete.arguments[1];
	
	if(ajax_work) return;
	ajax_work = true;
	$.post(create_url("store/basketdelete"),{bid: id}, function(xml){
		if( $("e",xml).text() != 0) return;
		var qty = $("q",xml).text();		
		if( qty > 0 ) { $("#i_"+id+" td.qty").html(qty); }
		else { $("#i_"+id).remove(); }		
		var c = $("c",xml).text(); var t = $("t",xml).text();		
		t = format_number(t);		
		$("#subtotal td.qty").html(c);
		$("#basketcount").html(c);
		$("#subtotal td.price span").html(t);
		$("#baskettotal").html(t);
		update_grand(t);
		ajax_work = false;
	});
}
function format_number(n)
{
	n = parseFloat(n);
	if(n.toFixed) return n.toFixed(2);
	else return n;
}
function update_grand()
{
	var sub = parseFloat(update_grand.arguments[0]);
	if(!sub) return;
	var delivery = parseFloat($("#delivery td.price span").text());
	var grand = sub+delivery;
	grand = format_number(grand);
	$("#grand td.price span").html(grand);	
}

var popup = false;
var popupw = null;
var popuph = null;

function popup_create(txt)
{
	
	if(popup) return;
	popup = true
	$("body").append("<div id='popup'></div>");
	

	popupw = $("#popup").width();	
	popuph = $("#popup").height();
	
	pos();

	$("#popup").show();
	
	$("#popup").html(txt);
	var t=setTimeout("remove_popup()",1700);
}

function remove_popup()
{	
	$("#popup").fadeOut('normal');
	popup=false;
}


function pos() {
	var pagesize = getPageSize();
	
	
  
  	if (window.innerHeight && window.scrollMaxY) {	
		yScroll = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		yScroll = document.body.scrollHeight;
	} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		yScroll = document.body.offsetHeight;
  	}
	
	var arrayPageScroll = getPageScrollTop();
	
	//alert("Page Width is "+pagesize[0]+" and Page Height is "+pagesize[1]);
	
	// position = ((pagesize-margin)-(popupsize))/2
	var l = Math.round(((pagesize[0]-250)-popupw)/2)+"px";
	var t = Math.round(arrayPageScroll[1]+((pagesize[1]-popuph)/2))+"px";
		
	$("#popup").css("left",l);
	$("#popup").css("top",t);
	
}

function getPageScrollTop(){
	var yScrolltop;
	if (self.pageYOffset) {
		yScrolltop = self.pageYOffset;
	} else if (document.documentElement && document.documentElement.scrollTop){	 // Explorer 6 Strict
		yScrolltop = document.documentElement.scrollTop;
	} else if (document.body) {// all other Explorers
		yScrolltop = document.body.scrollTop;
	}
	arrayPageScroll = new Array('',yScrolltop) 
	return arrayPageScroll;
}

function getPageSize(){
	var de = document.documentElement;
	var w = self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth;
	var h = self.innerHeight || (de&&de.clientHeight) || document.body.clientHeight;
	
	arrayPageSize = new Array(w,h) 
	return arrayPageSize;
}

