function trimStr(s)
{
   var start;
   var end;
   for (start = 0; start < s.length; start++)
      if (s.charAt(start) != ' ')
         break;
   for (end = s.length - 1; end >= 0; end--)
      if (s.charAt(end) != ' ')
         break;
   if (end < start)
      return "";
   return s.substring(start, end + 1);
}

function stripChars(s, chars)
{
   var i;
   var retStr = "";

   for (i = 0; i < s.length; i++)
   {
      var c = s.charAt(i);
      if (chars.indexOf(c) == -1)
         retStr += c;
   }
   return retStr;
}

function isEmpty(str)
{
   return (trimStr(str).length == 0);
}

var daysInMonthArr = new Array(31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);

function daysInMonth(month, year)
{
   if (month == 2)
      return ((year % 4 == 0) && (year % 100 != 0) ||
              (year % 400 == 0)) ? 29 : 28;
   return daysInMonthArr[month - 1];
}

function isIntegerInRange(val, a, b)
{
   if (isNaN(val))
      return false;
   return ((val >= a) && (val <= b));
}

function validateRequired(field)
{
   var value;

   if (field == null)
      return true;
   if (field.value != null)
      value = field.value;
   else if (field.options != null)
      value = field.options[field.selectedIndex].value;
   else
      return true;

   var s = trimStr(value);
   if (s.length == 0)
   {
      alert("Please fill in a required field");
      field.focus();
      return false;
   }
   return true;
}

function validateInteger(field, required)
{
   if (field == null || field.value == null)
      return false;
   if (required && !validateRequired(field))
      return false;

   var reInt = /^ *\d* *$/;
   if (!reInt.test(field.value))
   {
      alert("Incorrect value entered");
      field.focus();
      return false;
   }
   return true;
}

function validateEmail ( field, required )
{  
   if (required && !validateRequired(field))
      return false;
   if (isEmpty(field.value))
      return true;

    var testMail = /^.+\@.+\..+$/
	
   if (!testMail.test(field.value)) {
	   alert("Invalid Email");
	   field.focus();
	   return false;
   }   
   return true;
}

function validateURL( field, required ) {
   if (required && !validateRequired(field))
      return false;
   if (isEmpty(field.value))
      return true;
	  
   var tomatch= /http:\/\/[A-Za-z0-9\.-]{3,}\.[A-Za-z]{3}/

   if (!tomatch.test(field.value)) {
	   alert("Invalid URL");
	   field.focus();
	   return false;
   }
 return true; 
}

function validateSSN(field, required)
{
   if (required && !validateRequired(field))
      return false;
   if (isEmpty(field.value))
      return true;

   var reSSN = /^ *(\d{3}-?\d{2}-?\d{4})? *$/;
   if (!reSSN.test(field.value))
   {
      alert("Incorrect SSN or Tax ID entered");
      field.focus();
      return false;
   }
   return true;
}

function validateIntPhone(field,required) {
   if (required && !validateRequired(field))
      return false;
   if (isEmpty(field.value))
      return true;	
   var rePhone = /\d{2,5}(-\d{2,5})?-\d{2,5}-\d{2,5}/;
   if (!rePhone.test(field.value))
   {
      alert("Incorrect phone/fax number entered");
      field.focus();
      return false;
   }
   return true;   
}
function validarTelefono (field,required)
{
	var tel = /^(\(?[0-9]{3,3}\)?|[0-9]{3,3}[-. ]?)[ ][0-9]{3,3}[-. ]?[0-9]{4,4}$/;
	var tes=    /^ *(\(? *\d{3} *\)? *-? *\d{3}[ -]?\d{4})? *$/;
	if (tel.test(field.value)) 
	{
		alert ('example 2 successful.');
	}
	else
		alert("Incorrect phone number entered");
}
function validatePhone(field, required)
{
  if (required && !validateRequired(field))
      return false;
   if (isEmpty(field.value))
      return true;	  

   var rePhone = /^(\(?[0-9]{3,3}\)?|[0-9]{3,3}[-. ]?)[ ][0-9]{3,3}[-. ]?[0-9]{4,4}$/;
   if (!rePhone.test(field.value))
   {
      alert("Incorrect phone/fax number entered");
      field.focus();
      return false;
   }
   return true;
}

