﻿

function getMenuHeaders() 
{
    //alert(" webSiteUrl = " + webSiteUrl);
    
    $.ajaxSetup({ cache: false }); 
    $.getJSON(webSiteUrl + "Menu/GetMenuHeaders", null, function(data) {
        bindMenuHeader(data);
    });
}


var dvMenuHeaders = new Array();
var dvMenuHeaderIDs = new Array();
var dvColor = new Array();

function bindMenuHeader(obj) 
{
    var menuHeaders = '';
    var strHeaders = JSON.stringify(obj);

    var headerID, TotalRows, TotalColumns, HasChildren;
    var MenuText = '', URL = '';Color = '';
    var divID = "";

    menuHeaders = menuHeaders + '<ul id=\"navigation\"> ';
    
    for (var i = 0; i < obj.length; i++) 
    {
        headerID = obj[i].MenuHeaderID;
        TotalRows = obj[i].TotalRows;
        TotalColumns = obj[i].TotalColumns;
        MenuText = obj[i].MenuText;
        HasChildren = obj[i].HasChildren;
        URL = obj[i].URL;
        divID = ""; divID = "dlt" + headerID;
        Color = '#F0F5F8';

        if (obj[i].Color != null && obj[i].Color != undefined && obj[i].Color != '') {
            Color = obj[i].Color;
        }

        if (HasChildren == true) {
            menuHeaders = menuHeaders + '<li title=\"' + MenuText + '\" onclick=\"DisplayMenuItems(' + headerID + ');\" onmouseover=\"DisplayBlueBar();\" onmouseout=\"hideBlueBar();\"><span id=\"' + divID + '\" class=\"menufont\">';
            menuHeaders = menuHeaders + '<a href=\"javascript:DisplayMenuItems(' + headerID + ');\" class=\"ancorLine\">' + MenuText + '</a>';
        }
        else {

            //alert(" URL = " + URL);
            menuHeaders = menuHeaders + '<li title=\"' + MenuText + '\" onmouseover=\"DisplayBlueBar();\" onmouseout=\"hideBlueBar();\" onclick=\"SelectMenuClick(\'' + URL + '\')\"><span id=\"' + divID + '\" class=\"menufont\">';
            menuHeaders = menuHeaders + '<a href=\"' + URL + '\" class=\"ancorLine\">' + MenuText + '</a>';
        }

        /* menuHeaders = menuHeaders + '<a href=\"#\" class=\"ancorLine\" onclick=\"getMenuItemData(' + headerID + ',\'' + MenuText + '\',' + TotalRows + ',' + TotalColumns + ',' + HasChildren + ')\" title=\"' + MenuText + '\">' + MenuText + '</a>'; */
        

        document.getElementById('ctl00_UserMenu1_hdnHeaderID').value = headerID;

        menuHeaders = menuHeaders + '</span></li>';

        /* Add MenuHeader names to Array */
        if (HasChildren == true) 
        {
            dvMenuHeaders.push(divID);
            dvColor.push(Color);
        }
            
        /* Save menu header ID's */
        dvMenuHeaderIDs.push(divID);
    }

    menuHeaders = menuHeaders + '</ul>';

    document.getElementById("divMenus").innerHTML = '';
    if (menuHeaders.length > 0) 
    {
        document.getElementById("divMenus").innerHTML = menuHeaders;
    }

    /* Create Divs */
    CreateDivs(dvMenuHeaders);

    /* On Over */
    onMouseOverMenu(obj);
}


function SelectMenuClick(obj)
{
    //alert("IN = " + obj);
    window.location.href = obj;
}


/* Hide all divs */
function ClearMenuItems() {
    var menuDivs = '';
    for (var i = 0; i < dvMenuHeaders.length; i++) {
        document.getElementById("dv" + dvMenuHeaders[i]).style.visibility = "hidden";
    }
}

/* Mouse over menu */
function onMouseOverMenu(obj) 
{
    for (var i = 0; i < obj.length; i++) 
    {
        headerID = obj[i].MenuHeaderID;
        TotalRows = obj[i].TotalRows;
        TotalColumns = obj[i].TotalColumns;
        MenuText = obj[i].MenuText;
        HasChildren = obj[i].HasChildren;
        divID = ""; divID = "dlt" + headerID;

        /* Add MenuHeader who has childreen */
        if (HasChildren == true) {
            getMenuItemData(headerID, MenuText, TotalRows, TotalColumns, true);
        }
    }
    
    /* Hide Divs */
    /*ClearMenuDivs();*/
}

