function toggleLanguage(RootURL) {
	window.location = RootURL + "?LanguageID=" + $("#LanguageID").val(); 
}

function navigateURL(RootURL) {
	window.location = RootURL;
}

function openWindow(RootURL) {
	window.open(RootURL);
}

/**
* Validates fields based on regular expressions
* 
* @fieldID str The form element's ID to be validated
* @re RegExp The regular expression to test against (this must be passed without quotes)
* @msg str The message to be displayed to the user if the form field doesn't test successfully against the RegExp
* @return bln Flag to indicate success or failure
*/
function validateField(fieldID,re,msg) {
	
	// Trim value
	$("#" + fieldID).val($.trim($("#" + fieldID).val()));
	
	var regExp = new RegExp(re);
	
	// If the field fails validation, alert the user and return false
	if(!regExp.test($("#" + fieldID).val())) {
		$("#" + fieldID).focus().addClass("backgroundRed").after('<span id="' + fieldID + '_Error" class="ErrorMsg"><br />' + msg + '</span>');

		return false;
	}
	
	return true;
}

/**
 * Takes the value of the AccountNumber form element and validates it behind the scenes
 */
function ajaxValidateGPPNumber() {
	// Serialize the form data and post it to an action page
	$.ajax({
		type: "POST",
		url: "includes/ajax_Index_GPPNumberValidation.cfm",
		data: 'AccountNumberPrefix=' + $("#AccountNumberPrefix").val() + '&AccountNumber=' + $("#AccountNumber").val() + '&PromotionID=' + $("#PromotionID").val(),
		success: function(xmlAjaxResponse){
			$("#AjaxMsgPlaceholder").replaceWith($.trim(xmlAjaxResponse.replace("\n", "").replace("\t", "")));
		}
	});
}

