/*
Website de Yamaha Musical de Venezuela - http://www.yamaha-ve.com/
Script para validación de formularios
Programación: Ing. Miguel Palazzo <miguel@actimedia.com.ve>
*/

<!--//
// Función para validar ingreso de datos en formaContactos
vContactos=new Array();
vContactos[0]="nombres|Disculpe, debe especificar su(s) nombres(s).|";
vContactos[1]="apellidos|Disculpe, debe especificar su(s) apellido(s).|";
vContactos[2]="email|Disculpe, debe especificar su e-mail.|@";
vContactos[3]="codtlf|El código de área de su teléfono solamente puede poseer números.|a";
vContactos[4]="codtlf|El código de área de su teléfono debe poseer cuatro (4) dígitos.|b";
vContactos[5]="tlf|Su teléfono solamente puede poseer números.|a";
vContactos[6]="tlf|Su teléfono debe estar compuesto por siete (7) dígitos.|c";
vContactos[7]="mensaje|Disculpe, debe especificar su mensaje.|";

function validarContactos(){
	d=document.formaContactos;
	for(i=0;i<d.elements.length;i++){
		obj=d.elements[i];
		checkValue=checkString(obj.value);
		for(k=0;k<vContactos.length;k++){
			tempArray=vContactos[k].split("|");
			if(obj.name==tempArray[0]){
				case1="(tempArray[2]=='' && obj.value.length==0)";
				case2="(tempArray[2]==0 && obj.value==0)";
				case3="(tempArray[2]=='@' && emailCheck(obj.value)==false)";
				case4="(tempArray[2]=='a' && obj.length>0 && isNaN(obj.value)==false)";
				case5="(tempArray[2]=='b' && obj.length>0 && obj.length<4)";
				case6="(tempArray[2]=='c' && obj.length>0 && obj.length<7)";
				if(eval(case1) || eval(case2) || eval(case3) || eval(case4) || eval(case5) || eval(case6))
				{
					obj.focus();
					if(tempArray[2]!='@'){alert(tempArray[1])};
					return false;
				}
			}
		}
	}
	return true;
}

function validar(){
var obj = document.frmUsuarios;
  if (obj.nombre.value == '')
   { alert ("Disculpe, debe indicar su Nombre"); obj.nombre.focus(); return false;} 
  if (obj.apellido.value == '')
   { alert ("Disculpe, debe indicar su Apellido"); obj.apellido.focus(); return false;} 
   if (obj.fecha_nacimiento.value == '')
   { alert ("Disculpe, debe indicar su Fecha de nacimiento"); obj.fecha_nacimiento.focus(); return false;} 
  if (obj.nacionalidad.value == '')
   { alert ("Disculpe, debe indicar su Nacionalidad"); obj.nacionalidad.focus(); return false;} 
  if (obj.cedula.value == '')
   { alert ("Disculpe, debe indicar su Cedula"); obj.cedula.focus(); return false;} 
   if (obj.telefono_local.value == '')
   { alert ("Disculpe, debe indicar un telefono local"); obj.telefono_local.focus(); return false;} 
   if (obj.celular.value == '')
   { alert ("Disculpe, debe indicar un telefono celular"); obj.celular.focus(); return false;} 
  if (noesEmail(obj.email)) { return false;} else { dest=obj.email.value; }
  if (obj.direccion.value == '')
   { alert ("Disculpe, debe escribir su direccion"); obj.direccion.focus(); return false;} 
  if (cat == false)
   { alert ("Disculpe, debe escoger una categoria"); return false;} 
  if (obj.nombre_profesor.value == '')
   { alert ("Disculpe, debe escribir el nombre de su profesor"); obj.nombre_profesor.focus(); return false;} 
}

function noesEmail(campo)
{
var s = campo.value;
var filter=/^[A-Za-z][A-Za-z0-9_.]*@[A-Za-z0-9_]+\.[A-Za-z0-9_.]+[A-za-z]$/;
if (s.length == 0 ) { alert("Ingrese una direccion de correo"); campo.focus(); return true; }
if (filter.test(s))
return false;
else
alert("Ingrese una direccion de correo valida");
campo.focus();
return true;
}


/* Funciones de validación comunes */
// Funciones para verificar estructura de e-mail
function checkString(String){
	hasACharacter=false;
	EmailPass=false;
	for(j=0;j<String.length;j++){
		if(String.charCodeAt(i)!=13 && String.charCodeAt(i)!=10 && String.charCodeAt(i)!=32){
			hasACharacter=true
		}
	}
}

function emailCheck(emailStr) {
	var emailPat=/^(.+)@(.+)$/;
	var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
	var validChars="\[^\\s" + specialChars + "\]";
	var quotedUser="(\"[^\"]*\")";
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	var atom=validChars + '+';
	var word="(" + atom + "|" + quotedUser + ")";
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
	var matchArray=emailStr.match(emailPat);
	if (matchArray==null) {
		alert("Disculpe, el E-mail no posee @ y . en el mismo. (usuario@host.com)");
		return false;
	};
	var user=matchArray[1];
	var domain=matchArray[2];
	if (user.match(userPat)==null) {
		alert("Disculpe, el E-mail debe poseer nombre de usuario. (usuario@host.com)");
		return false;
	}
	var IPArray=domain.match(ipDomainPat);
	if (IPArray!=null) {
		for (var i=1;i<=4;i++) {
			if (IPArray[i]>255) {
				alert("Disculpe, el E-mail no posee una dirección IP válida.");
				return false;
			}
		}
		return true;
	};
	var domainArray=domain.match(domainPat);
	if (domainArray==null) {
		alert("Disculpe, el E-mail no posee un dominio válido.");
		return false;
	}
	var atomPat=new RegExp(atom,"g");
	var domArr=domain.match(atomPat);
	var len=domArr.length;
	if (domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>3) {
		alert("Disculpe, el E-mail debe terminar en dos o tres letras. (com, net, org, ve)");
		return false;
	};
	if (len<2) {
		var errStr="Disculpe, el E-mail debe poseer nombre de host. (usuario@host.com)";
		alert(errStr);
		return false;
	}
	return true;
}
//-->
