// function to check posted values for login form
function check_login()
{
	if(document.frmLogin.txt_login.value == "")
	{
		alert("Login name cannot be left blank");
		document.frmLogin.txt_login.focus();
		return false;
	}
	if(document.frmLogin.txt_password.value == "")
	{
		alert("Password cannot be left blank");
		document.frmLogin.txt_password.focus();
		return false;
	}
}



// function to get extension of browsed file
function getExtension(value) 
{
	var mytext = value.substring(value.lastIndexOf('.') + 1,value.length);
	return mytext.toLowerCase();
}

// FUNCTION: TO REMOVE LEADING SPACES //
function removeLeadingSpaces(str)
{
   var whitespace = new String(" \t\n\r");
   var s = new String(str);

   if (whitespace.indexOf(s.charAt(0)) != -1)
    {
      var j=0, i = s.length;
      while (j < i && whitespace.indexOf(s.charAt(j)) != -1)  j++;
      s = s.substring(j, i);
    }
   return s;
}



// FUNCTION: This method is used to remove Trailing spaces.
// It takes argument of the string which Trailing Spaces has to removed.

function removeTrailingSpaces(str)
{
   var whitespace = new String(" \t\n\r");
   var s = new String(str);

   if (whitespace.indexOf(s.charAt(s.length-1)) != -1)
   {
      var i = s.length - 1;       // Get length of string
      while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1) i--;

      // Get the substring from the front of the string to
      // where the last non-whitespace character is...
      s = s.substring(0, i+1);
   }

   return s;
}

// Removes both Leading and Trailing blanks.
function removeAllSpaces(str)
{
   str = removeLeadingSpaces(str); //Remove Leading Spaces
   str = removeTrailingSpaces(str); //Remove Trailing Spaces
   return str;
}

function validatelist(fval,hidfield,type,othfld)
{
	 var c=0;
	 var f=0;
	 for(i=0;i<fval.length;i++)
	 {
	 	
	 	if(fval.options[i].selected==true)
	 	{
	 		list_array += fval.options[i].value + ","; 
	 	 	if(fval.options[i].value=="others")
	 	 	{
	 	 	 f++;
	 	 	}
		 	c++;
	 	}
	 	else{
             continue; 	 		   
	 		}
	 }	
	 if(c==0 && fval.value==""){
	  alert("Please select "+type+" from the list.");
	  fval.focus();
	  return false;
	 }
	 if(c>0){
	  if(c>2){
	  alert("Please select only two "+type+" from the list.");
	  fval.focus();
	  return false;	
	  }else if(f>0 && othfld.value==""){
	  	alert("Please provide other "+type+" name.");
	  	othfld.focus();
	    return false;	
	  }else{	
	  list_array = list_array.substr(0,list_array.length-1);	 
	  hidfield.value = list_array;
	 // alert(industry_array);
	   }
	 }
}	 

// FUNCTION FOR EMAIL VALIDATION //	 
function checkmail(email)
{
	//var str=formObject.txt_email.value;
	var str = email.value;
	var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
	if (filter.test(str)){
	return true;
	}
	else{
	alert("Please input a valid email address!");
	email.focus();
	return false;
	}
	
}

function validatePasswordForm(formObject)
{
	if(formObject.txt_oldpassword.value=="")
	{
		alert("Please provide old password.");
		formObject.txt_oldpassword.focus();
		return false;
	}
	
	if(formObject.txt_newpassword.value=="")
	{
		alert("Please provide new password.");
		formObject.txt_newpassword.focus();
		return false;
	}else if(formObject.txt_newpassword.value.length<4){
		alert("The given Password is too short. Please ensure that at least 4 characters are given.");
		formObject.txt_newpassword.focus();
		return false;
	}
	
	if(formObject.txt_confirmpassword.value=="")
	{
		alert("Please confirm your password.");
		formObject.txt_confirmpassword.focus();
		return false;
	}
	
	if(formObject.txt_newpassword.value!="" && formObject.txt_confirmpassword.value!="")
	{
		if(formObject.txt_newpassword.value != formObject.txt_confirmpassword.value)
		{
		alert("Confirm Password does not match the Password given earlier.");
		formObject.txt_confirmpassword.focus();
		return false;
	    }
	}  
}

