/* Nombre: BLANCOS
	- PARAM IN : Nombre del objeto de la forma y descripcion de objeto que se mostrara en el alert.
	- DESCRIPCION : Vefifica si el tamaño del campo es mayor a 0
	- PARAM OUT :   true  --> si la longitud es mayor a 0.
                        false --> si la longitud es 0
*/
function blancos(field,msg){
   var cade;
   campo = field.name;
   cade = field.value;
   Caracteres = " ";
   tamano = cade.length;
   //alert ('tamano '+tamano + ' cadena '+cade);
// if (tamano==0 || cade=="N/A")
   if (tamano==0 || cade=="")
   {
     alert('El campo '+msg +' es requerido');
     //alert('Es necesario '+msg);
     if ( field.type != "hidden" )
        field.focus();
     field.value= "";
     return false;
   };
   return true;
}

/* Nombre: CARACTER
	- Valida que solo se tengan el abecedario y algunos cracteres adicionales (caracteres No especiales)
	- Adicionalmente convierte el abecidario en mayusculas
*/
function caracter(field,msg){
   var cade;
   campo = field.name;
   cade = field.value;
if( cade != null ) {
   Caracteres = "abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ #@&|$?:;.,=+*%()ş'<>_-\\/0123456789";
   //field.value = cade.toUpperCase();
   for(i = 0; i < cade.length; i++)
    {
    if(Caracteres.indexOf(cade.charAt(i),0) == -1)
     {
     alert('El campo '+msg+' contiene un caracter no válido');
     field.focus();
     return false;
     }	 
    }
	}	
   return true;
}

function cambiaMay(field)
{
   var cade;
   cade = field.value;
   field.value = cade.toUpperCase();
   return;
}


/* Nombre: CARACTER_AZ
	- Valida que solo se tenga el abecedario en la cadena a validar
*/
function caracter_az(field,msg){
   var cade;
   campo = field.name;
   cade = field.value;
   Caracteres = "abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ ";
   field.value = cade.toUpperCase();
   for(i = 0; i < cade.length; i++)
    {
    if(Caracteres.indexOf(cade.charAt(i),0) == -1)
     {
     alert('El campo '+msg+' contiene un caracter no alfabético');
     field.focus();
     return false;
     }
    }
   return true;
}

/* Nombre: ESNUM
	- Valida que solo contenga numeros la cadena
*/
function esnum(field,msg){
   var cade;
   campo = field.name;
   cade = field.value;
   Caracteres = "0123456789"
   field.value = cade.toUpperCase();
   for(i = 0; i < cade.length; i++)
    {
    if(Caracteres.indexOf(cade.charAt(i),0) == -1)
     {
     alert('El campo '+msg+' contiene un caracter no numérico');
     field.value = "";
     field.focus();
     return false;
     }
    }
   return true;
}

function longexacta(field,longitud,msg)
{
   var cade;
   campo = field.name;
   cade = field.value;
   if ( cade.length != longitud )
   {
     alert('El campo '+msg+' debe tener '+longitud+' caracteres');
     field.focus();
     return false;
   }
   
}
/*Valida longitud maxima
*/
function longmaxima(field,longitud,msg)
{
   var cade;
   campo = field.name;
   cade = field.value;
   if ( cade.length > longitud )
   {
     alert('El campo '+msg+' rebaza los '+longitud+' caracteres permitidos');
     field.focus();
     return false;
   }
   
}
/* Nombre: DECIMAL
	- Valida que solo contenga numeros la cadena y adicionalmente un punto
*/
function decimal(field,msg){
   var tamano = true;
   var cade;
   var nonum;
   nonum=0;
   campo = field.name;
   cade = field.value;
   tamano=cade.length;
   Caracteres = "0123456789."

   for(i = 0; i < tamano; i++)
   {
    if(Caracteres.indexOf(cade.charAt(i),0) == -1)
    {
     alert('El campo '+msg+' contiene un caracter invalido');
     nonum = 1;
     if (field.disabled == false)
        field.focus();
     return false;
    }
   }
   return true;
}

/* Nombre: ESLATLONG
	- Valida que solo contenga numeros y caracteres especiales la cadena
*/
function esLatLong(field,msg){
   var cade;
   campo = field.name;
   cade = field.value;
   Caracteres = "0123456789 -."
   field.value = cade.toUpperCase();
   for(i = 0; i < cade.length; i++)
    {
    if(Caracteres.indexOf(cade.charAt(i),0) == -1)
     {
     alert('El campo '+msg+' contiene un caracter no permitido');
     field.focus();
     return false;
     }
    }
   return true;
}

