function changeInputValue(sInput,sValue) {
  oInput = document.getElementById(sInput);
  oInput.value = sValue;
}

function checkAll(sForm) {
  var oForm = document.getElementById(sForm);
  var inputs = oForm.getElementsByTagName('input');

  for(var i = 0; i < inputs.length; i++) {
    if (inputs[i] && inputs[i].type == 'checkbox') {
      if (inputs[i].disabled == false) {
        inputs[i].checked = true;
      }
    }
  }
}

function checkForm() {
  var bError = false;
  var sMessage = 'Han surgido los siguientes errores en el formulario:';
  var oForm = arguments[0].trim;

  for(var i = 1; i < arguments.length; i++) {
    var sElement = arguments[i];
    var arrElement = sElement.split(',');
    var oElement = document.getElementById(arrElement[0].trim());
    var sAction = arrElement[1].toLowerCase().trim();

    switch (arrElement[1].trim().toLowerCase()) {
      case 'equals':
        var oElementToCompare = document.getElementById(arrElement[2].trim());
        if (oElement.value != oElementToCompare.value) {
          bError = true;
          sMessage += "\n" + '    - ' + arrElement[3].trim();
        }
        break;
      case 'fileformat':
        if (oElement.value != '') {
          if (oElement.value.substr(oElement.value.lastIndexOf('.') + 1).toLowerCase() != arrElement[2].toLowerCase()) {
            bError = true;
            sMessage += "\n" + '    - ' + arrElement[3];
          }
        }
        break;
      case 'isnumeric':
        if (oElement.value != '') {
          oElement.value = oElement.value.replace(',', '.');
          if (isNaN(oElement.value)) {
            bError = true;
            sMessage += "\n" + '    - ' + arrElement[2];
          }
        }
        break;
      case 'notequals':
        var oElementToCompare = document.getElementById(arrElement[2].trim());
        if (oElement.value == oElementToCompare.value) {
          bError = true;
          sMessage += "\n" + '    - ' + arrElement[3].trim();
        }
        break;
      case 'onerequired':
        var oInputs = document.getElementsByTagName('input');
        var checkError = true;
        for (var j = 0; j < oInputs.length; j++) {
          if(((oInputs[j].type == 'checkbox') && (oInputs[j].name == (arrElement[0] + '[]'))) || ((oInputs[j].type == 'radio') && (oInputs[j].name == arrElement[0]))) {
            if (oInputs[j].checked) {
              checkError = false;
              break;
            }
          }
        }
        if (checkError) {
          bError = true;
          sMessage += "\n" + '    - ' + arrElement[2].trim();
        }
        break;
      case 'orfileformat':
        if (oElement.value != '') {
          var formats = arrElement[2].split('|');
          var formatError = true;
          for(var j = 0; j < formats.length; j++) {
            if (oElement.value.substr(oElement.value.lastIndexOf('.') + 1).toLowerCase() == formats[j].toLowerCase()) {
              formatError = false;
            }
          }
          if (formatError) {
            bError = true;
            sMessage += "\n" + '    - ' + arrElement[3];
          }
        }
        break;
      case 'required':
        if(oElement.value == '') {
          bError = true;
          sMessage += "\n" + '    - ' + arrElement[2].trim();
        }
        break;
      case 'validemail':
        var regMail = new RegExp("^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$");
        if (!oElement.value.match(regMail)) {
          bError = true;
          sMessage += "\n" + '    - ' + arrElement[2].trim();
        }
        break;
    }
  }

  if (bError) alert(sMessage);
  return !bError;
}

function focusOnForm (sForm) {
  var oForm = document.getElementById(sForm);
  var oElements = oForm.getElementsByTagName('input');
  var i = 0;

  while (oElements[i].type != 'text' && oElements[i].type != 'password' && i < oElements.length) {
    i++;
  }

  if (i < oElements.length) {
    oElements[i].focus();
  }
}

function submitenter(oField,e) {
  var keycode;
  if (window.event) keycode = window.event.keyCode;
  else if (e) keycode = e.which;
  else return true;

  if (keycode == 13) {
    submitForm(oField.form.id);
    return false;
  } else {
    return true;
  }
}

function submitForm(sForm) {
  var oForm = document.getElementById(sForm);

  if(oForm.onsubmit == '') {
    oForm.submit();
  } else if (oForm.onsubmit()) {
    oForm.submit();
  }
}

function uncheckAll(sForm) {
  var oForm = document.getElementById(sForm);
  var inputs = oForm.getElementsByTagName('input');

  for(var i = 0; i < inputs.length; i++) {
    if (inputs[i] && inputs[i].type == 'checkbox') {
      if (inputs[i].disabled == false) {
        inputs[i].checked = false;
      }
    }
  }
}