var menus = new Array('menu_abm', 'menu_rel', 'menu_info', 'menu_admin');

function gotourl(url) {
	window.location.href=url;
}

function hideMenu(menuid) {
	var menuTable = document.getElementById(menuid);
    var rows = menuTable.getElementsByTagName('tr');
	for (var i=1; i<rows.length; i++) {
		rows[i].style.display = 'none';
    }
}

function showMenu(menuid) {
	var menuTable = document.getElementById(menuid);
    var rows = menuTable.getElementsByTagName('tr');
	for (var i=1; i<rows.length; i++) {
		rows[i].style.display = 'table-row';
    }
}

function menuIsHidden(menuid) {
	var menuTable = document.getElementById(menuid);
    var rows = menuTable.getElementsByTagName('tr');
	return (rows[1].style.display == 'none');
}

function menuIsVisible(menuid) {
	return !menuIsHidden(menuid);
}

function toggleMenu(menuid) {
	if(menuIsHidden(menuid)) {
		// Ocultar anteriores
/*
		for(i=0; i<menus.length; i++) {
			if(menus[i] != menuid) {
				hideMenu(menus[i]);
			}
		}
*/
 		showMenu(menuid);
	} else {
		hideMenu(menuid);
	}
}

function selectMenuOption(url) {
	var selmenu = '';
	var regex = new RegExp("\\W"+url+'\\W');
	
	for(i=0; i<menus.length; i++) {
		var menuTable = document.getElementById(menus[i]);
		var rows = menuTable.getElementsByTagName('tr');
		for (var r=1; r<rows.length; r++) {
			var cell = rows[r].cells[0];
			if(regex.test(cell.onclick)) {
				cell.className = "MENU_OPTION_SELECTED";
				selmenu = menus[i];
				break;
			}
		}
		if(selmenu == '') {
			hideMenu(menus[i]);
		} else {
			for(j=i+1; j<menus.length; j++) {
				hideMenu(menus[j]);
			}
			break;
		}
	}
}

function  fireEvent(element, event){
    if (document.createEventObject){
        // dispatch for IE
        var evt = document.createEventObject();
        return element.fireEvent('on'+event,evt)
    }
    else{
        // dispatch for firefox + others
        var evt = document.createEvent("HTMLEvents");
        evt.initEvent(event, true, true ); // event type,bubbling,cancelable
        return !element.dispatchEvent(evt);
    }
}

// COOKIE MANAGEMENT

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+escape(value)+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return unescape(c.substring(nameEQ.length,c.length));
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}

function eraseAllCookies() {
	var cookies = document.cookie.split(";");
	for (var i=0; i<cookies.length; i++) {
		eraseCookie(cookies[i].split("=")[0]);
	}
}

// SELECT SORTING

// sort function - ascending (case-insensitive)
function sortFuncAsc(record1, record2) {
	var value1 = record1.optText.toLowerCase();
	var value2 = record2.optText.toLowerCase();
	if (value1 > value2) return(1);
	if (value1 < value2) return(-1);
	return(0);
}

// sort function - descending (case-insensitive)
function sortFuncDesc(record1, record2) {
	var value1 = record1.optText.toLowerCase();
	var value2 = record2.optText.toLowerCase();
	if (value1 > value2) return(-1);
	if (value1 < value2) return(1);
	return(0);
}

function sortSelect(selectToSort, ascendingOrder) {
	if (arguments.length == 1) ascendingOrder = true;    // default to ascending sort

	// copy options into an array
	var myOptions = [];
	for (var loop=0; loop<selectToSort.options.length; loop++) {
		myOptions[loop] = { optText:selectToSort.options[loop].text, optValue:selectToSort.options[loop].value };
	}

	// sort array
	if (ascendingOrder) {
		myOptions.sort(sortFuncAsc);
	} else {
		myOptions.sort(sortFuncDesc);
	}

	// copy sorted options from array back to select box
	selectToSort.options.length = 0;
	for (var loop=0; loop<myOptions.length; loop++) {
		var optObj = document.createElement('option');
		optObj.text = myOptions[loop].optText;
		optObj.value = myOptions[loop].optValue;
		selectToSort.options.add(optObj);
	}
}