function validateZIP(field, required)
{
   if (required && !validateRequired(field))
      return false;
   if (isEmpty(field.value))
      return true;

   var reZIP = /^\d{5}$/;
   if (!reZIP.test(field.value))
   {
      alert("Incorrect ZIP code entered");
      field.focus();
      return false;
   }
   return true;
}

function splitStr(arr, s, delim)
{
   var num = 0;
   var start = 0;
   var pos = 0;

   for (pos = 0; pos < s.length; pos++)
   {
      if (s.charAt(pos) == delim)
      {
         arr[num++] = s.substring(start, pos);
         start = pos + 1;
      }
   }
   arr[num] = s.substring(start, pos);
}

function checkDate(field)
{
   var s = trimStr(field.value);

   arr = new Array();
   splitStr(arr, s, '/');
   if (arr.length != 3)
      return false;
   var year = arr[2];
   var month = arr[0];
   var day = arr[1];

   var reInt = /^ *\d* *$/;
   if (!reInt.test(year) || !reInt.test(month) || !reInt.test(day))
      return false;

   if (year.length != 2 && year.length != 4)
      return false;
   var intYear = parseInt(year, 10);
   if (!isIntegerInRange(intYear, 0, 99) &&
       !isIntegerInRange(intYear, 1800, 9999))
      return false;
   if (intYear <= 99)
      intYear += 1900; // 0...99 => 1900...1999

   var intMonth = parseInt(month, 10);
   if (!isIntegerInRange(intMonth, 1, 12))
      return false;

   var intDay = parseInt(day, 10);
   if (!isIntegerInRange(intDay, 1, daysInMonth(intMonth, intYear)))
      return false;

   year = String(intYear);
   month = String(intMonth);
   day = String(intDay);
   if (month.length == 1)
      month = "0" + month;
   if (day.length == 1)
      day = "0" + day;
   field.value = month + "/" + day + "/" + year;

   return true;
}

