/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Script valida_form_back.js, 29/09/2000, Netjuice-Network CATALUNYA, omanzano@netjuice-network.com                        //
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/* Declaraci�n de funciones.

Init()								// Funci�n comod�n donde se inicializar� cualquier elemento del script, url es la
				   			     	// direcci�n de destino, donde apunta el formulario.
isEmpty(s)							// Verifica si s es un valor vacio.
isEmptyNotWhitespace(s,obj)			// Verifica si s esta vacio sin espacios en blanco
isInteger(s)						// Verifica si s es un entero y devuelve true o false.
isDigit(c)							// Verifica si c es un d�gito en un rango de "0" a "9". 
isAlphabetic(s,obj)					// Verifica si s es una letra y en caso false inicializa el campo obj a "".
isLetter(c)							// Verifica si c es un car�cter aceptado dentro de un rango (a-z)(A-Z)(')(-)...
									// y el espacio que no sea principio de cadena.
isLetterOrNumber(c)					// Verifica que c se encuentre en un rango de LETRAS y N�MEROS
isWhitespace(s)						// Verifica si s es un espacio en blanco.
isMail(obj)							// Verifica si es un email con sintaxis v�lida.
isWhiteSpacePos(c,pos_ini,pos_fin)	// Verifica de c si entre la pos_ini y pos_fin hay un espacio en blanco.
isTelefon(obj)						// Verifica si obj es un n�mero de tel�fono.
									
isCodPostal(c)						// Verifica que c sea un c�digo postal v�lido.
ChangeImg(obj,valor)				// Cambia la im�gen a Visto si el campo es correcto.
NotAcceptInitChar(c)				// Verifica que c no se encuentre en el patr�n para el 1er car�cter de la cadena.
isName(obj)							// Verifica si s es un nombre de persona o empresa.
isCategoria(c,obj)					// Verifica que sea una categoria seg�n el patr�n: 00.00.00.00.... etc.
isNumero(obj)						// Verifica que el valor del obj sea un n�mero y nada m�s.
isNifPersonaFisica(obj)							// Verifica que el valor del obj sea un NIF de persona fisica.
isNif(obj)							// Verifica que el valor del obj sea un NIF.
isMaxLenTextArea(c,obj,maxlen)      // Verifica que la longitud maxlen no sea m�s grande que el contenido de c.

NotAcceptInitChar(c)				// Verifica que c se encuentre dentro de un patr�n de car�cteres.
daysInFebruary(year)				// Verifica si year es un a�o visiesto y devuelve el n�mero de dias.
isCorrectDate(obj,day,month,year)	// Verifica que la fecha sea correcta en base al a�o bisiesto
isOneDigit(s,obj)					// Verifica que s se encuentre en un patr�n de a-z A-Z
isAtoZ(s)							// Devuelve true si NO est� entre a-z A-Z y false lo contrario.
SelectOption(obj,selIndex)			// Verifica que no elijas la primera opci�n de un Select.
isReadOnly(obj,name)				// Asigna a obj un campo de texto NO modificable.
isNameWhiteSpace(s,obj)				// Verifica si s es un nombre de persona o empresa aceptando espacios en blanco.
DeteleWhiteSpace(s,obj)				// Elemina los espacios en blanco que haya al principio de s.
isDate(s,obj)						// Verifica que s sea una fecha tipo: ddmmaaaa y lo transforma a dd/mm/aaaa
isCardDate(s,obj)					// Formatea la fecha para que isDate() la acepte y verifique.
ChangeFocusToButton(obj)			// Cambia el foco hacia el bot�n de Alta

isCreditCard(st)					// Verifica que el st sea un n�mero de targeta de cr�dito.
isVisa(cc)							// Verifica que el cc sea un n�mero VISA.
isMasterCard(cc)					// Verifica que el cc sea un n�mero MASTERCARD.
isAmericanExpress(cc)				// Verifica que el cc sea un n�mero AMERICA EXPRESS.

isFileBox(obj)						// Verifica si el campo file tiene alg�n valor.
isDecimal(c)						// Verifica que c sea un n�mero, coma o punto para los n�meros decimales.
CompCampoVacio(obj)					// Verifica si un campo est� vacio o no. Devuelve TRUE O FALSE
MakeOption(Txt,Valor,Form,Select)	// Crea un nuevo OPTION en el formulario especificado por NOMBRE o �NDICE.
CorrectIndex(obj)					// Validamos un campo que sea indice en la BD pero no clave. 

textCounter							// limita el tamano de un campo
*/

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////

