function getLoader(){
	
	var loadingHTML = '<div class="Loading">Loading...</div>';
	return loadingHTML;

}

function getStates(){
	
	$('BillingStateSelector').update('<label><span class="Req">*</span>State/Province</label>' + getLoader());
	ajax("getStates", { countryid:$('BillingCountryId').value }, resultStates);
	
}

function resultStates(r){
	
	$('BillingStateSelector').update(r.html);
	
}

function getShippingStates(){
	
	$('DeliveryStateSelector').update('<label><span class="Req">*</span>State/Province</label>' + getLoader());
	ajax("getShippingStates", { countryid:$('DeliveryCountryId').value }, resultShippingStates);
	
}

function resultShippingStates(r){
	
	$('DeliveryStateSelector').update(r.html);
	
}

function getProductColour(productId,colourId){
	
	$('ProductImage' + productId).update('');
	$('ColourName' + productId).update('');
	ajax("getProductColour", { productId:productId, colourId:colourId }, resultProductColour);
	
}

function resultProductColour(r){

	var productId = r.productId;
	var productImageTemplate = new Template('<img src="#{productImage}" alt="#{productName}" />');
	$('ColourId' + productId).value = r.colourId;
	$('ProductImage' + productId).update(productImageTemplate.evaluate({ productName:r.colourName, productImage:r.colourImage }));
	$('Size' + productId).update(r.sizeOptions);
	$('StyleNumber' + productId).update(r.styleNumber);
	$('ColourName' + productId).update(r.colourName);
	
}

function addToCart(productId){
	
	var colourId = 0;
	var sizeId = 0;
	var success = 1;
	
	if($('ColourId' + productId)) colourId = $F('ColourId' + productId);
		
	if($('SizeId' + productId)){
		if($F('SizeId' + productId) == ''){
			success = 0;
			alert('You must select a size');
		}else{
			sizeId = $F('SizeId' + productId);
		}
	} 
	
	if(success){
		$('Loading' + productId).show();
		ajax("addToCart", { productid:productId, colourid:colourId, sizeId:sizeId }, resultAddtoCart);
	}
	
}

function resultAddtoCart(r){

	$('Loading' + r.productId).hide();
	if(r.isStock){
		isCheckout = confirm("Item added to cart. Do you want to checkout now?");
		if(!isCheckout) {
			$('ReturnURL').value = 'true';
		} else {
			$('frmProduct' + r.productId).submit();	// Only submit form if they click OK
		}
	}
	else {
		alert('Out of stock.');	
	}

}

function setIsDeliverySame(obj){
	
	if(obj.checked){
		$('DeliveryCountryId').value = $('BillingCountryId').value;
		$('DeliveryStateSelector').update('<label><span class="Req">*</span>State/Province</label>' + getLoader());
		ajax("getShippingStates", { countryid:$('DeliveryCountryId').value }, resultSetIsDeliverySame);
	}
	
}

function resultSetIsDeliverySame(r){
	
	$('DeliveryStateSelector').update(r.html);
	
	$('DeliveryFirstName').value = $('FirstName').value;
	$('DeliverySurname').value = $('Surname').value;
	$('DeliveryEmail').value = $('Email').value;
	
	objEls = new Array();
	objEls = ["State","StateId","Postcode","Suburb","Address1","Address2","Phone"];
	
	for(i=0; i<objEls.length; i++){
		if($('Delivery'+objEls[i]))
			$('Delivery'+objEls[i]).value = $('Billing'+objEls[i]).value;
	}
	
}