/**
 * Javascript created by Matthijs Groen, IVinity, october, 2006
 *
 */

	function getPos(inputElement) {
    var coords =  new Object();
    coords.x = 0;
    coords.y = 0;
    try {
        targetElement = inputElement;
        if(targetElement.x && targetElement.y) {
            coords.x = targetElement.x;
            coords.y = targetElement.y;
        } else {
            if(targetElement.offsetParent) {
                coords.x += targetElement.offsetLeft;
                coords.y += targetElement.offsetTop;
                while(targetElement = targetElement.offsetParent) {
                    coords.x += targetElement.offsetLeft;
                    coords.y += targetElement.offsetTop;
                }
            } else {
                //alert(\"Could not find any reference for coordinate positioning.\");
            }
        }
        return coords;
    } catch(error) {
        //alert(error.msg);
        return coords;
    }
	}
	
 	var layerElement = null;
 
	function setMinimumHeight(element, minHeight) {
		var currentHeight = getHeight(element);
		if (currentHeight < minHeight) {
			element.style.height = minHeight + 'px';
		}
	}
	
	function createLayerElement() {
		var bodyElement = document.getElementsByTagName("body")[0];
		if (layerElement != null) bodyElement.removeChild(layerElement);
		if (!is.ie) {
			layerElement = document.createElementNS("http://www.w3.org/1999/xhtml", "div");
		} else {
			layerElement = document.createElement("div");
		}
		
		layerElement.className = "layers";
		layerElement.style.left = (findXPos(document.getElementById("siteframe")) + 30 ) + "px";
		layerElement.style.top = findYPos(document.getElementById("page")) + "px";
		bodyElement.appendChild(layerElement);
	}
	
	var pickedLeftOffSet = -1;
	
	function colorBackground() {
		var backgroundDiv = document.getElementById("background");
		var leftPos = findXPos(document.getElementById("siteframe")) + 30;
		//alert(leftPos);

		var imageUrl = skinDir + "images/" + "colorfan-verysmall.jpg";
		var barOffset = 118;
		var barLeftOffset = 63;
		
		if (((leftPos - barLeftOffset) > 0) || (pickedLeftOffSet == 247)) {
			imageUrl = skinDir + "images/" + "colorfan-small.jpg";
			barOffset = 186;
			barLeftOffset = 247;
		}

		if (((leftPos - barLeftOffset) > 0) || (pickedLeftOffSet == 497)) {
			imageUrl = skinDir + "images/" + "colorfan-medium.jpg";
			barOffset = 259;
			barLeftOffset = 497;
		}
		
		if (((leftPos - barLeftOffset) > 0) || (pickedLeftOffSet == 1121)) {
			imageUrl = skinDir + "images/" + "colorfan-big.jpg";
			barOffset = 492;
			barLeftOffset = 1121;
		}
		if (barLeftOffset > pickedLeftOffSet) pickedLeftOffSet = barLeftOffset;

		//alert(imageUrl);
		backgroundDiv.style.backgroundImage = "url('" + imageUrl + "')";
		backgroundDiv.style.backgroundRepeat = "no-repeat";
		backgroundDiv.style.backgroundRepeat = "no-repeat";
		var imgLeft = (leftPos - barLeftOffset);
		var imgTop = findYPos(document.getElementById("page")) - barOffset;

		backgroundDiv.style.backgroundPosition = imgLeft + "px " + imgTop + "px";
	}
	
	var menus = new Array();
	var itemWidth = 0;
	var itemOffset = 0;

	function adjustMenu() {
		var menuBox = document.getElementById("menu");
		var menuWidth = getWidth(menuBox);
		var dropTop = getHeight(menuBox) + getPos(menuBox).y;
		//if (is.ie) dropTop = dropTop - 8;
		if (is.ie) dropTop = dropTop - 5;
		
		var items = menuBox.getElementsByTagName("dt");

		var currentWidth = getWidth(items[1]);
		items[1].style.paddingLeft = 10 + "px";
		items[1].style.paddingRight = 10 + "px";
		itemOffset = currentWidth + 20;		
		
		itemWidth = Math.round((menuWidth - (currentWidth + 20)) / (items.length - 2)) -2;
		var items = menuBox.getElementsByTagName("dt");
		for (var i = 2; i < items.length; i++) {
			var currentWidth = getWidth(items[i]);
			var side = (itemWidth - currentWidth) / 2;
			items[i].style.paddingLeft = side + "px";
			//if (i < items.length -1) 
			items[i].style.paddingRight = side + "px";
		}
		// convert the definition list to a horizontal dropdown menu
		var menulist = menuBox.getElementsByTagName("dl")[0];
		var lastDT = null;
		var counter = 0;
		for (var i = 0; i < menulist.childNodes.length; i++) {
			var listNode = menulist.childNodes[i];
			// Node.ELEMENT_NODE = 1
			if (listNode.nodeType == 1) { // we have a tag!
				if (listNode.tagName == "DT") {
					lastDT = listNode;
					counter++;
				}
				if (listNode.tagName == "DD") { // menu!
					menus[menus.length] = listNode;
					listNode.id = "dropmenu" + menus.length;
					listNode.style.top = dropTop + "px";
					listNode.style.width = itemWidth + "px";
					if (lastDT != null) {
						lastDT.id = "dropper" + menus.length;
						lastDT.innerHTML = "<a href=\"javascript:openMenu('"+menus.length+"', '"+counter+"')\"" + 
							" onmouseover=\"openMenu('"+menus.length+"')\" " + // onmouseout=\"closeMenu('"+menus.length+"')\"
							">"+lastDT.innerHTML+"</a>";
						//listNode.onmouseout = "closeMenu('"+menus.length+"')";
						if (listNode.addEventListener) listNode.addEventListener("mouseout", closeMenu, false);
						else if (listNode.attachEvent) listNode.attachEvent('onmouseout', closeMenu);
					}
				}
			}	
		}		
	}
	
	function openMenu(menuName, counter) {
		for (i = 0; i < menus.length; i++) {
			if (menus[i].id != 'dropmenu' + menuName) menus[i].style.display = "none";
		}
		var menu = document.getElementById('dropmenu' + menuName);
		menu.style.display = "block";

		var opener = document.getElementById('dropper' + menuName);
		menu.style.left = getPos(opener).x + "px";
	
	}
	
	function closeMenu(evt) {
		evt = (evt) ? evt : ((window.event) ? window.event : "")
    if (evt) {
			x = (window.Event) ? evt.pageX : event.clientX;
			y = (window.Event) ? evt.pageY : event.clientY;
	
			var menu = (evt.target) ? evt.target : evt.srcElement
			
			while ((menu.tagName != "DD") && (menu.parentNode)) {				
				menu = menu.parentNode;			
			}			
			
			var minX, minY, maxY, maxY;
			minX = getPos(menu).x;
			minY = getPos(menu).y;
			maxX = minX + getWidth(menu);
			maxY = minY + getHeight(menu);
			
			if (!((x > minX) && (x < maxX) && (y > minY) && (y < maxY))) menu.style.display = "none";
		}
	}	
 
	function fixLayout() {
		setMinimumHeight(document.getElementById("content"), 460);
		adjustMenu();
		createLayerElement();
		colorBackground();
	}
	
	function resizeLayout() {
		createLayerElement();
		colorBackground();
	}

	window.onresize = resizeLayout;