function msg(ddd,w){
	alert('Nombre de la forma:');
}

function isEmail ( cad ) {
    var idx    = 1;
    var cnt    = 0;
    var tamCad = cad.length;
    while ( ( idx < tamCad ) && ( cad.charAt ( idx ) != "@" ) ) {
        idx++;
    }
    if ( ( idx >= tamCad ) || ( cad.charAt ( idx ) != "@" ) ) {
        return false;
    } else {
        idx += 2;
    }
    while ( ( idx < tamCad ) && ( cad.charAt ( idx ) != "." ) ) {
        idx++;
    }
    if ( ( idx >= tamCad - 1 ) || ( cad.charAt ( idx ) != "." ) ) {
        return false;
    }
    // no permitir dos puntos consecutivos
    idx = 1;
    while ( ( idx < tamCad ) ) {
        if ( idx + 1 < tamCad ) {
            if ( cad.charAt ( idx ) == "." && cad.charAt ( idx + 1 ) == "." ) {
                return false;
            }
        }
        idx++;
    }
    // no permitir dos guiones consecutivos
    idx = 1;
    while ( ( idx < tamCad ) ) {
        if ( idx + 1 < tamCad ) {
            if ( cad.charAt ( idx ) == "-" && cad.charAt ( idx + 1 ) == "-" ) {
                return false;
            }
        }
        idx++;
    }
    // no permitir dos guiones bajos consecutivos
    idx = 1;
    while ( ( idx < tamCad ) ) {
        if ( idx + 1 < tamCad ) {
            if ( cad.charAt ( idx ) == "_" && cad.charAt ( idx + 1 ) == "_" ) {
                return false;
            }
        }
        idx++;
    }
    // solo una arroba
    cnt = 0;
    while ( ( idx < tamCad ) ) {
        if ( cad.charAt ( idx ) == "@" ) {
            cnt++;
        }
        idx++;
    }
    if ( cnt > 1 ) {
        return false;
    }
    // no permitir al principio @._-
    if ( cad.charAt ( 0 ) == "@" || cad.charAt ( 0 ) == "." || cad.charAt ( 0 ) == "_" || cad.charAt ( 0 ) == "-" ) {
        return false;
    }
    // no permitir al final @._-
    if ( cad.charAt ( tamCad - 1 ) == "@" || cad.charAt ( tamCad - 1 ) == "." || cad.charAt ( tamCad - 1 ) == "_" || cad.charAt ( tamCad - 1 ) == "-" ) {
        return false;
    }
    return true;
}

function textCounter ( field, countfield, maxlimit ) {
    if ( field.value.length > maxlimit ) { // if too long...trim it!
        field.value = field.value.substring ( 0, maxlimit );
    } else { // otherwise, update 'characters left' counter
        countfield.value = maxlimit - field.value.length;
    }
}

function enviaCom(forma)
{
	if( validaCom(forma) == true )
		document.forms[1].submit();

}


function validaCom(forma)
{

	elemento = document.getElementById("nombre");
	if ( ! blancos(elemento,"Nombre") )
		return false;	
	if ( ! caracter(elemento,"Nombre") )
		return false;	
		
	elemento = document.getElementById("email");
	if ( ! blancos(elemento,"Correo Electronico") )
		return false;	
	if ( ! isEmail(elemento.value) )
	{
		alert('El campo de correo electronico no es correcto');
		return false;	
	}
		
	elemento = document.getElementById("ciudad");
	if ( ! blancos(elemento,"Ciudad") )
		return false;	
	if ( ! caracter(elemento,"Ciudad") )
		return false;	
		
	elemento = document.getElementById("telefono");
	if ( ! blancos(elemento,"Telefono") )
		return false;	
	if ( ! caracter(elemento,"Telefono") )
		return false;	
		
	elemento = document.getElementById("emp");
	if ( ! blancos(elemento,"Empresa") )
		return false;	
	if ( ! caracter(elemento,"Empresa") )
		return false;	
		
	elemento = document.getElementById("coment");
	if ( elemento.value.length < 2 )
	{
		alert("Comentario invalido");
		return false;	
	}
	if ( ! caracter(elemento.value,"Comentarios") )
		return false;	
		
	return true;	
}
