function Busca_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=Busca_Obj(n,d.layers[i].document);
	if(!x && d.getElementById) x=d.getElementById(n);
		return x;
}

//Compreobar campos obligatorios
function Validar_Form() { //v4.0
	// R: Obligatorio
	// inRange: rango entre números válidos
	// isNum: :);
	// isEmail: ta claro;
	// Ej.: Numérico requerido -> 'RisNum';
	// Ej.: Numérico NO obligatorio ->'isNum';
	// 
	var i,p,q,nm,test,num,min,max,errors='',args=Validar_Form.arguments;
	for (i=0; i<(args.length-2); i+=3) {
		test=args[i+2]; 
		val=Busca_Obj(args[i]);
		if (val) { 
			nm=val.name;
			//¡¡OJO!! usaremos 'nm.substr(3)' para quitar el prefijo 'txt' 
			if ((val=val.value)!="") {
				if (test.indexOf('isEmail')!=-1) { 
					p=val.indexOf('@');
					if (p<1 || p==(val.length-1)) errors+='['+nm.substr(3)+'] debe contener una direcci\u00F3n de correo.\n';
				}
				else if (test!='R') {
					num = parseFloat(val);
					if (isNaN(val)) errors+='['+nm.substr(3)+'] debe ser num\u00E9rico.\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+='['+nm.substr(3)+'] debe ser un n\u00FAmero entre  '+min+'  y  '+max+'.\n';
					}
				}
			}
			else if (test.charAt(0) == 'R') errors += '['+nm.substr(3)+'] es obligatorio.\n'; 
		}
	} 
	if (errors) alert('ATENCION!!\n'+errors);
	document.Valor_Devuelto = (errors == '');
}

//Formateo de decimales (redondea)
function formateaNumero (cantidad,decimales) {
	var cantidad = parseFloat(cantidad);
	var decimales = parseFloat(decimales);
	decimales = (!decimales ? 2 : decimales);
	return Math.round(cantidad * Math.pow(10, decimales)) / Math.pow(10, decimales);
}

//Obligar a cambiar con INTRO
function tabular(e,obj) {
            tecla=(document.all) ? e.keyCode : e.which;
            if(tecla!=13) return false;
            frm=obj.form;
            for(i=0;i<frm.elements.length;i++)
                if(frm.elements[i]==obj)
                {
                    if (i==frm.elements.length-1)
                        i=-1;
                    break;
                }
            /*ACA ESTA EL CAMBIO disabled*/
            if (frm.elements[i+1].disabled ==true )
                tabular(e,frm.elements[i+1]);
            /*ACA ESTA EL CAMBIO readOnly */
            else if (frm.elements[i+1].readOnly ==true )
                tabular(e,frm.elements[i+1]);
            else frm.elements[i+1].focus();
            return false;
}
//Visualiza tecla pulsada
function tecla (e)
{
    var evt = e ? e : event;
    var key = window.Event ? evt.which : evt.keyCode;
    alert (key);
}
function tab (field, event) {
	var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
		if (keyCode == 39) {
			var i;
			for (i = 0; i < field.form.elements.length; i++)
				if (field == field.form.elements[i])
					break;
			i = (i + 1) % field.form.elements.length;
			field.form.elements[i].focus();
			return false;
		} 
		else if (keyCode == 37) {
			var i;
			for (i = 0; i < field.form.elements.length; i++)
				if (field == field.form.elements[i])
					break;
			i = (i - 1) % field.form.elements.length;
			field.form.elements[i].focus();
			return false;
		     }
		     else {		
			return true;
	  }
	}      