function validateDate(field, required)
{
   if (required && !validateRequired(field))
      return false;
   if (isEmpty(field.value))
      return true;
   if (!checkDate(field))
   {
      alert("      Wrong date format\nPlease enter as mm/dd/yyyy");
      field.select();
      field.focus();
      return false;
   }
   return true;
}
function MLaboral()
{
	if (document.formCV.mLaboral.value == "NO")
    {document.getElementById('provincia').disabled = true; return false }
   	else
   	{document.getElementById('provincia').disabled = false; return true }
   
}
function ValidarCampos()
{
   if (document.formCV.expLaboral.value == "NO")
   { 
   	  document.getElementById('emp1').disabled = true; 
   	  document.getElementById('empC1').disabled = true;
   	  document.getElementById('empJ1').disabled = true;
	  document.getElementById('empSe1').disabled = true;
   	  document.getElementById('empT1').disabled = true;
	  document.getElementById('tiempo_laborado_emp1').disabled = true;
   	  document.getElementById('emp1_salario_inicial').disabled = true;
   	  document.getElementById('empS1').disabled = true;
	  document.getElementById('logros1').disabled = true;
	  document.getElementById('ano_entrada1').disabled = true;
	  document.getElementById('ano_salida1').disabled = true;
	  document.getElementById('emp1_motivo_salida').disabled = true;
   	  document.getElementById('ActLaborando').disabled = true;
   	  document.getElementById('emp2').disabled = true;
   	  document.getElementById('empC2').disabled = true;   	  
   	  document.getElementById('empJ2').disabled = true;
	  document.getElementById('empSe2').disabled = true;
   	  document.getElementById('empT2').disabled = true;
   	  document.getElementById('tiempo_laborado_emp2').disabled = true;
   	  document.getElementById('emp2_salario_inicial').disabled = true;
   	  document.getElementById('empS2').disabled = true;
	  document.getElementById('logros2').disabled = true;
	  document.getElementById('ano_entrada2').disabled = true;
	  document.getElementById('ano_salida2').disabled = true;
	  document.getElementById('emp2_motivo_salida').disabled = true;
   	  document.getElementById('emp3').disabled = true;
   	  document.getElementById('empC3').disabled = true;
   	  document.getElementById('empJ3').disabled = true;
	  document.getElementById('empSe3').disabled = true;
   	  document.getElementById('empT3').disabled = true;
   	  document.getElementById('tiempo_laborado_emp3').disabled = true;
   	  document.getElementById('emp3_salario_inicial').disabled = true;
	  document.getElementById('empS3').disabled = true;
	  document.getElementById('logros3').disabled = true;
	  document.getElementById('ano_entrada3').disabled = true;
	  document.getElementById('ano_salida3').disabled = true;
	  document.getElementById('emp3_motivo_salida').disabled = true;
   	  return false
   }
   else
   	 {	
   	  document.getElementById('emp1').disabled = false;  
	  document.getElementById('empC1').disabled = false;
   	  document.getElementById('empJ1').disabled = false;
	  document.getElementById('empSe1').disabled = false;
   	  document.getElementById('empT1').disabled = false;  
   	  document.getElementById('tiempo_laborado_emp1').disabled = false;
   	  document.getElementById('emp1_salario_inicial').disabled = false; 
   	  document.getElementById('empS1').disabled = false;
	  document.getElementById('logros1').disabled = false;
	  document.getElementById('ano_entrada1').disabled = false;
	  document.getElementById('ano_salida1').disabled = false;
	  document.getElementById('emp1_motivo_salida').disabled = false;	  
   	  document.getElementById('ActLaborando').disabled = false;	  
   	  document.getElementById('emp2').disabled = false;
   	  document.getElementById('empC2').disabled = false;   	  
   	  document.getElementById('empJ2').disabled = false;
	  document.getElementById('empSe2').disabled = false;
   	  document.getElementById('empT2').disabled = false;
   	  document.getElementById('tiempo_laborado_emp2').disabled = false;
   	  document.getElementById('emp2_salario_inicial').disabled = false; 
   	  document.getElementById('empS2').disabled = false;
	  document.getElementById('logros2').disabled = false;
	  document.getElementById('ano_entrada2').disabled = false;
	  document.getElementById('ano_salida2').disabled = false;
	  document.getElementById('emp2_motivo_salida').disabled = false;
   	  document.getElementById('emp3').disabled = false;
   	  document.getElementById('empC3').disabled = false;
   	  document.getElementById('empJ3').disabled = false;
	  document.getElementById('empSe3').disabled = false;
   	  document.getElementById('empT3').disabled = false;
   	  document.getElementById('tiempo_laborado_emp3').disabled = false;
   	  document.getElementById('emp3_salario_inicial').disabled = false; 
   	  document.getElementById('empS3').disabled = false;
	  document.getElementById('logros3').disabled = false;
	  document.getElementById('ano_entrada3').disabled = false;
	  document.getElementById('ano_salida3').disabled = false;
	  document.getElementById('emp3_motivo_salida').disabled = false;
   	  return true
   	  }   	  
}
function EntrevistadoGM()
{
	if (document.formCV.entrevistadoA.value == "NO")
    {
		document.getElementById('D').disabled = true;
		document.getElementById('M').disabled = true;
		document.getElementById('ANIO').disabled = true;
		return false 
	}
   	else
   	{
		document.getElementById('D').disabled = false; 
		document.getElementById('M').disabled = false; 
		document.getElementById('ANIO').disabled = false; 
		return true 
	}
}
function FamiliaresGM()
{
	if (document.formCV.tieneFaGM.value == "NO")
    {
    	document.getElementById('nombreFamiliar').disabled = true; 
		document.getElementById('nombreConocido').disabled = true;
     	document.getElementById('parentesco').disabled = true;
     	return false 
    }
   	else
   	{
   		document.getElementById('nombreFamiliar').disabled = false;
		document.getElementById('nombreConocido').disabled = false;
 	    document.getElementById('parentesco').disabled = false;  	
  	 	return true
    }
}
function EstudioSuperior()
{
	if (document.formCV.nivel_alcanzado.value == "COMPLETA")
    {document.getElementById('ano_estudio').disabled = false; return true}
   	else
   	{document.getElementById('ano_estudio').disabled = true; return false }
   
}
function NivelUniversidad()
{
	if (document.formCV.universidad_nivel.value == "COMPLETA")
    {document.getElementById('universidad_ano').disabled = false; return true}
   	else
   	{document.getElementById('universidad_ano').disabled = true; return false }
   
}