/******************************************************************************/
/* Autor: Alberto Saiegh.                                                     */
/* Empresa: Surit.                                                            */
/* Fecha: 03/12/2005                                                          */
/* Descripción del Script: Funciones de uso común para cualquier sitio Web.   */
/******************************************************************************/


/******************************************************************************************/
/* Función: ValidarForm()                                                                 */
/* Descripción: Valida los campos de un formulario. Recibe un parámetro codificado de la  */
/*              siguiente manera: Formulario,Campo,TIPO,Mensaje,OBLIGATORIO||             */
/*                                                                                        */
/* TIPO:                                                                                  */
/*      1 = TEXTO                                                                         */
/*      2 = NUMERO                                                                        */
/*      3 = SELECT   <option>seleccione TIENE que ser = 0 			                          */
/*      4 = EMAIL                                                                         */
/*      5 = FECHA                                                                         */
/*      6 = RADIO                                                                         */
/*      7 = TEXTAREA                                                                      */
/*      8 = SUBIR ARCHIVO                                                                 */
/*      9 = TEXTO y NUMEROS                                                               */
/*     10 = CLAVE Y CONFIRMACIÓN                                                          */
/*                                                                                        */
/* OBLIGATORIO = Indica si el campo es obligatorio o no (TRUE o FALSE)                    */
/******************************************************************************************/

function ValidarForm(sDatos){
  var sIncompleto, iVacio, sErrIngreso, iError;
  var arrDatos, Campo, Valor, i;
  
  sIncompleto = "";
  sErrIngreso = "";

  iVacio=1;
  iError=1;

  arrDatos = sDatos.split("||");


  for (i=0; i<arrDatos.length; i++)
  {
    Campo = arrDatos[i].split(",");
    Valor = "document." + Campo[0] + "." + Campo[1] + ".value";

    switch (Campo[2]){
      case "1":
          if(Campo[4] == "TRUE"){
            if (eval(Valor) == ""){
              sIncompleto = sIncompleto + iVacio + ") " + Campo[3] + ".\n";
              iVacio = iVacio + 1;
              break;
            }
          }

          if(!isText(eval(Valor))){
            sErrIngreso = sErrIngreso + iError + ") El campo " + Campo[3] + " no puede tener números.\n";
            iError = iError + 1;
          }
          break;

      case "2":
          if(Campo[4] == "TRUE"){
            if (eval(Valor) == ""){
              sIncompleto = sIncompleto + iVacio + ") " + Campo[3] + ".\n";
              iVacio = iVacio + 1;
              break;
            }
          }

          if (!isNumeric(eval(Valor))){
            sErrIngreso = sErrIngreso + iError + ") El campo " + Campo[3] + " no puede tener letras ni símbolos.\n";
            iError = iError + 1;
				  }
				  break;
				
      case "3":
          if(Campo[4] == "TRUE"){
            if (eval(Valor) == 0){
    					sIncompleto = sIncompleto + iVacio + ") " + Campo[3] + ".\n";
              iVacio = iVacio + 1;
    				}
          }
  				break;

      case "4":
          if(Campo[4] == "TRUE"){
            if (eval(Valor) == ""){
              sIncompleto = sIncompleto + iVacio + ") " + Campo[3] + ".\n";
              iVacio = iVacio + 1;
              break;
            }
          }

          if(!ValidarMail(eval(Valor))){
            sErrIngreso = sErrIngreso + iError + ") El campo " + Campo[3] + " es erroneo.\n";
            iError = iError + 1;
          }
          break;

      case "6":
        if(Campo[4] == "TRUE"){
          var bEntro = false;
          var j = 0;
          
          dam = eval("document." . Campo[0]);
  				len = dam.elements.length;
  				
  					for(j=0; j<len; j++){
  						if (dam.elements[j].name == campo[1]) {
  							if (dam.elements[j].checked == true){
  								bEntro = true;
  							}else{
  								if (bEntro != true) bEntro = false;
  							}

  						}
  					}
  				if (bEntro == false){
  					sIncompleto = sIncompleto + iVacio + ") " + Campo[3] + ".\n";
            iVacio = iVacio + 1;
  				}
        }
        break;
  				
      case "7":
        if(Campo[4] == "TRUE"){
          if (eval(Valor) == ""){
            sIncompleto = sIncompleto + iVacio + ") " + Campo[3] + ".\n";
            iVacio = iVacio + 1;
  				}
        }
        break;
				
      case "8":
        if(Campo[4] == "TRUE"){
          if(eval(Valor) == ""){
            sIncompleto = sIncompleto + iVacio + ") " + Campo[3] + ".\n";
            iVacio = iVacio + 1;
            break;
          }
        }
          
          var File, z, bError;
          File = eval(Valor);
          
          extArray = new Array(".gif", ".jpg", ".swf");
          bError = false;
          if (!File) break;
          while (File.indexOf("\\") != -1)
          File = File.slice(File.indexOf("\\") + 1);
          ext = File.slice(File.indexOf(".")).toLowerCase();
          
          for (z=0; z<extArray.length; z++) {
            if (extArray[z] == ext){
              bError = true;
              break;
            }
          }

          if(!bError){
            sErrIngreso = sErrIngreso + iError + ") El campo " + Campo[3] + " sólo puede tener formatos GIF, JPG y SWF.\n";
            iError = iError + 1;
          }
          break;

      case "9":
        if(Campo[4] == "TRUE"){
          if (eval(Valor) == ""){
            sIncompleto = sIncompleto + iVacio + ") " + Campo[3] + ".\n";
            iVacio = iVacio + 1;
          }
        }
        break;
        
      case "10":
        if(Campo[4] == "TRUE"){
          if (eval(Valor) == ""){
            sIncompleto = sIncompleto + iVacio + ") " + Campo[3] + ".\n";
            iVacio = iVacio + 1;
            break;
          }
        }

        if (eval(Valor) != eval("document." + Campo[0] + ".txtClave.value")){
          sErrIngreso = sErrIngreso + iError + ") El campo " + Campo[3] + " no coincide con el campo Clave.\n";
          iError = iError + 1;
        }
        break;
    }

  }
  
  if (sIncompleto == "" && sErrIngreso == ""){
    return true;
	}else if (sIncompleto != "" && sErrIngreso == ""){
    alert ("Los siguientes campos no pueden ser vacíos:\n" + sIncompleto);
    return false;
  }else if (sIncompleto == "" && sErrIngreso != ""){
    alert ("Los siguientes campos se ingresaron de forma erronea:\n" + sErrIngreso);
    return false;
  }else if (sIncompleto != "" && sErrIngreso != ""){
    alert ("Los siguientes campos no pueden ser vacíos:\n" + sIncompleto + "\n\n--------------------------------------------------\n\nLos siguientes campos se ingresaron de forma erronea:\n" + sErrIngreso);
    return false;
	}
}


