var IE = ((navigator.userAgent.toLowerCase()).indexOf('msie') > 0);

if(!Array.indexOf){
    Array.prototype.indexOf = function(obj){
        for(var i=0; i<this.length; i++){
            if(this[i]==obj){
                return i;
            }
        }

	return -1;
    }
}

function getAbsoluteLeft(objectId) {
        o = document.getElementById(objectId);
        oLeft = o.offsetLeft;
        while(o.offsetParent!=null) {
                oParent = o.offsetParent;
                oLeft += oParent.offsetLeft;
                o = oParent;
        }
        return oLeft
}

function getAbsoluteTop(objectId) {
        o = document.getElementById(objectId);
        oTop = o.offsetTop;
        while(o.offsetParent!=null) {
                oParent = o.offsetParent;
                oTop += oParent.offsetTop;
                o = oParent;
        }
        return oTop
}

function setSubmenuPosition(invoker, submenu) {
	var submenu_element = document.getElementById(submenu);
	var invoker_element = document.getElementById(invoker);

	if (submenu_element && invoker_element) {
		invoker_parent = invoker_element.offsetParent;
		if (IE) {
			submenu_element.style.top = getAbsoluteTop(invoker) + 5;
			calculatedLeft = getAbsoluteLeft(invoker) + invoker_element.offsetWidth - 10;

			if ((parseInt(calculatedLeft) + 250) > document.body.clientWidth) {
				submenu_element.style.left = getAbsoluteLeft(invoker) - 245;
			} else {
				submenu_element.style.left = calculatedLeft;
			}
		} else {
			submenu_element.style.top = getAbsoluteTop(invoker) + 5 + 'px;';
			calculatedLeft = getAbsoluteLeft(invoker) + invoker_element.offsetWidth - 10 + 'px;';

			if ((parseInt(calculatedLeft) + 250) > window.innerWidth) {
				submenu_element.style.left = getAbsoluteLeft(invoker) - 245 + 'px;';
			} else {
				submenu_element.style.left = calculatedLeft;
			}
		}
	}
}

var menu = '';
var menu_closing = '';
var timed_closing = '';
var menu_timer;
var menuitems = "";
var menuitems_closing = "";
var timeditems_closing = "";

function CTPF_dropdown_showsubmenu(menupath, invoker, submenu) {
	menu_closing = menu;
	menu = menupath;
	setSubmenuPosition(invoker, submenu);
	CTPF_dropdown_render();
}

function CTPF_dropdown_highlightitems(menupath) {
	menuitems_closing = menuitems;
	menuitems = menupath;
	CTPF_dropdown_render();
}

function CTPF_dropdown_reallyhide() {
	menu = '';
	menuitems = '';
	menu_closing = timed_closing;
	menuitems_closing = timeditems_closing;
	clearInterval(menu_timer);
	CTPF_dropdown_render();
}

function CTPF_dropdown_render() {
	clearInterval(menu_timer);
	var menuInPath = new Array();
	var menuInClosePath = new Array();
	menuInPath = menu.split("|");
	menuInClosePath = menu_closing.split('|');

	menuItemsInPath = menuitems.split("|");
	menuItemsInClosePath = menuitems_closing.split("|");
	// remove closed elements
	
	for (i=1; i < menuInClosePath.length; ++i) {
		if (menuInPath.indexOf(menuInClosePath[i]) < 0) {
			element = document.getElementById(menuInClosePath[i]);
			if (element) {
				if (IE) {
					element.style.display = 'none';
				} else {
					element.style.display = 'none;';
				}
			}
		}
	}
	// show new elements by path
	for (i=1; i < menuInPath.length; ++i) {
		element = document.getElementById(menuInPath[i]);
		if (element) {
			if (IE) {
				element.style.display = 'block';
			} else {
				element.style.display = 'block;';
			}
		}
	}

	for (i=1; i < menuItemsInClosePath.length; ++i) {
		if (menuItemsInPath.indexOf(menuItemsInClosePath[i]) < 0) {
			element = document.getElementById(menuItemsInClosePath[i]);
			if (element) {
				if ((element.className == "mainmenuitem_off") || (element.className == "mainmenuitem_on")) {
					element.className = 'mainmenuitem_off';
				} else {
					element.className = 'menuitem_off';
				}
			}
		}
	}

	for (i=1; i < menuItemsInPath.length; ++i) {
		element = document.getElementById(menuItemsInPath[i]);
		if (element) {
			if ((element.className == "mainmenuitem_off") || (element.className == "mainmenuitem_on")) {
				element.className = 'mainmenuitem_on';
			} else {
				element.className = 'menuitem_on';
			}
		}
	}
}

function CTPF_dropdown_hidesubmenu() {
	timed_closing = menu;
	timeditems_closing = menuitems;
	clearInterval(menu_timer);
	menu_timer = setInterval('CTPF_dropdown_reallyhide()', 1000);
}