function acotarfrace(id, hasta){
    var obj= document.getElementById(id);
    return (obj.value.length < hasta);
}

/*
    e: event
    dato: this.value
    cDigitos: numeros antes de la coma
    numEntero (isNumEntero): es boolean (1 == true, 0 == false )
    cDecimales: numero despues de la coma
    signo: es boolean ( 1 == positivo, otro == negativo)
    separador: ','

    Ej: dddd,dd: return chequearNumero(event,this.value,4,0,2,1,',')
 */
function chequearNumero(e,dato,cDigitos,numEntero,cDecimales,signo,separador){

		//Carga de datos
		//arregla lo de mas de una coma
		separa= new Array(2);//es el numero separado

		SrError= new Array(5);
		SrError[0]= false; //chekea formato de numero
		SrError[1]= false; // chekea si cumple lo de signo y separador y todo lo demas
		SrError[2]= true;//chekea q sea solo un numero entero
		SrError[3]= true;//asd es el chekeador de ingreso de basura
		SrError[4]= false;//caso particular de la ultima lina antes del return
		
		separadorGuion= new RegExp("-");
		
		if ( signo == null ){
			signo= 1;
		}
		
		if (cDecimales == null){
		  	cDecimales= 0;
		}
		
		if ( separador == null ){
			separador= /\./;
		}
		
		if (numEntero == null){
		  	numEntero= 0;
		}else{
		  	if (!(numEntero == 0) ){
		  		SrError[2]= false;
		  	}
		}
		
		if (dato.substr(0,1) == separador){
		  	dato= '0'+ dato;
		}
		
		/******chekeo para teclas f5 escape borrar enter asdf*********/
		
		if (navigator.appName == 'Microsoft Internet Explorer'){
			nKey= window.event.keyCode;
	   	} else {
	       	nKey= e.which;
	   	}
		
		dato+='';
		dato= dato +''+ String.fromCharCode(nKey);
		
		if ( (nKey != 8) && ( nKey != 0) ){//telcas de escape
			//validacion
			if (SrError[3] == true){
			  	separador2 = new RegExp(separador);
			  	if (separador == "."){
				    		separador2= /\./;
				}
			  	if ( (separador2.test(dato) ) && (numEntero == 0) ){
				  	//"hay separador valido"
				  	if (auxTieneUnSeparador(dato,separador) ){
						SrError[0]= true;
						separa= dato.split(separador); // me fijo si es un numero decimal y de paso si es un nuemor con el separador valido
						separaAux= separa[0];
		
						if ( (separa[0] < 0) || ( separa[0].substr(0,2) == "-0" ) ){
							separaAux= separaAux.substr(1);//tsteo q solo tena el - del signo negativo
						}
						if ( (AuxSoloNumeros(separaAux[0]) ) && (AuxSoloNumeros(separa[1]) ) ){
							errorConLosCaracteres= false;
						}else{
							errorConLosCaracteres= true;
							SrError[0]= false;
						}
		
				  		if (  (separadorGuion.test(separaAux) ) || (separadorGuion.test(separa[1]) )  || (  errorConLosCaracteres ) ) {
							SrError[0]= false;//significa q teine  no solo numeros y por lo anterior tampoco tiene un separador valido
						}//no teine guines de mas metidos
		
					}
				}else{
				  		separador2 = new RegExp(separador);
			  			if (separador == "."){
				    			separador2= /\./;
						}
				  		if ( (numEntero == 1) && ( !(separador2.test(dato) ) ) ){
							if ( ( dato < 0 ) || ( dato.substr(0,2) == "-0" ) ){
									datoAux= dato.substr(1);
								}else{
								  	datoAux= dato;
							}
							if ( ! (AuxSoloNumeros(datoAux) ) ){
							  	//"no tiene separador valido y no son todos numeros"
								SrError[0]= false;//significa q teine  no solo numeros y por lo anterior tampoco tiene un separador valido
							}else{
								separa[0]= dato;
								separa[1]= 0;
								SrError[0]= true;
								SrError[2]= true;
							}
						}else{
						  	if ( (numEntero == 1) && ( separador2.test(dato)  ) ){
							    SrError[2]= false;
							    SrError[0]= false;
							}else{
							  //ca ba un super ig del si tine guion
							  	if ( ( dato < 0 ) || ( dato.substr(0,2) == "-0" ) ){
									datoAux= dato.substr(1);
								}else{
								  	datoAux= dato;
								}
			
							  	if ( ! (AuxSoloNumeros(datoAux) ) ){
							  	  	//"no tiene separador valido y no son todos numeros"
									SrError[0]= false;//significa q teine  no solo numeros y por lo anterior tampoco tiene un separador valido
								}else{
								    separa[0]= dato;
								    separa[1]= 0;
								    SrError[0]= true;
								}
							}
						}
				}
		
				if (SrError[0] == true){//sginifica q el dato no es valido
					if ( ( separa.length) <= 2 ){
						if  (separa[1] != 0){
							if ( ( separa[1] <= (  Math.pow(10,cDecimales) - 1 ) ) || ( separa[1] <= (-1*(Math.pow(10,cDecimales) ) + 1 ) ) ){
								//"tiene menos de $cDecimales decimales"
								SrError[0]= true;
							}else{
								//"tiene mas de $cDecimales decimales"
								SrError[0]= false;		
									
							}
						}else{
						  	//" no ay decimales"
						  	SrError[0]= true;
						}
						if (SrError[0] == true){
							if  ( ( separa[0] >= 0 ) && ( separa[0].substr(0,2) != "-0" ) ){
								if (signo == 1 ){
								  	//"el numero es positivo y el signo es 1"
								  	if ( (separa[0].length ) <= cDigitos) {
		
										//"el numero tiene menos de $cDigitos digitos"
										SrError[1]= true;
									}else{
		
									  	//"el numero tiene mas de $cDigitos digitos" 
										SrError[1]= false;
									}
								}else{
								  //"el numero es positivo y el signo es 0"
								  	SrError[1]= false;
								}
							}else{
								if (signo == 0 ){
								  	//"el numero es negativo y el signo es 0"
									SrError[1]= true;
									cDigitosCast= parseInt(cDigitos);
									if ( (separa[0].length ) <= (cDigitosCast + 1 ) ){
										//"el numero tiene mas de $cDigitos digitos"
										SrError[1]= true;
									}else{
										//"el numero tiene menos de ($cDigitos - 1) digitos"
										SrError[1]= false;
									}
								}else{
								  	//"el numero es negativo y el signo es 1"
								  	SrError[1]= false;
								}	
							}
						}
					}else{
					  	SrError[0]= false;//has mas de una coma
					}
					
				}
				
			}
			if ( ( dato.length == 1) && (dato.substr(0,1) == "-") && (signo == 0) ) {
				SrError[4]= true;
			}else{
			  	SrError[4]= false;
			}
		}else{
		  	SrError[4]= true;//tecla de escape valida
		}
		return ( ((SrError[0]) && (SrError[1]) && (SrError[2]) ) || (SrError[4] ) );
	}
	
	function AuxSoloNumeros(asd){//NO USAR BAJO NINGUNA SIRCUNSTANCIA
		if (asd != null){
			asd = asd.replace(/[0-9]/g,"");
			return ( (asd.length) == 0 );
		}else{
		  	return true;
		}
	}

	function auxTieneUnSeparador(datoAsd,separador){//NO USAR BAJO NINGUNA SIRCUNSTANCIA
		datoAsdAux= datoAsd;
		datoAsd= datoAsd.replace(separador,"");
		datoAsd= datoAsd.replace(separador,"");
		return ( ( (datoAsdAux.length) - 1 ) == ( datoAsd.length) );
	}
	