function CreateDivs(mDivs) 
{

    var divWidth = '979px'; // IE 

    /* To set the width for MS and Firefox  */
    var browserType = detectBrowser();

    //alert("browserType = " + browserType);

    if (browserType == 1) // FF 3.5
    {
        document.getElementById("dvMenuItems").style.width = "1003px";
        divWidth = '992px';
    }
    else if (browserType == 2) // FF 3.6
    { // FF and others
        document.getElementById("dvMenuItems").style.width = "1003px";
        divWidth = '990px';
    }
    else if (browserType == 8) { // IE 6, 7, 8
        document.getElementById("dvMenuItems").style.width = "1003px";
        divWidth = '992px'; // IE 8
    }
    else if (browserType == 7) {
        document.getElementById("dvMenuItems").style.width = "1003px";
        divWidth = '985px'; // IE 7
    }
    else {
        document.getElementById("dvMenuItems").style.width = "1003px";
        divWidth = '990px'; // Safari & Chrome
    }
    
    document.getElementById("dvMenuItems").innerHTML = '';
    var menuDivs = '';
    var bColor = '#F0F5F8';

    var divStyle = '';
    divStyle = divStyle + ' onmouseover=\"this.style.visibility=\'visible\'\"';
    divStyle = divStyle + ' onmouseout=\"this.style.visibility=\'hidden\'\"';

    /* Blue bar */
    menuDivs = menuDivs + '<div id=\"dvBlueBar\" style=\"width:' + divWidth + '; position:absolute; visibility:hidden\" class=\"MenuTopBar\"></div>';
    
    /* Roll Over head */
    for (var i = 0; i < dvMenuHeaders.length; i++) 
    {
        /*Onmouseover make visible onmouseout hide */
        if (dvColor[i] != '') {
            bColor = dvColor[i]; 
        }
        /* Roll over body */
        menuDivs = menuDivs + '<div id=\"dv' + dvMenuHeaders[i] + '\" style=\"background-color:' + bColor + '; width:' + divWidth + '; position:absolute; visibility:hidden\"></div>';
    }

    document.getElementById("dvMenuItems").innerHTML = menuDivs;

    /* Create Blue Bar Div 
    CreateBlueBar(); */
}

/* Clear Menu Divs content */
function ClearMenuDivs() {
    var menuDivs = '';
    for (var i = 0; i < dvMenuHeaders.length; i++) {
        //document.getElementById("dv" + dvMenuHeaders[i]).innerHTML = '';
        document.getElementById("dv" + dvMenuHeaders[i]).style.visibility = "hidden";
    }
}

/* Unselect Menu Header  */
function DeSelectMenuHeader() {
    for (var i = 0; i < dvMenuHeaderIDs.length; i++) {
        document.getElementById(dvMenuHeaderIDs[i]).className = "menufont";
    }
}

function SelectMenu(headerID) 
{
    DeSelectMenuHeader();
    document.getElementById("dlt" + headerID).className = "selectedHeader";
}

/* Get MenuItem data for menu header */
function getMenuItemData(mHID, mTxt, tRows, tColumns, hasChildren) {

    if (hasChildren == true) 
    {
        DeSelectMenuHeader();
        $.ajaxSetup({ cache: false }); 
        $.getJSON(webSiteUrl + "Menu/GetMenuItemsByHeaderID", { headerID: mHID }, function(data) {
            createMenu(data, mTxt, tRows, tColumns, mHID);
        });
    }
//    else {

//        ClearMenuDivs();
//        DeSelectMenuHeader();
//    }
}

/* Function to display bule bar below menu headers */
function CreateBlueBar() 
{
    var htmlTable = '';

    /* Create table */
    htmlTable = htmlTable + '<table border=\"0\" width=\"979px\" cellpadding=\"0\" cellspacing=\"0\">';

    /* Menu top blue bar */
    htmlTable = htmlTable + '<tr><td colspan=\"3\" class=\"MenuTopBar\"></td></tr>';

    htmlTable = htmlTable + '</table>';

    /* Assign created table to divs */
    document.getElementById('dvBlueBar').innerHTML = '';
    document.getElementById('dvBlueBar').innerHTML = htmlTable; 
}

/* Make visible blue border */
function DisplayBlueBar() {
    document.getElementById('dvBlueBar').style.visibility = "visible";
}

/* hide blue bar div */
function hideBlueBar() {
    document.getElementById('dvBlueBar').style.visibility = "hidden";
}

