var showLogin = false;
var bLoginFrame = false;
var bLogin = false;
var avroKids = false;
var bNumpa = false;
var head = document.getElementsByTagName('head')[0];
var modalWindow;
var openMyModal;
var uriBase = "";
var activeItem = "";
var reloadPage = false;
var uriUserJS;
var bFadeout = false;
var sFadeoutUri = '';
var iFadeoutDelay = 2500;
var numpa = "";
var avroUsername = "";
var callAfterUserScript = "";

var jQueryScriptOutputted = false;

function initJQuery() {

    //if the jQuery object isn't available
    if (typeof (jQuery) == 'undefined') {

        if (!jQueryScriptOutputted) {
            //only output the script once..
            jQueryScriptOutputted = true;

            var js = document.createElement('script');
            js.setAttribute('language', 'javascript');
            js.setAttribute('type', 'text/javascript');
            js.setAttribute('src', 'http://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js');
            head.appendChild(js);
        }
        setTimeout("initJQuery()", 50);
    } else {

    if ((navigator.userAgent.indexOf("WebKit") > 0) && jQueryScriptOutputted)
        onJqLoaded();
    else
        jQuery(function() { onJqLoaded() });
    
    }
}

initJQuery();

function onJqLoaded() {
        jqLoaded = true;

        //start by loading CSS
        jQuery(document.createElement('link'))
            .attr({ type: 'text/css', href: uriBase + "/css/AVRO71_bovenbalkExtern.css", rel: 'stylesheet', media: 'screen' })
            .appendTo(head);

        //NPO-logo
        if (!avroKids)
            jQuery(document.createElement('script'))
            .attr({ type: 'text/javascript', src: "http://assets.cn.omroep.nl/javascripts/npo-explore.js" })
            .appendTo(head);
//        else
//            jQuery(document.createElement('script'))
//            .attr({ type: 'text/javascript', src: "http://balk.omroep.nl/js/zapp-balk.js" })
//            .appendTo(head);
//HACK SVEN
        if (document.domain.indexOf(".avro.nl") > 2)
            showLogin = true;

        var aItems = new Array(6);
        aItems[0] = Array("HOME", uriBase + "/", "", "");
        aItems[1] = Array("DE AVRO", uriBase + "/avro/", "de_avro", "400");
        aItems[2] = Array("WEBSHOP", "http://webshop.avro.nl/", "", "");
        aItems[3] = Array("PROGRAMMA'S", uriBase + "/a-z/", "programmas", "300");
        aItems[4] = Array("THEMA'S", uriBase + "/web/", "themas", "300");
        if (!avroKids)
            aItems[5] = Array("COMMUNITY", "http://community.avro.nl/forums/", "", "");
        else
            aItems[5] = Array("COMMUNITY", "http://community.avro.nl/forums/?group=kids", "", "");

        var sFoldout = "";
        var sMenu = "<div class=\"navCenter\"><ul class=\"nav\">";
        for (iItem = 0; iItem < aItems.length; iItem++) {
            var oItem = aItems[iItem];
            var mouseover = "hideFoldoutnav();";
            var mouseout = "";
            var sActive = "";
            if (oItem[0] == activeItem)
                sActive = "class=\"active\"";
            if (oItem[2] != "") {
                sFoldout += "<div class=\"menudown_container\" id=\"foldout_container_" + oItem[2] + "\" onmouseover=\"cancelTimer();\" onmouseout=\"hideFoldoutnavTimer();\" style=\"visibility:hidden;height:" + oItem[3] + "px;\"><iframe  id=\"foldout_iframe_" + oItem[2] + "\" class=\"avro_bovenbalk_iframe\" allowTransparency=\"true\"  frameborder=\"0\"></iframe></div>";
                mouseover = "showFoldoutnavTimer('" + oItem[2] + "','btn_" + iItem + "'); cancelTimer();";
                mouseout = "hideFoldoutnavTimer(); cancelTimer(); cancelTimerShow()";
            }
            sMenu += "<li><a id=\"btn_" + iItem + "\" href=\"" + oItem[1] + "\" onmouseover=\"" + mouseover + "\" onmouseout=\"" + mouseout + "\" " + sActive + " >" + oItem[0] + "</a></li>";
        }
        sMenu += "</ul>"
        sMenu += "<div class=\"inlogcontainer_off\" id=\"loginContainer\">";
        if (showLogin) {
            sMenu += "<a id=\"loginUsername\" href=\"#\" class=\"inlognaam\"></a>";
            sMenu += "<a id=\"loginPuppet\" class=\"loginoff\" href=\"javascript:openAvroLogin();\" title=\"inloggen\">log in</a>";
        }
        sMenu += "<a href=\"" + uriBase + "/zoek/\" id=\"txtzoek\" class=\"zoeken_site\" >Zoeken</a></div>";
        sMenu += "</div>";
        if (!avroKids)
            sMenu += "<div id=\"npo_button_container\" class=\"npo_button_dol\"><a href=\"http://www.omroep.nl/\">Ontdek Omroep.nl</a></div>";
        else
            sMenu += "<div id=\"zapp_button_container\" class=\"zapp_button_dol\"><a href=\"http://www.zapp.nl/\" target='_blank' >Ontdek Zapp.nl</a></div>";

        //add everything to page
        jQuery("#top_menu_container").remove();
        jQuery("foldout_container").remove();

        sMenu = "<div id=\"top_menu_container\"  style=\"display:none;\">" + sMenu + "</div>";
        sFoldout = "<div id=\"foldout_container\">" + sFoldout + "</div>";

        jQuery("body").prepend(sFoldout);
        jQuery("body").prepend(sMenu);

        uriUserJS = uriBase + "/handlers/user_js.ashx?";
        if (avroKids)
            uriUserJS += "kids=1&";
        if (bNumpa)
            uriUserJS += "numpa=1";

        jQuery("#top_menu_container").css("display", "block");

        modalWindow = {
            parent: "body",
            windowId: null,
            content: null,
            width: null,
            height: null,
            close: function() {
                bLogin = false;
                bLoginFrame = false;
                jQuery(".close-window").remove();
                jQuery(".modal-overlay").remove();
                jQuery("#modalWindowMaster").remove();
            },
            open: function() {
                var modal = "";
                modal += "<div class=\"modal-overlay\"></div>";
                modal += "<div id=\"modalWindowMaster\"><div id=\"" + this.windowId + "\" class=\"modal-window\" style=\"width:" + this.width + "; height:" + this.height + "; margin-top:-" + (this.height / 2) + "px; margin-left:-" + (this.width / 2) + "px;\">";
                modal += this.content;
                modal += "</div></div>";

                jQuery(this.parent).append(modal);

                if (!bFadeout)
                    jQuery(".modal-window").append("<a class=\"close-window\">sluit venster</a>");

                jQuery("#iframe_popup").load(iframe_loaded);
                jQuery(".close-window").click(function() { modalWindow.close(); });
                jQuery("#modalWindowMaster").click(function() { modalWindow.close(); });
                jQuery(".modal-overlay").click(function() { modalWindow.close(); });
            }
        };

        //new login-stuff
        openMyModal = function(source, width, height, windowId) {
            modalWindow.windowId = windowId;
            modalWindow.width = width;
            modalWindow.height = height;
            modalWindow.content = "<iframe allowtransparency='true' width='" + width.replace('px', '') + "' height='" + height.replace('px', '') + "' id='iframe_popup' frameborder='0' scrolling='auto'  src='" + source + "' style='display:none;'>&lt/iframe>";
            modalWindow.open();
        };

        //avro-user
        if (showLogin)
            jQuery(document.createElement('script'))
            .attr({ type: 'text/javascript', src: uriUserJS })
            .appendTo(head);
}

