window.onload = initPage;

function clearField(fieldId){
            var field = document.getElementById(fieldId);
            field.value = "";
}
function setField(fieldId, originalValue){
            var field = document.getElementById(fieldId);
            if(field.value == ""){
                        field.value = originalValue;
            }
}

var warnings = {
  "contacto" : {
    "required": "Por favor introduzca el Nombre Completo.",
    "letters" : "Solo letras están permitidas en Persona Contacto.",
    "err"     : 0
  },
  "disponibilidad" : {
    "required": "Por favor introduzca su Disponibilidad.",
    "letters" : "Solo letras están permitidas.",
    "err"     : 0
  },
 
  "direccion" : {
    "required": "Por favor introduzca la Ubicación.",
    "letters" : "Solo letras están permitidas.",
    "err"     : 0
  },
  "tel" : {
    "required": "Por favor introduzca el Teléfono.",
    "numbers" : "Solo números están permitidos en Teléfono.",
    "err"     : 0
  },
  "telo" : {
    "required": "Por favor introduzca el Teléfono.",
    "numbers" : "Solo números están permitidos en Teléfono.",
    "err"     : 0
  },
  "resumen" : {
    "required": "Por favor introduzca el Resumen.",
    "letters" : "Solo letras están permitidas.",
    "err"     : 0
  },
  "txtCaptcha" : {
    "required": "Por favor introduzca el Captcha.",
    "letters" : "Solo letras están permitidas.",
    "err"     : 0
  },
  "email" : {
    "required": "Por favor introduzca su dirección de e-mail.",
    "format" : "Su dirección de e-mail debe ser de esta forma 'nombre@dominio.com'.",
    "err"     : 0
  }
}

function initPage() {
  addEventHandler(document.getElementById("contacto"), "blur", fieldIsFilled);
  //addEventHandler(document.getElementById("contacto"), "blur", fieldIsLetters);
  addEventHandler(document.getElementById("disponibilidad"), "blur", fieldIsFilled);
 // addEventHandler(document.getElementById("lastname"), "blur", fieldIsLetters);
 
  addEventHandler(document.getElementById("direccion"), "blur", fieldIsFilled);
  addEventHandler(document.getElementById("email"), "blur", fieldIsFilled);
  addEventHandler(document.getElementById("email"), "blur", emailIsProper);
  addEventHandler(document.getElementById("tel"), "blur", fieldIsFilled);
  addEventHandler(document.getElementById("tel"), "blur", fieldIsNumbers);
  addEventHandler(document.getElementById("telo"), "blur", fieldIsFilled);
  addEventHandler(document.getElementById("telo"), "blur", fieldIsNumbers);
  addEventHandler(document.getElementById("resumen"), "blur", fieldIsFilled);
  addEventHandler(document.getElementById("txtCaptcha"), "blur", fieldIsFilled);
  
  
}

function fieldIsFilled(e) {
  var me = getActivatedObject(e);
  if (me.value == "") {
    warn(me, "required");
  } else {
    unwarn(me, "required");
  }
}

function emailIsProper(e) {
  var me = getActivatedObject(e);
  if (!/^[\w\.-_\+]+@[\w-]+(\.\w{2,4})+$/.test(me.value)) {
    warn(me, "format");
  } else {
    unwarn(me, "format");
  }
}

function fieldIsLetters(e) {
  var me = getActivatedObject(e);
  var nonAlphaChars = /[^a-zA-Z]/;
  if (nonAlphaChars.test(me.value)) {
    warn(me, "letters");
  } else {
    unwarn(me, "letters");
  }
}

function fieldIsNumbers(e) {
  var me = getActivatedObject(e);
  var nonNumericChars = /[^0-9]/;
  if (nonNumericChars.test(me.value)) {
    warn(me, "numbers");
  } else {
    unwarn(me, "numbers");
  }
}
function fieldIsTelephone(e) {
  var me = getActivatedObject(e);
  var nonTelChars = /(^[0-9\s\+\-])+$/;
  if (nonTelChars.test(me.value)) {
    warn(me, "numbers");
  } else {
    unwarn(me, "numbers");
  }
}
	
function warn(field, warningType) {
  var parentNode = field.parentNode;
  var warning = eval('warnings.' + field.id + '.' + warningType);
  if (parentNode.getElementsByTagName('p').length == 0) {
    var p = document.createElement('p');
    field.parentNode.appendChild(p);
    var warningNode = document.createTextNode(warning);
    p.appendChild(warningNode);
  } else {
    var p = parentNode.getElementsByTagName('p')[0];
    p.childNodes[0].nodeValue = warning;
  }
  document.getElementById("enroll").disabled = true;
}

function unwarn(field, warningType) {
  if (field.parentNode.getElementsByTagName("p").length > 0) {
    var p = field.parentNode.getElementsByTagName("p")[0];
    var currentWarning = p.childNodes[0].nodeValue;
    var warning = eval('warnings.' + field.id + '.' + warningType);
    if (currentWarning == warning) {
      field.parentNode.removeChild(p);
    }
  }
  var fieldsets = 
    document.getElementById("content").getElementsByTagName("fieldset");
  for (var i=0; i<fieldsets.length; i++) {
    var fieldWarnings = fieldsets[i].getElementsByTagName("p").length;
    if (fieldWarnings > 0) {
      document.getElementById("enroll").disabled = true;
      return;
    }       
  }
  
  if (document.getElementById("contacto").value == '')
  
  {
  document.getElementById("contacto").focus();
  return;
  }
  if (document.getElementById("disponibilidad").value == '')
  
  {
  document.getElementById("disponibilidad").focus();
  return;
  }
  
  
  if (document.getElementById("direccion").value == '')
  
  {
  document.getElementById("direccion").focus();
  return;
  }
  if (document.getElementById("email").value == '')
  
  {
  document.getElementById("email").focus();
  return;
  }
  if (document.getElementById("resumen").value == '')
  
  {
  document.getElementById("resumen").focus();
  return;
  }

  if (document.getElementById("tel").value == '')
  
  {
  document.getElementById("tel").focus();
  return;
  }
  if (document.getElementById("telo").value == '')
  
  {
  document.getElementById("telo").focus();
  return;
  }
  if (document.getElementById("cargo").value == '0')
  
  {
  document.getElementById("cargo").focus();
  return;
  }
  
    if (document.getElementById("txtCaptcha").value == '')
  
  {
  document.getElementById("txtCaptcha").focus();
  return;
  }else{
  
  
  document.getElementById("enroll").disabled = false;
  }
}
