function validate_email(field) {
	field=trim(field); 
	var emailFilter=/^.+@.+\..{2,3}$/;
	var illegalChars= /[\!\"\£\$\%\^\&\*\+\=\{\}\~\#\?\(\)\<\>\,\;\:\\\/\"\[\]\ ]/;
	
	if ((!(emailFilter.test(field))) || (field.match(illegalChars))) {
		return 0;
	} else {
		return 1;
	}
}

function trim (str) {
	str = this != window? this : str;
	return str.replace(/^\s+|\s+$/g,"");
}

function validate_date(date_value) {
  var slash_c = 0;
  var double_point_c = 0;
  var space_c = 0;
  var number_c = 0;
  var date_arr = "1234567890-: ";
  var valid = true;
  
  for (c = 0; c < date_value.length; c++) {
    if (date_arr.indexOf(date_value.substr(c, 1)) != -1) {
      if (date_value.substr(c, 1) == "/") {
        slash_c = slash_c + 1;
      } else if (date_value.substr(c, 1) == ":") {
        double_point_c = double_point_c + 1;
      } else if (date_value.substr(c, 1) == " ") {
        space_c = space_c + 1;
      } else {
        number_c = number_c + 1;
      }
    } else {
      valid = false;
    }
  }
  
  if (!valid || slash_c > 2 || double_point_c > 2 || space_c > 1) {
    return false;
  } else {
    return true;
  }
}
function validate_form(formName) {
  var msg = '';
  var valid = true;
  var form_number = 1;
  var arr = new Array ('first_name', 'last_name', 'email', 'username', 'password', 'password_retype', 'title_', 'city_', 'state_', 'type', 'recruiter', 'salary_', 'description_', 'start_date', 'primary_phone', 'address', 'city', 'state', 'education', 'experience', 'home_phone', 'cell_phone');
  var arr2 = new Array;
  arr2[arr[0]] = 'First Name';
  arr2[arr[1]] = 'Last Name';
  arr2[arr[2]] = 'Email address';
  arr2[arr[3]] = 'Login';
  arr2[arr[4]] = 'Password';
  arr2[arr[5]] = 'Retype password';
  arr2[arr[6]] = 'Title';
  arr2[arr[7]] = 'City';
  arr2[arr[8]] = 'State';
  arr2[arr[9]] = 'Type';
  arr2[arr[10]] = 'Recruiter';
  arr2[arr[11]] = 'Salary';
  arr2[arr[12]] = 'Description';
  arr2[arr[13]] = 'Start Date';
  arr2[arr[14]] = 'Primary phone';
  arr2[arr[15]] = 'Address';
  arr2[arr[16]] = 'City';
  arr2[arr[17]] = 'State';
  arr2[arr[18]] = 'Education';
  arr2[arr[19]] = 'Experience';
  arr2[arr[20]] = 'Home phone';
  arr2[arr[21]] = 'Cell phone';

  if (formName == 'register') {
    var exts = new Array ('txt', 'doc', 'docx', 'xls', 'xlsx', 'pdf');
    //var filename = document.getElementById("filename").value;
    var filename = document.register.userfile.value;
    
    function getExt(filename) {
      var dot_pos = filename.lastIndexOf(".");
      if(dot_pos == -1)
        return "";
      return filename.substr(dot_pos+1).toLowerCase();
    }
    if (filename != '') {
      var ext = getExt(filename);
      var fileOK = 0;
      for (i = 0; i < exts.length; i++) {
        if (exts[i] == ext) {
          fileOK = 1; // one of the file extensions found
        } 
      }
    }
    if (fileOK == 0) { 
      msg += 'Entered file type is not valid.\nFile type should be: ';
      for (c = 0; c < exts.length-1; c++) {
        msg += exts[c] + ', ';
      }
      msg += exts[exts.length-1] + '\n';
      valid = false;
    }
    
    for (i = 0; i < document.register.elements.length; i++) {
      if (document.register.elements[i].name == 'first_name' 
        || document.register.elements[i].name == 'last_name' 
        || document.register.elements[i].name == 'email'
        || document.register.elements[i].name == 'username'
        || document.register.elements[i].name == 'password'
        || document.register.elements[i].name == 'password_retype'
        || document.register.elements[i].name == 'home_phone'
        || document.register.elements[i].name == 'cell_phone') {
        if (!trim(document.register.elements[i].value)) {
          msg += 'The ' + arr2[document.register.elements[i].name] + ' field is mandatory\n';
          valid = false;
        } else if (document.register.elements[i].name == 'email' 
                  && !validate_email(document.register.elements[i].value)) {
          msg += 'Enter a valid ' + arr2[document.register.elements[i].name] + '\n';
          valid = false;
        } else if (document.register.elements[i].name == 'password' 
                && document.register.password_retype.value != document.register.elements[i].value) {
        msg += 'Password confirmation is not equal to password\n';
        valid = false;
      }
      }
    }
  } else if (formName == 'edit_candidate_profile') {
		//alert('edit_candidate_profile');
    var exts = new Array ('txt', 'doc', 'docx', 'xls', 'xlsx', 'pdf');
    if (document.getElementById("filename")) {
			var filename = document.getElementById("filename").value;
		}
		if (document.edit_candidate_profile.userfile) {
			var filename = document.edit_candidate_profile.userfile.value;
		}
    
    function getExt(filename) {
      var dot_pos = filename.lastIndexOf(".");
      if(dot_pos == -1)
        return "";
      return filename.substr(dot_pos+1).toLowerCase();
    }
    if (filename != '') {
      var ext = getExt(filename);
      var fileOK = 0;
      for (i = 0; i < exts.length; i++) {
        if (exts[i] == ext) {
          fileOK = 1; // one of the file extensions found
        } 
      }
    }
    if (fileOK == 0) { 
      msg += 'Entered file type is not valid.\nFile type should be: ';
      for (c = 0; c < exts.length-1; c++) {
        msg += exts[c] + ', ';
      }
      msg += exts[exts.length-1] + '\n';
      valid = false;
    }
    
    for (i = 0; i < document.edit_candidate_profile.elements.length; i++) {
      if (document.edit_candidate_profile.elements[i].name == 'first_name' 
        || document.edit_candidate_profile.elements[i].name == 'last_name' 
        || document.edit_candidate_profile.elements[i].name == 'email'
        || document.edit_candidate_profile.elements[i].name == 'username'
        || document.edit_candidate_profile.elements[i].name == 'password'
        || document.edit_candidate_profile.elements[i].name == 'password_retype'
        || document.edit_candidate_profile.elements[i].name == 'home_phone'
        || document.edit_candidate_profile.elements[i].name == 'cell_phone') {
        if (!trim(document.edit_candidate_profile.elements[i].value)) {
          msg += 'The ' + arr2[document.edit_candidate_profile.elements[i].name] + ' field is mandatory\n';
          valid = false;
        } else if (document.edit_candidate_profile.elements[i].name == 'email' 
                  && !validate_email(document.edit_candidate_profile.elements[i].value)) {
          msg += 'Enter a valid ' + arr2[document.edit_candidate_profile.elements[i].name] + '\n';
          valid = false;
        } else if (document.edit_candidate_profile.elements[i].name == 'password' 
                && document.edit_candidate_profile.password_retype.value != document.edit_candidate_profile.elements[i].value) {
        msg += 'Password confirmation is not equal to password\n';
        valid = false;
      }
      }
    }
  } else if (document.forms[form_number].name == 'register_recruiter'
              || document.forms[form_number].name == 'edit_company_profile') {
    for (i = 0; i < document.forms[form_number].elements.length; i++) {
      if (!trim(document.forms[form_number].elements[i].value) 
          && (document.forms[form_number].elements[i].name != 'secondary_phone' 
          && document.forms[form_number].elements[i].name != 'fax_number' 
          && document.forms[form_number].elements[i].name != 'postal_code' 
          && document.forms[form_number].elements[i].name != 'website')) {
        msg += 'The ' + arr2[document.forms[form_number].elements[i].name] + ' field is mandatory\n';
        valid = false;
      } else if (document.forms[form_number].elements[i].name == 'password' 
                && document.forms[form_number].password_retype.value != document.forms[form_number].elements[i].value) {
        msg += 'Password confirmation is not equal to password\n';
        valid = false;
      }
    }
  } else if (formName == 'edit_resume'
              || formName == 'register_resume') {
							//alert('edit_resume');
		/*
    var file_name_input_style = document.getElementById('resume_filename').style;
    if (file_name_input_style.display == 'block') {
      var exts = new Array ('txt', 'doc', 'docx', 'xls', 'xlsx', 'pdf');
      var filename = document.register_resume.resumefile.value;
      
      function getExt(filename) {
        var dot_pos = filename.lastIndexOf(".");
        if(dot_pos == -1)
          return "";
        return filename.substr(dot_pos+1).toLowerCase();
      }
      if (filename != '') {
        var ext = getExt(filename);
        var fileOK = 0;
        for (i = 0; i < exts.length; i++) {
          if (exts[i] == ext) {
            fileOK = 1; // one of the file extensions found
          } 
        }
      }
      if (fileOK == 0) { 
        msg += 'Entered file type is not valid.\nFile type should be: ';
        for (c = 0; c < exts.length-1; c++) {
          msg += exts[c] + ', ';
        }
        msg += exts[exts.length-1] + '\n';
        valid = false;
      }
      if (!trim(document.edit_resume.resumefile.value)) {
        msg += 'Please enter a file name\n';
        valid = false;
      }
    } else {
    */
      for (i = 0; i < document.edit_resume.elements.length; i++) {
        if (!trim(document.edit_resume.elements[i].value) 
            && document.edit_resume.elements[i].type != 'file') {
          msg += 'The ' + arr2[document.edit_resume.elements[i].name] + ' field is mandatory\n';
          valid = false;
        }
      }
    //}
  } else if (formName == 'register_vacancy') {
    for (i = 0; i < document.register_vacancy.elements.length; i++) {
      if (document.register_vacancy.elements[i].name != "hot_or_no") {
        if (!trim(document.register_vacancy.elements[i].value)) {
          msg += 'The ' + arr2[document.register_vacancy.elements[i].name] + ' field is mandatory\n';
          valid = false;
        }
      }
    }
  } else {
    for (i = 0; i < document.forms[form_number].elements.length; i++) {
      if (!trim(document.forms[form_number].elements[i].value)) {
        msg += 'The ' + arr2[document.forms[form_number].elements[i].name] + ' field is mandatory\n';
        valid = false;
      } else if (document.forms[form_number].elements[i].name == 'email' 
                && !validate_email(document.forms[form_number].elements[i].value)) {
        msg += 'Enter a valid ' + arr2[document.forms[form_number].elements[i].name] + '\n';
        valid = false;
      } else if (document.forms[form_number].elements[i].name == 'start_date' 
                  && !validate_date(document.forms[form_number].elements[i].value)) {
        msg += 'Enter a valid date\n';
        valid = false;
      }
    }
  }
  if (!valid) alert(msg);
  return valid;
}

function show_hide_file_browse() {
  var file_name_input_style = document.getElementById('resume_filename').style;

  if (file_name_input_style.display == 'block') {
    for (x = 0; x < document.register_resume.elements.length; x++) {
      if (document.register_resume.elements[x].type != 'file' 
          && document.register_resume.elements[x].type != 'checkbox' 
          && document.register_resume.elements[x].type != 'submit' 
          && document.register_resume.elements[x].type != 'button' 
          && document.register_resume.elements[x].type != 'hidden') {
        document.register_resume.elements[x].disabled = false;
      }
    }
    file_name_input_style.display = 'none';
  } else {
    for (x = 0; x < document.register_resume.elements.length; x++) {
      if (document.register_resume.elements[x].type != 'file' 
          && document.register_resume.elements[x].type != 'checkbox' 
          && document.register_resume.elements[x].type != 'submit' 
          && document.register_resume.elements[x].type != 'button' 
          && document.register_resume.elements[x].type != 'hidden') {
        document.register_resume.elements[x].disabled = true;
      }
    }
    file_name_input_style.display = 'block';
  }
}

function validate_form_add_resume() {
  if (file_name_input_style.display == 'block') {
    var exts = new Array ('txt', 'doc', 'docx', 'xls', 'xlsx', 'pdf');
    var filename = document.register_resume.resumefile.value;
    
    function getExt(filename) {
      var dot_pos = filename.lastIndexOf(".");
      if(dot_pos == -1)
        return "";
      return filename.substr(dot_pos+1).toLowerCase();
    }
    if (filename != '') {
      var ext = getExt(filename);
      var fileOK = 0;
      for (i = 0; i < exts.length; i++) {
        if (exts[i] == ext) {
          fileOK = 1; // one of the file extensions found
        } 
      }
    }
    if (fileOK == 0) { 
      msg += 'Entered file type is not valid.\nFile type should be: ';
      for (c = 0; c < exts.length-1; c++) {
        msg += exts[c] + ', ';
      }
      msg += exts[exts.length-1] + '\n';
      valid = false;
    }
    if (!trim(document.edit_resume.resumefile.value)) {
      msg += 'Please enter a file name\n';
      valid = false;
    }
  } else {
    for (i = 0; i < document.register_resume.elements.length; i++) {
      if (!trim(document.register_resume.elements[i].value) 
          && document.register_resume.elements[i].type != 'file') {
        msg += 'The ' + arr2[document.register_resume.elements[i].name] + ' field is mandatory\n';
        valid = false;
      }
    }
  }
}