function ValidarMail(sMail) {
    var Filtro = /^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@+([_a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]{2,200}\.[a-zA-Z]{2,6}$/;

    if (Filtro.test(sMail)){
       return true;
    } else {
       return false;
    }
}

function isNumeric(Dato){

  if (Dato+"" == "undefined" || Dato+"" == "null" || Dato+"" == "")
    return false;

  var isValid = true;
  var decCount = 0; // number of decimal points in the string
                    // convert to a string for performing string comparisons.

  Dato += "";


  for (i = 0; i < Dato.length; i++) {
    if (Dato.charAt(i) == ".")
      decCount++;

    //alert(Dato.charAt(i));
    if (!((Dato.charAt(i) >= "0") && (Dato.charAt(i) <= "9") || (Dato.charAt(i) == "-") || (Dato.charAt(i) == "."))) {
      isValid = false;
      break;
    } else if ((Dato.charAt(i) == "-" && i != 0) || (Dato.charAt(i) == "." && Dato.length == 1) || (Dato.charAt(i) == "." && decCount > 1)) {
      isValid = false;
      break;
    }
  }
  
  return isValid;
}

function isText(Dato){
  var checkOK = "ABCDEFGHIJKLMNÑOPQRSTUVWXYZÁÉÍÓÚ" + "abcdefghijklmnñopqrstuvwxyzáéíóú ";

  var Valido = true;
  for (i = 0; i < Dato.length; i++) {
    ch = Dato.charAt(i);
    for (j = 0; j < checkOK.length; j++)
      if (ch == checkOK.charAt(j))
        break;

    if (j == checkOK.length) {
      Valido = false;
      break;
    }
  }
  
  return Valido;
}

function Left(str, n){
	if (n <= 0)
	    return "";
	else if (n > String(str).length)
	    return str;
	else
	    return String(str).substring(0,n);
}

function Right(str, n){
    if (n <= 0)
       return "";
    else if (n > String(str).length)
       return str;
    else {
       var iLen = String(str).length;
       return String(str).substring(iLen, iLen - n);
    }
}

function Mid(String, Start, Length){
  if (String == null)
    return (false);

  if (Start > String.length)
    return '';

  if (Length == null || Length.length == 0)
    return (false);

  return String.substr((Start - 1), Length);
}

function Traer_ID_Combo(formulario, combo){
  id = eval("document.forms."+formulario+"."+combo+".value");

  return id;
}