var lteIE7 = false /*@cc_on || @_jscript_version <= 5.7 @*/;

Window.addEvent('load',function() {
	
	if (lteIE7) {
		var blueArrowWhiteBG = '<img src="/assets/images/layout/right_link_arrow.gif" alt="" />';
		var blueArrowGreyBG = '<img src="/assets/images/layout/right_link_arrow_grey.gif" alt="" />';
		var blueArrowLarge = '<img src="/assets/images/layout/right_link_arrow_large.gif" alt="" />';
		
		addArrow("ul.additionalLinks li a", blueArrowWhiteBG);
		addArrow(".rightArrow", blueArrowWhiteBG);
		addArrow(".rightArrows a", blueArrowWhiteBG)
		addArrow("div.linksBox .rightArrows a", blueArrowLarge);
	}
	var myFormFields = new Array();
	
	grabFormValues("#editBasketForm input[type^=text]", myFormFields);
	grabFormValues("#editBasketForm input[type^=checkbox]", myFormFields);
	grabFormValues("#editBasketForm select", myFormFields);
    
 
    
    $$("form#checkoutform .checkout_button").addEvent( 'click', function(evt) {
        checkmyFormFields(myFormFields, evt);
	});
	
});

// Function to grab all the form fields, given a specific ID
// formID: pass in the ID of the form
// myFormFields: Initial state of form fields
function grabFormValues(formID, myFormFields) {

	if ($chk($$(formID))) {
		$$(formID).each(function(formItem) {
			if (formItem.tagName == "SELECT") {
				myFormFields[formItem.getAttribute("id")] = formItem.selectedIndex;
			} else if (formItem.tagName == "INPUT") {
				myFormFields[formItem.getAttribute("id")] = formItem.value;
			}
		});
	}
}


// Function to check if the form values have changed before submission
// basketSubmit: The button that gets clicked before checking if the form fields have changed
// updateSubmit: The button of which needs to be pressed if the fields have changed
// myFormFields: Initial state of form fields
function checkmyFormFields(myFormFields, evt) {
		
		var currentFormValue;
		var hasError = false;
		for (key in myFormFields) {
			currentFormValue = document.getElementById(key);
			if (currentFormValue != null) {
				if (currentFormValue.tagName == "SELECT") {
					if (myFormFields[key] != currentFormValue.selectedIndex) {
						hasError = true;
					}
				} else if (currentFormValue.tagName == "INPUT") {
					if ((myFormFields[key] == null) || (myFormFields[key] != currentFormValue.value)) {
						hasError = true;
					}
				}
			}
		}
	
		if (hasError) {
			// Stops the submission of the form.
			new Event(evt).stop();
			
			confirmed = window.confirm("Your shopping basket has changed, please click OK to update the basket.");

			if (confirmed) {
				var formToSend = document.getElementById("editBasketForm");
				formToSend.submit();
			}
		}
}

// Function to add arrows to a specified selectors links
function addArrow(selector, arrowImage) {
 	$$(selector).each(function(linkItem) {	
		linkItem.setHTML(linkItem.innerHTML + arrowImage);
	});
}