function shipSameSwitch(checkbox)
{
	var sa=$('shipping_address');
	if(sa && sa.visible)
	{
		var saVisible=sa.visible();
		if(saVisible&&checkbox.checked||!saVisible&&!checkbox.checked)
			sa.toggle();
	};
};

window.onload=function()
{
	var ship_same=$('ship_same');
	if(ship_same)
		shipSameSwitch(ship_same);

	var nodeForm=$('checkout_confirmation_form');
	if(nodeForm)
		nodeForm.submit();
};

function validateCheckoutForm(nodeForm)
{
	var msgArr=[];
	if(!/\S+/.test(nodeForm['billing_first_name'].value))
		msgArr.push('Please enter billing first name.');
	if(!/\S+/.test(nodeForm['billing_last_name'].value))
		msgArr.push('Please enter billing last name.');
	if(!/^[a-zA-Z\d\._-]+\@[a-zA-Z\d\._-]+$/.test(nodeForm['billing_email'].value))
		msgArr.push('Please enter valid billing e-mail.');
	if(!/\S+/.test(nodeForm['billing_phone'].value))
		msgArr.push('Please enter billing phone number.');
	if(!/\S+/.test(nodeForm['billing_address1'].value))
		msgArr.push('Please enter billing address.');
	if(!/\S+/.test(nodeForm['billing_suburb_town'].value))
		msgArr.push('Please enter billing suburb or town.');
	if(!/\S+/.test(nodeForm['billing_country'].value))
		msgArr.push('Please enter billing country.');
	if(!/\S+/.test(nodeForm['billing_postcode'].value))
		msgArr.push('Please enter billing postcode.');

	if(!nodeForm['ship_same'].checked)
	{
		if(!/\S+/.test(nodeForm['shipping_first_name'].value))
			msgArr.push('Please enter shipping first name.');
		if(!/\S+/.test(nodeForm['shipping_last_name'].value))
			msgArr.push('Please enter shipping last name.');
		if(!/^[a-zA-Z\d\._-]+\@[a-zA-Z\d\._-]+$/.test(nodeForm['shipping_email'].value))
			msgArr.push('Please enter valid shipping e-mail.');
		if(!/\S+/.test(nodeForm['shipping_phone'].value))
			msgArr.push('Please enter shipping last name.');
		if(!/\S+/.test(nodeForm['shipping_address1'].value))
			msgArr.push('Please enter shipping address.');
		if(!/\S+/.test(nodeForm['shipping_suburb_town'].value))
			msgArr.push('Please enter shipping suburb or town.');
		if(!/\S+/.test(nodeForm['shipping_country'].value))
			msgArr.push('Please enter shipping country.');
		if(!/\S+/.test(nodeForm['shipping_postcode'].value))
			msgArr.push('Please enter shipping postcode.');
	};

	var valid=true;

	if(msgArr.length>0)
	{
		valid=false;
		alert(msgArr.join("\n"));
	};
	return valid;
};

function displayshirt(shirtid)
{

	document.getElementById('front').className = 'img';
	document.getElementById('back').className = 'img';
	document.getElementById(shirtid).className = 'img selected';
	document.getElementById('btn_front').className = '';
	document.getElementById('btn_back').className = '';
	document.getElementById('btn_'+shirtid).className = 'selected';
	return false;
};

function showHideOrderDetails(orderId)
{
	var node=$('order_list_item_details_'+orderId);
	if(node)
		node.toggleClassName('hidden');
};


var addressFormFiels=[
	['name','shipping_name'],
	['surname','shipping_surname'],
	['email','shipping_email'],
	['phones','shipping_phones'],
	['address1','shipping_address1'],
	['city_suburb','shipping_city_suburb'],
	['state','shipping_state'],
	['country','shipping_country'],
	['postcode','shipping_postcode']
];