/*******************************************/

function chequeMail(idmail){
	var exp = new RegExp("^(((([0-9a-zA-Z]+)(?:[\-\.\_\~]*))*)@((([0-9a-zA-Z]+)(?:[\-\.\_\~]*))*)[.]([0-9a-zA-Z]{2,3}))$","i");
	res= true;
	valor= document.getElementById(idmail).value;
	if (!(exp.test(valor) ) ){
		res= false;
	}
	return res;
}

/*******************************************/

	function chequeaCodigoPostal(idCodigoPostal,e){
            var exp = new RegExp("^([A-Z][0-9]{4}[A-Z]{3})$|^([0-9]{4}$)","i");
            if (!exp.test(document.getElementById(idCodigoPostal).value)) {
                alert("El código postal es inválido");
            }
	}

/*******************************************/

	function soloLetras(idLetras,e){
	
		if (navigator.appName == 'Microsoft Internet Explorer'){
			nKey= window.event.keyCode;
	   	} else {
	       	nKey= e.which;
	   	}
	
		if ( (nKey != 8) && ( nKey != 0) ){//telcas de escape
			auxLetrasConNkey= document.getElementById(idLetras).value;
			auxLetrasConNkey= auxLetrasConNkey +''+ String.fromCharCode(nKey);
			auxLetras= auxLetrasConNkey.replace(/[a-zA-Z]/g,"");

			if ( (auxLetras.length) == 0 ){
				bulianoRet= true;
			}else{
				bulianoRet= false;
			}
			return bulianoRet;
		}
	}

	
