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;
}

//Comprobar 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ón de correo.\n';
				}
				else if (test!='R') {
					num = parseFloat(val);
					if (isNaN(val)) errors+='['+nm.substr(3)+'] debe ser numérico.\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úmero 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 == '');
}
function es_numero(numero){
		var strValidChars = "0123456789.";
		var strChar;
		var blnResult = true;

		if (numero.length == 0) return false;

		//check if strString consists of valid characters listed above
		for (i = 0; i < numero.length && blnResult == true; i++) {
		strChar = numero.charAt(i);
		if (strValidChars.indexOf(strChar) == -1) {
		blnResult = false;
		}
		}
		return blnResult;
}
//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 mostrarFecha()
{
var fecha
fecha=new Date();
document.write(fecha.getDate()+'-');
document.write((fecha.getMonth()+1)+'-');
document.write(fecha.getFullYear());
}
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;
	  }
	}      