function onShipToMyBillingAddress(node)
{
	var nodeForm=node.form;
	if(node.checked)
		disableBillingAddressForm(nodeForm);
	else
		enableBillingAddressForm(nodeForm);
};
function enableBillingAddressForm(nodeForm)
{
	for(var i=0,n=addressFormFiels.length;i<n;i++)
	{
		var shippingField=nodeForm.elements.namedItem(addressFormFiels[i][1]);
		if(shippingField.nodeName.toLowerCase()=="select")
			shippingField.removeAttribute("disabled");
		else
			shippingField.removeAttribute("readonly");
	};
};
function disableBillingAddressForm(nodeForm)
{
	for(var i=0,n=addressFormFiels.length;i<n;i++)
	{
		var billingField=nodeForm.elements.namedItem(addressFormFiels[i][0]);
		var shippingField=nodeForm.elements.namedItem(addressFormFiels[i][1]);
		if(shippingField.nodeName.toLowerCase()=="select")
			shippingField.setAttribute("disabled","disabled");
		else
			shippingField.setAttribute("readonly","readonly");
		shippingField.value=billingField.value;
	};
	filterPaymentMethodList(nodeForm);
};
function setShippingField(nodeBillingField,shippingFieldName)
{
	var nodeForm=nodeBillingField.form;
	var nodeCheck=nodeForm.elements.namedItem('shipping_to_billing_address');
	if(nodeCheck && nodeCheck.checked)
	{
		var nodeShippingField=nodeForm.elements.namedItem(shippingFieldName);
		if(nodeShippingField)
		{
			nodeShippingField.value=nodeBillingField.value;
			if(shippingFieldName=='shipping_country')
				filterPaymentMethodList(nodeForm);
		};
	};
};
function submitCheckoutFormPaymentTab()
{
	var nodeTemp0=null;
	var nodeTemp0Arr=$('#checkout_form_temp0');
	if(nodeTemp0Arr.length==1)
		nodeTemp0=nodeTemp0Arr[0];
	
	var nodeConfirmationNumberTemp=null;
	var nodeConfirmationNumberTempArr=$('#checkout_form_confirmation_number_temp');
	if(nodeConfirmationNumberTempArr.length==1)
		nodeConfirmationNumberTemp=nodeConfirmationNumberTempArr[0];
	
	var nodeForm=null;
	var nodeFormArr=$('#checkout_form');
	if(nodeFormArr.length==1)
		nodeForm=nodeFormArr[0];
	
	if(nodeForm && nodeTemp0)
	{
		nodeTemp0.setAttribute('name','payment_submit');
		var nodeConfirmationNumber=nodeForm.elements.namedItem('confirmation_number');
		if(nodeConfirmationNumber && nodeConfirmationNumberTemp)
			nodeConfirmationNumber.value=nodeConfirmationNumberTemp.value;
		nodeForm.submit();
	};
};
function filterPaymentMethodList(nodeForm)
{
	var countryCode=null;
	var nodeShippingCountry=nodeForm.elements.namedItem('shipping_country');
	if(nodeShippingCountry)
		countryCode=nodeShippingCountry.value;
	
	if(countryCode)
	{
		var international=$('#shippingmethod_international');
		var domestic=$('#shippingmethod_domestic');
		if(countryCode==36)//36 is code of Australia
		{
			international.hide();
			domestic.show();
		}
		else
		{
			international.show();
			domestic.hide();
		};
	};
};
function showTab(hideTabInd,showTabInd)
{
	sendCart
	(
			'/json/checkout/save/?tab='+hideTabInd,
			function(data)
			{
				updateUserData(data);
				updateShippingPrices(data);
				buildCartTable(data);
				updateTotal(data);
				showDiv('cart'+hideTabInd+'info','cart'+showTabInd+'info');
			}
	);
};
function sendPromoCode()
{
	sendCart
	(
			'/json/checkout/save/?tab=4',
			function(data)
			{
				updateUserData(data);
				updateShippingPrices(data);
				buildCartTable(data);
				updateTotal(data);
			}
	);
};
function buildCartTable(data)
{
	var nodeTBody=$("#checkout_payment_tab_tbody");
	nodeTBody.empty();
	
	for(var i in data.shopping_cart_list)
	{
		var shoppingCartItem=data.shopping_cart_list[i];
		
		for(var j=0,k=data.sizes.length;j<k;j++)
		{
			var size=data.sizes[j];
			if
			(
					data.shopping_cart_quantity &&
					data.shopping_cart_quantity[shoppingCartItem.id] &&
					data.shopping_cart_quantity[shoppingCartItem.id][size]
			)
			{
				buildCartRow(nodeTBody,data,shoppingCartItem,size);
			};
		};
	};
};
function buildCartRow(nodeTBody,data,shoppingCartItem,size)
{
	var format=getFormat(data,true);
	if(shoppingCartItem.product_id && shoppingCartItem.shirt_type_color_id)
	{
		var shoppingCartProduct=null;
		if
		(
			data.shopping_cart_products &&
			data.shopping_cart_products[shoppingCartItem.product_id]
		)
			shoppingCartProduct=data.shopping_cart_products[shoppingCartItem.product_id];
		
		var shoppingCartColor=null;
		if
		(
			data.shopping_cart_colors &&
			data.shopping_cart_colors[shoppingCartItem.shirt_type_color_id]
		)
			shoppingCartColor=data.shopping_cart_colors[shoppingCartItem.shirt_type_color_id];
		
		var shoppingCartType=null;
		if
		(
			data.shopping_cart_types &&
			shoppingCartColor &&
			data.shopping_cart_types[shoppingCartColor.shirttype_id]
		)
			shoppingCartType=data.shopping_cart_types[shoppingCartColor.shirttype_id];

		if
		(
			data.shopping_cart_quantity &&
			data.shopping_cart_quantity[shoppingCartItem.id] &&
			data.shopping_cart_quantity[shoppingCartItem.id][size]
		)
		{
			var nodeTr=$("<tr/>");

			var nodeTd1=$("<td/>");
			if(shoppingCartProduct && shoppingCartProduct.name)
				nodeTd1.text(shoppingCartProduct.name);
			nodeTr.append(nodeTd1);

			var nodeTd2=$("<td/>");
			if(shoppingCartType && shoppingCartType.name)
				nodeTd2.text(shoppingCartProduct.name);
			nodeTr.append(nodeTd2);
				
			nodeTr.append($("<td/>").text(size));
				
			var nodeTd4=$("<td/>");
			
			var price=0;
			if
			(
				data &&
				data.shopping_cart_prices &&
				shoppingCartItem &&
				data.shopping_cart_prices[shoppingCartItem.id] &&
				data.shopping_cart_prices[shoppingCartItem.id][size] &&
				data.shopping_cart_quantity[shoppingCartItem.id][size]>0
			)
				price=data.shopping_cart_prices[shoppingCartItem.id][size] / (data.shopping_cart_quantity[shoppingCartItem.id][size]);
			
			nodeTd4.text(price).format({format:format,locale:"en"});
			nodeTr.append(nodeTd4);
				
			nodeTr.append($("<td/>").text(data.shopping_cart_quantity[shoppingCartItem.id][size]));
				
			nodeTBody.append(nodeTr);
		};
	}
	else if(shoppingCartItem.design_id)
	{
		var design=null;
		if
		(
			data.shopping_cart_designs &&
			data.shopping_cart_designs[shoppingCartItem.design_id]
		)
			design=data.shopping_cart_designs[shoppingCartItem.design_id];

		var designData=null;
		if
		(
			data.shopping_cart_design_data &&
			data.shopping_cart_design_data[shoppingCartItem.design_id]
		)
			designData=data.shopping_cart_design_data[shoppingCartItem.design_id];

		if
		(
			data.shopping_cart_quantity &&
			data.shopping_cart_quantity[shoppingCartItem.id] &&
			data.shopping_cart_quantity[shoppingCartItem.id][size]
		)
		{
			var nodeTr=$("<tr/>");
				
			var nodeTd1=$("<td/>");
			if(design && design.title)
				nodeTd1.text(design.title);
			nodeTr.append(nodeTd1);
				
			var nodeTd2=$("<td/>");
			if(designData && designData.productName)
				nodeTd2.text(designData.productName);
			nodeTr.append(nodeTd2);

			nodeTr.append($("<td/>").text(size));

			var nodeTd4=$("<td/>");

			var price=0;
			if
			(
				data &&
				data.shopping_cart_prices &&
				shoppingCartItem &&
				data.shopping_cart_prices[shoppingCartItem.id] &&
				data.shopping_cart_prices[shoppingCartItem.id][size] &&
				data.shopping_cart_quantity[shoppingCartItem.id][size]>0
			)
				price=data.shopping_cart_prices[shoppingCartItem.id][size] / (data.shopping_cart_quantity[shoppingCartItem.id][size]);
			
			nodeTd4.text(price).format({format:format,locale:"en"});
			nodeTr.append(nodeTd4);

			nodeTr.append($("<td/>").text(data.shopping_cart_quantity[shoppingCartItem.id][size]));
		
			nodeTBody.append(nodeTr);
		};
	};
};
function updateTotal(data)
{
	var subtotal=0;
	
	var format=getFormat(data);
	
	if(data && data.shopping_cart_subtotal)
		subtotal=data.shopping_cart_subtotal;
	$("#shopping_cart_subtotal").text(subtotal).format({format:format,locale:"en"});
	$("#shopping_cart_billing_subtotal").text(subtotal).format({format:format,locale:"en"});
	$("#shopping_cart_header_subtotal").text(subtotal).format({format:format,locale:"en"});
	
	var typeName="";
	if(data && data.selected_shipping_type && data.selected_shipping_type.name)
		typeName=data.selected_shipping_type.name;
	$("#selected_shipping_type_name").text(typeName);
	
	var shippingCost=0;
	if(data && data.shipping_cost)
		shippingCost=data.shipping_cost;
	$("#shipping_cost").text(shippingCost).format({format:format,locale:"en"});
	
	var shoppingCartDiscount=0;
	if(data && data.discount)
		shoppingCartDiscount=data.discount;
	$("#shopping_cart_discount").text(shoppingCartDiscount).format({format:format,locale:"en"});
	
	var shoppingCartGiftVoucher=0;
	if(data && data.giftvoucher_amount)
		shoppingCartGiftVoucher=data.giftvoucher_amount;
	$("#shopping_cart_giftvoucher").text(shoppingCartGiftVoucher).format({format:format,locale:"en"});
	
	var shoppingCartTotal=0;
	if(data && data.total)
		shoppingCartTotal=data.total;
	$("#shopping_cart_total").text(shoppingCartTotal).format({format:format,locale:"en"});
	
	if(data && data.order)
	{
		$("#promosms")[0].checked=data.order.promotions_via_sms=="1";
		$("#promoemail")[0].checked=data.order.promotions_via_email=="1";
		$("#promosnail")[0].checked=data.order.promotions_via_snail_mail=="1";
	};
	
	var nodeForm=null;
	var nodeFormTemp=$("#checkout_form");
	if(nodeFormTemp.length==1)
		nodeForm=nodeFormTemp[0];
	var nodeNopayment=null;
	if(nodeForm)
		nodeNopayment=nodeForm.elements.namedItem('nopayment');
	
	if(shoppingCartTotal>0)
	{
		$("#nopayment").hide();
		if(nodeNopayment)
			nodeNopayment.setAttribute("value","");
		$("#paymenttype").show();
	}
	else
	{
		$("#paymenttype").hide();
		if(nodeNopayment)
			nodeNopayment.setAttribute("value","1");
		$("#nopayment").show();
	};
	
	var totalInDefaultCurrency=0;
	if(data && data.total_in_default_currency)
		totalInDefaultCurrency=data.total_in_default_currency;

	var defaultCurrency=null;
	if(data && data.default_currency)
		defaultCurrency=data.default_currency;
	
	if(defaultCurrency)
	{
		var defaultCurrencyFormat=getFormatFromCurrency(defaultCurrency);
		$("#direct_deposit_total").text(totalInDefaultCurrency).format({format:defaultCurrencyFormat,locale:"en"});
		$("#cheque_total").text(totalInDefaultCurrency).format({format:defaultCurrencyFormat,locale:"en"});
	};
};
function getFormat(data,stripCode)
{
	var format="";

	if(data && data.currency)
		format=getFormatFromCurrency(data.currency,stripCode);

	return format;
};