/////////////////////////////

function LetrasSolamente(dato){
        auxDato= dato.replace(/[a-zA-Z]/g,"");
        if ( (auxDato.length) == 0 ){
            res= true;
        }else{
            res= false;
        }
        return res;
    }

function validarCodigoDestinacion(e, dato){
    digitoActual= dato.length + 1;
    res= false;
    if (navigator.appName == 'Microsoft Internet Explorer'){
        nKey= window.event.keyCode;
    } else {
        nKey= e.which;
    }
    dato= dato +''+ String.fromCharCode(nKey);
    if ( (nKey != 8) && ( nKey != 0) ){//telcas de escape
        if (digitoActual <= 5){
            res= AuxSoloNumeros(String.fromCharCode(nKey));
        }
        if ((digitoActual >= 6) && (digitoActual <= 9)){
            res= true;
        }
        if ((digitoActual >= 10) && (digitoActual <= 15)){
            res= AuxSoloNumeros(String.fromCharCode(nKey));
        }
        if (digitoActual == 16){
            res= LetrasSolamente(String.fromCharCode(nKey));
        }
    }else{
        res= true;
    }
    return res;
}


function validarContenedor(e, dato){
    digitoActual= dato.length + 1;
    res= false;
    if (navigator.appName == 'Microsoft Internet Explorer'){
        nKey= window.event.keyCode;
    } else {
        nKey= e.which;
    }
    dato= dato +''+ String.fromCharCode(nKey);
    if ( (nKey != 8) && ( nKey != 0) ){//telcas de escape
        if (digitoActual <= 4){
            res= LetrasSolamente(String.fromCharCode(nKey));
        }
        if ((digitoActual >= 5) && (digitoActual <= 11)){
            res= AuxSoloNumeros(String.fromCharCode(nKey));
        }
    }else{
        res= true;
    }
    return res;
}


function validarDJVESIM(e, dato){
    digitoActual= dato.length + 1;
    res= false;
    if (navigator.appName == 'Microsoft Internet Explorer'){
        nKey= window.event.keyCode;
    } else {
        nKey= e.which;
    }
    dato= dato +''+ String.fromCharCode(nKey);
    if ( (nKey != 8) && ( nKey != 0) ){//telcas de escape
        if (digitoActual <= 5){
            res= AuxSoloNumeros(String.fromCharCode(nKey));
        }
        if (digitoActual == 6){
            res= nKey == 100 || nKey == 68;
            alert (nKey);
        }
        if (digitoActual == 7){
            res=  nKey == 74 || nKey == 106;
            alert (nKey);
        }
        if (digitoActual == 8){
            res=  nKey == 86 || nKey == 118;
            alert (nKey);
        }
        if (digitoActual == 9){
            res=  nKey == 69 || nKey == 101;
            alert (nKey);
        }
        if ((digitoActual >= 10) && (digitoActual <= 15)){
            res= AuxSoloNumeros(String.fromCharCode(nKey));
        }
        if (digitoActual == 16){
            res=  nKey == 86 || nKey == 118;
        }
    }else{
        res= true;
    }
    return res;
}



