function VNum(objText, lngKeyCode, posDecimales, blnNegativos){
	/*	Julio 2003-Oliver Lopez
			
			Esta funcion solo permitira introducir numeros, y una coma, sustituyendo el punto por una coma
			Solo permitira introducir un numero de decimales especificado por parametro,
			blnNegativos permitira negativos o no.
			Esta funcion no emplementa usar codigos del tipo 00004
	*/
	
	var intLongitud = objText.value.length;
	var intPosComa = objText.value.lastIndexOf(",");
	
	if (lngKeyCode == 17){
		event.keyCode = 0;
		return false;
	}
	
	//Si permite negativos y el primer caracter es -
	if ( blnNegativos ){ 
		if (( intLongitud == 0 ) && ( lngKeyCode == 45 ) ){
			event.keyCode = 45;
			return false;
		}
	}
	
	//Si el primer caracter que escribe es un cero solo puede escribir una coma a continuacion
	if ( ( intLongitud == 1 ) && ( objText.value == "0" ) && 
											(lngKeyCode != 46) && (lngKeyCode != 44) ){
			event.keyCode = 0;
			return false;
	}
	
	//Si el primer caracter es una coma no le dejamos
	if ( ( intLongitud == -1 ) && ((lngKeyCode == 46) || (lngKeyCode == 44) )){
			event.keyCode = 0;
			return false;
	}
	
	
	//-- Si existe una coma controlamos las posiciones decimales
	if (objText.value.indexOf(',') != -1){
		if ( (intLongitud - intPosComa) > posDecimales ){
			//alert('Solo se permiten ' + posDecimales + ' decimales');
			event.keyCode = 0;
			return false;
		}
	}	
	
	
	if ((lngKeyCode < 48) || (lngKeyCode) > 57){
		if ((lngKeyCode != 46) && (lngKeyCode != 44)){  
				event.keyCode = 0;
			
		}else{ // Tratamos las comas
			
			//solo puede escribir una coma si ha escrito por lo menos un numero
			// y si el numero de decimales es distinto de 0
			if(intLongitud == 0 || posDecimales == 0){
				event.keyCode = 0;
				return false;
			}
			
			//Comprobamos que no exista ya una coma
			if (objText.value.indexOf(',') != -1){
				event.keyCode = 0;
				return false;
					
			}else{
				if (lngKeyCode == 46){
					event.keyCode = 44;
				}
			}
		}
	}
}

//Comprueba que solo se introducen numeros enteros
function VCodigo(objText, lngKeyCode){
	if ((lngKeyCode < 48) || (lngKeyCode) > 57){
		event.keyCode = 0;
		return false;
	}
}

//Comprueba que solo se introducen horas en el formato hh:mm
function VHora(objText, lngKeyCode){
	if ((lngKeyCode < 48) || (lngKeyCode) > 58){
		event.keyCode = 0;
		return false;
	}
}

// Devuelve un trim del texto indicado
function Trim(s){
	var iLen = s.length;
	var iIni;
	var iFin;
	// A la izquierda
	for (iIni = 0; iIni < iLen; iIni++){
		if (s.charAt(iIni) != " ") break;
	}
	if(iIni != iLen){
		// A la derecha
		for(iFin = iLen - 1; iFin >= 0; iFin--){
			if (s.charAt(iFin) != " ") break;
		}
		return s.substring(iIni, iFin + 1);
	}
	else
		return '';
}




//Comprueba que solo se introducen numeros enteros
function VCodigo(objText, lngKeyCode){
	    if ((lngKeyCode < 48) || (lngKeyCode) > 57)
	    {
		    event.keyCode = 0;
		    return false;
	    }
	    
    }
 
//Comprueba que solo se introducen numeros enteros, sin cero   
 
 function VCodigo_sincero(objText, lngKeyCode){ 

      if (lngKeyCode ==48)
	    {
	      event.keyCode = 0;
		    return false;
	    }
		
	    if ((lngKeyCode < 48) || (lngKeyCode) > 57)
	    {
		    event.keyCode = 0;
		    return false;
	    }
	  }
    
  //VARIABLE GLOBAL
    var textoAnterior = '';

    //ESTA FUNCIÓN DEFINE LAS REGLAS DEL JUEGO
    function cumpleReglas(simpleTexto)
        {
            //la pasamos por una poderosa expresión regular
            var expresion = new RegExp("^(|([0-9]{1,5}(\\,([0-9]{1,2})?)?))$");
            //si pasa la prueba, es válida
            if(expresion.test(simpleTexto))
                return true;
            return false;
        }//end function checaReglas

    //ESTA FUNCIÓN REVISA QUE TODO LO QUE SE ESCRIBA ESTÉ EN ORDEN
    function revisaCadena(textItem)
        {
          // Reemplazamos el punto por una coma, mantenemos asi la
          // configuracion regional de españa
          textItem.value = textItem.value.replace(".",",");
          
            //si comienza con un punto, le agregamos un cero
            if(textItem.value.substring(0,1) == ',') 
                textItem.value = '0' + textItem.value;

            //si no cumples las reglas, no te dejo escribir
            if(!cumpleReglas(textItem.value))
                textItem.value = textoAnterior;
            else //todo en orden
                textoAnterior = textItem.value;
        }//end function revisaCadena
    
