
// Get Translated string if available
function gt(varname,defaultstring) {
	return ((eval("typeof "+varname) != 'undefined') ? eval(varname) : defaultstring)
}

// Convert characters above ascii 127 into html numeric character references (in decimal)
// See http://www.pinyin.info/tools/converter/chars2uninumbers.html for a useful implementation of this
function convertToEntities(input) {
	var output = "";
	for(var i=0; i<input.length; i++) {
		if (input.charCodeAt(i) <= 127) {
			output += input.charAt(i);
		}
		else {
			output += "&#" + input.charCodeAt(i) + ";";
		}
	}
	return output;
}

function convertFormTextToEntities() {
	for (var i = 0; i < allFormTextFields.length; i++) {
		theField = eval("document.getElementById('salescallrequest')." + allFormTextFields[i][0]);
		theField.value = convertToEntities(theField.value);
	}
}

// Trim whitespace from left and right sides of s.
function trim(s) {
	return s.replace( /^\s*/, "" ).replace( /\s*$/, "" );
}

// Validation:
var formTextFields = new Array();
formTextFields[0] = new Array("First_Name",gt("firstname_translated","First Name"));
formTextFields[1] = new Array("Last_Name",gt("lastname_translated","Last Name"));
formTextFields[2] = new Array("Country",gt("country_translated","Country"));
formTextFields[3] = new Array("Email",gt("email_translated","E-mail Address"));

var allFormTextFields = new Array();
allFormTextFields[0] = new Array("First_Name",gt("firstname_translated","First Name"));
allFormTextFields[1] = new Array("Last_Name",gt("lastname_translated","Last Name"));
allFormTextFields[2] = new Array("Country",gt("country_translated","Country"));
allFormTextFields[3] = new Array("Email",gt("email_translated","E-mail Address"));

var formRegexFields = new Array();
formRegexFields[0] = new Array("Email","^.+@.+$",gt("emailerror_translated","Please enter an e-mail address with a valid format (i.e. \"username@domainname\")"));
formRegexFields[1] = new Array("question_6177","^.*\\d.*$",gt("phoneerror_translated","Please enter a phone number which contains one or more digits"));

var maxFieldLength = 2000;
var line = "___________________________________________________"
function formCheck() {
	var formOK = true;
	var errorMessage = "";
	var lengthExceeded = false;
	var blank = false;
	var frm = document.getElementById('salescallrequest');

	// Max Length:
	for (i = 0; i < allFormTextFields.length; i++) {
		theField = eval("document.getElementById('salescallrequest')." + allFormTextFields[i][0]);
		//alert("field name: "+allFormTextFields[i][0]+"  theField.value.length: "+theField.value.length+"  maxFieldLength: "+maxFieldLength);
		if(theField.value.length > maxFieldLength) {
			formOK = false;
			if(!lengthExceeded) {
				errorMessage += "\n"+gt("maxlengtherror_translated","The values entered in the following fields exceed the maximum length")+": " + maxFieldLength + " "+gt("characters_translated","characters")+":\n";
				lengthExceeded = true;
			}
			errorMessage += "\t" + allFormTextFields[i][1] + " (" + theField.value.length + " " + gt("characters_translated","characters") + ")\n";
		}
	}
	// Required (text)
	for (i = 0; i < formTextFields.length; i++) {
		theField = eval("document.getElementById('salescallrequest')." + formTextFields[i][0]);
		if(trim(theField.value).length == 0 || (theField.name == 'question_6177' && isPhonePrefill(trim(theField.value)))) {
			formOK = false;
			if(!blank) {
				errorMessage += "\n"+gt("blank_translated","The following required fields were left blank")+":\n ";
				blank = true;
			}
			errorMessage += "\t" + formTextFields[i][1] + "\n";
		}
	}
	// set the subject
	var subject = "Novell Sentinel - FREE First Look Training";
	frm.email_subject.value = subject;

	// set the pageencoding (charset)
	if(typeof n_enc != 'undefined') frm.charset.value = n_enc;

	// set the thankyou page
	if(typeof rc_thankyou_page != 'undefined') frm.thankyou_page.value = rc_thankyou_page;

	// Set the profile_url

	convertFormTextToEntities();
}
