var locale = 'en_US';

$(document).ready(function () {

	var nav_items = $('#skin-secondary-nav li');

	nav_items.eq(1).find('a').attr('href', 'http://webdev01.redbull.com/index.htm');
	nav_items.eq(2).find('a').attr('href', 'http://webdev01.redbull.com/index.htm');
	nav_items.eq(3).find('a').attr('href', 'http://webdev01.redbull.com/index.htm');
	nav_items.eq(4).find('a').attr('href', 'http://webdev01.redbull.com/index.htm');
	nav_items.eq(5).find('a').attr('href', 'http://webdev01.redbull.com/index.htm');
	
	// Hide "mobile version" footer item
	$('#footer-navigation li a:contains("MOBILE VERSION")').parent().hide();

    if ($('#input_siteName').val().length > 0) {
        locale = $('#input_siteName').val();
    }

    ChangeTab($('ul#selectors li:first'), 0);

    $('a.morelink').live('click', function () {

        var visible = 0;
        var trs = $(this).parent().find('tr.hidden');

        $.each(trs, function () {
            var tr = $(this);

            if (tr.css('display') != 'none') {
                visible = visible + 1;
            }
        });

        if ($.browser.msie && $.browser.version == '8.0') {
            if (visible == 0) {
                trs.css('display', 'table-row');
            }
            else {
                trs.css('display', 'none');
            }

        }
        else {
            if (visible == 0) {
                trs.fadeIn();
            }
            else {
                trs.fadeOut();
            }
        }

        $(this).find('span').toggleClass('hidden');
        return false;
    });

    resetSeasonHref();

    var locationPath = window.location.pathname;
    locationPath = locationPath.split('/');
    locationPath = locationPath.reverse();

    if (locationPath[0] == '011242807156063') {
        if (locationPath[1] == 'Video') {
            $("#videostab").addClass("selected");
        }
        else if (locationPath[1] == 'Photo') {
            $("#photostab").addClass("selected");
        }
    }

    $("#main-content li:lt(2)")
		.find('a.selected')
			.hide()
			.end()
		.css('list-style-type', 'none');

    var footerNav = $('ul#footer-navigation li:first-child');
    footerNav.css('border', 'none');
});

$(window).bind('load', function () {
    $('img')
		.bind("mousedown", function (e) { return false; })
		.bind("contextmenu", function (e) { return false; });
});

function GetHomePage(pageId) {
    var method = 'HomepageWidget/' + pageId;

    Request(method, function (data) {
        $('#standings').prepend(data).find('table')
		            .find('tr:odd')
		            .addClass('odd');
        redraw();
    });
}


function GetDriversWidget(driverId) {
    var method = 'DriverWidget/' + driverId;

    Request(method, function (data) {
        $('.driverStandings').after(data).filter('#drivers').show();
        $('.boxcontent table')
		            .find('tr:odd')
		            .addClass('odd');
        redraw();
    });
}


function GetSponsorWidgetTR(sponsorId) {
    var method = 'SponsorWidgetTR/' + sponsorId;

    Request(method, function (data) {
        $('.SponsorContainer').html(data);
    });
}
function GetSponsorWidget(sponsorId) {
    var method = 'SponsorWidget/' + sponsorId;

    Request(method, function (data) {
        $('.SponsorContainer').html(data);
    });
}

function GetSeasonWidget(trackId) {
    var method = 'SeasonWidget/' + trackId;

    Request(method, function (data) {
        $('.trackStandings').html(data).find('.Races:first').show();
        $('.boxcontent table')
		            .find('tr:odd')
		            .addClass('odd');
        redraw();
    });
}

function GetEventWidget(trackId) {
    var method = 'EventWidget/' + trackId;

    Request(method, function (data) {
        $('.listing').html(data).find('.events').show().end().show();
        redraw();
    });
}

function GetMediaWidget(year) {
    var method = 'MediaWidget/' + year + '/RedBullRacing';

    Request(method, function (data) {
        $('.mediaWidget').html(data);

        $('.media-table')
		            .find('tr:odd')
		            .addClass('odd')
                    .end()
                    .find('tr:even')
                    .addClass('grey');

        $('.mediaWidget .Files')
		            .find('.File:odd')
		            .addClass('odd')
                    .end()
                    .find('.File:even')
                    .addClass('grey');

        $('.mediaWidget .Folder .Title a').click(function () {

            $('.mediaWidget .Folder').find('.Files').hide('slow').end().find('.Title .Icon').html('+');

            var files = $(this).parents('.Folder').find('.Files:hidden');

            if (files.length > 0) {
                $(this).parent().find('.Icon').html('-');
                $(files).show('slow');
            }
            else {
                $(this).parent().find('.Icon').html('+');
                $(files).hide('slow');
            }
        });

        redraw();
    });
}

function ChangeYearTab(clickedItem, clickIndex, year) {

    $('.Races > div').hide();

    var hasResults = ($('.' + year).find('.Race table tr td').length > 1);

    $('#seasonTabs li').removeClass('selected').filter(hasResults ? ':first' : ':last').addClass('selected');

    $('.Races').hide().filter('.' + year).show().find(hasResults ? '.Race' : '.Grid').show();

    ChangeTab(clickedItem, clickIndex);
}

function Request(url, callback) {

    baseURL = 'http://racing.redbull.com/';
    reqURL = baseURL + locale + '/' + url;

    $.ajax({
        type: "GET",
        url: reqURL,
        dataType: "jsonp",
        jsonp: "onSuccess",
        success: function (data) {
            callback(data);
        }
    });
}

