addEvent(window, 'load', textAreasInitialise);
var menus = new Array();
var preloadImageList = new Array();
var preloadImageArray = new Array();
for (var i=0; i<preloadImageList.length; i++) {
	preloadImageArray[i] = new Image();
	preloadImageArray[i].src = preloadImageList[i];
}

function addEvent(eventListener, eventType, eventFunction, useCapture) {
	if (eventListener.addEventListener) {
		eventListener.addEventListener(eventType, eventFunction, useCapture);
		return true;
	} else if (eventListener.attachEvent) {
		return eventListener.attachEvent("on"+eventType, eventFunction);
	}
}

function textAreasInitialise() {
	var objectSelection = document.getElementsByTagName("textarea");
	var objectIndex;
	var currentObject;
	for (var i=0; i<objectSelection.length; i++) {
		currentObject = objectSelection[i];
		if (currentObject.getAttribute('maxlength')) {
			currentObject.onkeyup = forceMaxLength;
			currentObject.onpaste = forceMaxLength;
		}
	}
}

function forceMaxLength() {
	var maxLength = parseInt(this.getAttribute('maxlength'));
	if (this.value.length > maxLength) {
		this.value = this.value.substring(0,maxLength);
	}
}

function hideRow(rowID) {
	if (rowID != '') {
		if (document.getElementById(String(rowID))) {
			document.getElementById(String(rowID)).style.display = 'none';
		}
	}
}

function showRow(rowID) {
	if (rowID != '') {
		if (document.getElementById(String(rowID))) {
			document.getElementById(String(rowID)).style.display = 'block';
		}
	}
}

function doPopupWin() {
	window.open('','popupwin','width=600,height=450,toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=yes,resizable=no');
}

function menuAdd(menuName, menuParent, menuIsActive) {
    menus[menus.length] = new Array(menuName, menuParent, Array(), false, menuIsActive);
    for (var i = 0; i < menus.length; i++) {
        if (menus[i][0] == menuParent) {
            menus[i][2][menus[i][2].length] = menuName;
        }
    }
}

function menuHighlightChain(menuName) {
	for (var i = 0; i < menus.length; i++) {
		if (menus[i][0] == menuName) {
			menus[i][4] = true;
			document.getElementById('button' + menus[i][0]).className = 'active';
			for (var j = 0; j < menus.length; j++) {
				if (menus[j][0] == menus[i][1]) {
					menuHighlightChain(menus[i][0]);
				}
			}
		}
	}
}

function menuShow(menuName) {
    if ((menuName != '') && (menus.length > 0)) {
        for (var i = 0; i < menus.length; i++) {
            if (menus[i][0] == menuName) {
                for (var j = 0; j < menus.length; j++) {
                    if ((menus[i][1] == menus[j][1]) && (i != j)) {
                        menuHideImmediate(menus[j][0]);
                    }
                }
            }
        }
        document.getElementById('menu' + menuName).style.display = 'block';
        document.getElementById('button' + menuName).className = 'active';
        menuLock(menuName);
    }
}

function menuLock(menuName) {
    if ((menuName != '') && (menus.length > 0)) {
        for (var i = 0; i < menus.length; i++) {
            if (menus[i][0] == menuName) {
                menus[i][3] = true;
                menuLock(menus[i][1]);
            }
        }
    }
}

function menuHideImmediate(menuName) {
    if ((menuName != '') && (menus.length > 0)) {
        for (var i = 0; i < menus.length; i++) {
            if (menus[i][0] == menuName) {
                if (menus[i][2].length > 0) {
                    for (var j = 0; j < menus[i][2].length; j++) {
                        menuHideImmediate(menus[i][2][j]);
                    }
                }
                menus[i][3] = false;
                document.getElementById('menu' + menuName).style.display = 'none';
		        document.getElementById('button' + menuName).className = (menus[i][4])?'active':'';
            }
        }
    }
}

function menuHideDelayed(menuName) {
    if ((menuName != '') && (menus.length > 0)) {
        for (var i = 0; i < menus.length; i++) {
            if (menus[i][0] == menuName) {
                if (menus[i][2].length > 0) {
                    for (var j = 0; j < menus[i][2].length; j++) {
                        menuHideDelayed(menus[i][2][j]);
                    }
                }
                if (!menus[i][3]) {
                    document.getElementById('menu' + menuName).style.display = 'none';
			        document.getElementById('button' + menuName).className = (menus[i][4])?'active':'';
                }
            }
        }
    }
}

function menuRelease(menuName) {
    if ((menuName != '') && (menus.length > 0)) {
        for (var i = 0; i < menus.length; i++) {
            if (menus[i][0] == menuName) {
                if (menus[i][2].length > 0) {
                    for (var j = 0; j < menus[i][2].length; j++) {
                        menuRelease(menus[i][2][j]);
                    }
                }
                menus[i][3] = false;
                window.setTimeout('menuHideDelayed(\'' + menuName + '\')', 500);
            }
        }
    }
}

