
function validar(objForm){
		
	idioma=0;
	campo='';
	type='';
	/*
	nombre=new Array();
	name=new Array();
	requerido=new Array();
	tamano=new Array();
	tipo=new Array();
	valores=new Array();
	*/
	
		
		nombre=new Array('Nombre', 'E-Mail', 'Apellidos', 'Telefono', 'Comentario', '');
		name=new Array('nombre', 'email', 'apellidos', 'telefono', 'comentario', '');
		requerido=new Array('', 1, '', '', '', '');
		tamano=new Array(new Array(100, 1, ''),new Array(100, 1, ''),  new Array(100, 1, ''), new Array(15, 1, ''), new Array(1500000, 1, ''), '');
		tipo=new Array('varchar', 'email', 'varchar', 'varchar', 'varchar', '');
		valores={'nombre': document.getElementById(objForm).nombre.value, 'email': document.getElementById(objForm).email.value, 'apellidos': document.getElementById(objForm).apellidos.value, 'telefono': document.getElementById(objForm).telefono.value, 'comentario': document.getElementById(objForm).comentario.value, 'nada': ''};
	
	
	res=validar_po(objForm, nombre, name, requerido, tamano, idioma, tipo, campo, type, valores);
		if(true==res)	{document.getElementById(objForm).submit();}
			else return false;

}

function validar_po(formulario, nombre, name, requerido, tamano, idioma, tipo, campo, type, valores)
{

	
	
	error=validar_2(nombre, name, requerido, tamano, idioma, tipo, campo, type, valores);

	if(!error)	{return true;}
		else
			{
				alert(error);
				ext=document.getElementById(formulario).elements.length;
				i=0;
				while(i<ext)
					{
						if(document.getElementById(formulario).elements[i].name==encontrado)
							{
								//alert(document.getElementById(formulario).elements[i].name);
								encontrado='';
								document.getElementById(formulario).elements[i].focus();
								break;
							}
						i++;
					}
				return false;
			}

}



function validar_2(nombre, name, requerido, tamano, idioma, tipo, campo, type, valores)
{
	campo=new Array();
	var encontrado;
	var confirmar;
	var idiomas=null;
	var mensaje='Atencion: hay errores en su formulario:\n';
	var salto='\n * ';


	if(!nombre)	{return 'Error de parametros: No existe definición para el nombre del valor';}
	if(!name)		{return 'Error de parametros: No existe definición para el name del campo del formulario';}
	if(!requerido)	{return 'Error de parametros: No existe definición para los campos requeridos';}
	if(!tamano)	{return 'Error de parámetros: No existe definicion para las dimensiones de los campos';}

	i=0;
	et1=name.length;
		
	while(i<et1)
		{

			/*if(idioma[i] && !isNaN(idioma[i].length) && idioma[i][0])
				{
					for(j=0;idioma[i][j];++j)
						{
							campo[j]=name[i] + idioma[i][j];
						}
					idiomas=idioma[i].length;
				}
				else*/	
			{campo[0]=name[i]; idiomas=1;}

			
			j=0;
			while(j<idiomas)
				{
					

					if(1==requerido[i]  && !valores[campo[j]] && !j && nombre[i] && campo[j] && 'nada'!=campo[j]) 	{mensaje+=salto + 'El campo ' + nombre[i] + ' falta y es requerido';}
						else if (valores[campo[j]])
							{

								if('int'==tipo[i] || 'number'==tipo[i])
									{
										if (isNaN(valores[campo[j]])) {mensaje+=salto + 'El campo ' + nombre[i] + ' debe ser un numero entero';	}
									}
								else if('float'==tipo[i] || 'decimal'==tipo[i] || 'double'==tipo[i])
									{
										for(p=0, caracter='', ext=valores[campo[j]].length;p<ext && ''==caracter;++p)	{if('.'==valores[campo[j]].charAt(p) || ','==valores[campo[j]].charAt(p))		{caracter=valores[campo[j]].charAt(p);}}
										if(caracter)	{parte=valores[campo[j]].split(caracter);}
											else	{parte=new Array(); parte[0]=valores[campo[j]]; parte[1]='';}
										if ((1==parte.length && isNaN (valores[campo[j]])) || (2==parte.length && (isNaN(parte[0]) || isNaN(parte[1])) || (parte.length > 2)))	{mensaje+=salto + 'El campo ' + nombre[i] + ' debe ser un número decimal';}

									}
								else if('bool'==tipo[i] || 'boolean'==tipo[i])
									{
										if (!(('0'==valores[campo[j]]) || ('on'==valores[campo[j]]) || ('ON'==valores[campo[j]]) || ('false'==valores[campo[j]]) || ('FALSE'==valores[campo[j]]) || ('1'==valores[campo[j]]) || ('true'==valores[campo[j]]) || ('TRUE'==valores[campo[j]]))) {mensaje+=salto + 'El campo ' + nombre[i] + ' debe ser un Si o un No';}
									}
								else if('email'==tipo[i])
									{
										//if(!sub(valores[campo[j]], '@') || !sub(valores[campo[j]], '.'))
										if(!validar_email(valores[campo[j]]))	{mensaje+=salto + 'El campo '+  nombre[i] + ' no es un ' + nombre[i] + ' valido';}
									}
								else if('datetime'==tipo[i] || 'date'==tipo[i])
									{
										/*
										if(sub(valores[campo[j]], ' ') && parte.length==2)	{parte=explode (' ', valores[campo[j]]);}
											else	{parte[0]=valores[campo[j]];}
										parte= explode('-', parte[0]);

										if (parte.length!=3 || !isNaN (parte[0]) || ! isNaN(parte[1]) || !isNaN ($parte[2]) || !checkdate(parte[1], parte[2], parte[0])) {return 'El campo ' + nombre[i] + ' debe ser una fecha válida';}
										*/
									}


								if (tamano[i][1] && valores[campo[j]].length < tamano[i][1]) {mensaje+=salto + 'El campo ' + nombre[i] + ' debe tener una extensión mínima de ' + tamano[i][1] + ' caracteres';}
									else if (tamano[i][0] && valores[campo[j]].length > tamano[i][0]) {mensaje+=salto + 'El campo ' + nombre[i] + ' debe tener una extensión menor que ' + tamano[i][0] + ' caracteres';}
							}
					if('Atencion: hay errores en su formulario:\n'!=mensaje && !encontrado)	{encontrado=campo[j];}
					++j;
				}
			i++;
		}

	if(confirmar)	{mensaje+=salto + 'La confirmacion de la contraseña, no coincide';}
	if(mensaje=='Atencion: hay errores en su formulario:\n')	{mensaje=0;}

	return mensaje;

}






function validar_email(email)
{
	var pru=0;
	ext=email.length;
	for(n=0;n<ext && 2!=pru;++n)
		{
			if('@'==email.charAt(n))	{pru=1;}
			if('.'==email.charAt(n) && 1==pru)	{++pru;}
		}
	if(2==pru)	{return true;}
		else {return false;}
}
