/** 
	* @projectDescription Part of the checkout Arcadia JavaScript library - core checkout file
	* @author Russ Back russell.back@arcadiagroup.co.uk
	* @release r2.5
	*/

$(document).ready( function() {

	// quit if we already have checkout.js in the page (this is for the deployment of 1.25)
	if (typeof document.scriptsToLoad == "object") return;
	
	document.scriptsToLoad = ["jquery.validate.js", "ifx.js", "ifxscrollto.js", "iutil.js", "jquery.validate.methods.js"];
	
	if ($("form#login").size()) document.scriptsToLoad.push("validation_settings_login.js");
	if ($("form#my_details").size()) document.scriptsToLoad.push("validation_settings_my_details.js", "my_details.js");
	if ($("form#personal_details").size()) document.scriptsToLoad.push("validation_settings_setup_account.js");
	if ($("form#card_details").size()) document.scriptsToLoad.push("validation_settings_confirm_and_pay.js");
	if ($("form#shopping_bag").size()) document.scriptsToLoad.push("validation_settings_shopping_bag.js");
	if ($("form#my_account_details").size()) document.scriptsToLoad.push("validation_settings_my_details.js", "my_details.js");
	if ($("div#checkout_wrapper.thankyou").size() || $("div#checkout_wrapper.order_details").size() || $("div#checkout_wrapper.return_details").size()) {
		$.getScript("/javascript/checkout/thankyou.js"); // used on order history page too
		return;
		}
	
		
	
	// add effect scripts and jquery validation plugin
	if (document.scriptsToLoad.length > 5) loadScript(0);

	});

function loadScript(i) {
	if (i < document.scriptsToLoad.length) {
		$.getScript("/javascript/checkout/" + document.scriptsToLoad[i], function() {
			loadScript(i + 1); // load next script when completed
			});
		}
	}
	
function addTooltips(elements) {

	// help wrapper template
	var wrapper = $("<div class=\"help_wrapper\"><a href=\"#\" title=\"Click here for help\" class=\"replace\">Field help</a></div>");
	
	// grab all fields in the document and hide helpers on click
	$("input:not(:image)").focus( function() {
		hideTooltips(true, this);
		});
	
	// add helpers and focus handler
	$.each(elements, function(i) {
		var input = $("#" + i);
		wrapper.clone().attr({id: i + "_tip"}).append("<div><p>" + elements[i] + "</p></div>").insertAfter(input);
		input.focus( function() {
			var input = $("#" + i), offset = input.offset(), margin = input.width() + 10;
			$("#" + this.id + "_tip:hidden").css({top: offset.top - 10, left: offset.left + margin}).fadeIn("fast");
			})
		});
		
	// onclick handler of question mark icon
	$(".help_wrapper a.replace").click( function() {
		$(this).siblings("div:hidden").fadeIn("fast");
		return false;
		});
	
	// hide all on window resize
	/*$(window).resize( function() {
														 hideTooltips();
														 });*/

	}
	
// hide all tooltips that aren't being refocused on
function hideTooltips(show, input) {
	$("div.help_wrapper:visible").fadeOut("fast", function() {
		if (show) $(this).children("div").hide();																																						
		});
	}



function updatePaymentType(radio, clearCard) {
	
	// clear error containers
	$("#client_error_container").slideUp("normal", function() {
		$(this).remove();
		});
	$(".error").removeClass("error");
	
	// clear card number
	if (clearCard) {
		$("input[@name='cardNumberStar']").val("");
		$("input[@name='pay_cardNumberStar']").val("");
		}
	
	// Selected card type element ID
	var selectedType = radio.id.toLowerCase();
	
	// Display CSS Attribute Controls
	if (selectedType == "visa" || selectedType == "mcard" || selectedType == "amex" || selectedType == "visae") {
		// hide start date and issue number and show cv2
		$("#start_date_details:visible, .card_issue_details:visible").slideUp();
		$("#card_name_number:hidden, #expiry_date_details:hidden, #card_issue_security:hidden, .card_security_details:hidden").slideDown();
		}
	else if (selectedType == "swtch" || selectedType == "solo") {
		// show start date, issue number, expiry date and security number
		$("#card_name_number:hidden, #expiry_date_details:hidden, #start_date_details:hidden, #card_issue_security:hidden, .card_issue_details:hidden, .card_security_details:hidden").slideDown();
		}
	else if (selectedType == "pypal") {
		$("#card_name_number:visible, #start_date_details:visible, #expiry_date_details:visible, #card_issue_security:visible, ").slideUp();
		}
	else { // account card
		// hide start date, issue number and cv2 and show expiry date
		$("#start_date_details:visible, #card_issue_security:visible").slideUp();
		$("#card_name_number:hidden, #expiry_date_details:hidden").slideDown();
		}

	}