document.write("<script src='../scripts/validation.js' type='text/javascript'></script>")
var valid = {
  username_min: 5,
  username_max: 50,
  username: /(?!^[\.\_]*$)(?!^[\x21-\x40\x5B-\x60\x7B-\x7E]*$)^([a-z0-9]{5,20})$/i,
  username_inv: /^[a-z0-9\.\_]*$/i,
  
  password_min: 5,
  password_max: 50,
  password: /(?!^[a-z]*$)(?!^[\x21-\x40\x5B-\x60\x7B-\x7E]*$)^([\x21-\x7E]{5,20})$/i,
  password_inv: /^[\x21-\x7E]*$/,
  
  email_max: 50,
  email: /^[a-z0-9\-\_\+]+(\.[a-z0-9\-\_\+]+)*\@(([a-z0-9\-\_\+]+(\.[a-z0-9\-\_\+]+)*)(\.[a-z]{2,4})|([0-9]+\.){4}[0-9]+)$/i,
  
  uname: /(?!^[\.\_]*$)(?!^[\x21-\x40\x5B-\x60\x7B-\x7E]*$)^([a-z0-9\.\ +]{3,20})$/i,
  name_min: 3,
  name_max: 50,
  
  area_phone_min: 3,
  area_phone_max: 10,
  cntry_min:2,
  cntry_max:5,
  phone_min: 5,
  phone_max: 10,
  mobile_min: 10,
  mobile_max: 20,
  phone: /^[0-9]+$/i,
  
  keyskill_max: 250,
  resume_max: 70,
  resume: /^[\x20-\x7E]*$/,
  
  cn_min:2,
  cn_max:45
  }

/*validates cover name*/
function validateCoverName(name)
{
	name=trimAll(name.value);
	var error = false;
	if (name == '') error = 'blank_cn';
	else if (name.length < valid.cn_min) error = 'short_cn';
	else if (name.length > valid.cn_max) error = 'long_cn';
	return error;
}
function validateCoverContent(content)
{
	content=trimAll(content.value);
	var error = false;
	if (content == '') error = 'blank_cc';
	return error;
}
/*validates user name*/
function validateUsername(username)
{
	  var error = false;
	  username = username.value;
	  if (username == '') error = 'blank_un';
	  else if (!isValidUsername(username,1)) error = 'bad_un';
	  else if (username.length < valid.username_min) error = 'short_un';
	  else if (username.length > valid.username_max) error = 'long_un';
	  else if (!isValidUsername(username)) error = 'invalid_un';
	  else if (username.match(/^myspace/)) error = 'reserved_un';
	  return error;
}


/*validates user name*/
function isValidUsername(username,typeinv) {
  if (typeinv)
    return !!valid.username_inv.exec(username);
  else
    return !!valid.username.exec(username);
}
/*validates password*/
function validatePassword(password,type) {
  var error = false;
  password = password.value;
  if (password == '') error = 'blank_pswd';
  else if (!isValidPassword(password,1)) error = 'bad_pswd';
  else if (password.length < valid.password_min) error = 'short_pswd';
  else if (password.length > valid.password_max) error = 'long_pswd';
  else if (password.search(/[a-z]/i) == -1) error = 'invalid_pswd_letter';
  return error;
}
/*validates password*/
function isValidPassword(password,typeinv) 
{
  if (typeinv)
    return !!valid.password_inv.exec(password);
  else
    return !!valid.password.exec(password);
}

/*validates confirm password*/
function validatePassword2(password,password2,type) {
  var error = false;
  if (password == '') error = 'blank_pswd2';
  else if (password2 == '') error = 'blank_pswd';
  else if (!isValidPassword(password2,1)) error = 'bad_pswd';
  else if (password2.length < valid.password_min) error = 'short_pswd';
  else if (password2.length > valid.password_max) error = 'long_pswd';
  else if (password2.search(/[a-z]/i) == -1) error = 'invalid_pswd_letter';
  else if (password != password2) error = 'mismatch_pswd2';
  return error;
}

/*validates email*/
function validateEmail(email) {
  var error = false;
  if (email == '') error = 'blank_email';
  else if (email.length > valid.email_max) error = 'bad_email';
  else if (!isValidEmail(email)) error = 'invalid_email';
  return error;
}

/*validates email*/
function isValidEmail(email) {
  return !!valid.email.exec(email);
}
/*validates email*/
function validateAltEmail(email) {
  var error = false;
  if(email.length>0)
  {
	  if (email.length > valid.email_max) error = 'bad_email';
	  else if (!isValidEmail(email)) error = 'invalid_email';
	  else if(email==document.getElementById("email").value) error = 'same_email';
  }
  return error;
}