/* Variables definidas.

var RequiredFields		// Contiene los campos obligatorios del formulario.		 
var c=0					// Contador comodin.
var d=0					// Contador comodin.
var e=0					// Contador comodin.
var comp=false			// Control comodin.
var Elements;			// Contiene el objeto de formulario: document.forms[0]
var ValorCampo;			// Contiene el valor del campo a comparar.
var Control				// Contiene true o false seg�n el estado del campo email: true=error, false=ok �?.
var ie					// Contiene true si el navegador es IExplorer.
var ns					// Contiene true si el navegador es Netscape.
var whitespace			// Contiene " \t\n\r" = espacio m�s un salto de linea o tabulador.
var error				// Contiene true o false y sirve para cambiar la im�gen de Visto o X.
var Destino				// Contiene la direcci�n de destino de la p�gina actual.
var ready				// Control de envio de formulario, si es false no lo envia.
*/


///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// DEFINICI�N DE VARIABLES.

var c=0;
var d=0;
var e=0;
var Elements;
var ValorCampo;
var Control=false;
var num_tel;
var whitespace = " \t\n\r";

var error=false;
var ready=false;
var ie=(document.all) ? true:false;
var ns=(document.layers) ? true:false;

if (!ie && !ns){
	ie=true;
}


// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// INICIACI�N.


function Init(NombreForm){
	Elements=eval("document.forms['"+NombreForm+"']");
	ready=true;
	error = false;
	whitespace = " \t\n\r";
}

function ValidarPass(obj){
	
	s=""+obj.value;
	s=DeleteWhiteSpace(s,obj);
	if(s.length<3) error = true;
	else error = false;

	return error;
}

function isName(obj){
	s=""+obj.value;
	if(s.length==0) return true;
	else return isAlphabetic(s,obj);
}

function isAlphabetic(s,obj){
	s=DeleteWhiteSpace(s,obj);
	if(!NotAcceptInitChar(obj.value.substr(0,1))){
		for(i = 0; i < s.length; i++){   
			var c = s.charAt(i);
			if(!isLetterOrNumber(c) && !isCharAccent(c)){
				error=true;
			}
		}
	}
	else error=true;
	
	return error;
}

function DeleteWhiteSpace(s,obj){
var i;
var z=0;

	if(s.length!=0){
/*
 * while(isWhitespace(s.substr(z,1))){ z++; }
 */
		
		while(s.substr(z,1)==" "){
			z++;
		}
		obj.value=s.substr(z,(s.length-z));
		s=obj.value;
	}
	return s;
}


function isWhitespace(s){
var c = s.charAt(0);

	if(whitespace.indexOf(c) == -1) return false;
	else return true;
}

function isLetter(c)
{
	return (((c >= "a") && (c <= "z")) || ((c >= "A") && (c <= "Z"))) || (((c==" ") || (c=="'") || (c=="-") || (c=="�") || (c=="�") || (c=="�")));
}

function isLetterOrNumber(c)
{
	return (((c >= "a") && (c <= "z")) || ((c >= "A") && (c <= "Z")) || ((c >= "0") && (c <= "9")) || ((c=="�") || (c=="�")) || ((c=="�") || (c=="�")));
}

function NotAcceptInitChar(c)
{
	return ((c=="'") || (c=="-") || (c=="�") || (c=="�") || (c=="�") || (c==" ") || (c=="") || (c==null));
}

