

$(function()
{
    // Submenu display
    $('#menu li').each(function()
    {
        var submenu = $(this).children('.submenu');
        var menuitem = $(this);
        
        // Position submenus according to list item
        submenu.css('position', 'absolute')
            .css('top', 0)
            .css('left', 176);
    });
            
    $('#menu li').mouseover(function()
    {
        var has_submenu = $(this).has('.submenu').length;
        var hover_class = (has_submenu != 0) ? 'hover' : 'hover_noitem';
        
        $(this).find('a.menu').addClass(hover_class);
        $(this).find('div.submenu').show();
    });
        
    $('#menu li').mouseout(function()
    {
        var has_submenu = $(this).has('.submenu').length;
        var hover_class = (has_submenu != 0) ? 'hover' : 'hover_noitem';
        
        $(this).find('a.menu').removeClass(hover_class);
        $(this).find('div.submenu').hide();
    });
    
    
    // Thumbnail show
    $("a.thumbnail[rel=screenshot]").colorbox({transition:"fade"});

    // Send heros to the game detail pages    
    $('.itm img:first-child').click(function()
    {
        var url = $(this).attr('rel');
        
        if (url) window.location = url;
    });
    
    // Landing Slideshow
    $(".home_feat_btns").tabs(".home_feat > div", {
            effect: 'fade',
            fadeOutSpeed: "slow",
            rotate: true,
            clickable: false
            }).slideshow({
                    autopause: true,
                    autoplay: true,
                    clickable: false,
                    interval: 5000,
    next: "#feature a.forward",
    prev: "#feature a.backward"
    });
    // New Releases Slideshow
    $(".new_rel_btns").tabs(".shelf > .itms", {
            effect: 'fade',
            fadeOutSpeed: "slow",
            rotate: true,
            clickable: false
            }).slideshow({
                    autoplay: false,
                    clickable: false,
                    interval: 5000,
    next: ".shelf a.forward",
    prev: ".shelf a.backward"
    });
    
    // Coming Soon Slideshow
    $(".third_rel_btns").tabs(".third > .itms", {
            effect: 'fade',
            fadeOutSpeed: "slow",
            rotate: true,
            clickable: false
            }).slideshow({
                    autoplay: false,
                    clickable: false,
                    interval: 5000,
    next: ".third a.forward",
    prev: ".third a.backward"
    });
    // Input value
    $('input[type=text]').each(function() {
            var default_value = this.value;
            $(this).focus(function() {
                    if(this.value == default_value) {
                            this.value = '';
                    }
            });
            $(this).blur(function() {
                    if(this.value == '') {
                            this.value = default_value;
                    }
            });
    });
    // SelectCustomizer
    $('#hdr select').SelectCustomizer()
        .change(function()
        {
            window.location = '/?country=' + $(this).val();
        });
        
    $('#find_more_wrap select').SelectCustomizer();
    
    // Global search
    $('#site_search').keyup(function()
    {
        var val = $(this).val();
        
        if (val != "")
        {
            //ajaxSearch(val, inlineSearchResults);
        }
    });
    
    // Update with the feed items
    var filter_games = $('.shelf select[name=filter_games]').SelectCustomizer();
    var filter_platform = $('.shelf select[name=filter_platform]').SelectCustomizer();
    
        filter_games.change(function()
        {
            var game_id = filter_games.val();
            var platform_id = filter_platform.val();
            
            searchGenre(game_id, platform_id, function(response)
            {
                $('#genre_feed .itms').remove();
                $('#genre_feed .backward').remove();
                $('#genre_feed .forward').remove();
                $('#genre_feed .second_rel_btns').remove();
                
                $('#genre_feed .title').after(response);
                
                refreshGenreScroller();
            });
        });
    
        filter_platform.change(function()
        {
            var game_id = filter_games.val();
            var platform_id = filter_platform.val();
            
            searchGenre(game_id, platform_id, function(response)
            {
                $('#genre_feed .itms').remove();
                $('#genre_feed .backward').remove();
                $('#genre_feed .forward').remove();
                $('#genre_feed .second_rel_btns').remove();
                
                $('#genre_feed .title').after(response);
                
                refreshGenreScroller();
            });
        });
        
        // Initial search
        filter_platform.trigger('change');
        
    // Open the various links in a new window
    $('.fb, .tw, .yt').click(function(e)
    {
        e.preventDefault();
        
        window.open($(this).attr('href'), 'social');
    });
});

function refreshGenreScroller()
{
    $(".second_rel_btns").tabs(".second > .itms", {
            effect: 'fade',
            fadeOutSpeed: "slow",
            rotate: true,
            clickable: false
            }).slideshow({
                    autoplay: false,
                    clickable: false,
                    interval: 5000,
    next: ".second a.forward",
    prev: ".second a.backward"
    });
}

/**
 * Search for genre
 */
function searchGenre(genre, platform, callback)
{
    var data = { genre: genre, platform: platform };
    
    // If it is using a section
    if ($('input[name=filter_section]')) data.section = $('input[name=filter_section]').val();
    
    $.ajax({
        url: '/ajax/game_genre',
        data: data,
        type: 'POST',
        success: function(response)
        {
            if (callback) callback(response);
        }
    });
}

/**
 * Searches the AJAX handler for games, news and jobs
 */
function ajaxSearch(term, callback)
{
    var data = { q: term };
    
    $.ajax({
        url: '/ajax/search',
        dataType: 'json',
        data: data,
        type: 'POST',
        success: function(response)
        {
            if (response.success == true)
            {
                if (callback) callback(response.data);
            }
        }
    });
}

/**
 * Used for displaying inline search results
 * on all pages in live search.
 */
function inlineSearchResults(items)
{
    for (var i=0; i<items.length; i++)
    {
        item = items[i];
    }
}
