﻿/**************************************************** MAIN CLASSIFICATION MENU *****************************************************/
var menu_service = null;
var last_open_menu = null;
var menu_open_cache = new Object();
var menu_active_page = null;
var selected_item = new Object();

function menu_getsubpages(el, id) {
    if (menu_open_cache[id]) {
        // Get subpages container
        var container = $get('menu_open' + id);
        if (!container) return;
        if (container == last_open_menu) return;

        // check and collapse last container
        if (last_open_menu) {
            $(last_open_menu).slideUp(700);
        }

        // Show container
        $(container).slideDown(700);

        // Set last open menu
        last_open_menu = container;
        return;
    }

    // Get content before actuqaly displaying the floating menu
    // this is called "data preloading", so the data should be already
    // waiting
    menu_service = Sys.Net.WebServiceProxy.invoke('/Services/Public.asmx', 'AjaxCallShort', false,
        {
            fullTypeAndMethodPath: 'PageMenu.PageMenu.GetSubPages',
            args: new Array(id, 2, "Index", true, null)
        },
        menu_getsubpagesloaded,
        menu_getsubpageserror,
        id, 2000);
}

function menu_getsubpagesloaded(result, id) {
    // Check result
    menu_open_cache[id] = true;
    if (!result || result == "") return;

    // Deserialize to JSON
    var result = Sys.Serialization.JavaScriptSerializer.deserialize(result, true);
    var aid = result.context;

    // get static sever content
    var staticContent = $get("menu_staticopen" + menu_active_page);
    if (staticContent) $(staticContent).slideUp(700);

    // Get subpages container
    var container = $get('menu_open' + id);
    if (!container) return;
    if (container == last_open_menu) return;

    // check and collapse last container
    if (last_open_menu) {
        $(last_open_menu).slideUp(700);
    }
    
    // Loop trough all pages
    for (var i = 0; i < result.pages.length; i++) {
        
        var link = document.createElement("A");
        link.href = result.pages[i].path;
        link.innerHTML = result.pages[i].title;

        var div = document.createElement("DIV");
        div.className = "MenuItem" + result.pages[i].level;
       
        div.appendChild(link);
        
        container.appendChild(div);
    }

    // Show container
    $(container).slideDown(700);

    // Set last open menu
    last_open_menu = container;
}

function menu_getsubpageserror(){
}