// --------------------------------------------------------------------------------
// tp_CandidateProfile.js
// Simon Anderson 26-Jan-2005
// Contains Javascript relevant to the Employer create profile form.
// --------------------------------------------------------------------------------

var canProMode = document.getElementById("canProMode");
var fieldPrefix = ""

if (canProMode.value == "create")
	fieldPrefix = "tmpl_tpCandidateCreateProfile_tpCandidateCreateProfile_"
else if (canProMode.value == "update")
	fieldPrefix = "tmpl_tpCandidateUpdateProfile_tpCandidateUpdateProfile_"

// --- Attach JS to document elements and execute simple statements. ---
ow_f_AppendLoadEvent(
function() {

	if (document.getElementById(fieldPrefix + "ow_btnOK") != null)
		ow_f_AddEvent(document.getElementById(fieldPrefix + "ow_btnOK"), "click", canRegFormSubmitClicked, false);

    if (document.getElementById(fieldPrefix + "ow_txtYearsITExperience") != null)
	    ow_f_AddEvent(document.getElementById(fieldPrefix + "ow_txtYearsITExperience"), "keypress", tp_ValidateNumeric, false);


	if (document.getElementById("hrCanProfile_form") != null) {
		var inp = document.getElementById("hrCanProfile_form").getElementsByTagName("input");
		for (var i = 0; i < inp.length; i++) {
			if (inp[i].type == "text") ow_f_AddEvent(inp[i], "keypress", canRegFormTextSubmit, false);
		}
	}
}
);

// --------------------------------------------------------------------------------
// tp_ValidateNumeric()
// Ensure that only numeric values and periods are entered.
// --------------------------------------------------------------------------------
// Arguments:
//	- none
// Returns:
//	- nothing
// --------------------------------------------------------------------------------
function tp_ValidateNumeric(e) {
	var nums = '0123456789';
	var code;
	if (!e) var e = window.event;

	if (e.which != null) {
		code = e.which;
		// for browsers that support e.which, if it is zero then we had a control character pressed
		if (code == 0) return
	}
	else if (e.keyCode) code = e.keyCode;
	var character = String.fromCharCode(code);

	// check the character against the numeric characters
	if (nums.indexOf(character) == -1) {
		if (e.preventDefault)
			e.preventDefault();
		else
			e.returnValue = false;
	}
}



// --------------------------------------------------------------------------------
// canRegFormTextSubmit()
// Fires when a textfield had focus and ENTER was pressed.
// --------------------------------------------------------------------------------
// Arguments:
//	- none
// Returns:
//	- Nothing
// --------------------------------------------------------------------------------
function canRegFormTextSubmit(e) {

	var code;
	if (!e) var e = window.event;
	if (e.keyCode) code = e.keyCode;
	else if (e.which) code = e.which;

	if (code == 13) {
		document.getElementById(fieldPrefix + "ow_btnOK").click();
		if (e.preventDefault) e.preventDefault(); else e.returnValue = false;
	}
}

// --------------------------------------------------------------------------------
// canRegFormSubmitClicked()
// Fires when the submit button was clicked.
// --------------------------------------------------------------------------------
// Arguments:
//	- none
// Returns:
//	- Nothing
// --------------------------------------------------------------------------------
function canRegFormSubmitClicked(e) {

	if (!CheckCanRegData()) {
		if (!e) var e = window.event;
		if (e.preventDefault) e.preventDefault(); else e.returnValue = false;
	} else {
		return;
	}
}