/******************************************/

function nvx_ValidarCuit(e,nCuit1,nCuit2,nCuit3) {
    res= true;
    //Valida el número de CUIT
    res= res && ( document.getElementById(nCuit1).selectedIndex > 0) && ( document.getElementById(nCuit3).selectedIndex > 0);
    expr= new RegExp("[0-9]{7,8}","i");
    //Valido que el cuit sea numérico, con no menos de 7 dígitos y comparo con el dígito validador
    cuit=  document.getElementById(nCuit2).value;
    if (expr.test(cuit)){
        cuit=  document.getElementById(nCuit1).value + (( document.getElementById(nCuit2).value.length ==8) ?  document.getElementById(nCuit2).value : '0'+ document.getElementById(nCuit2).value);

        c= new Array(5,4,3,2,7,6,5,4,3,2);
        resultado= 0;
        for (i = 0; i < 10; i++){
            resultado += parseInt(cuit.charAt(i)) * c[i];
        }
        resultado = (11 - (resultado % 11)) % 11;
        if (resultado !=  document.getElementById(nCuit3).value) {
            alert("El CUIL/CUIT no está bien escrito, verifíquelo");
            res= false;
        }
    }else{
      alert("El CUIL/CUIT debe ser numérico y contener al menos 7 dígitos");
      res= false;
    }
    return res;
}

/******************************************/

function nvx_chequeaMenorA(e, izq, der){
	if (izq <= der){
	  	res= true;
	}else{
	  	res= false;
	}
	return res;
}

/*************lo q deveria ir******************/