function isAtoZ(c)
{
	return (((c >= "a") && (c <= "z")) || ((c >= "A") && (c <= "Z")) || ((c=="�") || (c=="�")) || ((c=="�") || (c=="�")));
}

function isLetterOrNumberOrWhiteSpace(c)
{
	return (((c >= "a") && (c <= "z")) || ((c >= "A") && (c <= "Z")) || (c==" ") || (c=="'") || (c=="-") || (c=="_") || (c=="�") || (c=="�") || (c=="�")  || ((c >= "0") && (c <= "9")) || ((c=="+") || (c=="/") || (c=="@") || (c=="�") || (c=="$") || (c=="%") || (c=="&") || (c=="*")) || ((c=="!") || (c=="�")) || ((c=="�") || (c=="?")) || ((c==".") || (c==":")) || ((c==",") || (c==";")) || ((c=="(") || (c==")")) || ((c=="�") || (c=="�")) || ((c=="�") || (c=="�")));
}

function isCharAccent(c)
{
	return ((c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�"))
}


function isCharNotAccept(c){
	
	return ((c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="#") || (c=="$") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c==",") || (c=="'") || (c=='"'))
}


function isMail(obj){
var ValorCampo;

	ValorCampo=obj.value;
	if(ValorCampo.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) == -1){
		error = false;
	}
	else error = true;
	
	return error;
}

function isEmpty(s)
{
	return ((s == null) || (s.length == 0));
}

function isEmptyNotWhitespace(s,obj)
{
	s = DeleteWhiteSpace(s,obj);
	return ((s == null) || (s.length == 0));
}

// /////////Numeros////////////////////

function isTelefon(obj){
	if (obj.value.match(new RegExp("[0123456789 -]{9,}"))) {
		return true;
	} 
	else return false;
}

function isCodPostal(obj){
	if (obj.value.match(new RegExp("[0123456789]{5}"))) {
		return true;
	} 
	else return false;
}

function isInteger(s)
{
var i;

	for(i=0;i<s.length;i++)
	{   
		var c = s.charAt(i);	
		if(!isDigit(c)) error = true;
	}
	return error;
}

function isDigit(c)
{
	return ((c >= "0") && (c <= "9"))
}

function isDecimal(c)
{
	return ((c == ".") || (c == ","))
}


function isNumero(obj)
{
var c;

	error=false;
	c= obj.value;
	if(c.length==0) error=true;
	else
	{
		for(var i=0;i<c.length;i++)
		{   	 
			if(!isDigit(c.substr(i,1)))
			{
				if(!isDecimal(c.substr(i,1)))
				{
					error=true;
				}
			}
		}
	}
	return error;	
}

function isNifPersonaFisica(obj)
{
var dni = obj.value.toUpperCase();
if(dni.length!=9){
return false;	
}
// comprobamos si el DNI es de Españoles
if(dni.match(new RegExp("[0123456789]{8}[A-Z]"))){
return true;	
}
// comprobamos si el DNI es de Españoles menores de 14 años
if(dni.match(new RegExp("K[0123456789]{7}[A-Z]"))){
	return true;	
	}
// comprobamos si el DNI es de Españoles residentes en el extranjero sin DNI
if(dni.match(new RegExp("L[0123456789]{7}[A-Z]"))){
	return true;	
	}
// comprobamos si el DNI es de Extranjeros
if(dni.match(new RegExp("[MXYZ][0123456789]{7}[A-Z]"))){
	return true;	
	}
// el DNI no es correcto
return false;
}

function isNif(obj)
{
var c,letra;
var err;

	err = false;
	c= obj.value;
	if(c.length!=10) error=true;
	else
	{
		letra = c.substr(9,(c.length - 1));
		c = c.substr(0,9);
		error = isInteger(c);
		
		if (!error)
		{
			err = isAtoZ(letra);
		}
		if (err=false) error = true;
		else error = false;
	}
	
	return error;	
}