function ChangeGridTab(clickedItem, clickIndex) {
    if (clickIndex == 0) {
        $('div.Grid').slideUp('slow');
        $('div.Race').slideDown('slow');
    }
    else {
        $('div.Grid').slideDown('slow');
        $('div.Race').slideUp('slow');
    }

    ChangeTab(clickedItem, clickIndex);
}

function ChangeTab(clickedItem, clickedIndex) {

    if (clickedItem.parent().hasClass('selected')) return false;

    clickedItem
		.parent()
		.addClass('selected')
		.siblings()
		.removeClass('selected');

    $('div.boxcontent > div').hide();

    if (clickedIndex == 1) {
        $('div#driversWrap').fadeIn();
    }
    else if (clickedIndex == 2) {
        $('div#constructorWrap').fadeIn();
    }
    else {
        $('div#raceWrap').fadeIn();
    }

    return false;
}

function toggleTab(clickedItem, clickedIndex) {
    if (clickedItem.parent().hasClass('selected')) return false;

    var clickedTab = clickedItem.attr('href');

    clickedItem
		.parent()
		.addClass('selected')
		.siblings()
		.removeClass('selected');

    if (clickedIndex == 1) {
        $('ul#offTrackEvents').hide();
        $('ul#partyEvents').show();
    }
    else {
        $('ul#partyEvents').hide();
        $('ul#offTrackEvents').show();
    }
}

/* -- Global scripts for raceId on season pages and resetting Season link to next race -- */
/* -- Author: Ryan Mathis -- */

function getQueryString(str) {
    var url = document.URL;

    if (url.indexOf('?') !== -1) {
        qp = url.split('?');
        for (i = 0; i < qp.length; i++) {
            q = qp[i].split("&");
            for (j = 0; j < q.length; j++) {
                p = q[j].split("=");
                if (p[0] == str) {
                    return p[1];
                }
            }
        }
    }
}

var raceId = getQueryString('raceId');
function setActiveTrack() {

    var pageId = "1";
    try { if (raceId) { pageId = raceId; } } catch (err) { pageId = "1"; }
    var current = String(pageId).toLowerCase();
    $("#season-header .race" + current).addClass("active");
}

function resetSeasonHref() {
    var rid = getNextRaceID();
    var season = $("#skin-secondary-nav li:last a");
    var locale = $("#input_siteName").attr('value');
    $(season).attr('href', '/cs/Satellite/' + locale + rid);
}

function getNextRaceID() {
    var c = new Date();
    var ct = c.getTime() - 172800000;

    var races = { 'Sun Mar 14 15:00:00 GMT+0300 2010': '/Event/Bahrain-Grand-Prix-021242823435551/?raceId=1',
        'Sun Mar 28 17:00:00 GMT+0500 2010': '/Event/Australia-Grand-Prix-021242823438060/?raceId=2',
        'Sun Apr 04 16:00:00 GMT+0800 2010': '/Event/Malaysian-Grand-Prix-021242823441668/?raceId=3',
        'Sun Apr 18 15:00:00 GMT+0800 2010': '/Event/Chinese-Grand-Prix-021242823443812/?raceId=4',
        'Sun May 09 14:00:00 GMT+0100 2010': '/Event/Gran-Premio-de-Espa%C3%B1a-021242823446234/?raceId=5',
        'Sun May 16 14:00:00 GMT+0100 2010': '/Event/Grand-Prix-de-Monaco-021242823447209/?raceId=6',
        'Sun May 30 15:00:00 GMT+0200 2010': '/Event/Turkish-Grand-Prix-021242823447830/?raceId=7',
        'Sun Jun 13 12:00:00 GMT-0500 2010': '/Event/Grand-Prix-du-Canada-021242823448780/?raceId=8',
        'Sun Jun 27 14:00:00 GMT+0100 2010': '/Event/Grand-Prix-of-Europe-021242823451476/?raceId=9',
        'Sun Jul 11 13:00:00 GMT+0000 2010': '/Event/British-Grand-Prix-021242823453539/?raceId=10',
        'Sun Jul 25 14:00:00 GMT+0100 2010': '/Event/Grosser-Preis-von-Deutschland-021242823455885/?raceId=11',
        'Sun Aug 01 14:00:00 GMT+0100 2010': '/Event/Magyar-Nagydij-021242823478527/?raceId=12',
        'Sun Aug 29 14:00:00 GMT+0100 2010': '/Event/Belgian-Grand-Prix-021242823480191/?raceId=13',
        'Sun Sep 12 14:00:00 GMT+0100 2010': '/Event/Gran-Premio-DItalia-021242823481407/?raceId=14',
        'Sun Sep 26 20:00:00 GMT+0800 2010': '/Event/Singapore-Grand-Prix-021242823483847/?raceId=15',
        'Sun Oct 10 15:00:00 GMT+0900 2010': '/Event/Japanese-Grand-Prix-021242823485474/?raceId=16',
        'Sun Oct 24 14:00:00 GMT+0800 2010': '/Event/Korean-Grand-Prix-021242823486469/?raceId=17',
        'Sun Nov 07 14:00:00 GMT-0300 2010': '/Event/Grande-Premio-do-Brasil-021242823486668/?raceId=18',
        'Sun Nov 14 17:00:00 GMT+0400 2010': '/Event/Abu-Dhabi-Grand-Prix-021242823568414/?raceId=19',
		'Sun Nov 14 17:00:00 GMT+0400 2100': '/Red-Bull-Racing-Season-Wrap-Up/001242924902678/'
    };

    for (var key in races) {
        var n = new Date(key);
        var nt = n.getTime();

        if (ct < nt) {
            return races[key];
        }
    }

    return races[0];
}
