﻿//menubuilder.js:

var _MenuBuilderURL = "/dynamicmenu/menubuilder.aspx";
var _MenuWidth = 500;

$(document).ready(function() 
{
    var s = new String(self.location);
    
    if(s.substr(0, 5) == 'https'){
        _MenuBuilderURL = s.substr(0, s.substr(8).indexOf('/') + 8) + _MenuBuilderURL ;
    }
    else{
        _MenuBuilderURL = s.substr(0, s.substr(8).indexOf('/') + 8) + _MenuBuilderURL ;
    }
    
    try{  
        $("#wrapper").find("div.dm_current").addClass("dm_scrollable");
        $(document).click(function(){   
            if(!KeepCatMenuOpenOnce)
                CloseCategoryMenu();
            else KeepCatMenuOpenOnce=false;
            }); 
            
        $("#wrapper").click(function(){KeepCatMenuOpenOnce=true;});
            
    }
    catch(e){}
});

var KeepCatMenuOpenOnce;
var ThisPagesMenu='';
var SetPagesMenu=false;
var ddlToCloseForCats;

function CloseCategoryMenu(){
    if(SetPagesMenu)
        ThisPagesMenu=$("#CategoryMenu").html();
    SetPagesMenu=false;
    try{
        document.getElementById("CategoryMenu").style.display="none";
    }catch(e){}
    try{
        document.getElementById(GetDDLToCloseForCats()).style.display="";
    }catch(e){}
}
function OpenCategoryMenu(){
    KeepCatMenuOpenOnce=true;
//    try{if(_CategoryRoot>-1)
//        if(ThisPagesMenu==''){
//            CreateMenu(_CategoryRoot);
//            SetPagesMenu=true;
//        }
//        else{
//            $("#CategoryMenu").html(ThisPagesMenu);
//        }
//    }
//    catch(f){
        $("#CategoryMenu").empty();
        $("#CategoryMenu").html('<div id="wrapper"><div class="dm_current dm_scrollable"><span class="dm_topbar"><span>All Categories</span><em onclick="CloseCategoryMenu();" title="Close Menu">X</em></span><span class="dm_title"></span><ul><li><a href="javascript:void(0);" onclick="MenuForward(1);"><em>Guns</em></a></li><li><a href="javascript:void(0);" onclick="MenuForward(2);"><em>Non-Guns</em></a></li></ul></div></div>');
//  }
    document.getElementById("CategoryMenu").style.display="";
    try{document.getElementById(GetDDLToCloseForCats()).style.display="none";}catch(e){}
}

function CreateMenu(parentCatID, newMenuItem)
{   
    KeepCatMenuOpenOnce=true;
	$.get(
        _MenuBuilderURL
        ,{ "p":parentCatID }
        ,function(MenuData) 
        {            
            CreateMenuMarkup(JSON.parse(MenuData), parentCatID, newMenuItem);
        }
    );

}
function CreateMenuMarkup(MenuData, parentCatID, newMenuItem)
{   
    var Markup = ""; 
       
    try
    {   
        Markup += "\n\n<div class=\"dm_current\">"
            +"\n<span class=\"dm_topbar\">";
        
        if (MenuData.PreviousParentID != "-1")
        {
            Markup += "<a href=\"javascript:void(0);\" onclick=\"MenuBackward(" 
                + MenuData.PreviousParentID
                + ");\">Back</a>";
        }
        else
        {
            Markup += "<div>All Categories</div>";
        }
        
        Markup += "<em onclick=\"CloseCategoryMenu();\" title=\"Close Menu\">X</em></span>";
        
        Markup += "<span class=\"dm_title\"><a class=\"dm_title\" href=\"" + MenuData.PreviousParentURL + "\">" + MenuData.PreviousParentName + "</a>"
            + "</span>";
        Markup += "\n<ul>";
        
        for(var i = 0; i < MenuData.menu.length; i++)
        {
            
            Markup += "\n<li>";
            
            if (MenuData.menu[i].HasChildren)
            {
                Markup += "<a href=\"javascript:void(0);\" onclick=\"MenuForward(" 
                    + MenuData.menu[i].CategoryID 
                    + ");\">"
                    + "<em>" 
                    + MenuData.menu[i].CategoryDescription
                    + "</em></a>";
            }
            else
            {
                Markup += "<a href=\"" + MenuData.menu[i].CategoryURL + "\">"
                    + "<em class=\"dm_noarrow\">" 
                    + MenuData.menu[i].CategoryDescription
                    + "</em></a>";
            }
            
            Markup += "</li>";
        }
        
        Markup += "\n</ul>\n</div>\n\n";
        
        var OldMenu=$("#wrapper").html();
        
        if (newMenuItem)
        {
            $("#wrapper").find("div.dm_current").after(Markup).addClass("temp");
            $("#wrapper").find("div.temp").removeClass("dm_current").addClass("dm_previous").removeClass("temp");
        }
        else 
        {
            $("#wrapper").find("div.dm_current").addClass("temp").prev().replaceWith(Markup);
        }
        
        if(trimAll($("#wrapper").html()).length<5){
            $("#wrapper").html(Markup);
        }
    }
    catch (ex)
    {
        Markup = "<div class=\"dm_current\">"
            + "<span class=\"dm_topbar\">"
            + "<a href=\"javascript:void(0);\" onclick=\"CreateMenu(" 
            + parentCatID 
            + ")\">Reset Menu</a></span>Error:<br />"
            + ex.message
            + "</div>";
        
        $("#wrapper").empty();
        $("#wrapper").append(Markup);
    }
}

function MenuForward(parentCategoryID)
{
    var CurrentWidth = $("#wrapper").css("width").replace("px", "");
    var NewWidth = parseInt(_MenuWidth) + parseInt(CurrentWidth);
        
    $("#wrapper").css( {width:(NewWidth) + "px"} );
    $("#wrapper").find("div.dm_current").removeClass("dm_scrollable");    
    $("#wrapper").find("div.dm_previous").removeClass("dm_scrollable");    
    
    CreateMenu(parentCategoryID, true);
    
    $("#wrapper").animate( {left:"-=" + (_MenuWidth) + "px"}, 750, "expoinout"
        ,function()
        {
            $("#wrapper").find("div.dm_current").addClass("dm_scrollable");    
            $("#wrapper").find("div.dm_previous").addClass("dm_scrollable");    
            
            $("#wrapper").find("div.dm_current").prev().empty();
        }
    );
}
function MenuBackward(previousParentID)
{
    var CurrentWidth = $("#wrapper").css("width").replace("px", "");
    var NewWidth = parseInt(CurrentWidth) - parseInt(_MenuWidth);
    
    $("#wrapper").find("div.dm_current").removeClass("dm_scrollable");    
    $("#wrapper").find("div.dm_previous").removeClass("dm_scrollable");    
    
    CreateMenu(previousParentID, false);
        
    $("#wrapper").animate( {left:"+=" + (_MenuWidth) + "px"}, 750, "expoinout"
        ,function()
        {
            $("#wrapper").find("div.temp").remove();
            $("#wrapper").css( {width:(NewWidth) + "px"} );
            
            $("#wrapper").find("div.dm_current").addClass("dm_scrollable");    
            $("#wrapper").find("div.dm_previous").addClass("dm_scrollable");            
        }
    );    
}

//end menubuilder