function isMaxLenTextArea(c,obj,maxlen)
{
	if(c.length>maxlen) return true;
	else return false;
}

function isCategoria(c,obj)
{
var i=0;
var cont=0;
   
	while(i<c.length)
	{
		if(isDigit(c.charAt(i)) && cont<2)
		{
			cont++;
		}
		else
		{
			if(cont==2 && c.charAt(i)==".")
			{
				cont=0;
			}
			else error=true;
		}     	
	 	i++;
	}	
	
	if(cont!=2) error=true;
	
	return error;	
}

// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// CADENAS !!!!

function KeysBuscaGlobal(obj){
	var c=0;
	var cadena=(""+obj.value);
	var cadena2="";
	
	while(c<cadena.length){
		cadena2+=isCharErrorDB(cadena.substr(c,1));
		c++;
	}
	
	obj.value=cadena2.toUpperCase();
	
	if(document.images["IMG"+obj.name]){
		if(cadena2.length>0){
			document.images["IMG"+obj.name].src="../img/ok.gif";
		}
		else{
			document.images["IMG"+obj.name].src="../img/ko.gif";
		}
	}
}

function isOneDigit(s,obj)
{
	if(s.length==0) error=true;
	else
	{
		if(isAtoZ(s) || isCharAccent(s)) error=false;
		else error=true;
	}
	return error;	
}


function isNameWhiteSpace(s,obj)
{

	// s=DeleteWhiteSpace(s,obj);
	
	if(s.length==0 || s=="") error=true;
	else
	{
		var i=0;
		error=false;
		   
		while(i<s.length){
		          var c=s.substr(i,1);
		      if(!isLetterOrNumberOrWhiteSpace(c) && !isCharAccent(c)) error=true;
		      i++;
		    }
		
	}
	return error;	
}



// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// ESPACIO BLANCO !!!


function isWhiteSpacePos(c,pos_ini,pos_fin)
{
var espacio=false;

	if(c.length<pos_fin) espacio=false;
	else
	{
		for(var i=pos_ini;i<=pos_fin;i++)
		{
			if(c.charAt(i)==" ")
			{
				espacio=true;
			}
		}
	}
	if(espacio) return true;
	else return false;
}


// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// FILE !!!

function isFileBox(obj)
{
	if(obj.value.length>0)
	{
		error=false;
	}
	else error=true;
	
	return error;
}


// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Fechas !!!

function daysInFebruary(year)
{
   // February has 29 days in any year evenly divisible by four,
   // EXCEPT for centurial years which are not also divisible by 400.
	return (  ((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0) ) ) ? 29 : 28 );
}

function isCorrectDate(obj,day,month,year)
{
var DiasFebrero;
var daysInMonth = new Array(12);

	daysInMonth[1] = 31;
	daysInMonth[2] = 29;
	daysInMonth[3] = 31;
	daysInMonth[4] = 30;
	daysInMonth[5] = 31;
	daysInMonth[6] = 30;
	daysInMonth[7] = 31;
	daysInMonth[8] = 31;
	daysInMonth[9] = 30;
	daysInMonth[10] = 31;
	daysInMonth[11] = 30;
	daysInMonth[12] = 31;
	
	day=parseFloat(day);
	month=parseFloat(month);
	
	if(day<=daysInMonth[month])
	{
		if(parseInt(month)==2)
		{
			DiasFebrero=daysInFebruary(year);   
			if(day > DiasFebrero)
			{
				error=true;
				obj.value="";
			}
		}
		error=false;
		if(day<10) var day="0"+day;
		if(month<10) var month="0"+month;
		if(!isInteger(year) && (year.length ==4)) obj.value=day+"/"+month+"/"+year;
		else {
				error=true;
				obj.value="";
		}		
	}
	else
	{
		error=true;
		obj.value="";
	}
	return error;
}