function VNum_ExplorerFireFox(objText, e, posDecimales, blnNegativos, blnPuntoPorComa)
{
  var intLongitud = objText.value.length; 
  var intPosComa = objText.value.lastIndexOf(",");
  if (!blnPuntoPorComa)
    intPosComa = objText.value.lastIndexOf(".");
  var lngKeyCode = (document.all) ? e.keyCode : e.which;
  var bIExplorer = (document.all) ? true : false;
  
  if (lngKeyCode == 17)
  {
    if (bIExplorer)
      e.keyCode = 0;
    else
      e.preventDefault();
    return false;
  }
  
  //Si permite negativos y el primer caracter es -
  if ( blnNegativos ){ 
    if (( intLongitud == 0 ) && ( lngKeyCode == 45 ) ){
      if (bIExplorer)
        e.keyCode = 45;
	    else
	    {
	      
	      e.preventDefault();
	      objText.value = "-";
	    }
	    return false;
    }
  }
  
  //Si el primer caracter que escribe es un cero solo puede escribir una coma a continuacion
  if ( ( intLongitud == 1 ) && ( objText.value == "0" ) && 
									    (lngKeyCode != 46) && (lngKeyCode != 44)  && (lngKeyCode != 8))
	{
	    if (bIExplorer)
	      e.keyCode = 0;
	    else
	      e.preventDefault();
	    return false;
  }
  
  //Si el primer caracter es una coma no le dejamos
  if ( ( intLongitud == 0 ) && ((lngKeyCode == 46) || (lngKeyCode == 44) ))
  {
      if (bIExplorer)
	      e.keyCode = 0;
	    else
	    {
	      e.preventDefault();
	    }
	    return false;
  }
  
  //-- Si existe una coma controlamos las posiciones decimales
  if (blnPuntoPorComa)
  {
    if (objText.value.indexOf(',') != -1 && lngKeyCode != 8)
    {
      if ( (intLongitud - intPosComa) > posDecimales )
      {
	      //alert('Solo se permiten ' + posDecimales + ' decimales');
	      if (bIExplorer)
	        e.keyCode = 0;
	      else
	         e.preventDefault();
	      return false;
      }
    }
  }
  else
  {
    if (objText.value.indexOf('.') != -1 && lngKeyCode != 8)
    {
      
      if ( (intLongitud - intPosComa) > posDecimales )
      {
	      //alert('Solo se permiten ' + posDecimales + ' decimales');
	      if (bIExplorer)
	        e.keyCode = 0;
	      else
	         e.preventDefault();
	      return false;
      }
    }
  }
  
  if ((lngKeyCode < 48) || (lngKeyCode) > 57)
  {
    if ((lngKeyCode != 46) && (lngKeyCode != 44) && (lngKeyCode != 8))
    {
        if (bIExplorer)  
		      e.keyCode = 0;
		    else
		      e.preventDefault();
			
    }
    else
    { 
      //Comprobamos si hemos pulsado el boton borrar
			if (lngKeyCode == 8)
			{
			  if (!bIExplorer)
			  {
			    if (intLongitud > 1)
			      objText.value = objText.value.substring(0,objText.value.length -1);
			    else
			      objText.value = "";
			    return false;
			  }
			}
			
			// Tratamos las comas
	    //solo puede escribir una coma si ha escrito por lo menos un numero
	    // y si el numero de decimales es distinto de 0
	    if(intLongitud == 0 || posDecimales == 0)
	    {
	      if (bIExplorer)
		      e.keyCode = 0;
		    else
		       e.preventDefault();
		    return false;
	    }
			
	    //Comprobamos que no exista ya una coma
	    if (intPosComa != -1)
	    {
	      if (bIExplorer)
		      e.keyCode = 0;
		    else
		      e.preventDefault();
		    return false;
					
	    }
	    else
	    {
	      if (blnPuntoPorComa)
	      {
		      if (lngKeyCode == 46)
		      {
		        if (bIExplorer)
			        e.keyCode = 44;
			      else
			      {
			         e.preventDefault();
			         objText.value = objText.value + ",";
			      }
		      }
		    }
		    else
		    {
		      if (lngKeyCode == 44)
		      {
		        if (bIExplorer)
			        e.keyCode = 46;
			      else
			      {
			         e.preventDefault();
			         objText.value = objText.value + ".";
			      }
		      }
		    }
	    }
    }
  }
  
}
