function isEmail(str) {
  // are regular expressions supported?
  var supported = 0;
  if (window.RegExp) {
    var tempStr = "a";
    var tempReg = new RegExp(tempStr);
    if (tempReg.test(tempStr)) supported = 1;
  }
  if (!supported) 
    return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);
  var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
  var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");
  return (!r1.test(str) && r2.test(str));
}

function formChecker(fieldsArr) {
	var num_fields = fieldsArr.length
	if(num_fields == 0) return true;
	else {
		for(i=0;i<num_fields;i++) {
			switch(fieldsArr[i][0]) {
				case 1: //text field
					if (document.getElementById(fieldsArr[i][1]).value.length < fieldsArr[i][2]) {
						alert(fieldsArr[i][3]);
						document.getElementById(fieldsArr[i][1]).focus();
						return false;
					}
				break;
				case 2: //email field
					if ((document.getElementById(fieldsArr[i][1]).value.length < fieldsArr[i][2] ) || (!isEmail(document.getElementById(fieldsArr[i][1]).value))) {
						alert(fieldsArr[i][3]);
						document.getElementById(fieldsArr[i][1]).focus();
						return false;
					}
				break;
				case 3: //select field
					if (document.getElementById(fieldsArr[i][1]).selectedIndex == 0) {
						alert(fieldsArr[i][3]);
						document.getElementById(fieldsArr[i][1]).focus();
						return false;
					}
				break;
				case 4: //checkbox
					if (document.getElementById(fieldsArr[i][1]).checked == false) {
						alert(fieldsArr[i][3]);
						document.getElementById(fieldsArr[i][1]).focus();
						return false;
					}
				break;
				case 5: //checkbox and select field (if select is 0 and not checked then false returned)
					if (document.getElementById(fieldsArr[i][1]).checked == false && document.getElementById(fieldsArr[i][2]).selectedIndex == 0) {
						alert(fieldsArr[i][3]);
						document.getElementById(fieldsArr[i][2]).focus();
						return false;
					}
				break;
				case 6: //misc field
					if (document.getElementById(fieldsArr[i][1]).value == fieldsArr[i][2]) {
						alert(fieldsArr[i][3]);
						return false;
					}
				break;
			}
		}
		return true;
	}
}

function confirmar() {
	if (confirm("Borrar?")) return true;
	else return false;
}

/*
 * menuExpandable2.js - implements an expandable menu based on a HTML list
 * Author: Dave Lindquist (http://www.gazingus.org)
 */


if (!document.getElementById)
    document.getElementById = function() { return null; }

function initializeMenu(menuId, actuatorId, menuopen) {
    var menu = document.getElementById(menuId);
    var actuator = document.getElementById(actuatorId);

	if(menuopen == menuId) {
		menu.style.display = "block";
		menu.parentNode.style.backgroundImage = "url(images/minus.gif)";
	}

    if (menu == null || actuator == null) return;

    //if (window.opera) return; // I'm too tired

    actuator.onclick = function() {
        var display = menu.style.display;
        this.parentNode.style.backgroundImage =
            (display == "block") ? "url(images/plus.gif)" : "url(images/minus.gif)";
        menu.style.display = (display == "block") ? "none" : "block";

        return false;
    }
}