function isDate(s,obj)
{
	s=DeleteWhiteSpace(s,obj);
	error=false;
	var day="";
	var month="";
	var year="";
	
	if(s.length>=8)
	{ // formato ddmmaaaa m�nimo para tratarlo como una fecha.
		if(s.indexOf("/") == -1)
		{
			 if(s.length==8)
			 {
				day=s.substr(0,2);
				month=s.substr(2,2);
				year=s.substr(4,4);
			 }
			 else error=true;
		}
		else
		{
			if((s.indexOf("/") != -1) && (s.lastIndexOf("/") != s.indexOf("/")))
			{
				day=s.substr(0,(s.indexOf("/")));
				month=s.substr((s.indexOf("/")+1),2);
				if(month.indexOf("/") != -1) month=month.substr(0,1);
				year=s.substr((s.lastIndexOf("/")+1),4);
			}
			else error=true;
		}
	}
	else error=true;
	
	if(error) return error;
	else return isCorrectDate(obj,day,month,year);
}

function isCardDate(more,s,obj)
{
	s=(""+more)+s;
	if(s.length>=6) isDate(s,obj);
	else obj.value="";
}



// /////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Campo de texto ReadOnly !!!

function isReadOnly(obj,name)
{
	for(var i=0;i<obj.length;i++)
	{
		if(obj.elements[i].name==name)
		{
			if((i+1)==obj.length)
			{
				for(var ii=0;ii<obj.length;ii++)
				{
					if(obj.elements[ii].type=="button")
					{
						obj.elements[ii].focus();	
					}
				}
			}
			else obj.elements[i+1].focus();
		}
	}  
}



// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Foco a la Ventana !!!

var contWin=0;
var set;

function WindowFocus(ObjWin)
{
	contWin++;
	if(ObjWin!="")
	{
		ObjWin.focus();
	}
	else
	{
		if(contWin<5)
		{
			set = setTimeout("WindowFocus(ObjWin);",1000);
		}
		else clearTimeout(set);
	}
}



// //////////////////////////////////////////////////////////////////////////////////////////////////////////////
// //////////////////////////////////////////////////////////////////////////////////////////////////////////////
// VALIDACI�N DE TARGETAS DE CR�DITO //
// //////////////////////////////////////////////////////////////////////////////////////////////////////////////



function isCreditCard(st) 
{
	if(st.length>19)
	{
		return true;
	}
	
	sum=0;
	mul=1;
	l=st.length;
	
	for(i=0;i<l;i++)
	{
		digit = st.substring(l-i-1,l-i);
		tproduct = parseInt(digit ,10)*mul;
		if(tproduct>=10)
		{
			sum+=(tproduct % 10)+1;
		}
		else sum += tproduct;
		if(mul==1)
		{
			mul++;
		}
		else mul--;
	}
	
	// Uncomment the following line to help create credit card numbers
	// 1. Create a dummy number with a 0 as the last digit
	// 2. Examine the sum written out
	// 3. Replace the last digit with the difference between the sum and
	// the next multiple of 10.
	
	if((sum % 10)==0)
	{
		return false;
	}
	else return true;
}

function isVisa(cc)
{
// Sample number for visa: 4111 1111 1111 1111 (16 digits)
	if(((cc.length == 16) || (cc.length == 13)) && (cc.substring(0,1) == 4))
	{
		isCreditCard(cc);
	}
	else return true;
}

function isMasterCard(cc)
{
	// Sample number for MasterCard: 5500 0000 0000 0004 (16 digits)
	firstdig = cc.substring(0,1);
	seconddig = cc.substring(1,2);
	if((cc.length == 16) && (firstdig == 5) && ((seconddig >= 1) && (seconddig <= 5)))
	{
		isCreditCard(cc);
	}
	else return true;
}

function isAmericanExpress(cc)
{
	// Sample number for American Express: 340000000000009 (15 digits)
	firstdig = cc.substring(0,1);
	seconddig = cc.substring(1,2);
	if((cc.length == 15) && (firstdig == 3) && ((seconddig == 4) || (seconddig == 7)))
	{
		isCreditCard(cc);
	}
	else return true;
}

