EsVacioTexto = 1
EsVacioCombo = 2
EsCadenaNumero = 3
EsCadenaReal = 4
EsCadenaRealPositivo  = 5
EsCadenaAlfaNumerico  = 6
EsVacioTextoSinFocus  = 7

function refocusPrimerCampo(field) {
	campo = document.all.item(field);	
	campo.select();
	campo.focus();
}

function refocusSoloCampo(field) {	
	field.select();
	field.focus();
}

function refocusCampo(field,msg) {
	alert(msg)
	field.select();
	field.focus();
}

function refocusSoloCampo(field) {	
	field.select();
	field.focus();
}

function esVacio(field,campo) {	
    var ok = Boolean(true);
	var str = String(field.value)
	for(var i=0; i<str.length; i++) {
		var c=str.charAt(i);
		if ((c != ' ') && (c != '\n') && (c != '\t'))
		  ok = Boolean(false)
	}
	if (ok)
		refocusCampo (field,"El campo " + campo + " no puede estar vacío.");

	return ok;
}

function validarLongitudCampo(field,campo,longitud) {
	var longitudCampo;
	var ok = Boolean(false);
	
	longitudCampo = field.value.length;
	
	
	if (longitudCampo > longitud) {
		refocusCampo (field,"El campo " + campo + " no puede tener una longitud mayor a " + longitud + " carácteres");
		ok = Boolean(true);
	}
	
	return ok;
}


function esVacioSinFocus(field,campo) {
    var ok = Boolean(true);
	var str = String(field.value)
	for(var i=0; i<str.length; i++) {
		var c=str.charAt(i);
		if ((c != ' ') && (c != '\n') && (c != '\t'))
		  ok = Boolean(false)
	}	
	
    	
    if (ok)
    	alert ("El campo " + campo + " no puede estar vacío.");	
    
    return ok;
}

function esVacioFocusOtroCampo(field,campo,field2) {	
    var ok = Boolean(true);
	var str = String(field.value)
	for(var i=0; i<str.length; i++) {
		var c=str.charAt(i);
		if ((c != ' ') && (c != '\n') && (c != '\t'))
		  ok = Boolean(false)
	}
	if (ok)
		refocusCampo (field2,"El campo " + campo + " no puede estar vacío.");

	return ok;
}

function trim(cadena)
{	while (cadena.substr(0,1)==" ")
		cadena=cadena.substr(1);
	while (cadena.substr(cadena.length-1,1)==" ")
		cadena=cadena.substr(0,cadena.length-1);
	while (cadena.indexOf("  ")!=-1)
		cadena=cadena.replace("  "," "); 
	return(cadena); }

function esVacioCombo(field,msg){

    var ok = Boolean(false);
    var opcion = String(field.options[field.selectedIndex].value);
    var str = Number(opcion.substr(0,1));       
    
    if (str==0){
       ok = Boolean(true);
       alert("El campo " + msg + " no puede estar vacío.");
       field.focus();
    }
    return ok;

}

function validarNumero(field,campo) {
	var valid = String("0123456789")

	var ok = Boolean(true);
	var temp=String("");
	var fieldvalue=String(field.value)

	for (var i=0; i< fieldvalue.length; i++) {
		temp = "" + fieldvalue.substring(i, i+1);
		if (valid.indexOf(temp) == "-1")
			ok = Boolean(false)
	}

	if (!ok) {
	   var cadenaError = "El campo " +  campo + " sólo acepta valores númericos.";
	   refocusCampo(field,cadenaError);
	}

	return ok;
}

function validarCadenasAlfaNumerica(field,campo){	
	var ok = Boolean(true);
	var temp=String("");
	var fieldvalue=String(field.value)

	for (var i=0; i< fieldvalue.length; i++)
	{ 	a=(fieldvalue.substr(i,1));
		j=a.charCodeAt(0);
		//if ((j==39) || (j==37))
		if ((j==39))
			ok=false;
	}		
	

	if (!ok) {
	   var cadenaError = "El campo " +  campo + " contiene carácteres no válidos.";
	   refocusCampo(field,cadenaError);
	}
	
	return ok;
}

function numeroVecesCaracter(str,chrx) {
	var numVeces=0;
	while (str.indexOf(chrx,0)!=-1) {
		numVeces++;
		str=str.substr(str.indexOf(chrx,0)+1);
	}
	return numVeces;
}

function ValidarCantidadNumeroEntero(nEntero,Cantidad){        
    if (numeroVecesCaracter(nEntero,',')>0) {
        if ((nEntero.length - numeroVecesCaracter(nEntero,',')) > Cantidad)								
   	  return false;    	
    }else{
	if (nEntero.length > Cantidad)
	  return false;
    }
	
   return true;	
}

