﻿var currentHeaders = new Array(null, null, null);
var currentContents = new Array(null, null, null);

var ctTreeAutoOpen = new Array("", "", "", "");
var ctTreeAutoDefault = "";

function toggleWebshop() {
    var content = document.getElementById('nav_cttree_c');
    if (content.style.display == 'block') { closeWebShop(); } else { openWebshop(); }
}

function openWebshop() {
    var header = document.getElementById('nav_cttree_h');
    var content = document.getElementById('nav_cttree_c');
    if (content.style.display != 'block') {

        if (content.innerHTML == "") ajaxLoadTreePart('nav_cttree');

        if (header.className.indexOf('_big') > 0) {
            header.style.backgroundPosition = '0px -38px';
        } else {
            header.style.backgroundPosition = '0px -19px';
        }

        content.style.display = 'block';
    }
}
function closeWebShop() {
    var header = document.getElementById('nav_cttree_h');
    var content = document.getElementById('nav_cttree_c');
    if (content.style.display == 'block') {

        header.style.backgroundPosition = '0px 0px';
        content.style.display = 'none';
    }
}


function closeMenu(level) {
    if (level <= 2) {
        if (currentHeaders[2] != null) currentHeaders[2].style.backgroundPosition = '0px 0px';
        if (currentHeaders[2] != null) currentHeaders[2].style.fontWeight = '';
        if (currentContents[2] != null) currentContents[2].style.display = '';
        currentHeaders[2] = null;
        currentContents[2] = null;
    }
    if (level <= 1) {
        if (currentHeaders[1] != null) currentHeaders[1].style.backgroundPosition = '0px 0px';
        if (currentHeaders[1] != null) currentHeaders[1].style.fontWeight = '';
        if (currentContents[1] != null) currentContents[1].style.display = '';
        currentHeaders[1] = null;
        currentContents[1] = null;
    }
    if (level <= 0) {
        if (currentHeaders[0] != null) currentHeaders[0].style.backgroundPosition = '0px 0px';
        if (currentHeaders[0] != null) currentHeaders[0].style.fontWeight = '';
        if (currentContents[0] != null) currentContents[0].style.display = '';
        currentHeaders[0] = null;
        currentContents[0] = null;
    }
}

function toggleMenu(id, level, pageInfoKey, pageInfoKeySub, pageInfoKeyAlt) {
    //var header = document.getElementById(id + '_h');
    var content = document.getElementById(id + '_c');

    if (content.style.display == '') {
        closeMenu(level);
        openCTTree(id, level, pageInfoKey, pageInfoKeySub, pageInfoKeyAlt);
    }
    else {
        closeMenu(level);
    }

    if (scroller1 != null) scroller1.updateResize();
}
function openCTTree(id, level, pageInfoKey, pageInfoKeySub, pageInfoKeyAlt) {

    var header = $(id + '_h')
    var content = $(id + '_c')

    if (content.style.display == '') {
        header.style.backgroundPosition = '0px -19px';
        if (level > 0) header.style.fontWeight = 'bold';

        content.style.display = 'block';

        currentHeaders[level] = header;
        currentContents[level] = content;

        if (content.innerHTML == "") {
            ajaxLoadTreePart(id);
        }

        // Öppnar, om den skulle vara stängd...
        if (id.substring(0, 10) == 'nav_cttree') openWebshop();

        if (pageInfoKey == null || pageInfoKey == 'undefined') pageInfoKey = '';
        if (pageInfoKeySub == null || pageInfoKeySub == 'undefined') pageInfoKeySub = '';
        if (pageInfoKeyAlt == null || pageInfoKeyAlt == 'undefined') pageInfoKeyAlt = '';
        if (pageInfoKey != '') PageInfoOpen('/AjaxPages/PageInfo.aspx?p=' + pageInfoKey + '&sub=' + pageInfoKeySub + '&alt=' + pageInfoKeyAlt);
    }
}

function ajaxLoadTreePart(id) {
    var content = $(id + '_c')

    var cacheBuster = new Date().getTime();
    var url = '/AjaxPages/CTTree.aspx?cachebuster=' + cacheBuster + '&key=' + id;

    var treeLoad = new Ajax.Request(url, { method: 'get', parameters: '',
        onSuccess: function(transport) {
            if (transport.responseText != "") {
                content.update(transport.responseText);
                if (scroller1 != null) scroller1.updateResize();

                //Om man skall autoöppna en undermeny efter att den laddats via Ajax, så gör vi det när menyn är hämtad...
                autoOpenCTTree();
            }
        }, onException: function(instance, exception) { alert(instance); }
    });
}

function autoOpenCTTree() {

    var done = false;
    var focusElement1 = null;
    var focusElement2 = null;

    if (ctTreeAutoDefault != '' && currentHeaders[0] == null && ctTreeAutoOpen[0] != '99') ctTreeAutoOpen[0] = ctTreeAutoDefault;

    if (ctTreeAutoOpen[0] == '') return;

    // produktträdets id- nummer är enbart siffor. Börjar det med nav_ så är det någon del av det "statiska" trädet
    if (ctTreeAutoOpen[0].substring(0, 4) == 'nav_') {
        openCTTree(ctTreeAutoDefault, 0, '');
        focusElement1 = ctTreeAutoDefault;
        done = true;
    } else {

        openWebshop();

        var id0 = 'nav_cttree_' + ctTreeAutoOpen[0];
        var id1 = id0 + '_' + ctTreeAutoOpen[1];
        var id2 = id1 + '_' + ctTreeAutoOpen[2];
        var id3 = id2 + '_' + ctTreeAutoOpen[3];

        if ($(id0 + '_h')) {
            openCTTree(id0, 0, '');
            if (ctTreeAutoOpen[1] == "") done = true;

            if ($(id1 + '_h')) {
                openCTTree(id1, 1, '');
                if (ctTreeAutoOpen[2] == "") done = true;

                if ($(id2 + '_h')) {
                    openCTTree(id2, 2, '');

                    //if (ctTreeAutoOpen[0] == '5') {


                    if (ctTreeAutoOpen[3] == "") done = true;

                    if ($(id3)) {
                        $(id3).style.fontWeight = 'bold';
                        done = true;

                        focusElement1 = $(id1 + '_h');
                        focusElement2 = $(id1 + '_c');
                        if (focusElement2.getHeight() >= $('menu-container').getHeight()) {
                            focusElement1 = $(id2 + '_h');
                            focusElement2 = $(id2 + '_c');
                        }
                    }
                }
            }
        }
    }

    if (done) {

        ctTreeAutoOpen[0] = '';
        if (focusElement2 != null || focusElement1 != null && scroller1 != null) {
            //setTimeout(function() { // Denna behövs enbart om man använder Holviks överdesignade skrollrar
            //if ($(focusElement1) && focusElement1 != null) focusElement1.scrollIntoView(true);
            if ($(focusElement2) && focusElement2 != null) focusElement2.scrollIntoView(false);

            if (scroller1 != null) {
                scroller1.updateScrollerFromView();
                scroller1.updateResize();
            }

            //}, 500);
        }
    }
}
