
	var doc="document.forms";
	var lowercaseLetters = " abcdefghijklmnñopqrstuvwxyz";
	var uppercaseLetters = " ABCDEFGHIJKLMNÑOPQRSTUVWXYZ";


	/*******************************************************************************
	 * 	Validamos propiedades del fomurlario por tipo de dato y si es obligatorio  *
	 *  o no.																	   *
	 *  @param	strFldName 		id Elemento										   *
	 *  @param  frmField   		id Formulario 									   *	
	 *  @param  intLength  		longitud maxima									   *
	 *  @param  minLength  		longitud minima									   *
	 *  @param  strDtType  		tipo de dato									   *
	 *  @param  forced     		indica si el dato es obligatorio				   *
	 *  @param  description     indica la descripcion del error					   * 
	 *******************************************************************************/
	
	function ValidField(strFldName, frmField, intLength, minLength,	strDtType, forced, description)
	{
	
		switch (strDtType)
		{
			
			case 'string' : 
				if ((forced) && (!ValidBlanks(frmField, strFldName, description))) 
				{
					return (false);
				}
				if (eval(''+doc+'["'+frmField+'"].'+strFldName+'.value') != ""){
					if(!BusqCaracteres(eval(''+doc+'["'+frmField+'"].'+strFldName+'.value')))
					{
						var charsNotValid = "<, >, #, |, /, \", \', \\";
						alert('El contenido del campo ' + description + ' no puede contener: ' + charsNotValid);
				  		eval(''+doc+'["'+frmField+'"].'+strFldName+'').focus();
						return (false);
					}
		
					if (eval(''+doc+'["'+frmField+'"].'+strFldName+'.value').length > intLength)
					{
						alert('El  numero maximo de caracteres del campo ' + description + ' debe ser: '+intLength);
						eval(''+doc+'["'+frmField+'"].'+strFldName+'').focus();
						return (false);
					}
		
					if (eval(''+doc+'["'+frmField+'"].'+strFldName+'.value').length < minLength)
					{
						alert('Necesitamos mas informacion para estudiar tu peticion.');
						eval(''+doc+'["'+frmField+'"].'+strFldName+'').focus();
						return (false);
					}
				}
				return true;	
				
			break;
	
			case 'mail': 
				if ((forced) && (!ValidBlanks(frmField, strFldName, description))) 
				{
					return (false);
				}
				if(!BusqCaracteres(eval(''+doc+'["'+frmField+'"].'+strFldName+'.value')))
					{
						var charsNotValid = "<, >, #, |, /, \", \', \\...";
						alert('El contenido del campo ' + description + ' no puede contener: ' + charsNotValid);
				  		eval(''+doc+'["'+frmField+'"].'+strFldName+'').focus();
						return (false);
					}
				if (eval(''+doc+'["'+frmField+'"].'+strFldName+'.value') != ""){
					if (!isEmail(eval(''+doc+'["'+frmField+'"].'+strFldName+'.value')) || !isEmailFormat(eval(''+doc+'["'+frmField+'"].'+strFldName+'.value')))
					{
							alert('El contenido del campo ' + description + ' no es correcto');
							eval(''+doc+'["'+frmField+'"].'+strFldName+'').focus();
							return (false);
					}	
				}
				return(true);
			break;	

			case 'alphabetic': 
				if ((forced) && (!ValidBlanks(frmField, strFldName, description))) 
				{
					return (false);
				}
				if (eval(''+doc+'["'+frmField+'"].'+strFldName+'.value') != ""){
					if(!isAlphabetic(eval(''+doc+'["'+frmField+'"].'+strFldName+'.value')))
					{
							alert('El contenido del campo ' + description + ' solo puede contener caracteres alfabaticos [a-z]');
							eval(''+doc+'["'+frmField+'"].'+strFldName+'').focus();
							return (false);
					}
				}
				return (true);
						
			break;

			case 'phone' : 
				if ((forced) && (!ValidBlanks(frmField, strFldName, description))) 
				{
					return (false);
				}					
				if (eval(''+doc+'["'+frmField+'"].'+strFldName+'.value') != "")
				{
					var cad = eval(''+doc+'["'+frmField+'"].'+strFldName+'.value');
					if (cad.length!=9)
					{
						alert('El contenido del campo ' + description + ' debe tener 9 caracteres.');
						eval(''+doc+'["'+frmField+'"].'+strFldName+'').focus();
						return (false);
					}
					if (!isNumber(eval(''+doc+'["'+frmField+'"].'+strFldName+'.value')))
						{
							alert('El contenido del campo ' + description + '  debe ser numerico.');
							eval(''+doc+'["'+frmField+'"].'+strFldName+'').focus();
							return (false);
						}
				  	else
				  	{
						num = cad.charAt(0); 
						if(num!='6' && num!='8' && num!='9') 
						{
							alert('Debe empezar por 6, 8 o 9'); 
							eval(''+doc+'["'+frmField+'"].'+strFldName+'').focus();
							return (false);
						}
				  	}  
				}
				return (true);	
			break;

			case 'number': 
				if ((forced) && (!ValidBlanks(frmField, strFldName, description))) 
				{
					return (false);
				}	
				
				if (eval(''+doc+'["'+frmField+'"].'+strFldName+'.value') != ""){
					if (!isNumber(eval(''+doc+'["'+frmField+'"].'+strFldName+'.value')))
					{
						alert('El contenido del campo ' + description + ' debe ser numerico.');
						eval(''+doc+'["'+frmField+'"].'+strFldName+'').focus();
						return (false);
					}	
					if (eval(''+doc+'["'+frmField+'"].'+strFldName+'.value').length > intLength)
					{
						alert('El numero maximo de caracteres del campo ' + description + ' debe ser: '+intLength);
						eval(''+doc+'["'+frmField+'"].'+strFldName+'').focus();
						return (false);
					}
					if (eval(''+doc+'["'+frmField+'"].'+strFldName+'.value').length < minLength)
					{
						alert('El numero minimo de caracteres del campo ' + description + ' debe ser: '+minLength);
						eval(''+doc+'["'+frmField+'"].'+strFldName+'').focus();
						return (false);
					}
				}
				return (true);
			break;
		}
	}

	/*******************************************************************************
	 * 	Validamos que la propiedad no este a nulo o vacio  						   *
	 *  @param	strFldName 		id Elemento										   *
	 *  @param  frmField   		id Formulario 									   *
	 *  @param  description     indica la descripcion del error					   *																	   
	 *******************************************************************************/
	
	function ValidBlanks(frmField, strFldName,	description)
	{
		if (eval(''+doc+'["'+frmField+'"].'+strFldName+'.value') == "" || eval(''+doc+'["'+frmField+'"].'+strFldName+'.value') == null)
		{
	        alert('Debe insertar algun valor en el campo ' + description);
	        eval(''+doc+'["'+frmField+'"].'+strFldName+'').focus();
	        return (false);
		} 
		else 
		{
			return (true);
		}
		
	}

	/*******************************************************************************
	 * 	Comprueba que la cadena tenga solo caracteres validos					   *
	 *  o no.																	   *
	 *  @param  text     texto del campo					   					   *	
	 *******************************************************************************/

	function BusqCaracteres(text)
	{	
		var txt = text.toString();
		var valido = true;
		
		for(var i = 0;i < text.length;i++)
		{
			var oneChar = txt.charAt(i);
			if (oneChar == "<" || oneChar == ">"  || oneChar == "#" || oneChar == "/" || oneChar == '\"'  || oneChar == "\'" || oneChar == "\\" || oneChar == "|"  )
			{
				valido = false;
			}
		}
		if (!valido)
		{
			return false;
		} 
		else 
		{
			return true;
		}
	}



	/*******************************************************************************
	 * 	Comprueba si el mail es correcto 										   *
	 *  @param  s     mail									   					   *	
	 *******************************************************************************/

	function isEmailFormat (s) 
	{
		var email = s;
		var expr = /^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,3})$/;
		if(expr.exec(email))
		{
			return true;
		}
		else 
		{
			return false;
		}
	} 

	/*******************************************************************************
	 * 	Comprueba si el parametro es alfabetico									   *
	 *  @param  s     cadena de texto									   		   *	
	 *******************************************************************************/

	function isAlphabetic (s)
	{   

		if (isEmpty(s)) {
	       if (isAlphabetic.arguments.length == 1) {
		       	return false;
	       }
	       else 
		   {
			   	return (isAlphabetic.arguments[1] == true);
		   }
		}
		for (var i = 0; i < s.length; i++)
	    {   
	        var c = s.charAt(i);
			if (!isLetter(c)){
	        	return false;
			}
	    }
	    return true;
	}

	/*******************************************************************************
	 * 	Comprueba si el parametro tiene un caracter entre [a -z]				   *
	 *  @param  c     cadena de tecto									   		   *	
	 *******************************************************************************/

	function isLetter (c){

	    return( ( uppercaseLetters.indexOf( c ) != -1 ) |( lowercaseLetters.indexOf( c ) != -1 ) );

	}


	/*******************************************************************************
	 * 	Indica si el campo es numero				   							   *
	 *  @param  s     cadena de texto									   		   *	
	 *******************************************************************************/

	function isNumber (s)
	{  
	    var i;
	    var dotAppeared = false;
	   
	   	if(!isEmpty(s)){
		   	for (i = 0; i < s.length; i++)
		    {   
		        var c = s.charAt(i);
		        if( i != 0 ) {
		            if ( c == "," ) {
		                if( !dotAppeared )
			            {
		                    dotAppeared = true;
			            }    
		                else
		                {
		                    return false;
		                }
		            } else     
		                if (!isDigit(c) && c != ".") return false;
		        } else { 
		            if ( c == "," ) {
		                if( !dotAppeared )
			            {
		                    dotAppeared = true;
		                }
		                else
			            {
		                    return false;
		                }
		            } else
		                if (!isDigit(c) && (c != "-") || (c == "+")) {
			                return false;
		                }
		        }
		    }
		    return true;
		} 
		return false;
		
	    
	}

    /*******************************************************************************
	 * 	Indica si el campo este vacio				   							   *
	 *  @param  s     cadena de texto									   		   *	
	 *******************************************************************************/

	function isEmpty(s) 
    {  
	    if((s == null) || (s.length == 0))
	    {	
		    return true;
	    }
	    else {
	    	return false;
	    }
	}

    /*******************************************************************************
	 * 	Indica si el campo es un digito				   							   *
	 *  @param  c     cadena de texto									   		   *	
	 *******************************************************************************/

	 function isDigit (c)
     {   
        return ((c >= "0") && (c <= "9"));
     }
	 
	 /**********************************************************************************
	  * Validamos si es mail formato correcto		   							   *
	  * @param  c     cadena de texto									   		   *	
	  *******************************************************************************/
	 function isEmail (s) 
	 {
	 	if (isEmpty(s))
	 	{
	 		return false;
	 	}
	 	var i = 1; var sLength = s.length; 
	 	
	 	while ((i < sLength) && (s.charAt(i) != "@")) 
	 	{ 
	 		i++;
	 	}
	 	if ((i >= sLength) || (s.charAt(i) != "@")) 
	 	{
	 		return false;
	 	}
	 	else
	 	{
	 		i += 2;
	 	}
	 	
	 	while ((i < sLength) && (s.charAt(i) != ".")) 
	 	{
	 		i++; 
	 	}
	 	if ((i >= sLength - 1) || (s.charAt(i) != ".")) {
	 	 	return false; 
	 	}
	 	else 
	 	{
	 		return true;
	 	}
	 } 

