<!--

function SetFocus(eCampo) {
     eCampo.focus();
}


/**
 * Función que dice si un campo de un formulario es nulo.
 * @param eEntrada El campo del formulario.
 * @return booleano indicando si está vació o no.
 */
function esVacio (eEntrada) {
    return eEntrada.value=='';
}


/**
 * Función que dice si un campo de un formulario es nulo.
 * Hace lo mismo que esVacio.
 * @param eEntrada El campo del formulario.
 * @return booleano indicando si está vació o no.
 */
function esNulo (eEntrada) {
    return esVacio (eEntrada);
}

/**
 * Función que dice si un campo de un formulario es un número.
 * @param eEntrada El campo del formulario.
 * @return booleano indicando si es un número o no.
 */
function esNumeroConComas (eEntrada) {
    var numeros=".,0123456789";
    
    for (var i=0;i < eEntrada.value.length; i++) {
        if (numeros.indexOf(eEntrada.value.charAt(i)) == -1) {
            return false;
        }
    }
    return true;
}



/**
 * Función que dice si un campo de un formulario es un número.
 * @param eEntrada El campo del formulario.
 * @return booleano indicando si es un número o no.
 */
function esNumero (eEntrada) {
    var numeros="0123456789";
    
    for (var i=0;i < eEntrada.value.length; i++) {
        if (numeros.indexOf(eEntrada.value.charAt(i)) == -1) {
            return false;
        }
    }
    return true;
}
/**
 * Función que dice si un campo de un formulario es un número.
 * @param eEntrada El campo del formulario.
 * @return booleano indicando si es un número o no.
 */
function cadenaEsNumerica (cadena) {
    var numeros="0123456789";
    for (var i=0;i < cadena.length; i++) {
        if (numeros.indexOf(cadena.charAt(i)) == -1) {
            return false;
        }
    }
    return true;
}


/**
 * Esta función hace un focus contra el campo que se le indica y
 * muestra un alert.
 * @param eCampo   Campo del formulario
 * @param eMensaje Mensaje a mostrar
 */
function gestionError (eCampo, eMensaje) {
    alert (eMensaje);
    eCampo.focus();
}


/**
 * Función que pone la feche del dia en un campo de un formulario
 * @param campo1 es el campo del formulario.
 */

function ponFecha(campo1) {
	var hoy = new Date();
	var fechadia = " "; 
	var mes = 1;
	fechadia += hoy.getDate();
	fechadia += "/";
	mes +=  hoy.getMonth();
	fechadia += mes;
	fechadia += "/";
	var year=hoy.getYear();
	if (year < 1000)
		year+=1900;
	fechadia += year;
	campo1.value=fechadia;
}

/**
 * Función que dice si un campo de un formulario es una fecha valida.
 * @param pfecha El campo del formulario.
 * @return booleano indicando si es un valido o no.
 */