//Start Subnav functions

hideNavTimer = 0;
showNavTimer = 0;

function showFoldoutnav(navid, buttonid) {
    topNavButton = document.getElementById(buttonid);
    hideFoldoutnav();
    var oIframeid = jQuery('#foldout_iframe_' + navid);
    //check if src already exists
    if ((oIframeid.attr("src") == null) || (oIframeid.attr("src") == ""))
        oIframeid.attr("src", uriBase + "/embed/subnav/" + navid + "_iframe.aspx");
    oIframeid.css("display","block");
    navid = 'foldout_container_' + navid;
    navElement = document.getElementById(navid);
    navElement.style.visibility = 'visible';
    if (topNavButton != null)
        positionSubnav(topNavButton, navElement);
}

function hideFoldoutnav() {
    if (typeof navElement != 'undefined') {
        var navId = navElement.id.replace("foldout_container_", "");
        jQuery('#foldout_iframe_' + navId).css("display","none");
        navElement.style.visibility = 'hidden';
    }
}

function showFoldoutnavTimer(navid, buttonid) {
    showNavTimer = window.setTimeout("showFoldoutnav('" + navid + "','" + buttonid + "')", 500);
}

function hideFoldoutnavTimer() {
    hideNavTimer = window.setTimeout(hideFoldoutnav, 100);
}

