var d = document;


function fn_validateFieldIsEmpty(formDOMObj, fieldname,  errorMessage){
	/* this function validates a form filed, basically it checks to 
	see if a parameter sent to it and if it is, return false */
	errorDiv = fieldname + 'Validation';
	ftnGetObject(errorDiv).innerHTML = '';
	if(formDOMObj[fieldname].value.length < 1){
		
		ftnGetObject("sendError").innerHTML = '| Error, see above |';

		
		
		ftnGetObject(errorDiv).innerHTML = '<div class="txtBoldOrange" >' + errorMessage + '</div>';
		
		return false;
	}
	return true;
}

function fn_validateDoubleFieldIsEmpty(formDOMObj, fieldname1,  errorMessage1, fieldname2,  errorMessage2){
	/* this function validates a form filed, basically it checks to 
	see if a parameter sent to it and if it is, return false */
	errorDiv1 = fieldname1 + 'Validation';
	errorDiv2 = fieldname2 + 'Validation';
	ftnGetObject(errorDiv1).innerHTML = '';
	ftnGetObject(errorDiv2).innerHTML = '';
	if(formDOMObj[fieldname1].value.length < 1 && formDOMObj[fieldname2].value.length < 1){
		
		
		
		ftnGetObject("sendError").innerHTML = '| Error, see above |';
		ftnGetObject(errorDiv1).innerHTML = '<div class="txtBoldOrange" >' + errorMessage1 + '</div>';
		ftnGetObject(errorDiv2).innerHTML = '<div class="txtBoldOrange" >' + errorMessage2 + '</div>';
		return false;
	}
	return true;
}

function fn_validateForSpam(formDOMObj, fieldname){
	/* this function validates a form filed, basically it checks to 
	see if a parameter sent to it and if it is, return false */
	if(formDOMObj[fieldname].value.length > 0){
		
		
		ftnGetObject("sendError").innerHTML = '| Error, cannot send |';
		return false;
	}
	return true;
}

function fn_validateFieldsMatch(formDOMObj, fieldname1, fieldname2, errorMessage){
	/* this function compares two strings sent as parameters.  These strings represent 
	two fields in a form, eg. password and password confirm fields.
	If the fields do not match, return false
	*/
	errorDiv1 = fieldname1 + 'Validation';
	errorDiv2 = fieldname2 + 'Validation';
	ftnGetObject(errorDiv1).innerHTML = '';
	ftnGetObject(errorDiv2).innerHTML = '';
	if(formDOMObj[fieldname1].value != formDOMObj[fieldname2].value){
		
		
		ftnGetObject("sendError").innerHTML = "| Error, see above |";
		ftnGetObject(errorDiv1).innerHTML = errorMessage;
		ftnGetObject(errorDiv2).innerHTML = 'do not match';
		return false;
	}
	return true;
}

function fn_validateMaxLength(formDOMObj, fieldname,  maxlength){
	/* this function validates a form filed,  it checks to 
	see if a form field is to long, if it is  return false*/
	errorDiv = fieldname + 'Validation';
	ftnGetObject(errorDiv).innerHTML = '';
	submittedLength     =   formDOMObj[fieldname].value.length;
	if(submittedLength > maxlength){
		
		ftnGetObject("sendError").innerHTML = '| Error, see above |';

		
		
		ftnGetObject(errorDiv).innerHTML = '<div class="txtBoldOrange" >The length of this field cannot exceed ' + maxlength + ' characters.  You have submitted ' + submittedLength + ' characters.</div>';
		
		return false;
	}
	return true;
}

function fn_isValidEmail(formDOMObj, fieldname,  errorMessage)
{
	var x = formDOMObj[fieldname].value;
	errorDiv = fieldname + 'Validation';
	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if (!filter.test(x) && x.length > 3){
		ftnGetObject("sendError").innerHTML = "| Error, see above |";
		ftnGetObject(errorDiv).innerHTML = errorMessage;
		return false;
	}
	return true;
}


function onSubmitForm(formDOMObj){
	
	if(formDOMObj.name=='frmSectorEnquiry'){
		 /*this condidtional statement uses "or" arguments.  If a is false, or b is false or c is false, return false
		 If any of the validation functions called evaluate to false, the form will not be submitted. */
		 if(fn_validateFieldIsEmpty(formDOMObj, 'strFirstName',  'you must enter a first name') == false
			|| fn_validateFieldIsEmpty(formDOMObj, 'strLastName',  'you must enter a last name') == false
			|| fn_validateFieldIsEmpty(formDOMObj, 'strCompany',  'you must enter a company') == false
			|| fn_validateDoubleFieldIsEmpty(formDOMObj, 'strEmailAddress',  'Please enter either an email', 'strContactNumber',  'address or a contact number') == false
			|| fn_validateForSpam(formDOMObj, 'strThisFormMySpamTrap') == false){
			return false;
		 }
		 return true;
	}
	
	 if(formDOMObj.name=='frmContactUs'){
			  if(fn_validateFieldIsEmpty(formDOMObj, 'strFirstName',  'you must enter a first name') == false
			|| fn_validateFieldIsEmpty(formDOMObj, 'strLastName',  'you must enter a last name') == false  
			|| fn_validateFieldIsEmpty(f, 'strEmail',  'you must enter an e-mail address') == false
		    || fn_isValidEmail(f, 'strEmail',  'enter a valid e-mail address')== false
		    || fn_validateFieldIsEmpty(f, 'strContactNumber',  'you must enter an phone number') == false){
			return false;
			  }
			 return true;
		 }
		 
	    if(formDOMObj.name=='frmAddJob' || formDOMObj.name=='frmEditJob') {
	         if(fn_validateFieldIsEmpty(formDOMObj, 'strJobTitle',  'you must enter a job title') == false
			|| fn_validateFieldIsEmpty(formDOMObj, 'strJobRefCode',  'you must enter a reference') == false  
			|| fn_validateMaxLength(formDOMObj, 'strDescription', 6000) == false){
			return false;
			  }
			 return true;
		 }
		 

	
	return false;
};