function getFormatFromCurrency(currency,stripCode)
{
	var format="";

	if(currency && currency.symbol)
		format+=currency.symbol;
	format+="#,###.00";
	if(!stripCode && currency && currency.code)
		format+=" "+currency.code;

	return format;
}

function sendCart(url,func)
{
	var data=$("#checkout_form").serialize();
	$.ajax
	(
		{
		   type:"POST",
		   url:url,
		   data:data,
		   dataType:"json",
		   success:function(data,textStatus)
		   {
				if(data && data.status && data.status=='success')
				{
					func(data);
				}
				else if(data && data.errors)
				{
					var str=data.errors.join("\n");
					alert(str);
				}
				else
				{
					
				};
		   },
		   error:function(XMLHttpRequest, textStatus, errorThrown)
		   {
			   alert('Error!');
			   alert(textStatus);
			   alert(errorThrown);
		   }
		}
	);
};
function updateShippingPrices(data)
{
	var options=$('#shippingmethod_domestic option,#shippingmethod_international option');
	for(var i=0,n=options.length;i<n;i++)
		updateShippingPriceOption(options[i],data);
};
function updateShippingPriceOption(option,data)
{
	var str="";
	
	if
	(
		data &&
		
		data.shipping_types &&
		data.shipping_types[option.value] &&
		
		data.shipping_prices &&
		//data.shipping_prices[option.value] &&
		
		data.currency
	)
	{
		str=data.shipping_types[option.value].name+" | "+data.shipping_types[option.value].delivery_time+" | ";
		str+=$('<div/>').text(data.shipping_prices[option.value]).format({format:getFormat(data),locale:"en"}).text();
	};
	
	$(option).text(str);
};
function updateUserData(data)
{
	var nodeForm=null;
	var nodeFormTemp=$("#checkout_form");
	if(nodeFormTemp.length==1)
		nodeForm=nodeFormTemp[0];
	if(nodeForm && data && data.order)
	{
		var elements=nodeForm.elements;
		elements.namedItem("name").value=data.order.name||"";
		elements.namedItem("surname").value=data.order.surname||"";
		
		$("#direct_deposit_remitter").text((data.order.name||"")+" "+(data.order.surname||""));
		
		elements.namedItem("email").value=data.order.email||"";
		elements.namedItem("phones").value=data.order.phones||"";
		elements.namedItem("address1").value=data.order.address1||"";
		elements.namedItem("city_suburb").value=data.order.city_suburb||"";
		elements.namedItem("state").value=data.order.state||"";
		
		if(data.order.country)
			elements.namedItem("country").value=data.order.country;
		
		elements.namedItem("postcode").value=data.order.postcode||"";
		
		elements.namedItem("promotions_via_sms").checked=data.order.promotions_via_sms=="1";
		elements.namedItem("promotions_via_email").checked=data.order.promotions_via_email=="1";
		elements.namedItem("promotions_via_snail_mail").checked=data.order.promotions_via_snail_mail=="1";
		
		//elements.namedItem("shipping_to_billing_address").checked=data.order.shipping_to_billing_address=="1";
		
		elements.namedItem("shipping_to_billing_address").checked=data.shipping_to_billing_address==true;
		
		elements.namedItem("shipping_name").value=data.order.shipping_name||"";
		elements.namedItem("shipping_surname").value=data.order.shipping_surname||"";
		elements.namedItem("shipping_email").value=data.order.shipping_email||"";
		elements.namedItem("shipping_phones").value=data.order.shipping_phones||"";
		elements.namedItem("shipping_address1").value=data.order.shipping_address1||"";
		elements.namedItem("shipping_city_suburb").value=data.order.shipping_city_suburb||"";
		elements.namedItem("shipping_state").value=data.order.shipping_state||"";
		
		if(data.order.shipping_country)
			elements.namedItem("shipping_country").value=data.order.shipping_country;
		
		elements.namedItem("shipping_postcode").value=data.order.shipping_postcode||"";
		
		if(data.selected_shipping_type)
		{
			if(data.selected_shipping_type.international=="1")
			{
				if(data.order.shipping_type_id_international)
					elements.namedItem("shipping_type_id_international").value=data.order.shipping_type_id_international;
			}
			else
			{
				if(data.order.shipping_type_id_domestic)
					elements.namedItem("shipping_type_id_domestic").value=data.order.shipping_type_id_domestic;
			};
		};
		
		filterPaymentMethodList(nodeForm);
	};
};