/**
* Validates fields and submits form
*/
function submitFormPromotion(){

	// Cause the AccountNumber input field to blur so the ajax function will trigger
	$("#AccountNumber").blur();
	
	// Clear the red background from all fields and remove all error messages
	$("input,textarea").removeClass("backgroundRed");
	$(".ErrorMsg").remove();
	$(".warningMessage").remove();
	
	if ($("#LanguageID").length == 0 || $("#LanguageID").val() == 1) {
		// Verify required fields are populated
		if (!validateField("AccountNumber", /\S+$/, "Your goldpoints plus number is required.")) 
			return false;
		if (!validateField("FirstName", /\S+$/, "Your first and last names are required.")) 
			return false;
		if (!validateField("LastName", /\S+$/, "Your first and last names are required.")) 
			return false;
		
		
		// Verify GPP Number is in correct format
		if (!validateField("AccountNumber", /[0-9]{10}$/, "The goldpoints plus number entered is invalid.  We have pre-populated the first six digits.  Try re-entering the last 10 digits.")) 
			return false;
		
		// When a good account number is entered, the AccountNumber_AjaxError element is removed from the DOM, if it hasn't been removed then force an error.
		if ($("#AccountNumber_AjaxError1").length > 0) {
			if (!validateField("AccountNumber", /ThisCausesAForcedFail/, "The goldpoints plus number entered is invalid.  We have pre-populated the first six digits.  Try re-entering the last 10 digits.")) 
				return false;
		}
		if ($("#AccountNumber_AjaxError2").length > 0) {
			if (!validateField("AccountNumber", /ThisCausesAForcedFail/, "The goldpoints plus number entered is already registered for this promotion.")) 
				return false;
		}
	}
	else 
		if ($("#LanguageID").val() == 2) {
			// Enter logic here GERMAN
			// Verify required fields are populated
			if (!validateField("AccountNumber", /\S+$/, "Ihre goldpoints plus-Nummer ist erforderlich.")) 
				return false;
			if (!validateField("FirstName", /\S+$/, "Ihr Vor- und Nachname ist erforderlich.")) 
				return false;
			if (!validateField("LastName", /\S+$/, "Ihr Vor- und Nachname ist erforderlich.")) 
				return false;
			
			
			// Verify GPP Number is in correct format
			if (!validateField("AccountNumber", /[0-9]{10}$/, "Die eingegebene goldpoints plus-Nummer ist ung&uuml;ltig.")) 
				return false;
			
			// When a good account number is entered, the AccountNumber_AjaxError element is removed from the DOM, if it hasn't been removed then force an error.
			if ($("#AccountNumber_AjaxError1").length > 0) {
				if (!validateField("AccountNumber", /ThisCausesAForcedFail/, "Die eingegebene goldpoints plus-Nummer ist ung&uuml;ltig.")) 
					return false;
			}
			if ($("#AccountNumber_AjaxError2").length > 0) {
				if (!validateField("AccountNumber", /ThisCausesAForcedFail/, "Die eingegebene goldpoints plus-Nummer ist bereits f&uuml;r dieses Angebot registriert.  Jetzt buchen und Punkte sammeln.")) 
					return false;
			}
		}
		else 
			if ($("#LanguageID").val() == 3) {
				// Enter logic here	SWEDISH	
				// Verify required fields are populated
				if (!validateField("AccountNumber", /\S+$/, "Du m&aring;ste uppge ditt goldpoints plus-medlemsnummer.")) 
					return false;
				if (!validateField("FirstName", /\S+$/, "Du m&aring;ste uppge f&ouml;r- och efternamn.")) 
					return false;
				if (!validateField("LastName", /\S+$/, "Du m&aring;ste uppge f&ouml;r- och efternamn.")) 
					return false;
				
				
				// Verify GPP Number is in correct format
				if (!validateField("AccountNumber", /[0-9]{10}$/, "Det angivna goldpoints plus-medlemsnumret &auml;r ogiltigt.")) 
					return false;
				
				// When a good account number is entered, the AccountNumber_AjaxError element is removed from the DOM, if it hasn't been removed then force an error.
				if ($("#AccountNumber_AjaxError1").length > 0) {
					if (!validateField("AccountNumber", /ThisCausesAForcedFail/, "Det angivna goldpoints plus-medlemsnumret &auml;r ogiltigt.")) 
						return false;
				}
				if ($("#AccountNumber_AjaxError2").length > 0) {
					if (!validateField("AccountNumber", /ThisCausesAForcedFail/, "Det angivna goldpoints plus-medlemsnumret har redan registrerats till den h&auml;r kampanjen.  Boka nu och b&ouml;rja samla po&auml;ng.")) 
						return false;
				}
			}
			else 
				if ($("#LanguageID").val() == 4) {
					// Enter logic here	NORSK
					// Verify required fields are populated
					if (!validateField("AccountNumber", /\S+$/, "Ditt goldpoints plus-nummer kreves.")) 
						return false;
					if (!validateField("FirstName", /\S+$/, "Fornavn og etternavn kreves.")) 
						return false;
					if (!validateField("LastName", /\S+$/, "Fornavn og etternavn kreves.")) 
						return false;
					
					
					// Verify GPP Number is in correct format
					if (!validateField("AccountNumber", /[0-9]{10}$/, "Goldpoints plus-nummeret du har angitt er ugyldig.")) 
						return false;
					
					// When a good account number is entered, the AccountNumber_AjaxError element is removed from the DOM, if it hasn't been removed then force an error.
					if ($("#AccountNumber_AjaxError1").length > 0) {
						if (!validateField("AccountNumber", /ThisCausesAForcedFail/, "Goldpoints plus-nummeret du har angitt er ugyldig.")) 
							return false;
					}
					if ($("#AccountNumber_AjaxError2").length > 0) {
						if (!validateField("AccountNumber", /ThisCausesAForcedFail/, "Goldpoints plus-nummeret du har angitt er allerede registrert for denne kampanjen.  Bestill n&aring; og start opptjeningen.")) 
							return false;
					}
				}
				else 
					if ($("#LanguageID").val() == 5) {
						// Enter logic here	FRENCH
						// Verify required fields are populated
						if (!validateField("AccountNumber", /\S+$/, "Vous devez indiquer votre num&eacute;ro d&#8217;adh&eacute;rent goldpoints plus.")) 
							return false;
						if (!validateField("FirstName", /\S+$/, "Vous devez indiquer votre pr&eacute;nom et votre nom.")) 
							return false;
						if (!validateField("LastName", /\S+$/, "Vous devez indiquer votre pr&eacute;nom et votre nom.")) 
							return false;
						
							
						// Verify GPP Number is in correct format
						if (!validateField("AccountNumber", /[0-9]{10}$/, "Le num&eacute;ro d&#8217;adh&eacute;rent goldpoints plus saisi n&#8217;est pas valide.")) 
							return false;
						
						// When a good account number is entered, the AccountNumber_AjaxError element is removed from the DOM, if it hasn't been removed then force an error.
						if ($("#AccountNumber_AjaxError1").length > 0) {
							if (!validateField("AccountNumber", /ThisCausesAForcedFail/, "Le num&eacute;ro d&#8217;adh&eacute;rent goldpoints plus saisi n&#8217;est pas valide.")) 
								return false;
						}
						if ($("#AccountNumber_AjaxError2").length > 0) {
							if (!validateField("AccountNumber", /ThisCausesAForcedFail/, "Le num&eacute;ro d&#8217;adh&eacute;rent goldpoints plus saisi est d&eacute;j&agrave; enregistr&eacute; pour cette promotion.")) 
								return false;
						}
					}
					else 
						if ($("#LanguageID").val() == 6) {
							// Enter logic here	DANSK
							// Verify required fields are populated
							if (!validateField("AccountNumber", /\S+$/, "Du skal indtaste dit goldpoints plus-medlemsnummer.")) 
								return false;
							if (!validateField("FirstName", /\S+$/, "Du skal indtaste dit for- og efternav.")) 
								return false;
							if (!validateField("LastName", /\S+$/, "Du skal indtaste dit for- og efternav.")) 
								return false;
							
							
							// Verify GPP Number is in correct format
							if (!validateField("AccountNumber", /[0-9]{10}$/, "Det indtastede goldpoints plus-medlemsnummer er ugyldigt.")) 
								return false;
							
							// When a good account number is entered, the AccountNumber_AjaxError element is removed from the DOM, if it hasn't been removed then force an error.
							if ($("#AccountNumber_AjaxError1").length > 0) {
								if (!validateField("AccountNumber", /ThisCausesAForcedFail/, "Det indtastede goldpoints plus-medlemsnummer er ugyldigt.")) 
									return false;
							}
							if ($("#AccountNumber_AjaxError2").length > 0) {
								if (!validateField("AccountNumber", /ThisCausesAForcedFail/, "Det indtastede goldpoints plus-medlemsnummer er allerede registreret i forbindelse med dette kampagnetilbud. Reserv&eacute;r nu, og begynd at optjene point.")) 
									return false;
							}
						}

			
			
		// Verify no destructive characters exist
			/*
		 if(!validateField("GPPNumber",/^[a-zA-Z0-9\!\@\$\%\^\-\(\)\,\.\_\' ]*$/,"Destructive characters are not allowed.")) return false;
		 if(!validateField("FirstName",/^[a-zA-Z0-9\!\@\$\%\^\-\(\)\,\.\_\' ]*$/,"Destructive characters are not allowed.")) return false;
		 if(!validateField("LastName",/^[a-zA-Z0-9\!\@\$\%\^\-\(\)\,\.\_\' ]*$/,"Destructive characters are not allowed.")) return false;
		 */
			$("#frmPromotion").submit();
		
}