function cancelTimer() {
    window.clearTimeout(hideNavTimer);
    hideNavTimer = 0;
}

function cancelTimerShow() {
    window.clearTimeout(showNavTimer);
    showNavTimer = 0;
}

function positionSubnav(objTopNav, objSubNav) {
    var leftpos = 0;

    if (objTopNav.offsetParent) {
        do {
            leftpos += objTopNav.offsetLeft;
        }
        while
            (objTopNav = objTopNav.offsetParent);
    }

    if (objSubNav.id == 'foldout_container_avro')
        leftpos = (parseInt(leftpos) - 5);
    else if (objSubNav.id == 'foldout_container_programmas')
        leftpos = (parseInt(leftpos));
    else
        leftpos = (parseInt(leftpos) - 78);

    objSubNav.style.left = leftpos + 'px';
    objSubNav.style.top = '30px';
}

//End Subnav functions

function openAvroLoginFromModal() {
    //reload page with showLogin=1
    var uri = document.location.href;
    if (uri.indexOf("?", 0) > 0) 
    uri = uri + "&showLogin=1";
    else
        uri = uri + "?showLogin=1";

    document.location.href = uri;
}

function openAvroLogin() {
    //let's try this another way..
    bLogin = true;
    loginUri = uriBase + '/user/login.aspx?origin=' + document.location;
    if (avroKids)
        loginUri+="&avrokids=1";
    openMyModal(loginUri, '100%', '600px', 'modalLogin');
    jQuery("#iframe_popup").fadeIn("medium");
    jQuery(".modal-overlay").css('background', '#000000');
}

function modalForm(uri) {
    if (typeof (modalWindow) == 'undefined') {
        setTimeout(function() { modalForm(uri) }, 100);
    }
    else
        openMyModal(uri, '690px', '600px', 'modalForm');
}

function modalPage(uri, width, height) {
    openMyModal(uri, width, height, 'modalPage');
}

function modalMessage(uri) {
    openMyModal(uri, '690px', '600px', 'modalMessage');
}

function iframe_loaded() {
    if (!bLoginFrame) {
        jQuery("#iframe_popup").css('display', 'block');
        jQuery(".modal-overlay").css('background', '#000000');

        if (bLogin)
            bLoginFrame = true;
        if (bFadeout)
            setTimeout(iframe_fadeout, iFadeoutDelay);
    } else
        jQuery(document.createElement('script'))
            .attr({ type: 'text/javascript', src: uriUserJS + "login=1" })
            .appendTo(head);
}

function iframe_fadeout() {
    jQuery(".modal-overlay").fadeOut("fast");
    jQuery("#modalWindowMaster").fadeOut("fast", function() { if(sFadeoutUri!='') document.location = sFadeoutUri; });
}

function setUsername(username) {
    if (bLogin) {
        //window.location.href = window.location.href;
        document.location.href = document.location.href;
    }
    avroUsername = username;
    jQuery("#loginContainer").attr("class", "inlogcontainer_on");
    var loginPuppet = jQuery("#loginPuppet");
    loginPuppet.attr("class", "loginon");
    loginPuppet.attr("title", "uitloggen");
    loginPuppet.attr("href", uriBase + "/Pages/logout.aspx?ReturnUrl=" + document.location);
    var userLink = jQuery('#loginUsername');
    userLink.text('[ ' + username + ' ]');
    userLink.css('display', 'block');
    userLink.attr("href", uriBase + "/user/");
    //userLink.attr("href", "http://community.avro.nl/members/" + username.replace(" ", "_") + ".aspx");
};uriBase="http://www.avro.nl";activeItem="WEBSHOP";