var nav = {
    menu: [
        { id: 'nav-home2', href: '#', text: 'Main', alttext: 'Ткани' },
        { id: 'nav-home3', href: '#', text: 'Main', alttext: 'Стеганое полотно' },
        { id: 'nav-home4', href: '#', text: 'Main', alttext: 'Нетканые материалы', menu: [
          { href: '#', text: 'Для постельных принадлежностей '},
          { href: '#', text: 'Для одежды  '}
          ] },
        { id: 'nav-home5', href: '#', text: 'Main', alttext: 'Текстиль', menu: [
          { href: '#', text: 'Шторы и тюль '},
          { href: '#', text: 'Чехлы для мебели '},
          { href: '/home/bedspreads-home/19-pokryvala.html', text: 'Покрывала '},
          { href: '/hotel/rugs/21-pledy.html', text: 'Пледы '},
          { href: '/home/deco-home/', text: 'Декоративные подушки '},
          { href: '/hotel/tablecloths/11-skaterti-salfetki.html', text: 'Скатерти и салфетки '},
          { href: '/hotel/cocktail/18-furshetnye-yubki.html', text: 'Фуршетные юбки '},
          { href: '#', text: 'Занавески для ванной '},
          { href: '/hotel/terry/8-mahrovye-izdeliya.html', text: 'Махровые изделия '},
          { href: '#', text: 'Для одежды  '}
          ] },
        { id: 'nav-home6', text: 'hotel', href: '/bedding/17-postelnye-prinadlezhnosti.html', alttext: 'Постельные принадлежности', menu: [
            { href: '/bedding/31-podushki.html', text: 'Подушки '},
            { href: '/bedding/30-odeyala.html', text: 'Одеяла '},
           /* { text: 'Тема №2', menu: [
                { href: '/news/highfive_01.html', text: 'Страничка №1' },
                { href: '/news/freya_01.html', text: 'Страничка №2' },
                { href: '/news/graciaepilogue_01.html', text: 'Страничка №3' },
                { href: '/news/graciafinal_01.html', text: 'Страничка №4' },
                { href: '/news/graciapt2_01.html', text: 'Страничка №5' },
                { href: '/news/gracia_01.html', text: 'Страничка №6' },
                { href: '/news/hellbound_01.html', text: 'Страничка №7' },
                { href: '/news/kamael_01.html', text: 'The Страничка №8' }
            ] },*/
            { href: '/bedding/35-namatrasniki.html', text: 'Наматрасники' },
            { href: '/bedding/7-postelnoe-bele.html', text: 'Матрасы' }
        ] },
        { id: 'nav-home7', text: 'home', alttext: 'Мебель для гостиниц', menu: [
            { href: '/hotel-furniture/29-krovati-boks-spring.html', text: 'Кровати Бокс Спринг' }
        ] },
        { id: 'nav-home8', href: '#', text: 'Home', alttext: 'Ковровые покрытия' },
        { id: 'nav-home9', href: '#', text: 'Home', alttext: 'Фены' },
        { id: 'nav-home10', href: '#', text: 'Home', alttext: 'Телефоны', menu: [
            { href: '#', text: 'Teledex ' },
            { href: '#', text: 'Telematrix' }
        ] },
        { id: 'nav-home11', href: '#', text: 'Home', alttext: 'Сейфы' },
        { id: 'nav-home12', href: '#', text: 'Home', alttext: 'Минибары' }
    ],
    attachToPage: function (div_name) {
        
        if (div_name) {
            var nav_div = document.getElementById(div_name);
            if (nav_div) {
                nav_div.innerHTML = this.getHTML();
                nav.init();
            }
        }
        else {
            document.write(nav.getHTML());
            nav.init();
            /*
            jQuery(document).bind('ready', function () {
                var old_nav = document.getElementById('navContainer');
                old_nav.setAttribute('id', 'nav');
                old_nav.innerHTML = '<div id="nav-top">&nbsp;</div>\n<div id="nav-main">' + nav.getHTML() + '</div>\n<div id="nav-bottom">&nbsp;</div>\n';
            });
            */
        }

        return(true);
    },
    getHTML: function () {
        var nav_primary = this.menu;
        var html = '\n<ul id="nav-primary">\n';
        for (var i = 0; i < nav_primary.length; i++) {
            html += '\t<li><a class="nav-primary-button" href="' + ((nav_primary[i].href != undefined) ? nav_primary[i].href : '#') + '">' + nav_primary[i].alttext + '</a>';
            if (nav_primary[i].menu) {
                var nav_secondary = nav_primary[i].menu;
                html += '\n\t\t<ul class="nav-secondary">\n\n';
                for (var j = 0; j < nav_secondary.length; j++) {
                    html += '\t\t\t<li>';

                    var html_tertiary = '';
                    if (nav_secondary[j].menu) {
                        var nav_tertiary = nav_secondary[j].menu;
                        
                        html_tertiary += '\n\t\t\t\t<ul class="nav-trinary">\n';
                        for (var k = 0; k < nav_tertiary.length; k++) {
                            html_tertiary += '\t\t\t\t\t<li>';
                            html_tertiary += '<a id="nav-tertiary-' + i + '-' + j + '-' + k + '"';
                            if (nav_tertiary[k].href && (location.href.indexOf(nav_tertiary[k].href) >= 0) && (location.href.indexOf(nav_tertiary[k].href) + nav_tertiary[k].href.length == location.href.length)) { html_tertiary += ' class="active"'; }
                            html_tertiary += ' href="' + ((nav_tertiary[k].href != undefined) ? nav_tertiary[k].href : '#') + '">';
                            html_tertiary += (nav_tertiary[k].text ? nav_tertiary[k].text : '<img src="' + nav_tertiary[k].image + '">') + '</a></li>\n';
                        }
                        html_tertiary += '\t\t\t\t</ul>\n\t\t\t';
                    }

                    html += '<a id="nav-secondary-' + i + '-' + j + '"';
                    if (html_tertiary) { html += ' class="nav-expand"'; }
                    if (nav_secondary[j].href && (location.href.indexOf(nav_secondary[j].href) >= 0) && (location.href.indexOf(nav_secondary[j].href) + nav_secondary[j].href.length == location.href.length)) { html += ' class="active"'; }
                    html += ' href="' + ((nav_secondary[j].href != undefined) ? nav_secondary[j].href : '#') + '">' + nav_secondary[j].text + '</a>';
                    html += html_tertiary + '</li>\n';
                } html += '\t\t</ul>\n\t';
            } html += '</li>\n';
        } html += '</ul>\n';
    
        return html;
    },
    init: function () {
        // Collapse subnavs (until js runs, the subnavs remain open to allow non-js folks to access the menus)
        jQuery("#nav-primary li:has('ul') > a").bind('click keydown', nav.select);
        // TODO: dont hide previously opened nav items from nav.selected
        jQuery("#nav-primary ul:not(':has('a.active')')").hide();
    },
    selected: [],
    select: function (e) {
        if (e.keyCode == 32 || e.keyCode == 13 || e.type == 'click') {
            if (jQuery(this).parent().children('.nav-secondary').size() > 0) {
                jQuery(this).addClass('nav-collapse').removeClass('nav-expand');
                jQuery(this).parent().children('.nav-secondary').slideDown();
            }
            else if (jQuery(this).parent().children('.nav-trinary').size() > 0) {
                jQuery(this).addClass('nav-collapse').removeClass('nav-expand');
                jQuery(this).parent().children('.nav-trinary').slideDown();
            }
            jQuery(this).unbind().bind('click keydown', nav.deselect);

            // track opened navs in nav.selected array (TODO: persist nav.selected across pages using cookies)
            nav.selected.push(jQuery(this).attr('id'));

            return(false);
        }
        return(this);
    },
    deselect: function (e) {
        if (e.keyCode == 32 || e.keyCode == 13 || e.type == 'click') {
            if (jQuery(this).parent().children('.nav-secondary').size() > 0) {
                jQuery(this).removeClass('nav-collapse').addClass('nav-expand');
                jQuery(this).parent().children('.nav-secondary').slideUp();
            }
            else if (jQuery(this).parent().children('.nav-trinary').size() > 0) {
                jQuery(this).removeClass('nav-collapse').addClass('nav-expand');
                jQuery(this).parent().children('.nav-trinary').slideUp();
            }
            jQuery(this).unbind().bind('click keydown', nav.select);

            // track opened navs in nav.selected array (TODO: persist nav.selected across pages using cookies)
            // remove deselected nav from nav.selcted.
            var id = jQuery(this).attr('id');
            for (var i = 0; i < nav.selected.length; i++) {
                if (nav.selected[i] == id) {
                    var rest = nav.selected.slice(i + 1);
                    nav.selected.length = i;
                    nav.selected.push.apply(nav.selected, rest);
                    break;
                }
            }

            return(false);
        }
        return(this);
    },
    setCookie: function (cookieName, cookieValue) {
        var today = new Date();
        var expire = new Date();
        expire.setTime(today.getTime() + 3600000 * 24 * 1);
        document.cookie = cookieName + "=" + escape(cookieValue) + ";expires=" + expire.toGMTString();
    },
    getCookie: function (cookieName) {
        var theCookie = "" + document.cookie;
        var ind = theCookie.indexOf(cookieName);
        if (ind == -1 || cookieName == "") return ""; 
        var ind1 = theCookie.indexOf(';', ind);
        if (ind1 == -1) ind1 = theCookie.length; 
        return unescape(theCookie.substring(ind + cookieName.length + 1, ind1));
    }    
};

// Compatibility with legacy nav draw call
var n_e = { output: nav.attachToPage };

// Make sure jQuery is loaded.
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;
            //output the script (load it from google api)
            document.write("<scr" + "ipt type=\"text/javascript\" src=\"http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js\"></scr" + "ipt>");
        }
        setTimeout("initJQuery()", 50);
    }
    else {
        jQuery(document).bind('ready', function () {
            nav.attachToPage('nav-main');
        });
    }
}
initJQuery();