/*valdates first name*/
function validateName(name){
	var error = false;
	if (name.substring(0,1) == ' ')
	{
		 error = 'bad_username';
	}
	name = trimAll(name);
  if (trimAll(name) == '') error = 'blank_name';
  else if (name.length < valid.name_min) error = 'short_name';
  else if (name.length > valid.name_max) error = 'long_name';
  else if (!isValidname(name)) error = 'bad_username';
  return error;
}

/*valdates first name*/
function isValidname(name){
	return !!valid.uname.exec(name);
}

/*vallidates date*/
function validateDob(date)
{
	var error = false;
	error=isDate(trimAll(date.value));
	return error;
}
function validateSelect(select,val){ 
	var error = false;
	var OptValue=select.substring(0,3);
	if (select == '' || select == "--Select--") error = 'blank_select' + val;
	else if('---'==OptValue) error = 'wrong_select';
	else if(select == 'State30') error = 'blank_selectstate'; //for metro cities
	return error;
}
function validateResPhone(phone){
	var error = false;
	var residence_area=trimAll(document.getElementById("residence_area").value);
	var residence_phoneno=trimAll(document.getElementById("residence_phoneno").value);
	var Mobile=trimAll(document.getElementById("Mobile").value);
	var cntry_code=trimAll(document.getElementById("cntry_code").value);
	
	if (residence_area == "Area Code" && residence_phoneno == "Telephone" && Mobile == "Mobile Number")
	    error = 'blank_contact';
	if (residence_area != "Area Code")
	{ 
		if(residence_area.length<valid.area_phone_min)
			error = 'short_area';
		else if(residence_area.length>valid.area_phone_max)
			error = 'long_area';
		else if (!isValidPhone(residence_area))
			error = 'invalid_area';
		else if (residence_area != "" && residence_phoneno == "Telephone")
	    	error = 'enter_res';
	}
	if (residence_phoneno != "Telephone")
	{ 
			
			if (!isValidPhone(residence_phoneno)) 
				error = 'invalid_area';
			else if(residence_phoneno.length < valid.phone_min)
			{			
				error = 'short_ph'; 
			}
			else if (residence_phoneno.length > valid.phone_max)
			{
				error = 'long_ph';
			}
			else if(residence_area == "Area Code")
			{
				error = 'enter_area';
			}
			
	}
	/*if (cntry_code != "Cntry Code")
	{ 
		if(cntry_code.length<valid.cntry_min)
			error = 'short_cntry';
		else if(cntry_code.length>valid.cntry_max)
			error = 'long_cntry';
		else if (!isValidPhone(cntry_code))
			error = 'invalid_phoneno';
		else if (Mobile != "" && Mobile == "Mobile Number")
	    	error = 'enter_mob';
	}*/
	if (Mobile != "Mobile Number")
	{ 
		if(Mobile.substring(0,1)=="0")
		{
			error='pre_zero';
		}
		else if (Mobile.length < valid.mobile_min)
		{
			error = 'short_mob';
		}
		else if (Mobile.length > valid.mobile_max)
		{
			error = 'long_mob';
		}
		else if (!isValidPhone(Mobile)) 
		{
			error ='invalid_phoneno';
		}
		else if(cntry_code == "Cntry Code" || cntry_code == "")
		{
			error = 'enter_cntry';
		}
		else if (!isValidPhone(cntry_code))
			error = 'invalid_phoneno';
	}
	
	return error;
	
}
function validateArea(phone){ 
	var error = false;
	if (phone == "Area Code" && document.getElementById("residence_phoneno").value == "Telephone" && document.getElementById("Mobile").value == "Mobile Number")
	    error = 'blank_contact';
	else if (phone.length < valid.area_phone_min)
		error = 'short_area';
    else if (phone.length > valid.area_phone_max)
	    error = 'long_area';
	else if (!isValidPhone(phone))
		error = 'invalid_area';
	else if (phone != "" && document.getElementById("residence_phoneno").value == "Telephone")
	    error = 'enter_res';
	else if (phone != "Area Code" && phone != "" && document.getElementById("residence_phoneno").value == "Telephone" && document.getElementById("Mobile").value != "Mobile Number")
	{
		error = 'only_area_no_resphone';
	}
	else if (document.getElementById("residence_phoneno").value != "Telephone"){ 
			if (!isValidPhone(document.getElementById("residence_phoneno").value)) error = 'invalid_area';
			else if(document.getElementById("residence_phoneno").value.length < valid.phone_min)
			{
				error = 'short_ph'; //return error;
			}
			
	}
	
	return error;
}
function isValidPhone(phone) {
	if(phone != "")
	  return !!valid.phone.exec(phone);
	else return true;
}

