function toggleForm(isEnabled){
	
	els = $$('form');
	els.each(function(el){
		if(el.id){
			form = $(el.id);
			if(isEnabled == true){
				form.enable();
			}
			else {
				form.disable();
			}
		}
	});

}

function getLoader(){
	
	var loadingHTML = '<div class="Loading">Loading...</div>';
	return loadingHTML;

}

function getStates(){
	
	toggleForm(false);
	$('BillingStateSelector').update('<label><span class="Req">*</span>State/Province</label>' + getLoader());
	ajax("getStates", { countryid:$('BillingCountryId').value }, resultStates);
	
}

function resultStates(r){
	
	toggleForm(true);
	$('BillingStateSelector').update(r.html);
	
}

function getShippingStates(){
	
	toggleForm(false);
	$('DeliveryStateSelector').update('<label><span class="Req">*</span>State/Province</label>' + getLoader());
	ajax("getShippingStates", { countryid:$('DeliveryCountryId').value }, resultShippingStates);
	
}

function resultShippingStates(r){
	
	toggleForm(true);
	$('DeliveryStateSelector').update(r.html);
	
}

function getProductColour(productId,colourId){
	
	$('ProductImageContainer' + productId).update('');
	$('ColourName' + productId).update('');
	ajax("getProductColour", { productId:productId, colourId:colourId }, resultProductColour);
	
}

function resultProductColour(r){

	var productId = r.productId;
	var productImageTemplate = new Template('<img id="ProductImage#{productId}" src="#{productImage}" alt="#{productName}" class="Image" />');
	var productImageControles = new Template('<a href="javascript:swapImage(\'ProductImage#{productId}\',\'#{productImage}\')">Front</a> | <a href="javascript:swapImage(\'ProductImage#{productId}\',\'#{productBackImage}\')">Back</a>');
	
	$('ZoomMessage').update('');
	$('ZoomMessage').hide();
	
	$('ColourId' + productId).value = r.colourId;
	$('ProductImageContainer' + productId).update(productImageTemplate.evaluate({ productId:productId, productName:r.colourName, productImage:r.colourImage }));	
	
	if(r.colourBackImage.length)
		$('ProductImageControls' + productId).update(productImageControles.evaluate({ productId:productId, productImage:r.colourImage, productBackImage:r.colourBackImage }));
	else
		$('ProductImageControls' + productId).update('');
		
	if(r.colourImage.length){
		$('ZoomMessage').show();
		new Zoomer('ProductImageContainer' + productId,r.colourImage);
		$('ZoomMessage').update('Rollover to zoom image.');
	}
	
	$('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){
		
		strBasketTotalQty = r.basketTotalQty + " ITEM";
			
		if(r.basketTotalQty > 1){
			strBasketTotalQty = strBasketTotalQty + "S";
		}
			
		$('BasketTotalQty').update(strBasketTotalQty);
		Cufon.replace('.Cart a',{ hover: true });
		
		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){
		toggleForm(false)
		$('DeliveryCountryId').value = $('BillingCountryId').value;
		$('DeliveryStateSelector').update('<label><span class="Req">*</span>State/Province</label>' + getLoader());
		ajax("getShippingStates", { countryid:$('DeliveryCountryId').value }, resultSetIsDeliverySame);
	}
	
}

function resultSetIsDeliverySame(r){
	
	toggleForm(true);
	
	$('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;
	}
	
	
	
}