/**
 * Methods for portal master page
 */


var PortalManager = {

    init: function() {
        //        this.registerDisclosures();
        if (window.menuObject) {
            this.createMenuHeaderAndSubmenus(window.menuObject);
            this.makeMenus();
        }
        //Added Now
        this.registerDisclosures();
        $dom.querySelector(".header-container .logo", true).click(function() {
            document.location.href = "http://www.harvestmark.com";
        });
        $dom.querySelector(".trace-prompt", true).click(function(e) { PortalManager.showTraceBox(e); });

        $dom.querySelector("#traceBtnHead", true).click(function(e) {
            var code = $dom.querySelector("#getCode").value;
            PortalManager.doTrace(code);
        });

        $dom.querySelector("#getCode", true).keypress(function(e) {
            if (e.keyCode == 13 && this.value != "") {
                e.preventDefault();
                location.href = "/ResponsePage.aspx?Code=" + this.value;
            }
        });
        //End Adding
    },
    //Added Now
    doTrace: function(code) {
        if (code && code != "") {
            location.href = "ResponsePage.aspx?Code=" + code;
            $(".trace-form .text-input")[0].blur();
            $(".trace-box").animate({ height: "0" }, 200);
            this.traceOpen = false;
        }
    },


    showTraceBox: function(event) {
        if (!this.traceOpen) {
            this.traceOpen = true;
            $(".trace-box").animate({ height: "90px" }, 250, "swing", function() { $(".trace-form .text-input")[0].focus(); });
            $('#getCodeButton').click(function() {
                location.href = '/ResponsePage.aspx?Code=' + $('#getCode').val();
            });
        }
        else {
            $(".trace-form .text-input")[0].blur();
            $(".trace-box").animate({ height: "0" }, 200);
            this.traceOpen = false;
        }
        return false;
    },

    registerDisclosures: function() {
        var scop = this;
        $(".disclosure").click(function(event) {
            scop.toggleDisclosure(this);
        });
    },

    toggleDisclosure: function(disclosureEl) {
        var disc_id = disclosureEl.id.split("_")[1];
        var disclosable = $("#" + disc_id);
        var hidden = disclosable.is(":hidden");
        disclosureEl.className = hidden ? "disclosure-open" : "disclosure";
        var jfun = hidden ? "slideDown" : "slideUp";
        disclosable[jfun]("fast");
    },
    //End added
    //Commented Now 
    //    registerDisclosures: function() {
    //        var scop = this;
    //        $(".disclosure").click(function(event) {
    //            scop.toggleDisclosure(this);
    //        });
    //    },

    //    toggleDisclosure: function(disclosureEl) {
    //        var disc_id = disclosureEl.id.split("_")[1];
    //        var disclosable = $("#" + disc_id);
    //        var hidden = disclosable.is(":hidden");
    //        disclosureEl.className = hidden ? "disclosure-open" : "disclosure";
    //        var jfun = hidden ? "slideDown" : "slideUp";
    //        disclosable[jfun]("fast");
    //    },
    //End Commenting
    makeMenus: function() {
        //alert("making menus...");

        while (this.submenus.length > 0) {
            document.body.appendChild(this.submenus.shift());
        }

        $(".menu-header").buildMenu({
            menuSelector: ".menu-container",
            menuWidth: 160,
            openOnRight: false,
            containment: "window",
            hasImages: false,
            fadeInTime: 100,
            fadeOutTime: 200,
            menuTop: 0,
            menuLeft: 0,
            submenuTop: 1,
            submenuLeft: 2,
            opacity: 1,
            shadow: true,
            shadowColor: "#000",
            shadowOpacity: 0.2,
            openOnClick: true,
            closeOnMouseOut: false,
            closeAfter: 500,
            minZindex: "auto",
            hoverIntent: 0,
            submenuHoverIntent: 0
        });
    },

    submenus: [],

    createMenuHeaderAndSubmenus: function(arr) {

        var makeHdr = function(label, index, link) {
            //var li = $dom.createTag("li", null, (label.replace(/\s/g, "_")).toLowerCase());
            var li = $dom.createTag("li", null);
            var menuAtt = typeof index == "number" ? "menu" + index : "empty";
            li.setAttribute("menu", menuAtt);
            var a = $dom.createTag("a", null, null, label);
            var hrf = link ? link : "javascript:void(0)";
            a.setAttribute("href", hrf);
            li.appendChild(a);
            return li;
        };

        var makeSubmenu = function(id, arr) {
            var m = $dom.createDiv(id, "menu");
            for (var i = 0, n = arr.length; i < n; i++) {
                var a = $dom.createTag("a", null, null, arr[i].label);
                a.setAttribute("href", arr[i].link);
                m.appendChild(a);
            }
            return m;
        }

        var mdiv = $dom.createDiv(null, "menu-header");
        var ul = $dom.createTag("ul");
        mdiv.appendChild(ul);

        for (var i = 0, n = arr.length; i < n; i++) {
            var item = arr[i];
            ul.appendChild(makeHdr(item.label, i));
            this.submenus.push(makeSubmenu("menu" + i, item.submenu));
        }

        try {
            $dom.querySelector(".header-container").appendChild(mdiv);
        }
        catch (e) { }
    }

}

$(document).ready(function() {
    PortalManager.init();
});