function createMenu(mItems, mTxt, tRows, tColumns, mHID) 
{
    //debugger;
    var menuText = mTxt;

    var divID = "dvdlt" + mHID;
   
    var htmlTable = '';

    /* Create table */
    htmlTable = htmlTable + '<table border=\"0\" width=\"979px\" cellpadding=\"0\" cellspacing=\"0\" class=\"container\">';

    /* Menu top blue bar */
    htmlTable = htmlTable + '<tr><td colspan=\"3\" class=\"MenuTopBar\"></td></tr>';
        
    /* Menu Content area - Row */
    htmlTable = htmlTable + '<tr><td width=\"15\" class=\"TableLeftBorderLeft\">&nbsp;</td>';

    /* Menu Content area - Column */
    htmlTable = htmlTable + '<td border=\"0\" width=\"98%\" valign=\"top\" height=\"100%\" align=\"left\">';
    
    /* Menu content */
    htmlTable = htmlTable + '<table border=\"0\" width=\"979px\" cellpadding=\"0\" cellspacing=\"3\">';

    var sItem = '';
    for (var r = 1; r <= tRows; r++) {

        htmlTable = htmlTable + '<tr>';

        var toolTip = "";
        var url = "";
        var menuStyle = "";
        
        for (var c = 1; c <= tColumns; c++) 
        {
            /* Search Menu Item */
            sItem = SearchMenuItem(mItems, r, c);

            /* When there is no item */
            if (sItem != null) 
            {
                /* 0 - Normal, 1 - Column span,  2 - Skip */
                if (sItem.SkipColumn == 2 || sItem.SkipRow == 2) {
                    continue;
                }
                else 
                {
                    htmlTable = htmlTable + '<td ';
                    /* Check for column span */
                    if (sItem.ColumnSpan > 1) {
                        htmlTable = htmlTable + 'colspan=' + sItem.ColumnSpan + ' ';
                    }

                    if (sItem.RowSpan > 1) {
                        htmlTable = htmlTable + 'rowspan=' + sItem.RowSpan + ' ';
                    }

                    /* Add ID to column */
                    htmlTable = htmlTable + 'id=\"' + mHID + '_' + r + '_' + c + '\"';

                    /* style = "border:solid 1px #7BADC6" */
                    //htmlTable = htmlTable + ' style=\"border:solid 1px #7BADC6\"';

                    if (sItem != null) 
                    {
                        /*Add Style */
                        if (sItem.cssClass == undefined || sItem.cssClass == null || sItem.cssClass == 'null' || sItem.cssClass.length <= 0) {
                            htmlTable = htmlTable + ' class=\"menuItem\"';
                            menuStyle = "menuItem";
                        }
                        else {
                            if (sItem.MenuText != '[Empty]') 
                            {
                               
                                if (sItem.URL != null && sItem.URL != undefined && sItem.URL != '') {
                                    menuStyle = sItem.cssClass;
                                }
                                else {
                                    //htmlTable = htmlTable + ' class=\"' + sItem.cssClass + '\"';
                                    menuStyle = sItem.cssClass;
                                }
                                htmlTable = htmlTable + ' class=\"' + sItem.cssClass + '\"';
                            }
                        }

                        /* Add Alignment*/
                        if (sItem.Align == undefined || sItem.Align == null || sItem.Align == 'null' || sItem.Align.length <= 0) {
                            htmlTable = htmlTable + ' align=\"left\"';
                        }
                        else {
                            htmlTable = htmlTable + ' align=\"' + sItem.Align + '\"';
                        }

                        if (sItem.CellWidth != null) {
                            htmlTable = htmlTable + ' width=\"' + sItem.CellWidth + '%;\"';
                        }
                        
                        /* Add Tool tip */
                        if (sItem.ToolTipText != null && sItem.ToolTipText != undefined && sItem.ToolTipText != '') {
                            htmlTable = htmlTable + ' title=\"' + sItem.ToolTipText + '\"' + '>';
                        }
                        else {
                            htmlTable = htmlTable + ' title=\"' + toolTip + '\"' + '>';
                        }

                        /* Add Cell Width 
                        if (sItem.CellWidth != null) {
                            htmlTable = htmlTable + ' <span style=\"width:' + sItem.CellWidth + '%;\"></span>';
                        }*/

                        /* Add Text */
                        /* Font style */
                        var foStyle = '';
                        foStyle = foStyle + ' onmouseover=\"this.style.color=\'blue\'\"';
                        foStyle = foStyle + ' onmouseout=\"this.style.color=\'\'\"';
                        foStyle = foStyle + ' style =\"text-decoration:none;\"';
                        if (sItem.MenuText != '[Empty]') {
                            if (sItem.URL != null && sItem.URL != undefined && sItem.URL != '') {
                                //htmlTable = htmlTable + '<a '+ foStyle + ' style=\"text-decoration: none;\" href=\"' + sItem.URL + '\" class=\"' + menuStyle + '\">' + sItem.MenuText + '</a>';
                                htmlTable = htmlTable + '<a href=\"' + sItem.URL + '\" class=\"' + menuStyle + '\">' + sItem.MenuText + '</a>';
                               // htmlTable = htmlTable + '<a ' + foStyle + ' href=\"' + sItem.URL + '\">' + sItem.MenuText + '</a>';
                                
                            }
                            else {
                                htmlTable = htmlTable + ' ' + sItem.MenuText + ' ';
                            }
                        }
                        else {
                            htmlTable = htmlTable + '&nbsp;';
                        }
                    }
                    else 
                    {
                        htmlTable = htmlTable + '> &nbsp;';
                    }

                    htmlTable = htmlTable + '</td>';
                }
            }
        }
        htmlTable = htmlTable + '</tr>';
    }
    //htmlTable = htmlTable + '</table>';
    htmlTable = htmlTable + '</table cellpadding=\"2\"></td></tr>';

    var mPath = "http://localhost:4592";

    /* Close button */
    htmlTable = htmlTable + '<tr><td colspan=\"3\" align=\"right\">';
    htmlTable = htmlTable + '<span class=\"\" onclick=\"CloseDiv(' + mHID + ');\" style=\"cursor:pointer;\"/><strong>Close</strong>&nbsp;</span>';
    htmlTable = htmlTable + '<img alt=\"close\" valign="middle" src=\"' + webSiteUrl + 'Content/Images/close.jpg\" onclick=\"CloseDiv(' + mHID + ');\" style=\"cursor:pointer;\"/>';
    htmlTable = htmlTable + '&nbsp;&nbsp;</td></tr>';
    
    htmlTable = htmlTable + '<tr><td colspan=\"3\">&nbsp;</td></tr></table>';
  
    /* Assign created table to divs */
    document.getElementById('dvdlt' + mHID).innerHTML = '';
    document.getElementById('dvdlt' + mHID).innerHTML = htmlTable;

    /* To remove curve edges - commented
    $('#dvdlt' + mHID).corner("bottom");
    */
}


