// Funciones en Cliente

function enviarForm(idForm,action){
     var formu;
     if (document.all){ formu = document.all[idForm];
     }else if (document.getElementById){ formu=document.getElementById(idForm);
     }else if (document.layers){ formu = document.forms[idForm]; }
     if(validar(campos,tipos,nulos,msjs,idForm)) {
          formu.action=action;
          formu.submit();
     }
}

function validar() {
     for (i=0; i<validar.arguments[0].length; i++) {
          ok = ValidaCampo(validar.arguments[0][i],validar.arguments[1][i],validar.arguments[2][i],validar.arguments[3][i],validar.arguments[4]);
          if (!ok) {break;}
     } 
     return(ok);
}

function ValidaCampo() {
  // Nombre de campo, Tipo 0=>txt 1=>num 2=>fecha 3=>jpg/gif 4=>e-mail 5=>Combo 6=> List,7=> check, Obligatorio? (boolean)
  var error = "";
  var frmId = ValidaCampo.arguments[4];
  var frm;
  if (document.all){ frm = document.all[frmId];
  }else if (document.getElementById){ frm=document.getElementById(frmId);
  }else if (document.layers){ frm = document.forms[frmId]; }

     if (ValidaCampo.arguments[1] == 6) {
          ValidaCampo.arguments[0]+="[]";
          var valor="";
          if (parseInt(frm[ValidaCampo.arguments[0]].length)<2) {
               if(frm[ValidaCampo.arguments[0]][0].selected) {valor+=frm[ValidaCampo.arguments[0]][0].value+",";}
          } else {
               for (j=0; j < parseInt(frm[ValidaCampo.arguments[0]].length); j++) {
                    if(frm[ValidaCampo.arguments[0]][j].selected){valor+=frm[ValidaCampo.arguments[0]][j].value+",";}
               }
          }
     //} else {var valor = frm[ValidaCampo.arguments[0]].value + "";}
     } else {var valor = document.getElementById(ValidaCampo.arguments[0]).value + "";}

     valor = valor.replace(/(\s+)/,"") // Eliminamos blancos al inicio de la cadena
     if (!ValidaCampo.arguments[2] && valor.length == 0) // Comprobamos nulos
          error = "El campo " + ValidaCampo.arguments[3] + " es obligatorio" ;
     else if (ValidaCampo.arguments[1] == 0 && valor.length > 0) {
          var filtro = /(')/;
          if (filtro.test(valor))
               error = "El campo " + ValidaCampo.arguments[3] + " no admite el caracter (') .";
          }
     else if (ValidaCampo.arguments[1] == 1 && valor.length != 0) { // Comprobamos numerico
          valor = valor.replace(/[,]/,".");
          if (valor.search(/[.]+[1-9]*[0]*$/) > -1) {valor = valor.replace(/[0]*$/,"");}
		//if (valor.replace(/[.]*$/,"") != parseFloat(valor) + "") error = "El campo " + ValidaCampo.arguments[3] + " debe ser un numero valido";
		if (valor.replace(/^0*/,"").replace(/[.]*$/,"") != parseFloat(valor) + "" && "0" + valor.replace(/^0*/,"").replace(/[.]*$/,"") != parseFloat(valor) + "") error = "El campo " + ValidaCampo.arguments[3] + " debe ser un numero valido";
          }
     else if (!valor.length==0 && ValidaCampo.arguments[1] == 2 && isNaN(Date.parse(valor))) // Comprobamos fecha
          error = "El campo " + ValidaCampo.arguments[3] + " contiene una fecha incorrecta";
     else if (ValidaCampo.arguments[1] == 3 && valor.length > 0)
          {    re1 = /(GIF)$/
               re2 = /(JPG)$/
               valor = valor.toUpperCase();
               if (!re1.test(valor) && !re2.test(valor))
                    error = "El archivo " + ValidaCampo.arguments[3] + " debe tener extension GIF ó JPG";
          }
     else if (ValidaCampo.arguments[1] == 4 && valor.length > 0)
          {
	       var filtro = /^[a-z||0-9||_||-]+[.||a-z||0-9||_||-]+@[a-z||0-9||_||-]+[.||a-z||0-9||_||-]+[.][a-z]{2,4}$/;
		//var filtro = /^[a-z||0-9||_||-]+[.][a-z||0-9||_||-]+@[a-z||0-9||_||-]+[.][a-z]{2,3}$/;
               //var filtro1 = /^[a-z||0-9||_||-]+@[a-z||0-9||_||-]+[.][a-z]{2,3}$/;
               //var filtro2 = /^[a-z||0-9||_||-]+@[a-z||0-9||_||-]+[.][a-z||0-9||_||-]+[.][a-z]{2,3}$/;
               //var filtro3 = /^[a-z||0-9||_||-]+[.][a-z||0-9||_||-]+@[a-z||0-9||_||-]+[.][a-z||0-9||_||-]+[.][a-z]{2,3}$/;
               //if (!filtro.test(valor) && !filtro1.test(valor) && !filtro2.test(valor) && !filtro3.test(valor))
	       if (!filtro.test(valor))
                    error = "El campo " + ValidaCampo.arguments[3] + " no es correcto";
          }
     else if (ValidaCampo.arguments[1] == 5 && (frm[ValidaCampo.arguments[0]].selectedIndex < -1 || frm[ValidaCampo.arguments[0]].options[frm[ValidaCampo.arguments[0]].selectedIndex].value < -1))
          error = "El campo " + ValidaCampo.arguments[3] + " debe tener una seleccion";
     else if (ValidaCampo.arguments[1]==6 && !ValidaCampo.arguments[2] && valor.length==0)
          error = "El campo " + ValidaCampo.arguments[3] + " debe tener una seleccion";
	else if (ValidaCampo.arguments[1]==7 && !ValidaCampo.arguments[2] && !frm[ValidaCampo.arguments[0]].checked)
			error = "Debe marcar el campo " + ValidaCampo.arguments[3];
     if (error == "")
          return(true);
     else {
          alert(error);
          frm[ValidaCampo.arguments[0]].focus();
          return(false);
          }
     }
     
function numformat(num,mil,dec,eur) {
	num=(Math.round(num*Math.pow(10,dec))/Math.pow(10,dec))+Math.pow(10,-(dec*2));
	num=num.toString();
	num2=num.substr(num.lastIndexOf('.'),dec+1);
	num=num.substr(0,num.lastIndexOf('.'));
	for (j=0;j<num.length+1;j++) { if (j%mil==0 && j!=num.length && j!=0) { num2=','+num.charAt(num.length-j)+num2; } else { num2=num.charAt(num.length-j)+num2; } }
	if (eur) { num2=num2.replace('.','|').replace(',','.').replace('|',','); }
	return num2;
} 

function numval(num,eur) {
	if (eur) { return parseFloat(num.replace('.','').replace(',','.')); } else { return parseFloat(num.replace(',','')); }
}