function validatePhone(phone)
{
	var error = false;
	if (phone == "Telephone" && document.getElementById("residence_area").value == "Area Code" && document.getElementById("Mobile").value == "Mobile Number")
	{
	    error = 'blank_contact';
		return error;
	}
	else if (phone == "" && document.getElementById("residence_area").value != "")
	{
	    error = 'enter_res';
		return error;
	}
	else if (phone.length < valid.phone_min  && phone != "")
	{
		error = 'short_ph';
		return error;
	}
    else if (phone.length > valid.phone_max && phone != "Telephone")
	{
	    error = 'long_ph';
		return error;
	}
	else if (phone != "" && document.getElementById("residence_area").value == "Area Code"){
	    if(!isValidPhone(phone))  
		{
			error = 'invalid_area';return error;
		}
		else
		{
			error = 'enter_area';
			return error;
		}
	}
	else if (!isValidPhone(phone) && phone != "")
	{
		error = 'invalid_area';
		return error;
	}
	else if(document.getElementById("residence_area").value.length <valid.area_phone_min)
	{
		error = 'short_area'; 
		return error;
	}
 
}
function validateMobile(phone){
	 var error = false; 
	if(document.getElementById("residence_area") && document.getElementById("residence_phoneno")){
		 if(document.getElementById("residence_area").value == "Area Code" && document.getElementById("residence_phoneno").value == "Telephone" && phone == "Mobile Number")
		{
			error = "blank_contact"; 
		}
	}
	if (phone != "Mobile Number" && phone.length < valid.mobile_min)
	{
		error = 'short_mob';
	}
	if (phone != "Mobile Number" && phone.length > valid.mobile_max)
	{
	    error = 'long_mob';
	}
	if (!isValidPhone(phone) && phone != "Mobile Number") 
	{
		error ='invalid_phoneno';
	}
	return error;

}
function validateSms(sms,mobile){
	var error = false;
	if (sms && mobile == "Mobile Number") error = 'blank_mobile';
	else if(mobile != "Mobile Number" || document.getElementById("residence_area").value != "Area Code" || document.getElementById("residence_phoneno").value != "Telephone")error = validateMobile(mobile);
	 return error;
}

function validateContact(a_c,p_c,m_c){
	var error = false;
	var residence_area=trimAll(document.getElementById("residence_area").value);
	var residence_phoneno=trimAll(document.getElementById("residence_phoneno").value);
	var Mobile=trimAll(document.getElementById("Mobile").value);
	var cntry_code=trimAll(document.getElementById("cntry_code").value);
	
	if (residence_area == "Area Code" && residence_phoneno == "Telephone" && Mobile == "Mobile Number")
	    error = 'blank_contact';
	if (residence_area != "Area Code")
	{ 
		if(residence_area.length<valid.area_phone_min)
			error = 'short_area';
		else if(residence_area.length>valid.area_phone_max)
			error = 'long_area';
		else if (!isValidPhone(residence_area))
			error = 'invalid_area';
		else if (residence_area != "" && residence_phoneno == "Telephone")
	    	error = 'enter_res';
	}
	if (residence_phoneno != "Telephone")
	{ 
			
			if (!isValidPhone(residence_phoneno)) 
				error = 'invalid_area';
			else if(residence_phoneno.length < valid.phone_min)
			{			
				error = 'short_ph'; 
			}
			else if (residence_phoneno.length > valid.phone_max)
			{
				error = 'long_ph';
			}
			else if(residence_area == "Area Code")
			{
				error = 'enter_area';
			}
			
	}
	/*if (cntry_code != "Cntry Code")
	{ 
		if(cntry_code.length<valid.cntry_min)
			error = 'short_cntry';
		else if(cntry_code.length>valid.cntry_max)
			error = 'long_cntry';
		else if (!isValidPhone(cntry_code))
			error = 'invalid_phoneno';
		else if (Mobile != "" && Mobile == "Mobile Number")
	    	error = 'enter_mob';
	}*/
	if (Mobile != "Mobile Number")
	{ 
		if (Mobile.length < valid.mobile_min)
		{
			error = 'short_mob';
		}
		else if (Mobile.length > valid.mobile_max)
		{
			error = 'long_mob';
		}
		else if (!isValidPhone(Mobile)) 
		{
			error ='invalid_phoneno';
		}
		else if(cntry_code == "Cntry Code" || cntry_code == "")
		{
			error = 'enter_cntry';
		}
		else if (!isValidPhone(cntry_code))
			error = 'invalid_phoneno';
	}
	return error;
}