/* Search in MenuItems data is present or not */
function SearchMenuItem(tags, rIndex, cIndex) {
    var i = null;
    for (i = 0; tags.length > i; i += 1) {
        if (tags[i].RowIndex == rIndex && tags[i].ColumnIndex == cIndex) {
            return tags[i];
        }
    }
    return null;
}

/* Hide Div */
function CloseDiv(hID) {
    DeSelectMenuHeader();
    document.getElementById("dvdlt" + hID).style.visibility = "hidden";
}

/* Show Div */
function DisplayMenuItems(hID) 
{
    /*ClearMenuDivs();*/
    //alert("INSIDE DIV ");

    /* Reset the menu headers */
    DeSelectMenuHeader();
    /* Highlight the selected menu header */
    SelectMenu(hID); 
    
    /* Hide blue bar div */
    hideBlueBar();
    
    var divID = '';
    divID = "dvdlt" + hID;
    
    /* Display selected div */
    HideExceptSelectedMenuDiv(divID);
}

/* Hide except div */
function HideExceptSelectedMenuDiv(divID) 
{
    var menuDivs = '';
    
    for (var i = 0; i < dvMenuHeaders.length; i++) 
    {
        var oDivID = ''; oDivID = "dv" + dvMenuHeaders[i];

        if (divID != oDivID) 
        {
            document.getElementById("dv" + dvMenuHeaders[i]).style.visibility = "hidden";
        }
        else 
        {
            document.getElementById("dv" + dvMenuHeaders[i]).style.visibility = "visible";
        }
    }
}

/* Function to detect browser 
function detectBrowser() {
    var browser = navigator.appName;
    var b_version = navigator.appVersion;
    var version = parseFloat(b_version);

    if (browser == "Microsoft Internet Explorer") {
        return 1;
    }
    else {
        return -1;
    }
}
*/

/* Function to detect browser */
function detectBrowser() {
    var browser = navigator.appName;
    var b_version = navigator.appVersion;
    var version = parseFloat(b_version);

    var retType = -1;

    if (browser == "Microsoft Internet Explorer") {
        if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)) {
            //test for MSIE x.x;
            var ieversion = new Number(RegExp.$1) // capture x.x portion and store as a number
            retType = ieversion;
        }
    }
    else {
        if (/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)) {
            //test for Firefox/x.x or Firefox x.x (ignoring remaining digits);
            var ffversion = new Number(RegExp.$1) // capture x.x portion and store as a number

            if (ffversion == 3.5) {
                retType = 1;
            }
            else if (ffversion == 3.6) {
                retType = 2
            }
            else {
                retType = -1;
            }
        }
    }

    return retType;
}