var restringidas = new Array(13,116);

function find_obj(n, d) { //v4.01
	var p,i,x;
  	if(!d) d=document; 
  	if((p=n.indexOf("?"))>0&&parent.frames.length) {
		d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);
	}
  	if(!(x=d[n])&&d.all) x=d.all[n];
  	for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  	for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=find_obj(n,d.layers[i].document);
  	if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function validar() {
	var i,p,q,nm,test,num,min,max,errors='',args=validar.arguments;
  	for (i=0; i<(args.length-2); i+=3) {
	  	test=args[i+2]; 
	  	val=find_obj(args[i]); 
	  	name=args[i+1];
	    if (val) { 
	    	nm=val.name; 
	    	if ((val=val.value)!="") {
	      		if (test.indexOf('isEmail')!=-1) { 
	      			p=val.indexOf('@');
	        		if (p<1 || p==(val.length-1)) errors+=':: '+name+' Debe contener una Direccion de Correo válida.\n';
	      		}
	      		else if (test!='R') { 
	      			num = parseFloat(val);
	        		if (isNaN(val)) errors+=':: '+name+' debe contener un Número.\n';
	        		if (test.indexOf('inRange') != -1) { 
	        			p=test.indexOf(':');
	          			min=test.substring(8,p); max=test.substring(p+1);
	          			if (num<min || max<num) errors+=':: '+name+' debe contener un Número entre '+min+' y '+max+'.\n';
	    			}
	    		}
	   		}
	   		else if (test.charAt(0) == 'R') errors += ':: '+name+' es un Campo Obligatorio.\n';
	   	}
  	}
  	if (errors) alert('Ocurrieron los siguientes errores:\n'+errors);
	return (errors == '');
}

function validar_fecha(campo_obj){
	var fecha = campo_obj.value;
	var error = "Fecha Válida";
	if(fecha!="" && fecha != undefined){
		var partes = fecha.split(/\/|-/);
		var mesDate = parseInt(partes[1],10)-1;
		var validar = new Date(partes[2],mesDate,partes[0]);
		if (partes[2]!=validar.getFullYear() || mesDate!=validar.getMonth() || partes[0]!=validar.getDate() || partes[2].length!=4) {
			error = "Fecha no válida";
			alert(error + ": " +fecha);
			campo_obj.value = "";
			var metodo = "document.getElementById('"+campo_obj.id+"').focus()";
			setTimeout(metodo,1);
		}
	}
	return error == "Fecha Válida";
}

function descartar_teclas(evt) {
	var n;
	var error=true;	
	var tecla = evt.keyCode;
	var persistente = document.getElementById("ultima_tecla");
	persistente.value = tecla;
	for(n=0;n<restringidas.length;n++) {
		if (restringidas[n]==tecla) {
			window.status="Restringidos el Uso de <ENTER> y <F5>: ";
			error=false;
		}
	}
	return error;
}

/*
Validador de Fechas simple para el formato dd/mm/yyyy
20090303
H4
LGPL

El parámetro que recibe validar_fecha() debe ser normalmente this.
También se puede pasar el objeto DOM obtenido a partir de getElementById.

TODO: Máscaras para los diferentes formatos.

onblur="validar_fecha(this);"
validar_fecha(document.getElementById('fecha_nacimiento'));

@function
*/
