var loader = new Image();
loader.src = "images/loader.gif";

// Cart Functions
function CartLoading()
{
	var obj = document.getElementById('cart_loading');
	obj.innerHTML = "<img src='images/loader.gif'>"
}


function CartComplete(statusText, responseText, responseXML)
{

	var obj = document.getElementById('cart_loading');
	obj.innerHTML = "&nbsp;";
	
	var obj = document.getElementById('cart');
	obj.innerHTML = responseText;

}

function DeliveryLoading()
{
	var obj = document.getElementById('delivery_loading');
	obj.innerHTML = "<img src='images/loader.gif'>"
}

function DeliveryComplete(statusText, responseText, responseXML)
{
	var obj = document.getElementById('delivery_loading');
	obj.innerHTML = "&nbsp;";
	
	var data = responseXML;
	
	var service = "";
	
	var items = data.getElementsByTagName("Options");
	
	var zip = data.getElementsByTagName("ZipCode")[0].firstChild.nodeValue;
	var date = data.getElementsByTagName("DeliveryDate")[0].firstChild.nodeValue;
	
	var servicetype = "<select name='delivery_type' onchange='InsertDelivery(this.value," + zip + ")'><option value='0'>Select Delivery</option>";
	
	for (var i = 0 ; i < items.length ; i++) {
		
		// get one item after another
		var item = items[i];
		
		var service = item.getElementsByTagName("ServiceType")[0].firstChild.nodeValue;
		
		var service_name = service.replace("_"," ");
		service_name = service_name.replace("_"," ");
		
		var amount = item.getElementsByTagName("Amount")[0].firstChild.nodeValue;
		
		radiobox = "<option value='" + service + "'>" + service_name + " ($" + amount + ")</option><br/>";
	
		servicetype = servicetype + radiobox;
		
	}
	
	servicetype = servicetype + '</select>';
	
	var obj = document.getElementById('delivery_type');
	obj.innerHTML = servicetype;
	
	var block = document.getElementById('delivery_block');
	block.style.display = 'block';

}

var CartAsync = new Asynchronous();
CartAsync.Loading = CartLoading;
CartAsync.Complete = CartComplete;

var DeliveryAsync = new Asynchronous();
DeliveryAsync.Loading = DeliveryLoading;
DeliveryAsync.Complete = DeliveryComplete;

var CouponAsync = new Asynchronous();
CouponAsync.Loading = CartLoading;
CouponAsync.Complete = CouponComplete;


function CouponComplete(statusText, responseText)
{
	window.location.reload();
}

function GetFormValues(FormObject)
{
	var str = "";
	
	//Run through a list of all objects contained within the form.
	for(var i = 0; i < FormObject.elements.length; i++)
	{
		str += FormObject.elements[i].name + "=" + escape(FormObject.elements[i].value) + "&";
	}
	
	//Then return the string values.
	return str;
}

function DeleteItem(id)
{
	CartAsync.Call("async.php?action=cart&del="+id+"&time="+GetTimestamp());	
}

function Coupon(no)
{
	if(document.getElementById('coupons').value.replace(/^\s*|\s*$/g,'') == '') {
		alert('Please enter a coupon code.');
	} else if(document.getElementById('coupons').value.replace(/^\s*|\s*$/g,'') != '') {
		
		$.post('async.php?action=coupon_check', 
		{ 
		  time:GetTimestamp(), 
		  coupon_code:document.getElementById('coupons').value.replace(/^\s*|\s*$/g,''),
		  action: 'coupon_check' 
		},
		function(data) {
			if($.trim(data) == 'coupon_expired')
			{
				alert('Coupon code is expired.');
			} 
			else if($.trim(data) == 'not_found')
			{
				alert('Coupon code is invalid!');
			}
			else { 
				CouponAsync.Call("async.php?action=cart&coupon="+no+"&time="+GetTimestamp());
			}
		});
	}
}

function UpdateCart(Form)
{
	var str = GetFormValues(Form);

	CartAsync.PostCall("async.php?action=cart&time="+GetTimestamp(), str);
	
	return false;	
}

function RefreshCart()
{
	CartAsync.Call("async.php?action=cart&time="+GetTimestamp());	
}

// Fills the hidden value 
function PickupDate(dd,mm,yy)
{
	var obj = document.getElementById('pdate');
	obj.innerHTML = dd+" "+mm+" "+yy; 
	
	var i=1;
	
	document.Delivery.date.value = dd+","+mm+","+yy;
}

// Validate the pickup form
function ValidateDelivery(Form)
{
	var count = 0;
	
	var message = "ERROR ! <br />";
	
	if(Form.zip.value == "")
	{
		message = message + "Zip field is blank <br />";
		count++;
	}
	
	if(Form.date.value == 'null')
	{
		message = message + "Date is not selected <br />";
		count++;
	}
	
	if(count > 0)
	{
		var obj = document.getElementById("Errors");
		obj.innerHTML = message;
		return false;
	}
	else
	{
		var obj = document.getElementById("Errors");
		obj.innerHTML = " ";
		
		var str = GetFormValues(Form);
		DeliveryAsync.PostCall("asyncXML.php?action=delivery&time="+GetTimestamp(), str);
	
		return false;
	}
}

function ValidateDeliveryType(Form)
{	
	if(Form.delivery_type.value == "0")
	{
		alert("Please select the service");	
		return false;
	}
	
	else if(Form.agree.checked != true) {
		alert('Please read the notice and check the box if you agree with the conditions.');
		return false;
	}
	
	else
	{
		return true;
	}
}

function InsertDelivery(type,zip)
{
	CartAsync.Call("async.php?action=cart&dtype="+type+"&zip="+zip+"&time="+GetTimestamp());
}

function GetTimestamp()
{
	var date = new Date();
	var timestamp = date.getTime();
	return timestamp;
}