function trim(data)
{
	
// triming from right
while(''+data.value.charAt(data.value.length-1)=='')

data.value=data.value.substring(0,data.value.length-1);
// triming from left
while(''+data.value.charAt(0) == ' ')

data.value=data.value.substring(1,data.value.length);
}


// javascript function to select all checkboxes on selection of a single checkbox //
function selectAll(formObject)
{
//alert("ab"+formObject.selectall.checked );	
   var flag = "";
  if(formObject.selectall.checked == true)
     flag = "true";
  else
     flag = "false";
  
  	var len = formObject.checkbox.length;
  	if(len > 1)
  	{
  	for(var i=0;i<len;i++)
  	if(flag == "true")
  	  formObject.checkbox[i].checked = true;
  	else
  	 formObject.checkbox[i].checked = false;
  	
  	}
  	else  	
  	{
  	  if(flag == "true")
  	  formObject.checkbox.checked = true;
  	else
  	  formObject.checkbox.checked = false;
  	}
}


// function to remove checkbox selection //
function RemoveSelection(formObject)
{
	
	var flag1 = 0;
	var flag2 = 0;
	var len = formObject.checkbox.length;
	//alert(len);
  	if(len > 1)
  	{
  	for(var i=0;i<len;i++)
  	{
  		if(formObject.selectall.checked == true){
	  		
	  	if(formObject.checkbox[i].checked == false){
	  		flag1=1;
	  	  }
	  	}
	  	else{
	  	if(formObject.checkbox[i].checked == false){
	  		flag1=2;
	  	  }	
	  	}
	  	
  	}
  	if(flag1==1){formObject.selectall.checked = false;}
  	if(flag1==0){formObject.selectall.checked = true;}
  }
}

// function to make list of selected items//
function make_list(formObject)
{
	var len = formObject.checkbox.length;
	var str = "";
	if(len=="")
	len = 0;	
  	if(len > 1)
  	{
  	for(var i=0;i<len;i++){
  	if(formObject.checkbox[i].checked==true)  		
	  	 str += formObject.checkbox[i].value+",";
	 }
  	str = str.substr(0,str.length-1); 
  	}
  	else{  	
  	if(formObject.checkbox.checked==true)
  	str = formObject.checkbox.value;
  	}
  	
  	return str;
}


// function to alert warning at the time of job deletion //
function remove_user()
{
	var list = make_list(document.frmjoblist);
	if(list == "")
	{
		alert("Please Select a job to delete!");
		return false;
	}
	if(confirm("Are you sure you want to delete?"))
	{ 
		document.frmjoblist.hidAction.value = 2;
		document.frmjoblist.hidList.value = list;
		document.frmjoblist.submit();
	}
}

// function to alert warning at the time of job deletion //
function apply_jobs()
{
	var list = make_list(document.frmjoblist);
	if(list == "")
	{
		alert("Please Select a job to apply!");
		return false;
	}
	if(confirm("Are you sure you want to apply for selected job?\nAction once performed can't be undone."))
	{ 
		document.frmjoblist.hidAction.value = 2;
		document.frmjoblist.hidList.value = list;
		
		document.frmjoblist.submit();
	}
}


// function to alert warning at the time of job deletion //
function apply_jobs1()
{
	var list = make_list(document.frmResumeList);
	if(list == "")
	{
		alert("Please Select a job to apply!");
		return false;
	}
	if(confirm("Are you sure you want to apply for selected job?\nAction once performed can't be undone."))
	{ 
		document.frmResumeList.hidAction.value = 2;
		document.frmResumeList.hidList.value = list;
		
		document.frmResumeList.submit();
	}
}

// function to alert warning at the time of mark jobs as favourite //
function mark_favorite()
{
	var list = make_list(document.frmjoblist);
	if(list == "")
	{
		alert("Please Select a job to mark as favorite!");
		return false;
	}
	if(confirm("Are you sure you want to save selected job(s) in favorite?"))
	{ 
		document.frmjoblist.hidAction.value = 3;
		document.frmjoblist.hidList.value = list;
		document.frmjoblist.submit();
	}
}

// function to alert warning at the time of mark jobs as favourite //
function mark_favorite1(formObject)
{
	var list = make_list(formObject);
	if(list == "")
	{
		alert("Please Select a job to mark!");
		return false;
	}
	if(confirm("Are you sure you want to save selected resume(s) in favorite?"))
	{ 
		formObject.hidAction.value = 3;
		formObject.hidList.value = list;
		formObject.submit();
	}
}

