var locale = 'en_US';

$(document).ready(function() {

    if ($('#input_siteName').val().length > 0) {
        locale = $('#input_siteName').val();
    }

    ChangeTab($('ul#selectors li:first'), 0);

    $('a.morelink').live('click', function() {
        if ($(this).parent().find('tr.hidden:hidden').length > 0) {
            $(this).parent().find('tr.hidden').fadeIn();
        }
        else {
            $(this).parent().find('tr.hidden').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 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-021242823853971/?raceId=1',
        'Sun Mar 28 17:00:00 GMT+0500 2010':'/Event/Australian-Grand-Prix-021242823860266/?raceId=2',
        'Sun Apr 04 16:00:00 GMT+0800 2010':'/Event/Malaysian-Grand-Prix-021242823860663/?raceId=3',
        'Sun Apr 18 15:00:00 GMT+0800 2010':'/Event/Chinese-Grand-Prix-021242823861000/?raceId=4',
        'Sun May 09 14:00:00 GMT+0100 2010':'/Event/Gran-Premio-de-Espa%C3%B1a-021242823862771/?raceId=5',
        'Sun May 16 14:00:00 GMT+0100 2010':'/Event/Grand-Prix-de-Monaco-021242823864043/?raceId=6',
        'Sun May 30 15:00:00 GMT+0200 2010':'/Event/Turkish-Grand-Prix-021242823866182/?raceId=7',
        'Sun Jun 13 12:00:00 GMT-0500 2010':'/Event/Grand-Prix-du-Canada-021242823866481/?raceId=8',
        'Sun Jun 27 14:00:00 GMT+0100 2010':'/Event/Grand-Prix-of-Europe-021242823868206/?raceId=9',
        'Sun Jul 11 13:00:00 GMT+0000 2010':'/Event/British-Grand-Prix-021242823868941/?raceId=10',
        'Sun Jul 25 14:00:00 GMT+0100 2010':'/Event/Grosser-Preis-von-Deutschland-021242823870011/?raceId=11',
        'Sun Aug 01 14:00:00 GMT+0100 2010':'/Event/Magyar-Nagydij-021242823870588/?raceId=12',
        'Sun Aug 29 14:00:00 GMT+0100 2010':'/Event/Belgian-Grand-Prix-021242823875543/?raceId=13',
        'Sun Sep 12 14:00:00 GMT+0100 2010':'/Event/Gran-Premio-DItalia-021242823876185/?raceId=14',
        'Sun Sep 26 20:00:00 GMT+0800 2010':'/Event/Singapore-Grand-Prix-021242823882526/?raceId=15',
        'Sun Oct 10 15:00:00 GMT+0900 2010':'/Event/Japanese-Grand-Prix-021242823885107/?raceId=16',
        'Sun Oct 24 14:00:00 GMT+0800 2010':'/Event/Korean-Grand-Prix-021242823886208/?raceId=17',
        'Sun Nov 07 14:00:00 GMT-0300 2010':'/Event/Grande-Premio-do-Brazil-021242823886324/?raceId=18',
        'Sun Nov 14 17:00:00 GMT+0400 2010':'/Event/Abu-Dhabi-Grand-Prix-021242823887059/?raceId=19'};

    for (var key in races) {
        var n = new Date(key);
        var nt = n.getTime();
		
        if (ct < nt) {
            return races[key];
        }
    }

    return races[0];
}
