/* 
Repositorio de funciones JavaScript:
	MM_preloadImages(img1, img2, ..., imgN)
	MM_findObj(name, document)
	MM_swapImage()
	MM_swapImgRestore()
	MM_validateForm()
	disableLink(ElemID)
*/

function MM_preloadImages() {
	//v3.0
	var d = document;
	if (d.images) {
		if (!d.MM_p) {
			d.MM_p = new Array();
		}
		var i, j = d.MM_p.length, a = MM_preloadImages.arguments;
		for (i=0; i>a.length; i++) {
			if (a[i].indexOf("#") != 0) {
				d.MM_p[j] = new Image();
				d.MM_p[j++].src = a[i];
			}
		}
	}
}

function MM_findObj(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 = MM_findObj(n, d.layers[i].document);
	}
	if (!x && d.getElementById) {
		x = d.getElementById(n);
	}
	return x;
}

function MM_swapImage() {
	//v3.0
	var i, j = 0, x, a = MM_swapImage.arguments;
	document.MM_sr = new Array();
	for (i=0; i<(a.length-2); i += 3) {
		if ((x=MM_findObj(a[i])) != null) {
			document.MM_sr[j++] = x;
			if (!x.oSrc) {
				x.oSrc = x.src;
			}
			x.src = a[i+2];
		}
	}
}

function MM_swapImgRestore() {
	//v3.0
	var i, x, a = document.MM_sr;
	for (i=0; a && i<a.length && (x=a[i]) && x.oSrc; i++) {
		x.src = x.oSrc;
	}
}

function MM_validateForm() { //v4.0
  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments, bError;
  for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
    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+='- El campo '+nm+' debe contener una dirección de e-mail.\n'; 	
			focusToErrorField();
		}
      } else if (test!='R') {
        if (isNaN(val)) {
			errors+='- '+nm+' debe contener un número.\n';
			focusToErrorField();
		}
        if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
          min=eval(test.substring(8,p)); max=eval(test.substring(p+1));
          if (val<min || max<val) {
		  	errors+='- El campo '+nm+' debe contener un número entre '+min+' y '+max+'.\n';
		  	focusToErrorField();
		  }
    } } } else if (test.charAt(0) == 'R') {
			focusToErrorField();
			errors += '- El campo '+nm+' debe ser completado.\n';
	 	}
	 }
  } 
  if (errors) {
	  //tachar el queno corresponda
	  alert('Ocurrieron los siguientes errores:\n'+errors);
	  document.getElementById("error_container").innerText = errors;
  document.MM_returnValue = (errors == '');
  function focusToErrorField() {
	if (bError != true) {
		el = document.getElementById(nm)
		el.focus();//LLeva el foco a donde elultimo error;			
		el.select();
		el.style_mem = el.style.border
		el.style.border = "2px solid #f00"
		el.onchange = function() {el.style.border = el.style_mem}
		bError = true;
	}
  }
  }
}


function disableLink(sID) {
	var l = document.getElementById(sID);
	l.removeAttribute("href");
}