// function check password update form
function checkChangePassword()
{
	if(document.frmChangePass.txt_old_pass.value == "")
	{
		alert("Old password could not be left blank");
		document.frmChangePass.txt_old_pass.focus();
		return false;
	}
	if(document.frmChangePass.txt_new_pass.value == "")
	{
		alert("New password could not be left blank");
		document.frmChangePass.txt_new_pass.focus();
		return false;
	}
	else
	{
		if(document.frmChangePass.txt_new_pass.value.length < 4)
		{
			alert("Password should contain more then four characters");
			document.frmChangePass.txt_new_pass.focus();
			return false;
		}
	}
	if(document.frmChangePass.txt_confirm_new_pass.value == "")
	{
		alert("Please confirm your new password");
		document.frmChangePass.txt_confirm_new_pass.focus();
		return false;
	}
	else
	{
		if(document.frmChangePass.txt_confirm_new_pass.value.length < 4)
		{
			alert("Password should contain more then four characters");
			document.frmChangePass.txt_confirm_new_pass.focus();
			return false;
		}
		else if(document.frmChangePass.txt_new_pass.value != document.frmChangePass.txt_confirm_new_pass.value)
		{
			alert("Passwords mismatch!");
			document.frmChangePass.txt_new_pass.value = "";
			document.frmChangePass.txt_new_pass.focus();
			document.frmChangePass.txt_confirm_new_pass.value = "";
			return false;
		}
	}
}

