﻿$(document).ready(function(){
    setMenuPosition($(this));
});//onDocReady
    $(window).bind("resize", resizeWindow);
    function resizeWindow()
    {
    $('.navMenuWrapper').each(function(){
        setMenuPosition($(this));
    });
    }
function getMenuData($menu, fmid)
{
    var uid = readCookie('userRole');
    if(!uid)
    uid=0;
    //Testing (set header)
    $('.header').text('Member Services');
    if(fmid!='174') {
        $.getJSON('/webparts/jData/menuBuilder.aspx?op=getMenu&fmid=' + fmid + '&uid=' + uid, function(data) {
            var bucketArray = [];
            var bucketCounter = 0;
            var menuArray = [];
            var menuCounter = 0;
            for (var x = 0; x < data.rows.length; x++) {
                if (data.rows[x].PARENT_ID == fmid) {
                    if (menuArray.length > 0) {
                        //Insert into Bucket
                        bucketArray[bucketCounter] = menuArray;
                        bucketCounter++;
                        menuArray = [];
                        menuCounter = 0;
                    }
                    if (data.rows[x].MENU_NAME.trim() == 'Multimedia')
                        menuArray[menuCounter] = { type: "rootLink", text: "Photo Galleries", link: data.rows[x].MENU_LINK };
                    else
                        menuArray[menuCounter] = { type: "rootLink", text: data.rows[x].MENU_NAME, link: data.rows[x].MENU_LINK };
                    menuCounter++;
                }
                else {
                    menuArray[menuCounter] = { type: "subLink", text: data.rows[x].MENU_NAME, link: data.rows[x].MENU_LINK };
                    menuCounter++;
                }
            }
            bucketArray[bucketCounter] = menuArray;
            var html = "";
            var m = 0;
            var maxHeight = 250;
            var menuWidth = 0;
            var dropContent = $menu.find('.navDropMenu');
            dropContent.text('');

            if (fmid != '176') {
                for (var x = 0; x < bucketArray.length; x++) {
                    html = "<div class=\"menuWrapper\">";
                    for (var y = 0; y < bucketArray[x].length; y++) {
                        if (y == 0)
                            html += "<ul class=\"navList\">" +
                        "<li class=\"bucketHeader\"><a href=\"" + bucketArray[x][y].link + "\" class=\"navLink\">" + bucketArray[x][y].text + "</a></li>";
                        else {
                            html += "<li class=\"navListItem\" ><a href=\"" + bucketArray[x][y].link + "\" >" + bucketArray[x][y].text + "</a></li>";
                        }
                    }
                    html += "</ul></div>";
                    if (dropContent.children('.navcol').length == 0)
                        dropContent.append('<div class="navcol"> </div>');
                    if (dropContent.children('.navcol:eq(' + m + ')').height() > maxHeight) {
                        dropContent.append('<div class="navcol"> </div>');
                        m++;
                    }
                    dropContent.children('.navcol:eq(' + m + ')').append(html);
                }
            }
            else {
                html = "<div class=\"menuWrapper\">";
                html += "<ul class=\"navList\">" +
                "<li class=\"bucketHeader\"><a href=\"" +
                "/user/template.aspx?fmid=176&lmid=458&pid=0&type=i" +
                "\" class=\"navLink\">" +
                "Photo Galleries" +
                "</a></li>";
                html += "</ul>";
                html += "<li class=\"bucketHeader\"><a href=\"" +
                "/user/video-audio.aspx?fmid=176&lmid=176&pid=0&type=l" +
                "\" class=\"navLink\">" +
                "Videos" +
                "</a></li>";
                html += "</ul></div>";
                if (dropContent.children('.navcol').length == 0)
                    dropContent.append('<div class="navcol"> </div>');
                if (dropContent.children('.navcol:eq(' + m + ')').height() > maxHeight) {
                    dropContent.append('<div class="navcol"> </div>');
                    m++;
                }
                dropContent.children('.navcol').append(html); //:eq(' + m + ')').append(html);
            }

            //Set menu width
            dropContent.children('.navcol').each(function() {
                menuWidth += $(this).width() + ((dropContent.children('.navcol').length) * 10);
            });
            var newWidth = menuWidth + $('.navcol').length;
            if ($.browser.msie)
                newWidth += 10;
            dropContent.width(newWidth);
            //Append all menu blocks to menu columns

            var cols = dropContent.children('.navcol');

            dropContent.append('<br class=\"clear\"/>');
            var he = 0;
            //Set borders
            cols.each(function() {
                $(this).css('border-right', 'dotted 1px #606060');
                if (he < $(this).height())
                    he = $(this).height();
            });
            cols.each(function() {
                $(this).height(he);
            });
            dropContent.children('.navcol:last').css('border-right', '');
            setMenuPosition($menu);
            $('#nav li').hover(function() {
                $(this).css('background-color', '#202020');
                $(this).children('a').css('color', '#CC9900');
            }, function() {
                $(this).css('background-color', '');
                $(this).children('a').css('color', 'white');
            });
            $('#nav li').click(function() {
                url = $(this).children('a').attr('href');
                window.location = url;
            });
        }, "json");   //getJSON
    }//if(fmid!=174)
}
function setMenuHover($menu)
{
	    $menu.parent().hover(function(el,i){
		    //hover over
		    $menu.css('visibility','visible');
	    }, function(){
		    //hover out
		    $menu.css('visibility','hidden');
	    });
}
function setQuickFindKeys()
{
$('#nav_quickfind_text').keyup(function(evt){
        //getJSON
        var results = $('#nav_quickFind_results');
        var up = 38;
        var down = 40;
        var enter = 13;
        var sh = $(this).val();
        if(evt.keyCode!=38 && evt.keyCode!=40 && evt.keyCode!=13)
        {
            if(sh.length>0)
            {
            //add loading text
                results.show();
                results.html('Loading...');
                //Added to deal with Apos in query
                var lsRegExp = /'/g;
                sh = String(sh).replace(lsRegExp, "''");
                //////////////////////////////////
                $.getJSON('/webparts/jData/jmethods.aspx?q=nav_quickfind&sh='+sh,function(data){
                    if(sh==String($('#nav_quickfind_text').val()).replace(lsRegExp, "''"))
                    {
                        var rowcount = data.totalRows;
                        var row = data.rows;
                        if(rowcount>0)
                            var html="<div style=\"padding-bottom:10px;\">Total Results: "+ rowcount+' (<a href="/user/Players.aspx?fmid=174&lmid=174&pid=0&type=l&sh='+sh+'">Grid View</a>)</div>';
                        else
                            var html="<div style=\"padding-bottom:10px;\">Total Results: No results </div>";
                        if(rowcount>10)
                        rowcount=10;
                        for(var x=0; x<rowcount;x++)
                        {//http://www.nflplayers.com/user/template.aspx?fmid=174&lmid=183&pid=2362&type=p&weigh=183,0,2362,p
                            html+='<div class="quickFind_result"><a href="/user/template.aspx?fmid=174&lmid=183&pid='+row[x].PLAYER_ID+'&type=p&weigh=183,0,'+row[x].PLAYER_ID+',p">'+
                            '<div class="quickFind_name">'+row[x].LAST_NAME + ', ' + row[x].FIRST_NAME + '</div>'+
                            '<div class="quickFind_meta">'+row[x].TEAM_NAME + ' ('+row[x].POSITION+')</div>'+
                            '</a></div>';
                        }
                        results.html(html);
                        $('#nav_quickFind_results').show();
                        results.children('div.quickFind_result').each(function(){
                            $(this).hover(function(){
                                results.children('div.selected').removeClass('selected');
                                $(this).addClass('selected');
                            },function(){
                                $(this).removeClass('selected');
                            });//end hover
                        });//end each
                    }
                }, "json");//getJSON
            }//if sh.length
            else//reset list
            {
                $('#nav_quickFind_results').html('');
                $('#nav_quickFind_results').hide();
            }
        }
        /*
        if(evt.keyCode==40)
        {
            if(results.children('div.selected').length>0)
            {
                results.children('div.selected').next().addClass('selected');
                results.children('div.selected:first').removeClass('selected');
            }
            else
            {
                results.children('div.quickFind_result:first').addClass('selected');
            }
        }
        if(evt.keyCode==38)
        {
            if(results.children('div.selected').length>0)
            {
                results.children('div.selected').prev().addClass('selected');
                results.children('div.selected:last').removeClass('selected');
            }
            else
            {
                results.children('div.quickFind_result:last').addClass('selected');
            }
        }
        if(evt.keyCode==13)
        {
            if(results.children('div.selected').length>0)
            {
                window.location = results.children('div.selected:first').find('a').attr('href');
            }
            else
            {
                
            }
        }
        */
    });//keyup
}
function setMenuPosition($menu)
{
    $('.navMenuWrapper').each(function(){
            $(this).css('top',$(this).parent().offset().top+20);
    });
    $('.navMenuWrapper:lt(3)').each(function(){
        var el = $(this);
        el.css('left',el.parent().offset().left+2);
        el.find('.navDropMenuTop').css({'backgroundPosition': 'left','width':el.find('.navDropMenu').width()+12});
    });
    $('.navMenuWrapper:gt(2)').each(function(){
        var el = $(this);
        el.css('left',el.parent().offset().left+123-el.find('.navDropMenu').width());
        el.find('.navDropMenuTop').css({'backgroundPosition': 'right','width':el.find('.navDropMenu').width()+11});
        el.find('.navDropMenu').css({'position':'relative', 'right':-9});
    });
    $('.navMenuWrapper:last').each(function(){
        var el = $(this);
        el.find('.navDropMenuTop').css({'backgroundPosition': 'right','width':el.find('.navDropMenu').width()+12});
        el.find('.navDropMenu').css({'position':'relative', 'right':-10});
    });
    $('.navMenuWrapper:first').each(function(){
        var el = $(this);
        el.css('left',el.parent().offset().left);
    });
}

//SET MENU WHEN MENU LOADED ** NOT DOCUMENT LOADED ** THIS IS FASTER
/* Disabled until dropdown is approved*/

function _init(){
    $('.navMenuWrapper').each(function(){
        getMenuData($(this), $(this).find('.navDropMenu').attr('menuid'));
        setMenuHover($(this));
        setMenuPosition($(this));
    });
    setQuickFindKeys();    
    }
    _init();