function esFecha(pfecha){
		var ldiasmes = new Array(13);
		var lfecha = " ";
		var lbolfecha = true;
		ldiasmes[1] = 31;
		ldiasmes[2] = 28;
		ldiasmes[3] = 31;
		ldiasmes[4] = 30;
		ldiasmes[5] = 31;
		ldiasmes[6] = 30;
		ldiasmes[7] = 31;
		ldiasmes[8] = 31;
		ldiasmes[9] = 30;
		ldiasmes[10] = 31;
		ldiasmes[11] = 30;
		ldiasmes[12] = 31;
		lfecha = pfecha.value.toString();
		if (lfecha.length > 0) {
	           if ((lfecha.substr(2,1) =="/") && (lfecha.substr(5,1) == "/") ||
                       (lfecha.substr(2,1) =="-") && (lfecha.substr(5,1) == "-")){
                      for (i=0; i<10; i++)  {	
                          if (((lfecha.substr(i,1)<"0") || (lfecha.substr(i,1)>"9")) && (i != 2) && (i != 5)){
                             lbolfecha = false;
                             break;  
			  }  
                      }
		      if (lbolfecha){
         		anyo = lfecha.substr(6,4);
	 		mes  = lfecha.substr(3,2);
	 		dia  = lfecha.substr(0,2);
                        if((anyo < 1900) || (anyo > 2050) || (mes < 1) || (mes > 12) || (dia < 1) || (dia > 31)){
	                  alert("Valores de Fecha no Validos. Ponga dd/mm/aaaa");
        	          lbolfecha = false;
			} else {
		  	  if((anyo%4 != 0) && (mes == 2) && (dia > 28))	{   
		             // Año no bisiesto y es febrero y el dia es mayor a 28
    	                     alert("Dia Incorrecto");
        	             lbolfecha = false;
			   } else {
		              if ((((mes == 4) || (mes == 6) || (mes == 9) || (mes==11)) && (dia>30)) || ((mes==2) && (dia>29))){
    	                         alert("Dia Incorrecto");
        	                 lbolfecha = false;
                              }
			   }	
			}	
		      }	else {
                        alert("Formato de Fecha no Valido. Ponga dd/mm/aaaa");
                        lbolfecha = false;
                      }	
                   } else {
                     alert("Formato de Fecha no Valido. Ponga dd/mm/aaaa");
		     lbolfecha = false;
	           }		
		} else {
                  alert("Fecha es NULA.");
		  lbolfecha = false;
                }
		return lbolfecha;
}

/**
 * Función que dice si un campo de un formulario es un email valido.
 * @param email El campo del formulario.
 * @return booleano indicando si es un valido o no.
 */

function validarEmail(email)
{
 caracNoValidos="/:,;ºª!¡|·#$%&¬()=?¿'^`[]+*¨´\"{}\\çÇ+€";
 if(email=="") return false;//debe rellenarse
 for(i=0;i<caracNoValidos.length;i++)
 {
  //¿hay algún carácter no válido?
  caracMal=caracNoValidos.charAt(i);
  if(email.indexOf(caracMal,0)>-1)return false;
 }
 posArroba=email.indexOf("@",1);
 if(posArroba==-1)return false;
 if(email.indexOf("@",posArroba+1)!=-1)return false;
 //y solo una
 posPunto=email.indexOf(".",posArroba);
 if(posPunto==-1)return false;
 //y al menos un . despues de la @
 if(posArroba+1==posPunto) return false;
 if(posPunto+3>email.length) return false;
 //debe haber al menos 2 caracteres tras el.
 for(i=0;i<email.length;i++)
 {
  if(email.charAt(i) == " ") return false;
 }
 //no debe haber al espacios en blanco.
 return true;
}

/**
 * Función que dice si un campo de un formulario es una cantidad en euros valida.
 * @param campo El valor del campo del formulario.
 * @return booleano indicando si es un valido o no.
 */

function validar_euros(campo)
{
 var valor = campo.value;
 //comprobacion si PVP tiene formato euros (se podria hacer en funcion aparte, pero en esta funcionalidad no es preciso)
 if(valor != "0,00") 
 {
  if (!isNaN(valor)) //si es numero, en cuyo caso solo parte entera (si hbuiera al menos una ',', seria true)
  {
   if((valor=="") || (parseInt(valor)==0))
   {
    return false;
   }
   else
   {
   if(valor.indexOf("-")!=-1)
    {
     return false;
    }
    else
    {
     return true;
    }
   }
  }
  else //si hay algun caracter no numero
  {
   if(valor.indexOf(".")!=-1)
   {
    alert("punto");
    precio = valor.split(".");
   }
   else
   {
    alert("coma");
    precio = valor.split(","); //se construye un array con las subcadenas del campo PVP separadas por ','
   }
   if (precio.length == 2) //si dicho array tiene 2 posiciones (parte entera y parte decimal), es que el PVP tiene parte_entera,parte_decimal
   {
    var regE=new RegExp("^[\\d]*$"); //expresion regular que comprueba si solo hay digitos
    if(regE.test(precio[0]) && regE.test(precio[1])) //comprobacion de parte entera y decimal del valor del PVP introducido (si son numeros unicamente)
    {
     if ((precio[1].length == 2) && ((precio[0].length >0) && (parseInt(precio[0])!=0)))  //si la parte decimal tiene solo 2 decimales, se hace submit
     {
      return true;
     }
     else //si parte decimal tiene + de dos decimales
      return false;
    }
    else //si las supuestas parte entera y/o la parte decimal tiene algun caracter no numerico
     return false;
    }
    else //si el array no tiene dos posiciones, es que algo "raro" hay en el PVP
     return false;
   }
 }
 else
 {
  return false;
 }
}