function CompCampoVacio(obj)
{
var s=obj.value;

	if(s.length==0 || s=="") error=true;
	else error=false;
	
	return error;
}
var ObjOption;
function MakeOption(Txt,Valor,Form,Select){
	var Elements2="";
	
	if(isNaN(Form)){
		Elements2=eval("document.forms['"+Form+"']."+Select);
	}
	else{
		Elements2=eval("document.forms[Form]."+Select);
	}
	
	if(ns){
		var ObjOption=new Option(Txt,Valor,false,true);
		Elements2.options[Elements2.options.length]=ObjOption;
	}
	if(ie){
		ObjOption=document.createElement('OPTION');
		ObjOption.value=Valor;
		ObjOption.text=Txt;
		Elements2.add(ObjOption, 0);
	}
}


function CorrectIndex(obj){
	var c=0;
	var cadena="";
	var cadena2="";

	cadena = DeleteWhiteSpace(obj.value,obj);
	
	if (cadena.length < 5) {
		error = true;
	}
	else {
		while ((c<cadena.length) && (!error)){
			error = isCharNotAccept(cadena.substr(c,1));
			c++;
		}
	}
	
	return error;
}

function Trim(str) {
	return TrimRight(TrimLeft(str));
}

function TrimRight( str ) {
	var resultStr = "";
	var i = 0;

	if (str+"" == "undefined" || str == null)	
		return null;

	str += "";
	if (str.length == 0) 
		resultStr = "";
	else {
  		i = str.length - 1;
  		while ((i >= 0) && (str.charAt(i) == " "))
 			i--;
			
  		resultStr = str.substring(0, i + 1);
  	}
  	return resultStr;  	
}

function TrimLeft( str ) {
	var resultStr = "";
	var i = len = 0;

	if (str+"" == "undefined" || str == null)	
		return null;

	str += "";
	if (str.length == 0) 
		resultStr = "";
	else {	
		len = str.length;
		
  		while ((i <= len) && (str.charAt(i) == " "))
			i++;
  		resultStr = str.substring(i, len);
  	}
  	return resultStr;
}

function isTelefonoMovil(s){
	var n=0, i=0;
	var sError = false;

	while (i<s.length && !sError ) {
		var c = Trim(s.charAt(i));
		if (c.length>0){
			if(isDigit(c)) {
				n++;
			} else {
				sError = true;
			}
		}
		i++;
	}

	if (!sError && n==9){
		return true;
	} else {
		return false;
	}
}

function sinEspacios(s){
var i;
var z=0;

	if(s.length!=0){
		while(s.substr(z,1)==" "){
			z++;
		}
		s=s.substr(z,(s.length-z));
	}
	return s;
}

// //////////////////////////////////////////////////////////////////////////////////////////////////////////////
// //////////////////////////////////////////////////////////////////////////////////////////////////////////////
// VALIDACI�N DE NICK y PASSWORD
// //////////////////////////////////////////////////////////////////////////////////////////////////////////////
function isNotCorrectVocal(c){
	return ((c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�") || (c=="�"));
}

function isEspecialChar(c){
	return ((c=="�") || (c=="�") || (c=="!") || (c=="|") || (c=="\"") || (c=="#") || (c=="$") || (c=="~") || (c=="%") || (c=="&") || (c=="/") || (c=="\\") || (c=="(") || (c==")") || (c=="^")|| (c=="�") || (c=="?") || (c=="�") || (c=="+") || (c=="{") || (c=="}") || (c=="<") || (c==">") || (c==" "));
}

function isCorrectWord(s){
	var word = true;
	var i=0;

	while(i<s.length && word){
		var c=s.substr(i,1);
		if(isEspecialChar(c) || isNotCorrectVocal(c)) {
			word = false;
		}
		i++;
	}

	return word;
}

function textCounter( field, maxlimit ) {
	  if ( field.value.length > maxlimit )
	  {
	    field.value = field.value.substring( 0, maxlimit );
	    return false;
	  }
}