function vg_chequearNumero(e,dato,cDigitos,numEntero,cDecimales,signo,separador){

	//Carga de datos
	//arregla lo de mas de una coma
	separa= new Array(2);//es el numero separado

	SrError= new Array(5);
	SrError[0]= false; //chekea formato de numero
	SrError[1]= false; // chekea si cumple lo de signo y separador y todo lo demas
	SrError[2]= true;//chekea q sea solo un numero entero
	SrError[3]= true;//asd es el chekeador de ingreso de basura
	SrError[4]= false;//caso particular de la ultima lina antes del return
	
	separadorGuion= new RegExp("-");
	
	if ( signo == null ){
		signo= 1;
	}
	
	if (cDecimales == null){
	  	cDecimales= 0;
	}
	
	if ( separador == null ){
		separador= /\./;
	}
	
	if (numEntero == null){
	  	numEntero= 0;
	}else{
	  	if (!(numEntero == 0) ){
	  		SrError[2]= false;
	  	}
	}
	
	if (dato.substr(0,1) == separador){
	  	dato= '0'+ dato;
	}
	
	/******chekeo para teclas f5 escape borrar enter asdf*********/
	
	if (navigator.appName == 'Microsoft Internet Explorer'){
		nKey= window.event.keyCode;
   	} else {
       	nKey= e.which;
   	}
	
	dato+='';
	dato= dato +''+ String.fromCharCode(nKey);
	
	if ( (nKey != 8) && ( nKey != 0) ){//telcas de escape
		//validacion
		if (SrError[3] == true){
		  	separador2 = new RegExp(separador);
		  	if (separador == "."){
			    separador2= /\./;
			}
		  	if ( (separador2.test(dato) ) && (numEntero == 0) ){
			  	//"hay separador valido"
			  	if (vg_aux_tieneUnSeparador(dato,separador) ){
					SrError[0]= true;
					separa= dato.split(separador); // me fijo si es un numero decimal y de paso si es un nuemor con el separador valido
					separaAux= separa[0];
	
					if ( (separa[0] < 0) || ( separa[0].substr(0,2) == "-0" ) ){
						separaAux= separaAux.substr(1);//tsteo q solo tena el - del signo negativo
					}
					if ( (vg_aux_soloNumeros(separaAux[0]) ) && (AuxSoloNumeros(separa[1]) ) ){
						errorConLosCaracteres= false;
					}else{
						errorConLosCaracteres= true;
						SrError[0]= false;
					}
	
			  		if (  (separadorGuion.test(separaAux) ) || (separadorGuion.test(separa[1]) )  || (  errorConLosCaracteres ) ) {
						SrError[0]= false;//significa q teine  no solo numeros y por lo anterior tampoco tiene un separador valido
					}//no teine guines de mas metidos
	
				}
			}else{
			  		separador2 = new RegExp(separador);
		  			if (separador == "."){
			    			separador2= /\./;
					}
			  		if ( (numEntero == 1) && ( !(separador2.test(dato) ) ) ){
						if ( ( dato < 0 ) || ( dato.substr(0,2) == "-0" ) ){
								datoAux= dato.substr(1);
							}else{
							  	datoAux= dato;
						}
						if ( ! (vg_aux_soloNumeros(datoAux) ) ){
						  	//"no tiene separador valido y no son todos numeros"
							SrError[0]= false;//significa q teine  no solo numeros y por lo anterior tampoco tiene un separador valido
						}else{
							separa[0]= dato;
							separa[1]= 0;
							SrError[0]= true;
							SrError[2]= true;
						}
					}else{
					  	if ( (numEntero == 1) && ( separador2.test(dato)  ) ){
						    SrError[2]= false;
						    SrError[0]= false;
						}else{
						  //ca ba un super ig del si tine guion
						  	if ( ( dato < 0 ) || ( dato.substr(0,2) == "-0" ) ){
								datoAux= dato.substr(1);
							}else{
							  	datoAux= dato;
							}
		
						  	if ( ! (vg_aux_soloNumeros(datoAux) ) ){
						  	  	//"no tiene separador valido y no son todos numeros"
								SrError[0]= false;//significa q teine  no solo numeros y por lo anterior tampoco tiene un separador valido
							}else{
							    separa[0]= dato;
							    separa[1]= 0;
							    SrError[0]= true;
							}
						}
					}
			}
	
			if (SrError[0] == true){//sginifica q el dato no es valido
				if ( ( separa.length) <= 2 ){
					if  (separa[1] != 0){
						if ( ( separa[1] <= (  Math.pow(10,cDecimales) - 1 ) ) || ( separa[1] <= (-1*(Math.pow(10,cDecimales) ) + 1 ) ) ){
							//"tiene menos de $cDecimales decimales"
							SrError[0]= true;
						}else{
							//"tiene mas de $cDecimales decimales"
							SrError[0]= false;		
								
						}
					}else{
					  	//" no ay decimales"
					  	SrError[0]= true;
					}
					if (SrError[0] == true){
						if  ( ( separa[0] >= 0 ) && ( separa[0].substr(0,2) != "-0" ) ){
							if (signo == 1 ){
							  	//"el numero es positivo y el signo es 1"
							  	if ( (separa[0].length ) <= cDigitos) {
	
									//"el numero tiene menos de $cDigitos digitos"
									SrError[1]= true;
								}else{
	
								  	//"el numero tiene mas de $cDigitos digitos" 
									SrError[1]= false;
								}
							}else{
							  //"el numero es positivo y el signo es 0"
							  	SrError[1]= false;
							}
						}else{
							if (signo == 0 ){
							  	//"el numero es negativo y el signo es 0"
								SrError[1]= true;
								cDigitosCast= parseInt(cDigitos);
								if ( (separa[0].length ) <= (cDigitosCast + 1 ) ){
									//"el numero tiene mas de $cDigitos digitos"
									SrError[1]= true;
								}else{
									//"el numero tiene menos de ($cDigitos - 1) digitos"
									SrError[1]= false;
								}
							}else{
							  	//"el numero es negativo y el signo es 1"
							  	SrError[1]= false;
							}	
						}
					}
				}else{
				  	SrError[0]= false;//has mas de una coma
				}
				
			}
			
		}
		if ( ( dato.length == 1) && (dato.substr(0,1) == "-") && (signo == 0) ) {
			SrError[4]= true;
		}else{
		  	SrError[4]= false;
		}
	}else{
	  	SrError[4]= true;//tecla de escape valida
	}
	return ( ((SrError[0]) && (SrError[1]) && (SrError[2]) ) || (SrError[4] ) );
}
	