//*************** POP UP BEGIN ************************

function buildPopup(html)
{
	$("body").append("<div id=\"popup_background\"></div><div id=\"popup_win\"><div id=\"popup_content\">"+html+"</div></div>");
	$('#popup_win').bind('click',function(e) { closeCartPopup(); });
	$('#popup_content').bind('click',function(e) { e.stopPropagation(); });
};

function showCartProductPopup(colorImage,productImage)
{
	var html="";

	html+="<div style=\"background:url("+colorImage+") no-repeat center top\">";
	html+="<img src=\""+productImage+"\"  />";
	html+="</div>";
	html+="<div id=\"popup_close_box\"><span onclick=\"closeCartPopup()\">CLOSE</span></div>";

	buildPopup(html);
};
function showCartDesignPopup(frontImage,backImage)
{
	var html="";
	
	html+="<div>";
	html+="<img src=\""+frontImage+"\" alt=\""+frontImage+"\" >";
	html+="<img src=\""+backImage+"\" alt=\""+backImage+"\" >";
	html+="</div>";
	html+="<div id=\"popup_close_box\"><span onclick=\"closeCartPopup()\">CLOSE</span></div>";
	
	buildPopup(html);
};

function closeCartPopup()
{
	$("#popup_win").remove();
	$("#popup_background").remove();
};
//*************** POP UP END **************************

function popOver(elementId) {
buildPopup($('<div>').append( $('#'+elementId).eq(0).clone() ).html());
//	buildPopup($('<div>').append($('#'+elementId).clone()).html());
}