function ftnEmailPassword(){
	//alert(document.frmLoginCandidate.strLoginEmail.value.length);
	if(document.frmLoginCandidate.strLoginEmail.value.length>2){
		document.frmLoginCandidate.action='/processing/forgotton-password.asp';
		document.frmLoginCandidate.submit();
	return true;
	}else{
		ftnGetObject("loginValidation").innerHTML = "enter an e-mail above";
		return false
	}
	
};

function ftnRegister(){
	//alert(document.frmRegister.strSectorIds[selectedIndex]);
	f=document.frmRegister;
	
	var strSectorIds = '';
	
	for ( var i=0,n=f.strSectorIds.length; i<n; i++ )
   {
       var field = f.strSectorIds[i];
      if(field.selected==true){
		  (strSectorIds.length==0)?strSectorIds=field.value:strSectorIds+=','+ field.value; 
	  }
 
 	}
	f.action='/processing/register-candidate.asp?strSectorIds=' + strSectorIds;
	
	 if(fn_validateFieldIsEmpty(f, 'strFirstName',  'you must enter a first name') == false
		|| fn_validateFieldIsEmpty(f, 'strLastName',  'you must enter a last name') == false
		|| fn_validateFieldIsEmpty(f, 'strEmail',  'you must enter an e-mail address') == false
		|| fn_isValidEmail(f, 'strEmail',  'enter a valid e-mail address')== false
		|| fn_validateFieldsMatch(f, 'strEmail', 'strEmailConfirm', 'the two e-mail fields') == false
		|| fn_validateFieldIsEmpty(f, 'strContactPhone',  'you must enter a contact no') == false
		|| fn_validateFieldIsEmpty(f, 'strUploadCV',  'please also upload your cv') == false){
		 return false;
	 }
	
	return true
	
	//|| fn_validateFieldsMatch(f, 'strPassword', 'strPasswordValidation', 'the two password fields') == false 
		
		};

function ftnSubmitVacancy(){
	//alert(document.frmRegister.strSectorIds[selectedIndex]);
	f=document.frmSubmitVacancy;
	
	var strSectorIds = '';
	
	for ( var i=0,n=f.strSectorIds.length; i<n; i++ )
   {
       var field = f.strSectorIds[i];
      if(field.selected==true){
		  (strSectorIds.length==0)?strSectorIds=field.value:strSectorIds+=','+ field.value; 
	  }
 
 	}
	f.action='/processing/submit-a-vacancy.asp?strSectorIds=' + strSectorIds;
	
	  if(fn_validateFieldIsEmpty(f, 'strFirstName',  'you must enter a first name') == false
			    || fn_validateFieldIsEmpty(f, 'strLastName',  'you must enter a last name') == false
			    || fn_validateFieldIsEmpty(f, 'strCompany',  'you must enter a company') == false
			    ||  fn_validateFieldIsEmpty(f, 'strEmail',  'please enter an email address') == false
	            || fn_isValidEmail(formDOMObj, 'strEmail',  'email address not valid')	== false	  
	            || fn_validateFieldIsEmpty(f, 'strContactNumber',  'please enter a contact no') == false	
	            || fn_validateFieldIsEmpty(f, 'strUploadJobDescription',  'please include a job description') == false	   	 
			    || fn_validateForSpam(f, 'strThisFormMySpamTrap') == false){
			    return false;
		     }
	
	return true
		
	};		
		
function ftnUpdateCandidate(){
	//alert(document.frmRegister.strSectorIds[selectedIndex]);
	f=document.frmUpdateCandidate;
	

	 if(fn_validateFieldIsEmpty(f, 'strFirstName',  'you must enter a first name') == false
		|| fn_validateFieldIsEmpty(f, 'strLastName',  'you must enter a last name') == false
		|| fn_validateFieldIsEmpty(f, 'strEmail',  'you must enter an e-mail address') == false
		|| fn_isValidEmail(f, 'strEmail',  'enter a valid e-mail address')== false
		|| fn_validateFieldsMatch(f, 'strEmail', 'strEmailConfirm', 'the two e-mail fields') == false
		|| fn_validateDoubleFieldIsEmpty(f, 'strLandline',  'please enter either a', 'strMobile',  'landline or mobile') == false){
		 return false;
	 }
	
	return true
		
}	

		
function ftnUpdateCV(){
	f=document.frmUpdateCandidateCV;
	

	 if(fn_validateFieldIsEmpty(f, 'strUploadCV',  'you must browse to your cv') == false){
		 return false;
	 }
	
	return true
		
}	