/**
 * Función que dice si un campo de un formulario es un alfanumerico sin caracteres extraños.
 * @param str El valor del campo del formulario.
 * @return booleano indicando si es un valido o no.
 */

function IsAlphaNum( str ) {
	// Return immediately if an invalid value was passed in
	if (str+"" == "undefined" || str+"" == "null" || str+"" == "")	
		return false;

	var isValid = true;
	
	// convert to a string for performing string comparisons.
   	str += "";	

	// Loop through length of string and test for any alpha numeric 
	// characters
   	for (i = 0; i < str.length; i++)
   	{
			// Alphanumeric must be between "0"-"9", "A"-"Z", or "a"-"z",",",".","'","&"," ","º","ª","`","¨","(",")","-"
        //alert(escape(str.charAt(i)));
      	if (!(((str.charAt(i) >= "0") && (str.charAt(i) <= "9")) || 
      			((str.charAt(i) >= "a") && (str.charAt(i) <= "z")) ||
      			((str.charAt(i) >= "A") && (str.charAt(i) <= "Z"))||(str.charAt(i) == " ")||(str.charAt(i) == ",")||(str.charAt(i) == ".")||(str.charAt(i) == "'")||(str.charAt(i) == "&")||(str.charAt(i) == "º")||(str.charAt(i) == "ª")||(str.charAt(i) == "à")||(str.charAt(i) == "è")||(str.charAt(i) == "ì")||(str.charAt(i) == "ò")||(str.charAt(i) == "ù")||(str.charAt(i) == "À")||(str.charAt(i) == "È")||(str.charAt(i) == "Ì")||(str.charAt(i) == "Ò")||(str.charAt(i) == "Ù")||(str.charAt(i) == "á")||(str.charAt(i) == "é")||(str.charAt(i) == "í")||(str.charAt(i) == "ó")||(str.charAt(i) == "ú")||(str.charAt(i) == "Á")||(str.charAt(i) == "É")||(str.charAt(i) == "Í")||(str.charAt(i) == "Ó")||(str.charAt(i) == "Ú")||(str.charAt(i) == "ü")||(str.charAt(i) == "Ü")||(str.charAt(i) == "(")||(str.charAt(i) == ")")||(str.charAt(i) == "-")||(str.charAt(i) == "ñ")||(str.charAt(i) == "Ñ")||(str.charAt(i) == "+")||(str.charAt(i) == "_")||(str.charAt(i) == "%")||(str.charAt(i) == "/")||(str.charAt(i) == ":") ||(str.charAt(i) == ";")))
			{
				isValid = false;
				break;
			}	
   	} // END for   
   
   	return isValid;
}  // end IsAlphaNum

function lFnAccion(parametro){
     if (parametro == "Enviar"){
        if (Comprobar()){
           document.form1.submit();
        }
     } else {
       document.form1.reset();
     }
 }

/**
 * Función que comprueba que el numero de la tarjeta sea numerico
 * @param caduca es el campo caducidad del formulario
 * @return booleano indicando si es un valido o no.
 */