function vg_aux_soloNumeros(asd){//NO USAR BAJO NINGUNA SIRCUNSTANCIA
	if (asd != null){
		asd = asd.replace(/[0-9]/g,"");
		return ( (asd.length) == 0 );
	}else{
	  	return true;
	}
}

function vg_aux_tieneUnSeparador(datoAsd,separador){//NO USAR BAJO NINGUNA SIRCUNSTANCIA
	datoAsdAux= datoAsd;
	datoAsd= datoAsd.replace(separador,"");
	datoAsd= datoAsd.replace(separador,"");
	return ( ( (datoAsdAux.length) - 1 ) == ( datoAsd.length) );
}
	

/*******************************************/

function vg_chequeaCodigoPostal(idCodigoPostal,e){
        var exp = new RegExp("^([A-Z][0-9]{4}[A-Z]{3})$|^([0-9]{4}$)","i");
        if (!exp.test(document.getElementById(idCodigoPostal).value)) {
            alert("El código postal es inválido");
        }
}

/*******************************************/

function vg_soloLetras(idLetras,e){

	if (navigator.appName == 'Microsoft Internet Explorer'){
		nKey= window.event.keyCode;
   	} else {
       	nKey= e.which;
   	}

	if ( (nKey != 8) && ( nKey != 0) ){//telcas de escape
		auxLetrasConNkey= document.getElementById(idLetras).value;
		auxLetrasConNkey= auxLetrasConNkey +''+ String.fromCharCode(nKey);
		auxLetras= auxLetrasConNkey.replace(/[a-zA-Z]/g,"");

		if ( (auxLetras.length) == 0 ){
			bulianoRet= true;
		}else{
			bulianoRet= false;
		}
		return bulianoRet;
	}
}
	
/******************************************/

function vg_validarCuit(e,nCuit1,nCuit2,nCuit3) {
    res= true;
    //Valida el número de CUIT
    res= res && ( document.getElementById(nCuit1).selectedIndex > 0) && ( document.getElementById(nCuit3).selectedIndex > 0);
    expr= new RegExp("[0-9]{7,8}","i");
    //Valido que el cuit sea numérico, con no menos de 7 dígitos y comparo con el dígito validador
    cuit=  document.getElementById(nCuit2).value;
    if (expr.test(cuit)){
        cuit=  document.getElementById(nCuit1).value + (( document.getElementById(nCuit2).value.length ==8) ?  document.getElementById(nCuit2).value : '0'+ document.getElementById(nCuit2).value);

        c= new Array(5,4,3,2,7,6,5,4,3,2);
        resultado= 0;
        for (i = 0; i < 10; i++){
            resultado += parseInt(cuit.charAt(i)) * c[i];
        }
        resultado = (11 - (resultado % 11)) % 11;
        if (resultado !=  document.getElementById(nCuit3).value) {
            alert("El CUIL/CUIT no está bien escrito, verifíquelo");
            res= false;
        }
    }else{
      alert("El CUIL/CUIT debe ser numérico y contener al menos 7 dígitos");
      res= false;
    }
    return res;
}


/******************************************/

function vg_chequeaMenorA(e, izq, der){
	if (izq <= der){
	  	res= true;
	}else{
	  	res= false;
	}
	return res;
}

//se utilizan cookies para que despues de sumitear ya sea en un formulario o en paginador se mantenga el lugar del menu
//en el que estabamos posicionados
function setCookie( c_name, value,  expiredays )
{
    var exdate=new Date();
    exdate.setDate(exdate.getDate()+expiredays);
    document.cookie=c_name+ "=" +value+
    ((expiredays==null) ? "" : ";expires="+exdate.toGMTString());
}

function getCookie( c_name )
{
    if (document.cookie.length > 0 ){
      c_start=document.cookie.indexOf(c_name + "=");
      if (c_start!=-1){

        c_start=c_start + c_name.length+1;
        c_end=document.cookie.indexOf(";",c_start);
        if (c_end==-1) c_end=document.cookie.length;
        return unescape(document.cookie.substring(c_start,c_end));
      }
    }
    return "";
}

function isEnableCookies()
{
  if( document.cookie.length > 0 )
    return true;
  else
    return false;
}
