var partners = new Object();

attachEventHandler("onload", handleLoad);
attachEventHandler("onresize", handleResize);
attachEventHandler("onbeforeprint", handlePrint);

function handlePrint() {
    var update = document.getElementById("update");
    update.style.position = "static";
}

setMinWidth("page", 700);

function handleLoad() {
    improveCSS();
    positionUpdate();
    buildPartnerImages();
}

function handleResize() {
    positionUpdate();
}

function improveCSS() {   
    adjustList("partners", "15px", "38px");
    adjustList("menu", "15px", "0px");
    adjustList("language", "15px", "0px");

    if (navigator.userAgent.indexOf("MSIE 5.0") != -1) {
        var title = document.getElementById("title");
        title.nextSibling.style.marginTop = "20px";
    }
}

function adjustList(container, lastItemHeight, containerPaddingTop) {
    var container = document.getElementById(container);
    container.style.paddingTop = containerPaddingTop; // hack for IE 5.x, because it destroys this one somehow

    var items = container.getElementsByTagName("li");
    var item = items[items.length - 1];
    item.style.height = lastItemHeight;

}

function positionUpdate() {
    var update = document.getElementById("update");
    var content = document.getElementById("content");

    var windowSize = getWindowClientSize();
    var updateSize = getElemSize(update);
    var contentSize = getElemSize(content);
    var contentPos = getElemPos(content)

    if (contentPos.top + contentSize.height + updateSize.height < windowSize.height) {
        var left = windowSize.width - updateSize.width;

        if (left < 168) {
            left = 168;
        }

        update.style.position = "absolute";
        update.style.left = left + "px";
        update.style.top = (windowSize.height - updateSize.height) + "px";
	} else {
        update.style.position = "static";
    }
}

function buildPartnerImages() {
    var partners = document.getElementById("partners");
    var items = partners.getElementsByTagName("li");
    var page = document.getElementById("page");
    var pos = 123;

    var images = document.createElement("div");
    images.id = "images";

    for (var i = 0; i < items.length; i++) {
        var name = items[i].id;
        var link = items[i].getElementsByTagName("a")[0];
        var anchor = document.createElement("a");

        anchor.href = link.href;
        anchor.id = name;
        anchor.style.position = "absolute";
        anchor.style.left = "0px";
        anchor.style.top = pos + "px";
        anchor.style.width = "84px";
        anchor.style.height = "83px";
        anchor.style.backgroundImage = "url(../pictures/partners/" + name + ".gif)";
        anchor.onmouseover = handleEnterPartner;
        anchor.onmouseout = handleLeavePartner;
        link.onmouseover = handleEnterPartner;
        link.onmouseout = handleLeavePartner;

        images.appendChild(anchor);
        window.partners[name] = { image_link: anchor, text_link: link };
        pos += 84;
    }

    page.appendChild(images);
}

function handleEnterPartner() {
    var id = this.id ? this.id : this.parentNode.id;
    var items = partners[id];

    items.text_link.style.backgroundImage = "url(../pictures/frame/arrow_blue.gif)";
    items.image_link.style.backgroundImage = "url(../pictures/partners/" + id + "-over.gif)";
}

function handleLeavePartner() {
    var id = this.id ? this.id : this.parentNode.id;
    var items = partners[id];

    items.text_link.style.backgroundImage = "url(../pictures/frame/arrow_green.gif)";
    items.image_link.style.backgroundImage = "url(../pictures/partners/" + id + ".gif)";
}