function ValidarCantidadComas(nEntero){   			
	if (numeroVecesCaracter(nEntero,',')==1) {		
		nValor  = nEntero.substr(nEntero.indexOf(',',0)+1);		
		
		if (nValor.length!=3)
			return false;		 
	}
	
	if (numeroVecesCaracter(nEntero,',')==2) {				
		nEntero  = nEntero.substr(nEntero.indexOf(',',0)+1);		
		nValor1  = nEntero.substring(0, nEntero.indexOf(','));
		nValor2  = nEntero.substr(nEntero.indexOf(',',0)+1);				     
		
		if ((nValor1.length!=3) || (nValor2.length!=3))
			return false;		 
	}
	
	return true;	
}

function validarNumeroReal(field,campo) {
	var valid = String("-.,0123456789")

	var ok = Boolean(true);
	var temp=String("");
	var fieldvalue=String(field.value)
	var cadenaError; 

	cadenaError = "El campo " +  campo + " sólo admite valores reales.";
	
	for (var i=0; i< fieldvalue.length; i++) {
		temp = "" + fieldvalue.substring(i, i+1);
		if (valid.indexOf(temp) == "-1"){
			refocusCampo(field,cadenaError);
			return false;			
		}	
	}
	
	if ((numeroVecesCaracter(field.value,'.')>1) || (numeroVecesCaracter(field.value,',')>2) || (fieldvalue.indexOf(",,",0)>=0)){
		refocusCampo(field,cadenaError);
		return false;			
	}		
	
	//Validando que sólo tenga 8 números y 2 decimales
	
	if (numeroVecesCaracter(field.value,'.')>0) {	
	     nEntero  = field.value.substring(0, field.value.indexOf('.'));
	     nDecimal = field.value.substr(field.value.indexOf('.',0)+1)
	     
		// Validando el número de comas de los números enteros	
		if (!ValidarCantidadComas(nEntero)){
		   cadenaError = "El campo " +  campo + " está mal ingresado\nVerifique las comas o prescinda de ellas.";
		   refocusCampo(field,cadenaError);
		   return false;
		}
		
		// Validando el número de decimales		
		if (numeroVecesCaracter(nDecimal,',')>0){
		     cadenaError = "El campo " +  campo + " sólo admite valores reales.";
		     refocusCampo(field,cadenaError);
		     return false;
		}else{
		    if (nDecimal.length > 2){			
			cadenaError = "El campo " +  campo + " sólo admite dos números decimales.";	
			refocusCampo(field,cadenaError);
		        return false;
		    }
		}					
		
		
	}else{
		nEntero = field.value;
	}	
		
	// Validando el número de comas de los números enteros	
	if (!ValidarCantidadComas(nEntero)){
	   cadenaError = "El campo " +  campo + " está mal ingresado\nVerifique las comas o prescinda de ellas.";
	   refocusCampo(field,cadenaError);
	   return false;
	}	

	// Validando que sólo tenga 8 decimales							
	if (!ValidarCantidadNumeroEntero(nEntero,8)){
	   cadenaError = "El campo " +  campo + " sólo admite ocho números enteros.";
	   refocusCampo(field,cadenaError);
	   return false;
	}	
	
   return true;
}


function verificarFechaMayor(txtdia1,txtmes1,txtannio1,txtdia2,txtmes2,txtannio2) {

	var I_dia1=Number(txtdia1.options[txtdia1.selectedIndex].value);
	var I_mes1=Number(txtmes1.options[txtmes1.selectedIndex].value);
	var I_annio1=Number(txtannio1.value);
	var I_dia2=Number(txtdia2.options[txtdia2.selectedIndex].value);
	var I_mes2=Number(txtmes2.options[txtmes2.selectedIndex].value);
	var I_annio2=Number(txtannio2.value);

	if (I_annio1 > I_annio2){
	   alert("Error en rango de fecha.");
	   return true;
	}

	if ((I_annio2 == I_annio1) && (I_mes1>I_mes2)){
	   alert("Error en rango de fecha.");
	   return true;
	}

	if ((I_annio2 == I_annio1) && (I_mes2==I_mes1) && (I_dia1>I_dia2)){
	   alert("Error en rango de fecha.");
	   return true;
	}

	return false;
}

function verificarFechaHoy(txtdia1,txtmes1,txtannio1,txtdia2,txtmes2,txtannio2,campo) {
	var I_dia1=Number(txtdia1);
	var I_mes1=Number(txtmes1);
	var I_annio1=Number(txtannio1);
	var I_dia2=Number(txtdia2);
	var I_mes2=Number(txtmes2);
	var I_annio2=Number(txtannio2);

	
	return false;

}

