/**
* Extend Javascript with additional methods
* see h**p://w*w.dustindiaz.com/getelementsbyclass/
* Public domain
*/
function getElementsByClass(searchClass, node, tag) {
	if (node == null) node = document;
	if (tag == null) tag = '*';
	
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
	
	var classElements = new Array();
	for (var i=0; i<elsLen; i++) {
		if (pattern.test(els[i].className)) {
			classElements.push(els[i]);
		}
	}
	
	return classElements;
}


//BEGIN
var toggleCheckbox = null;

window.onload = function() {
	//record the website statistic on page load
	try {
		var pageTracker = _gat._getTracker("UA-6547166-1");
		pageTracker._trackPageview();
	} catch(err) {}
	
	
	//get the neccessary elements
	var toggleCheckbox = document.getElementById("UseSameAsBilling");
	var tableRows = getElementsByClass("tablet_row", document.body);
	
	//bind events for the elements
	if (toggleCheckbox!==undefined && toggleCheckbox!=null) {
		toggleCheckbox.onclick = function() {
			toggleShippingDetails(toggleCheckbox);
		};
	}
	
	//fix ie6 png images
	if (window.DD_belatedPNG) DD_belatedPNG.fix(".coming_soon, #main_navigation, #content, #back_button, #content .small_tablet, #content_title, #content #product_info, #content #stages div, #title img, #subtitle img");	
	
	//resize the table row cells to match the height of the row
	if (tableRows!==undefined && tableRows!=null) {
		for(var i=0; i<tableRows.length; i++) {
			var cells = getElementsByClass("small_tablet", tableRows[i]);
			
			var rowHeight = parseInt(tableRows[i].offsetHeight);
			
			for(var j=0; j<cells.length; j++) {
				cells[j].style.height = (rowHeight - 20).toString() + "px";
			}	
		}
	}
	
	//quick: fix display-block for particualar elements (ie 6/7 only)
	if (navigator.appName=="Microsoft Internet Explorer") {
		var userAgent = navigator.userAgent;
		var version = parseFloat(userAgent.substr((userAgent.indexOf('MSIE')+5),3));
		
		if (version<=7) {
			var fixElements = getElementsByClass("shopping_gift_wrap_wrapper", document.getElementById("content"));
		
			for(var i=0; i<fixElements.length; i++) {
				fixElements[i].style.display = "inline";
				fixElements[i].style.zoom = "1";
			}
		}
	}
};

/**
* Toggle Shipping details same as Billing details
*/
function toggleShippingDetails(obj) {
	resetShippingDetails();
	
	if(obj.checked) {
		var billingCountrySelect = document.getElementById("BillingCountry");
		var shippingCountrySelect = document.getElementById("ShippingCountry");
		var billingCountry = billingCountrySelect.options[billingCountrySelect.selectedIndex].value;
				
		var shippingContainsBillingCountry = false;
		for(var i = 0; i < shippingCountrySelect.options.length; i++) {
			if(shippingCountrySelect.options[i].value == billingCountry) {
				shippingContainsBillingCountry = true;
				break;
			}
		}
		
		if(shippingContainsBillingCountry) {
			var billingFirstName = document.getElementById("BillingFirstName");
			var billingLastName = document.getElementById("BillingLastName");
			var billingAddress1 = document.getElementById("BillingAddress1");
			var billingAddress2 = document.getElementById("BillingAddress2");
			var billingCity = document.getElementById("BillingCity");
			var billingCounty = document.getElementById("BillingCounty");
			var billingPostal = document.getElementById("BillingPostal");
			var shippingFirstName = document.getElementById("ShippingFirstName");
			var shippingLastName = document.getElementById("ShippingLastName");
			var shippingAddress1 = document.getElementById("ShippingAddress1");
			var shippingAddress2 = document.getElementById("ShippingAddress2");
			var shippingCity = document.getElementById("ShippingCity");
			var shippingCounty = document.getElementById("ShippingCounty");
			var shippingPostal = document.getElementById("ShippingPostal");
			
			shippingFirstName.value = billingFirstName.value;
			shippingLastName.value = billingLastName.value;
			shippingAddress1.value = billingAddress1.value;
			shippingAddress2.value = billingAddress2.value;
			shippingCity.value = billingCity.value;
			shippingCounty.value = billingCounty.value;
			
			for(var i = 0; i < shippingCountrySelect.options.length; i++) {
				if(shippingCountrySelect.options[i].value == billingCountry) {
					shippingCountrySelect.options[i].selected = true;
				}
			}
			
			shippingPostal.value = billingPostal.value;
		} else {
			alert("Unable to use same details: Shipping Countries does not contain the selected Billing Country");
			obj.checked = false;
		}
	}
}

/**
* Clear Shipping details form
*/
function resetShippingDetails()
{
	var shippingFieldset = document.getElementById("ShippingDetails");
	var elements = shippingFieldset.getElementsByTagName("input");
	
	for(var i = 0; i < elements.length; i++) {
		var element = elements[i];
		
		if(element.type == "text") {
			element.value = "";
		}
	}
}