// validate job provider's registration form
function validateEmployer(formObject)
{
	var re = /[-<\#^@$%&*()!:;".}/{|>=]/g;
	if(removeAllSpaces(formObject.txt_username.value)=="")
	{
		alert("Please provide username.");
		formObject.txt_username.focus();
		return false;
	}
	if(formObject.flag.value == "")
	{
		if(formObject.txt_password.value=="")
		{
			alert("Please provide password.");
			formObject.txt_password.focus();
			return false;
		}else if(formObject.txt_password.value.length<4){
			alert("The given Password is too short. Please ensure that at least 4 characters are given.");
			formObject.txt_password.focus();
			return false;
		 	
		}
		if(formObject.txt_confirmpassword.value=="")
		{
			alert("Please confirm your password.");
			formObject.txt_confirmpassword.focus();
			return false;
		}
		if(formObject.txt_password.value!="" && formObject.txt_confirmpassword.value!="")
		{
			if(formObject.txt_password.value != formObject.txt_confirmpassword.value)
			{
			alert("Confirm Password does not match the Password given earlier.");
			formObject.txt_confirmpassword.focus();
			return false;
		    }
		}
	}	
    if(removeAllSpaces(formObject.txt_companyname.value)=="")
	{
		alert("Please provide company name.");
		formObject.txt_companyname.focus();
		return false;
	}
	// email validation //
	if(formObject.txt_email.value=="")
	{
	 alert("Please provide email address.");
	 formObject.txt_email.focus();
	 return false;
	}else{
	var str=formObject.txt_email.value;
	var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i 
	if (!filter.test(str)){
	alert("Please input a valid email address!");
	formObject.txt_email.focus();
	return false;
	}
	}
	
	if(formObject.txt_industrytype.value=="")
	{
		alert("Please select industry type from the list.");
		formObject.txt_industrytype.focus();
		return false;
	}
	if(formObject.txt_industrytype.value=="others" && removeAllSpaces(formObject.txt_othindustrytype.value)=="")
	{
	 	alert("Please provide other industry type.");
	 	formObject.txt_othindustrytype.focus();
	 	return false;
	}
	if(formObject.txt_industrytype.value!="others" && removeAllSpaces(formObject.txt_othindustrytype.value)!="")
	{
	 	alert("Please select 'Others' from the industry type list.");
	 	formObject.txt_industrytype.focus();
	 	return false;
	}
	
	if(formObject.txt_contactperson.value!="" && re.test(formObject.txt_contactperson.value))
	{
		alert("Special characters are not allowed in contact person name.");
		formObject.txt_contactperson.focus();
		return false;
	}
	if(formObject.txt_designation.value!="" && re.test(formObject.txt_designation.value))
	{
		alert("Special characters are not allowed in designation.");
		formObject.txt_designation.focus();
		return false;
	}
	
	// URL validation
	if(formObject.txt_websiteurl.value!="")
	{
	 urlStr = formObject.txt_websiteurl.value;
	 urlStr1 = formObject.txt_websiteurl;
	if (urlStr.indexOf(" ")!=-1){
		alert("Spaces are not allowed in a URL");
		urlStr1.focus();
		return false;
	}
	if(urlStr==""||urlStr==null){
		return false;
	}
		urlStr=urlStr.toLowerCase();
		var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
		var validChars="\[^\\s" + specialChars + "\]";
		var atom=validChars + '+';
		var urlPat=/^http:\/\/(\w*)\.([\-\+a-z0-9]*)\.(\w*)/;
		var matchArray=urlStr.match(urlPat);
	if (matchArray==null){
		alert("The URL seems incorrect, check it begins with http:// and it has 2 .'s");
		urlStr1.focus();
		return false;
	}
	var user=matchArray[2];
	var domain=matchArray[3];
	for (i=0; i<user.length; i++) {
	if (user.charCodeAt(i)>127) {
		alert("This domain contains invalid characters.");
		urlStr1.focus();
		return false;
	  }
	}
	for (i=0; i<domain.length; i++) 
	{
	if (domain.charCodeAt(i)>127) {
		alert("This domain name contains invalid characters.");
		urlStr1.focus();
		return false;
		}
	}
	var atomPat=new RegExp("^" + atom + "$");
	var domArr=domain.split(".");
	var len=domArr.length;for (i=0;i<len;i++) 
	 {
		if (domArr[i].search(atomPat)==-1) 
		{
			alert("The domain name does not seem to be valid.");
			urlStr1.focus();
			return false;
		}
	 }
   }
	
	if(formObject.txt_address.value=="")
	{
		alert("Please provide address.");
		formObject.txt_address.focus();
		return false;
	}else{
	 
	  if(formObject.txt_address.value.length>200){
	  	alert("Please provide address with in 200 characters.");
	  	formObject.txt_address.focus();
	  	return false;
	  }	
	}
	
	if(removeAllSpaces(formObject.txt_city.value)=="")
	{
		alert("Please provide city name.");
		formObject.txt_city.focus();
		return false;
	}else if(re.test(formObject.txt_city.value))
	{
		alert("Special characters are not allowed in city name.");
		formObject.txt_city.focus();
		return false;
	}
	if(removeAllSpaces(formObject.txt_state.value)=="")
	{
		alert("Please provide state name.");
		formObject.txt_state.focus();
		return false;
	}else if(re.test(formObject.txt_state.value))
	{
		alert("Special characters are not allowed in state name.");
		formObject.txt_state.focus();
		return false;
	}
	
	// country name
//	if(formObject.txt_country.value=="" && removeAllSpaces(formObject.txt_othcountry.value)=="")
//	{
//		alert("Please select country from the list.");
//		formObject.txt_country.focus();
//		return false;
//	}
	if(formObject.txt_country.value=="others" && removeAllSpaces(formObject.txt_othcountry.value)=="")
	{
	 	alert("Please provide country name.")
	 	formObject.txt_othcountry.focus();
	 	return false;
	}
	if(formObject.txt_country.value!="others" && removeAllSpaces(formObject.txt_othcountry.value)!="")
	{
	 	alert("Please select 'Others' from the Country list.");
	 	formObject.txt_othcountry.focus();
	 	return false;
	}
	if(removeAllSpaces(formObject.txt_othcountry.value)!="" && re.test(formObject.txt_othcountry.value))
	{
	 	alert("Special characters are not allowed in country name.");
	 	formObject.txt_othcountry.focus();
	 	return false;
	}
	
	// PHONE NUMBER VALIDATION//
//	if(removeAllSpaces(formObject.txt_countrycode.value)==""){
//		alert("Please provide country code");
//		formObject.txt_countrycode.focus();
//	  	return false;
//	}
//	else 
	if(isNaN(formObject.txt_countrycode.value))
	  {
	  	alert("Please provide numeric value for country code.");
	  	formObject.txt_countrycode.value = "";
	  	formObject.txt_countrycode.focus();
	  	return false;
	  }	
	
//    if(removeAllSpaces(formObject.txt_areacode.value)==""){
//        alert("Please provide area code.");
//    	formObject.txt_areacode.focus();
//	  	return false;
//    }else if(isNaN(formObject.txt_areacode.value))
//	  {
//	  	alert("Please provide numeric value for area code.");
//	  	formObject.txt_areacode.value = "";
//	  	formObject.txt_areacode.focus();
//	  	return false;
//	  }	
	
	if(removeAllSpaces(formObject.txt_phone1.value)==""){
		alert("Please provide phone number 1.")
		formObject.txt_phone1.focus();
	  	return false;
	}
	else if(isNaN(formObject.txt_phone1.value))
	  {
	  	alert("Please provide numeric value for Phone number 1");
	  	formObject.txt_phone1.value = "";
	  	formObject.txt_phone1.focus();
	  	return false;
	  }	
	if((formObject.txt_phone2.value != "") && isNaN(formObject.txt_phone2.value))
	  {
	  	alert("Please provide numeric value for Phone number 2");
	  	formObject.txt_phone2.value = "";
	  	formObject.txt_phone2.focus();
	  	return false;
	  }	  
	  
	//return false;  
}


// function to validate job posting form
function validateJobPost(formObject)
{

  var re = /[<\#^@$%*()!:;"}{|>=]/g;	
  var re1 = /[-<\#^@$%&*()!:;'".}/{|>=]/g;
  var re2 = /[<\#^@$%&*()!:;+_~`'".}/{|>=]/g;
  if(formObject.name=="frmjobpost"){
  if(formObject.txt_company.value=="")
	{ 
		 alert("Please select company name from the list.");
		 formObject.txt_company.focus();
		 return false;
	}
  }
/*  if(removeAllSpaces(formObject.txt_jobcode.value)=="")
	{ 
		 alert("Please provide jobcode.");
		 formObject.txt_jobcode.focus();
		 return false;
	}*/
  if(re2.test(formObject.txt_jobcode.value))
     {
	  alert("Special characters are not allowed in job code.");
	  formObject.txt_jobcode.focus();
	  return false;
     }	
  
  if(removeAllSpaces(formObject.txt_jobtitle.value)=="")	
  { 
  	alert("Please provide job title.");
  	formObject.txt_jobtitle.focus();
  	return false;
  }
  else if(re.test(formObject.txt_jobtitle.value))
  {
	  alert("Special characters are not allowed in job title.");
	  formObject.txt_jobtitle.focus();
	  return false;
  }
  if(removeAllSpaces(formObject.txt_jobdescription.value)=="")	
  {
  	alert("Please provide job description.");
  	formObject.txt_jobdescription.focus();
  	return false;
  }
  if(removeAllSpaces(formObject.txt_keyskills.value)=="")	
  {
  	alert("Please provide key skills.");
  	formObject.txt_keyskills.focus();
  	return false;
  }
  /*else if(re.test(formObject.txt_keyskills.value))
  {
	  alert("Special characters are not allowed in key skills.");
	  formObject.txt_keyskills.focus();
	  return false;
  }*/
  if(formObject.txt_jobsalary.value!="")
  { 
	 if(removeAllSpaces(formObject.txt_jobsalary.value)=="")	{
	 alert("Please provide salary properly.");
	 formObject.txt_jobsalary.focus();
	 return false;
	}
	else if(re1.test(formObject.txt_jobsalary.value))
    {
	  alert("Special characters are not allowed in salary.");
	  formObject.txt_jobsalary.focus();
	  return false;
    } 
  }
  if(formObject.txt_maxyearexp.value=="" && formObject.txt_maxmonthexp.value=="")	
  {
  	alert("Please select maximum experience.");
  	formObject.txt_maxyearexp.focus();
  	return false;
  }
  if(formObject.txt_lastdate.value=="")	
  {
  	alert("Please define Last date of submission for this job.");
  	formObject.txt_lastdate.focus();
  	return false;
  }
}

// function to invite one or more resumes
function invite_resumes()
{
	var list = make_list(document.frmResumeList);
	if(list == "")
	{
		alert("Please Select a resume to invite!");
		return false;
	}
	if(confirm("Are you sure you want invite selected resumes for job interview?\nAction once performed can't be undone."))
	{ 
		document.frmResumeList.hidAction.value = 2;
		document.frmResumeList.hidList.value = list;	
		document.frmResumeList.submit();
	}
}

// function to validate advance search form
function validateAdvanceSearch(frmObj)
{
	if(frmObj.txt_jobtitle.value == "" && frmObj.txt_industrytype.value == "" && frmObj.location.value == "" && frmObj.experience.value == "null")
	{
		alert("Please specify at least one search criteria");
		return false;
	}
}