function validarCadenas(form,nTipo,sCadena){
	
	sCadena = sCadena + "#";	
	
	for (i=0;i<form.length;i++){
		sObjeto = String(form.elements[i].name);

		sOpcion   = String(sCadena.substring(0, sCadena.indexOf('#')));
		sVariable = String(sOpcion.substring(0, sOpcion.indexOf('*')));
		sMensaje  = String(sOpcion.substr(sOpcion.indexOf('*',0)+1));					

		if (sObjeto.indexOf(sVariable) >= 0){
			sCadena=String(sCadena.substr(sCadena.indexOf('#',0)+1));

			if (nTipo == EsVacioTexto)
				if (esVacio(form.elements[i],sMensaje))
					return true;
					
			if (nTipo == EsVacioTextoSinFocus)
				if (esVacioSinFocus(form.elements[i],sMensaje))
					return true;							

			if (nTipo == EsVacioCombo)
				if (esVacioCombo(form.elements[i],sMensaje))
					return true;

			if (nTipo == EsCadenaNumero)
				if (!(validarNumero(form.elements[i],sMensaje)))
					return true;
					
			if (nTipo == EsCadenaAlfaNumerico)
				if (!(validarCadenasAlfaNumerica(form.elements[i],sMensaje)))
					return true;											
					
			if (nTipo == EsCadenaRealPositivo)				
				if (!(validarNumeroReal(form.elements[i],sMensaje))){					
					return true;
				}else{	
					if (isNaN(parseFloat(form.elements[i].value))){
							refocusCampo(form.elements[i], "El campo " + sMensaje + " sólo admite valores reales.");
							return true;
					}else{
						if (form.elements[i].value<0){
							refocusCampo(form.elements[i], "El campo " + sMensaje + " sólo admite valores positivos.");
							return true;
						}							
					}	
				   	
				 }
				 
			if (nTipo == EsCadenaReal)				
				if (!(validarNumeroReal(form.elements[i],sMensaje))){					
					return true;
				}else{				
					if (isNaN(parseFloat(form.elements[i].value))){						
							refocusCampo(form.elements[i], "El campo " + sMensaje + " sólo admite valores reales.");
							return true;
					}	
			 	}

		}

		if (trim(sCadena)=="")
		return false;
	}
	return false;
}

function validarChecks(form,sVariable,sMensaje)
{
	for (i=0;i<form.length;i++){
		sObjeto = String(form.elements[i].name);

		if ((sObjeto.indexOf(sVariable) >= 0) && (form.elements[i].type=="checkbox") && (form.elements[i].checked))
		    return false;

	}
	
	alert(sMensaje);
	return true;	
}

function SoloNombre(ruta)
{
	var nombre = "";
	var n;
	var salir = 0;

		n = (ruta.length-1);
			while ((n>=0) && (salir==0))
				{
				  if (ruta.substr(n,1) == "\\")
					   salir = 1;
				  else
					    n = n - 1;
				}
		if ((salir == 1) && (n < (ruta.length-1)))
		{
		  nombre = ruta.substr(n+1);
		}
	
  return nombre
}

function LimpiarForm(form) {	
	var controles=form.elements;	  
	for (i=0;i<form.length;i++) {
		if ( (controles[i].name.substr(0,3)=="txt") || (controles[i].name.substr(0,3)=="Txt") || (controles[i].name.substr(0,3)=="TXT") )
			controles[i].value="";
		if ( (controles[i].name.substr(0,3)=="pwd") || (controles[i].name.substr(0,3)=="txp") || (controles[i].name.substr(0,3)=="Txp") || (controles[i].name.substr(0,3)=="TXP") )
			controles[i].value="";
		if ( (controles[i].name.substr(0,3)=="cmb") || (controles[i].name.substr(0,3)=="Cmb") || (controles[i].name.substr(0,3)=="CMB") )
			controles[i].selectedIndex=0;
		if ( (controles[i].name.substr(0,3)=="cbx") || (controles[i].name.substr(0,3)=="chk") || (controles[i].name.substr(0,3)=="CHK") || (controles[i].name.substr(0,3)=="Chk") )
			controles[i].checked=false; 
		if ( (controles[i].name.substr(0,3)=="cbo") || (controles[i].name.substr(0,3)=="Cbo") || (controles[i].name.substr(0,3)=="CBO") )
			controles[i].selectedIndex=0;
		if ( (controles[i].name.substr(0,3)=="chx") )
			controles[i].checked=false;			
	}	
}