function CheckCanRegData()
{
	// return if the cancel button is clicked
	//if (ow_cancelled)
	//	return true;
	var ow_txtEmail = document.getElementById(fieldPrefix + "ow_txtEmail");
	if (ow_txtEmail != null)
		if (ow_txtEmail.value.length == 0)
		{
			alert(document.getElementById(fieldPrefix + "ow_rfvEmail").value);
			ow_txtEmail.focus();
			return false;
		}
		else
		{
			var em_re = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
			if (!document.getElementById(fieldPrefix + "ow_txtEmail").value.match(em_re))
			{
				alert(document.getElementById(fieldPrefix + "ow_revEmail").value);
				document.getElementById(fieldPrefix + "ow_txtEmail").focus();
				return false;
			}
		}


	var ow_txtPassword = document.getElementById(fieldPrefix + "ow_txtPassword");
	if (ow_txtPassword != null)
		if (ow_txtPassword.value.length == 0) {
			alert(document.getElementById(fieldPrefix + "ow_rfvPassword").value);
			ow_txtPassword.focus();
			return false;
		}
		else
		{
			var em_re = /^.{6,12}$/;
			//Match all alphanumeric character and predefined wild characters.
			//Password must consists of at least 6 characters and not more than 12 characters.
			// see: http://regexlib.com/DisplayPatterns.aspx?cattabindex=5&categoryId=6
			//var em_re = /^([a-zA-Z0-9@*#]{6,12})$/;

			if (!ow_txtPassword.value.match(em_re))
			{
				alert(document.getElementById(fieldPrefix + "ow_revPassword").value);
				ow_txtPassword.focus();
				return false;
			}
		}

	var ow_txtPasswordAgain = document.getElementById(fieldPrefix + "ow_txtPasswordAgain");
	if (ow_txtPasswordAgain != null)
		if (ow_txtPasswordAgain.value.length == 0) {
			alert(document.getElementById(fieldPrefix + "ow_rfvPasswordAgain").value);
			ow_txtPasswordAgain.focus();
			return false;
		}

	if (ow_txtPassword != null && ow_txtPasswordAgain != null)
		if (ow_txtPassword.value != ow_txtPasswordAgain.value)	{
			alert(document.getElementById(fieldPrefix + "ow_cvPasswordAgain").value);
			ow_txtPasswordAgain.focus();
			return false;
		}
		
	var ow_txtFirstName = document.getElementById(fieldPrefix + "ow_txtFirstName");
	if (ow_txtFirstName != null)
		if (ow_txtFirstName.value.length == 0) {
			alert(document.getElementById(fieldPrefix + "ow_rfvFirstName").value);
			ow_txtFirstName.focus();
			return false;
		}

	var ow_txtLastName = document.getElementById(fieldPrefix + "ow_txtLastName");
	if (ow_txtLastName != null)
		if (ow_txtLastName.value.length == 0) {
			alert(document.getElementById(fieldPrefix + "ow_rfvLastName").value);
			ow_txtLastName.focus();
			return false;
		}

	var ow_txtAddressLine1 = document.getElementById(fieldPrefix + "ow_txtAddressLine1");
	if (ow_txtAddressLine1 != null)
		if (ow_txtAddressLine1.value.length == 0) {
			alert(document.getElementById(fieldPrefix + "ow_rfvAddressLine1").value);
			ow_txtAddressLine1.focus();
			return false;
		}

	var ow_txtCity = document.getElementById(fieldPrefix + "ow_txtCity");
	if (ow_txtCity != null)
		if (ow_txtCity.value.length == 0) {
			alert(document.getElementById(fieldPrefix + "ow_rfvCity").value);
			ow_txtCity.focus();
			return false;
		}



	var ow_lstCurrentJobType = document.getElementById(fieldPrefix + "ow_lstCurrentJobType");
	if (ow_lstCurrentJobType != null)
		if (ow_lstCurrentJobType.value == 0) {
			alert(document.getElementById(fieldPrefix + "ow_cvCurrentJobType").value);
			ow_lstCurrentJobType.focus();
			return false;
		}

	var ow_lstDesiredJobType = document.getElementById(fieldPrefix + "ow_lstDesiredJobType");
	if (ow_lstDesiredJobType != null)
	{
		if (ow_lstDesiredJobType.value.length == 0) {
			alert(document.getElementById(fieldPrefix + "ow_rfvDesiredJobType").value);
			ow_lstDesiredJobType.focus();
			return false;
		}
	}


	var ow_lstEducation = document.getElementById(fieldPrefix + "ow_lstEducation");
	if (ow_lstEducation != null)
		if (ow_lstEducation.value == 0) {
			alert(document.getElementById(fieldPrefix + "ow_cvEducation").value);
			ow_lstEducation.focus();
			return false;
		}

	var ow_lstCountry = document.getElementById(fieldPrefix + "ow_lstCountry");
	var ow_lstProvState = document.getElementById(fieldPrefix + "ow_lstProvState");
	var ow_txtOtherResidence = document.getElementById(fieldPrefix + "ow_txtOtherResidence");

	if (ow_lstCountry != null && ow_lstProvState != null && ow_txtOtherResidence != null)
	{
		if (ow_lstCountry.value == 0) {
			alert(document.getElementById(fieldPrefix + "ow_cvCountry").value);
			ow_lstCountry.focus();
			return false;
		}
		else
		{
			var CANADA = 1;
			var USA = 2;
			if (ow_lstCountry.value == CANADA || ow_lstCountry.value == USA)
			{
				if (ow_lstProvState.value == 0) {
					alert(document.getElementById(fieldPrefix + "ow_cvProvState").value);
					ow_lstProvState.focus();
					return false;
				}
			}
			else
			{
				if (ow_txtOtherResidence.value.length == 0) {
					alert(document.getElementById(fieldPrefix + "ow_cvNoOtherResidence").value);
					ow_txtOtherResidence.focus();
					return false;
				}
			}
		}
	}

	var ow_txtPostalZip = document.getElementById(fieldPrefix + "ow_txtPostalZip");
	if (ow_txtPostalZip != null)
		if (ow_txtPostalZip.value.length == 0) {
			alert(document.getElementById(fieldPrefix + "ow_rfvPostalZip").value);
			ow_txtPostalZip.focus();
			return false;
		}





	var ow_txtYearsITExperience = document.getElementById(fieldPrefix + "ow_txtYearsITExperience");
	if (ow_txtYearsITExperience != null)
		if (ow_txtYearsITExperience.value.length == 0) {
			alert(document.getElementById(fieldPrefix + "ow_rfvYearsITExperience").value);
			ow_txtYearsITExperience.focus();
			return false;
		}

/*
	var ow_txtOtherResidence = document.getElementById(fieldPrefix + "ow_txtOtherResidence");
	if (ow_txtOtherResidence != null)
		if (ow_txtOtherResidence.value.length == 0) {
			alert(document.getElementById(fieldPrefix + "ow_rfvOtherResidence").value);
			ow_txtOtherResidence.focus();
			return false;
		}
*/

    return true;

}	