function validateQual(qualification,eduRow)
{
	var error = false;
	if(trim(qualification.value).length==0 || trim(document.getElementById("specialisation"+eduRow).value).length==0 || trim(document.getElementById("yop"+eduRow).value).length==0)
		error='spec_yop';
	return 	error;
}
function validateKeySkill(id,skillRow)
{
	var error = false;
	if(trim(id.value).length==0 || trim(document.getElementById("lastUsed"+skillRow).value).length==0 || trim(document.getElementById("proficiencyLevel"+skillRow).value)=='' || trim(document.getElementById("years"+skillRow).value)=='' || trim(document.getElementById("months"+skillRow).value)=='')
		error='skill_msg';
	if(isNaN(trim(document.getElementById("lastUsed"+skillRow).value)) || trim(document.getElementById("lastUsed"+skillRow).value).length<4)
		error='enter_num_lastUsed';
	
	return 	error;
}
function validateReference(id,refRow)
{
	
	var error = false;
	var email=trim(document.getElementById("email"+refRow).value);
	var phone=trim(document.getElementById("phone"+refRow).value);
	
	if(trim(id.value).length>0)
	{
		if(phone.length==0 && email.length==0)
			error='ref_msg';
	}
	if(phone.length>0)
	{
		if(!(isValidPhone(phone)))
			error='invalid_phoneno';
	}
	if(email.length>0)
	{
		if (email.length > valid.email_max) error = 'bad_email';
	 	else if (!isValidEmail(email)) error = 'invalid_email';
	}
	
	return 	error;
}
function isValidResumeName(name) {
  return !!valid.resume.exec(name);
}
function validateResumeName(name) {
  var error = false;
  if (trimAll(name) == '' || !name) error = 'blank_rname';
  else if(name.substring(0,1) == ' ') error = 'invalid_rname';
  else if (!isValidResumeName(name)) error = 'invalid_rname';
  else if (name.length > valid.resume_max) error = 'long_rname';
  return error;
}
function validateFileName(filename,types) {
  var error = false;
  if (filename == '') error = 'blank_file';
  else if (!isValidFileType(filename,types)) 
	{ 
	  error = 'type_file';
	}
  return error;
}
function isValidFileType(filename,types) {
  if (!types) return true; 
  var ext = types.split(",");
  for (var i=0; i<ext.length; i++) { 
    var re = new RegExp('^.*\.'+ext[i]+'$');
    if (filename.match(re)) return true;
  }
  return false;
}
function validateExp(y,m){ 
	var error = false;
	if(y == "Years" && m == "Months") error = 'blank_exp';
	else if(y == "Years") error = 'blank_y';
	else if(m == "Months") error = 'blank_m';
	return error;
}
function validatekey(key)
{
	var error = false;
	if(trimAll(key) == "") error = 'blank_key';
	else if(key.substring(0,1) == ' ' || key.substring(0,1) == '\n' || key.substring(0,1).charCodeAt(0) == '13' || key.substring(0,1).charCodeAt(0) == '10') error = 'invalid_key';
	else if (key.length > valid.keyskill_max) error = 'keyskill_max';
	return error;
}
function validatePrefLoc(obj,val)
{
	var error = false;
	var len = obj.length;
	var selected=0;
	for (i = 0; i < len; i++) 
	{
		if(obj.options[i].selected==true)
		{
			selected++;
		}

	}
	if(selected==0 || obj.value=="0") 
	{
		error = 'blank_select' + val;
	}
	return error;
}
/*valdates role*/
function validateRole(role){
	var error = false;
	if (role.substring(0,1) == ' ')
	{
		 error = 'bad_role';
	}
	role = trimAll(role);
  if (trimAll(role) == '') error = 'blank_role';
  return error;
}
/*valdates year of passing*/
function validateYop(yop){
	var error = false;
	yop = trimAll(yop);
  if (trimAll(yop) == '') error = 'blank_yop';
  else if(isNaN(yop)) error = 'bad_yop';
  return error;
}

/*valdates employer*/
function validateEmployer(employer){
	var error = false;
	if (employer.substring(0,1) == ' ')
	{
		 error = 'bad_employer';
	}
	 employer = trimAll(employer);
	 if (trimAll(employer) == '') error = 'blank_employer';
	 return error;
}
function trimAll(sString)
{

	while (sString.substring(0,1) == ' ')
	{
	sString = sString.substring(1, sString.length);
	}
	while (sString.substring(sString.length-1, sString.length) == ' ')
	{
	sString = sString.substring(0,sString.length-1);
	}
	return sString;
}