function validatarjetas(numtarj)
{
	if(esNulo(numtarj))
	{
		gestionError (numtarj, "Introduzca su número de tarjeta, por favor");
		return false;
	}
	if(numtarj.value.length<16)
	{
		gestionError (numtarj, "Introduzca los 16 números de su tarjeta");
		return false;
	}
        if (esNumero(numtarj)) return true;
	else {
		gestionError (numtarj, "Número Tarjeta sólo admite números");
		return false;
	}
}
/**
 * Función que dice si la caducidad de una tarjeta esta bien puesta
 * @param caduca es el campo caducidad del formulario
 * @return booleano indicando si es un valido o no.
 */
function validarcaducidad(caduca)
{
	if(esNulo(caduca))
	{
		alert("Escriba la fecha de caducidad");
		caduca.select();
		return false;
	}
	barra=caduca.value.indexOf('/');
	if(barra==-1)
	{
		alert("Escriba bien el número de fecha de caducidad: mm/aa");
		caduca.select();
		return false;
	}
	if(caduca.value.indexOf('/',barra+1)!=-1)
	{
		alert("Solo escriba una barra");
		caduca.select();
		return false;
	}
	var cadu=caduca.value.split('/');
	if (!cadenaEsNumerica(cadu[0]) || parseInt(cadu[0])>12 || parseInt(cadu[0])<1 || cadu[0].length<2)
	{
		alert("Mes Incorrecto.");
		caduca.select();
		return false;
	}
	if (!cadenaEsNumerica(cadu[1]) || cadu[1].length<2) 
	{
		alert("Escriba bien el año (mm/aa)");
		caduca.select();
		return false;
	}

	return true;
}
/**
 * Función que comprueba un campo numerico con xx decimales
 * @param cant es el numero
 * @deci  es el numero de decimales a controlar
 * @return devuelve false si no es numerico o el campo con los decimales corregidos si es true
 */
 function esMoneda(cant, deci)
{
	if(!esNumero(cant))
	{
		var decim=deci+1;
		if(!esNumeroConComas(cant))//si tiene algun caracter que no sea . o ,
		{
			gestionError(cant, "No introduzca caracteres no válidos");
			return false;
		}
		var opc=0;
		for(x=0;x<cant.value.length;x++)
		{
			if(cant.value.charAt(x)==".")//Buscamos qué signo de puntuación se encuentra primero			
			{										//para controlarlos de distinta forma
				opc=1;
				break;
			}
			if(cant.value.charAt(x)==",")
			{
				opc=2;
				break;
			}
		}
		switch(opc)
		{
			case 1://si es un punto
			{	
				var a=cant.value.indexOf('.');
				if(cant.value.indexOf('.',a+1)!=-1)//si tiene mas de un punto (1..1)
				{
					alert("Solo introduzca un punto (no introduzca separador de millares)");
					return false;
				}
				ente=cant.value.split('.');				
				var entero="";
				entero=ente[0];
				if(ente[1].length>0)
				{
					var decimal="";					
					if(ente[1].indexOf(',')!=-1)
					{
						var i=0,o=0;
						o=ente[1].indexOf(',');					
						if(ente[1].indexOf(',',o+1)!=-1)
						{
							alert("Número incorrecto");
							return false;
						}					
						do{						//se busca una coma para cambiarla por un punto
							if(ente[1].charAt(i)==",")
							{
								decimal=decimal+".";					
							}
							else
							{
								decimal+=ente[1].charAt(i);
							}
							i++;
						}while(i<cant.value.length);					
						entero+=decimal;
					}
					else
					{
						entero+=".";
						entero+=ente[1];
					}					
				}				
				break;	
			}	
			case 2: //si es una coma
			{
				var b=cant.value.indexOf(',');
				if(cant.value.indexOf(',',b+1)!=-1)//si tiene mas de una coma (1,,1)
				{
					alert("Solo introduzca una coma (no introduzca separador de millares)");
					return false;
				}				
				if(cant.value.indexOf('.')!=-1)
				{					
					if(cant.value.indexOf('.',cant.value.indexOf('.')+1)!=-1)
					{
						alert("No introduzca mas de un punto(sin separador de millares)");
						return false;
					}
					var ente=cant.value.split(',');
					var entero=ente[0];
					var decimal=ente[1];			
					entero=entero+decimal;
				}
				else
				{
					var entero=cant.value.replace(',','.');
				}
				if(cant.value.indexOf('.')+1==cant.value.length)
					entero=entero.replace('.','');				
				break;
			}			
		}
		if(entero.indexOf('.')+1<=entero.length)
		{
			var num=entero.split('.');
			if(num[1]+"" == "undefined" || num[1]+"" == "null" || num[1]+"" == "")
				num[1]="0";
			if(num[1].length>deci)
			{
				gestionError(cant,"No introduzca mas de "+deci+" decimales");
				return false;
			}
		}		
		if(entero.indexOf('.')+1==entero.length)
			entero=entero.replace('.','');				
		cant.value=entero;
		return cant.value;
	}
	else//si es un numero sin nada mas
	{	
		return cant.value;	
	}
}
/**
 * Función que formatea un campo numerico con xx decimales
 * @param valor es el campo con el numero
 * @deci  es el numero de decimales a controlar
 * @return devuelve el campo formateado con los decimales corregidos
 */
 function FormatearMoneda(valor,ndec)
 {
  var num="";
  var cant="";
  cont=0;
  if((ndec=="") || isNaN(ndec))
  {
   ndec=2;
  }
  if(esNumero(valor))
  {
   valor.value=valor.value+".00";
   return valor.value;
  }
  else
  {
   if(esNumeroConComas(valor))
   {
    for(i=0;i<=valor.value.length;i++)
    {
     if(valor.value.charAt(i)==".") cont++;
     if(valor.value.charAt(i)==".")
     {
      if(cont==1)
      {
       num=num+valor.value.charAt(i);
      }
     }
     else
     {
      if(!isNaN(valor.value.charAt(i))) num=num+valor.value.charAt(i);
     } 
    }
    if (cont>=1)
    {
     num = num.split(".");
     if(num[0].length==0)
     {
      cant=num[0]+"0.";
     }
     else
     {
      cant=num[0]+".";
     } 
     for(x=0;x<ndec;x++)
     {
      if(!isNaN(num[1].charAt(x)))
      {
       cant=cant+num[1].charAt(x);
      }
      else
      {
       cant=cant+"0";
      }
     }
     if(num[1].length < ndec)
     {
      for(z=num[1].length;z<ndec;z++)
      {
       cant=cant+"0";
      }
     }
     valor.value=cant;
     return valor.value;
    }
    else
    { 
     valor.value=num+".00";
     return valor.value;
    }
   }
   else
   {
    return valor.value;
   }
  }
 } 
/**
 * Función que envia el form utilizando validator.js
 */

 function gFnEnviarForm(elForm){      
      if (v.exec()){
         if (gFnBeforeEnviarForm()){
            elForm.actualizado.value="YES";		
            elForm.submit();
         }
      }
 }

 // Para reutilizar en cada modulo
 function gFnBeforeEnviarForm(){      
      return true;
 }

 function gFnVerifyForm(elForm){      
      if (v.exec()){
         if (gFnBeforeEnviarForm()){
            elForm.actualizado.value="YES";		
            return true;		
         }
      } 
      return false;
 }

 function gFnSendFormDelete(elForm,laAccion){
    if (confirm('¿Seguro que desea borrar el Registro?')){
       elForm.action=laAccion;
       elForm.submit();
    }
 }

/**
 * Función que envia el Form Pestañas en CabecerasLineas
 * Debe de tener un campo oculto de redireccion
 */

 function gFnEnviaPestanyaForm(elForm,accion){
     elForm.action=accion;		
     elForm.submit();
 }

//-->
