var gridTotal;
var maxGrid = 64
var gridPages = 1;
var gridRows = 0;
var gridItemsPerRow = 16;
var headshot = 'no-image171_193.jpg';
var gridTotal = 82;
var currentPage = 1;
var grid = [];
var startingPage = 1;
var gridBox = $('#gridBox');
var lgc = $('#leftGridColumn');
var alphas = $('span.alphaLetter');
var pb = $('#profileBox');
$(function() {
    setAlphaSort();
    setGridSort();
    var alpha = $('#gridSearchQuery').val();
    if (alpha.length > 1) {
        performAjaxAlpha(alpha, 'active');
        $('#grid_lname').val($('#gridSearchQuery').val());
    }
    else {
        alphas.each(function() {
        if ($(this).text().toLowerCase() == alpha.toLowerCase())
                $(this).click();
        });
    }
});
function noResultsfound() {
    gridBox.html('<h3>No Results Found</h3>');

}
function performAjaxStatus(status) {
    gridBox.html('<div class="ajaxLoader"></div>');
    currentPage = 1;
    startingPage = 1;
    trackPageview('/Player_Grid/Status_Sort/' + status + '/');
    var url = '/services/getJSON.aspx';
    var data = { op: 'getPlayersGridByStatus', s: status };
    $.getJSON(url, data, function (json) {
        grid = json.Head;
        gridTotal = grid.length;
        if (gridTotal > 0)
            setGridPages(); //This calls loadGrid
        else {
            noResultsfound();
        }
    });
}
function performAjaxAlpha(alphaLetter, status) {
    gridBox.html('<div class="ajaxLoader"></div>');
    currentPage = 1;
    startingPage = 1;
    trackPageview('/Player_Grid/Alpha_Sort/' + status +
    '/' + alphaLetter + '/');
    var url = '/services/getJSON.aspx';
    var data = { op: 'getPlayersGridByAlpha', alpha: alphaLetter, s : status };
    $.post(url, data, function(json) {
        grid = json.Head;
        gridTotal = grid.length;
        if (gridTotal > 0)
            setGridPages(); //This calls loadGrid
        else {
            noResultsfound();
        }
    }, "json");
}
function performAjaxFilter(alphaLetter, status, team, position) {
    gridBox.html('<div class="ajaxLoader"></div>');
    currentPage = 1;
    startingPage = 1;
    trackPageview('/Player_Grid/Filter/' + status +
    '/Name-' + alphaLetter +
    '/Team-' + team +
    '/Position-' + position + '/');
    var url = '/services/getJSON.aspx';
    //Add more variables here
    var data = { op: 'getPlayersGridByFilter', alpha: alphaLetter, s: status, t : team , p : position };
    $.post(url, data, function(json) {
        grid = json.Head;
        gridTotal = grid.length;
        if (gridTotal > 0)
            setGridPages(); //This calls loadGrid
        else {
            noResultsfound();
        }
    }, "json");
}
function loadGrid(page)
{
    var gb = gridBox;
    gb.html('');
    var itemsToDisplay = gridTotal - ((currentPage - 1) * maxGrid);
    
    if(gridTotal<maxGrid)
        itemsToDisplay=gridTotal;
    if(itemsToDisplay>maxGrid)
        itemsToDisplay=maxGrid;

    var thumbClass = 'block';

    for (var x = 1; x <= itemsToDisplay; x++) {
        //set the starting player for each page
        var itemCounter = ((currentPage - 1) * maxGrid) + x -1;

        //get each players variables from JSON
        var playerID = (grid[itemCounter].PLAYER_ID);
        
        var thumb = (grid[itemCounter].LOCATION);
        var name = (grid[itemCounter].FIRST_NAME) + " " + (grid[itemCounter].LAST_NAME);
        var name_comp = (grid[itemCounter].FIRST_NAME) + "-" + (grid[itemCounter].LAST_NAME);
        if (thumb == '' || thumb == null || thumb == ' ' || thumb.lenght < 3) {
            headshot = 'no-image171_193.jpg';
            thumbClass = 'hidden';
        }
        else {
            headshot = thumb;
            thumbClass = 'block';
        }
        
        
        if (x % gridItemsPerRow == 1)
            gb.append('<ul class="gridRow"></ul>');
        gb.find('.gridRow:last').append('<li class="griditem"><div class="headshotThumb invisible" dataid="' + itemCounter + '" value="' + name +
        '"><img src="/images/players/headshots/pics/' + headshot + '" alt="' + name_comp + '" class="'+thumbClass+'" pid="'+playerID+'" /></div></li>');
        
        if (x == itemsToDisplay) {
            $('div.headshotThumb').each(function() {
                $(this).hover(function() {
                    $(this).fadeTo(200, 1);
                }, function() {
                    $(this).fadeTo(200, .7);
                });
                $(this).hover(function() {
                        updateProfile($(this));
                }, function() {
                });
                $(this).click(function() { goToProfilePage($(this)); }); //REDIRECT TO PROFILE //keepProfile = true; });
            });
            $('div.headshotThumb:eq(0)').hover();
            getItemToFade();
        }
    }
}
function goToProfilePage($el) {
    window.location.href = '/player/' + $el.find('img').attr('alt') + '/' + $el.find('img').attr('pid') + '/';
}
function updateProfile($el) {
    var gridID = parseInt($($el).attr('dataid'));
    var gi = grid[gridID];
    pb.stop();
    var imgsrc = $el.find('img').attr('src');
    $('#profileImage').css('backgroundImage', 'url(' + imgsrc + ')');
    $('#teamThumbnail').css('backgroundImage', 'url(/Images/playerHeaderTeamLogos/Small/' + gi.TEAM_ID + 'T.png)');
    $('#profilePlayerName').text(gi.FIRST_NAME + " " + gi.LAST_NAME);
    $('#profilePlayerTeam').find('span').text(gi.TEAM_CITY + " " + gi.TEAM_NAME);
    $('#profilePlayerNumber').find('span').text(gi.JERSEY_NUMBER);
    if (gi.POSITION == "")
        $('#profilePlayerPosition').find('span').text("Not Listed");
    else
       $('#profilePlayerPosition').find('span').text(gi.POSITION); 
    $('#profilePlayerHeight').find('span').text(gi.HEIGHT_FEET + "' " + gi.HEIGHT_INCH + '"' );
    $('#profilePlayerWeight').find('span').text(gi.WEIGHT);
    $('#profilePlayerCollege').find('span').text(gi.COLLEGE_ATTENDED);
}
function setGridPages() {
    var gridPaginator = $('#gridPaginator');
    gridPaginator.html('');
    gridPages = Math.ceil(gridTotal / maxGrid);
    var pages = gridPages;
    if (gridPages > 29 + startingPage) {
        pages = 29 + startingPage;
    }
    for (var i = startingPage; i <= pages; i++) {
        if (gridPages > pages || startingPage>1) {
            if (i == startingPage)
                gridPaginator.append('<span class="lightText gridPagePrev">PREV</span>');
        }
        gridPaginator.append('<span class="lightText gridPage">' + i + '</span>');
        if (gridPages > pages || startingPage >1) {
            if (i == pages)
                gridPaginator.append('<span class="lightText gridPageNext">NEXT</span>');
        }
    }
    var grid1 = gridPaginator.find('span.gridPage:eq(0)');
    grid1.addClass('bold').removeClass('lightText');
    gridPaginator.find('span.gridPage').click(function () {
        gridPaginator.find('span.bold').removeClass('bold').addClass('lightText');
        currentPage = parseInt($(this).text());
        $(this).addClass('bold').removeClass('lightText');
        trackPageview('/Player_Grid/Page_' + currentPage + '/');
        loadGrid(currentPage);
    });
    gridPaginator.find('span').hover(function () {
        $(this).addClass('linkText');
    },function(){
        $(this).removeClass('linkText');
    });
    gridPaginator.find('span.gridPagePrev').click(function () {
        var firstPage = parseInt($('#gridPaginator > span.gridPage:eq(0)').html());
        if (firstPage > 1) {
            startingPage = firstPage - 30;
        }
        trackPageview('/Player_Grid/Page_Previous/');
        setGridPages();
    });
    gridPaginator.find('span.gridPageNext').click(function () {
    var lastPage = parseInt($('#gridPaginator > span.gridPage:last').html());
        if (lastPage < gridPages) {
            startingPage = parseInt(grid1.html()) + 30;
        }
        trackPageview('/Player_Grid/Page_Next/');
        setGridPages();
    });
    grid1.click();
}
function showprofile($el)
{
	var pc = $('#profileContent');
	pb.stop();
    pc.text($el.attr('value'));
}
function getItemToFade() 
{
    var gridItems = gridTotal;
    if(gridItems>=64)
        gridItems=64;
	fadeItemIn(gridBox.find('.invisible:eq(0)'));
}
function fadeItemIn(el)
{
    el.removeClass('invisible').fadeTo(0, .7);
    setTimeout('getItemToFade()',10);
}
function setAlphaSort()
{
    $(alphas.get(0)).addClass('bold');
    alphas.each(function() {
        $(this).click(function() {
            var letter = $(this).html();
            alphas.removeClass('bold');
            $(this).addClass('bold');
            performAjaxAlpha(letter, lgc.find('input[type=radio]:checked').val());
        });
        $(this).hover(function(){
            $(this).addClass('linkText');
        }, function(){
            $(this).removeClass('linkText');
        });
    });
}
function setGridSort() {
    lgc.find('input[type=radio]').click(function () {
        if ($(this).val().trim() == 'inactive') {
            $('#grid_sort_team').hide();
            $('#grid_sort_position').hide();
            $('#grid_teamSelect option:eq(0)').attr('selected', 'selected');
            $('#grid_positionSelect option:eq(0)').attr('selected', 'selected');
        }
        else {
            $('#grid_sort_team').show();
            $('#grid_sort_position').show();
        }
        return true;
    });
    var sortbtn = $('input#filterGrid');
    sortbtn.click(function() {
        performAjaxFilter($('#grid_lname').val(),
            lgc.find('input[type=radio]:checked').val(),
            $('#grid_teamSelect option:selected').attr('value'),
            $('#grid_positionSelect option:selected').attr('value'));
    });

    lgc.find('input[type="text"]').keyup(function (event) {
        if (event.keyCode == 13) {
            sortbtn.click();
        }
    });
    lgc.find('select').keyup(function (event) {
        if (event.keyCode == 13)
            sortbtn.click();
    });

}