﻿var lastHash = "";

var mapDivs = new Array(    "#ctl00_mainContent_clubMap",
                            "#ctl00_mainContent_nationalMap",
                            "#ctl00_mainContent_fullMap");
var cssClasses = new Array( "club",
                            "national",
                            "full");
var linkIDs = new Array(    "#ctl00_mainContent_showClubMapLink",
                            "#ctl00_mainContent_showNationalMapLink",
                            "#ctl00_mainContent_showFullMapLink");
var hashes = new Array(     "club",
                            "national",
                            "full");
                            
function showMap(index, updateHash)
{
    if (updateHash == true)
    {
        lastHash = "#" + hashes[index];
        window.location.hash = hashes[index];
    }

    // Work out if we've already got a map showing.
    if ($("#ctl00_mainContent_mapContainer:hidden").length > 0)
    {
        // No map showing, so we fade it in!
        $(mapDivs[index]).css("display", "block");
        $("#ctl00_mainContent_mapContainer").fadeIn("slow", function(){ callReplaceTrack(); });
        scrollToMap();
    }
    else
    {
        // Another map is already showing.
        fadeMap(function() { $(mapDivs[index]).fadeIn("fast", function() { callReplaceTrack(); }); });
        callReplaceTrack();
    }
    
    // Adjust the tab arrow.
    removeTabArrowClasses();
    $("#ctl00_mainContent_tabArrow").addClass(cssClasses[index]);
    $("#ctl00_mainContent_tabArrow").css("display", "block");
    // Highlight the link.
    deselectLinks();
    $(linkIDs[index]).addClass("selected");
    // Sort out the bottom border.
    $("#ctl00_mainContent_pnlFinalLine").css("display", "block");
}


function removeTabArrowClasses()
{
    $tabArrow = $("#ctl00_mainContent_tabArrow");
    $tabArrow.removeClass("club");
    $tabArrow.removeClass("national");
    $tabArrow.removeClass("full");
}

function deselectLinks()
{
    $("#ctl00_mainContent_showClubMapLink").removeClass("selected");
    $("#ctl00_mainContent_showNationalMapLink").removeClass("selected");
    $("#ctl00_mainContent_showFullMapLink").removeClass("selected");
}

function fadeMap(complete)
{
    // Fades the current map.
    if ($("#ctl00_mainContent_clubMap:visible").length > 0)
    {
        // It's the club map!
        $("#ctl00_mainContent_clubMap").fadeOut("fast", complete);
    }
    else if ($("#ctl00_mainContent_nationalMap:visible").length > 0)
    {
        // It's the national map.
        $("#ctl00_mainContent_nationalMap").fadeOut("fast", complete);
    }
    else if ($("#ctl00_mainContent_fullMap:visible").length > 0)
    {
        // It's the full map.
        $("#ctl00_mainContent_fullMap").fadeOut("fast", complete);
    }
}


function scrollToMap()
{
    $target = $("#map");
    var targetOffset = $target.offset().top - 10;
    $("html,body").animate({scrollTop: targetOffset}, 1000);
    return false;
}



function showTrackNote(e)
{
    /*$(this).next("div").stop(true, true).animate({opacity: "show", top: "30"}, "slow");
    alert(e.pageX + "," + e.pageY);*/
    $("#track-note-popup p").html($(this).next("div").children("p").html());
    
    var xPos; var yPos;
    
    if (e.pageX + 350 > screen.width)
    {
        xPos = e.pageX - 320;
    }
    else
    {
        xPos = e.pageX + 20;
    }
    
    yPos = e.pageY;
    
    $("#track-note-popup").css("top", yPos);
    $("#track-note-popup").css("left", xPos);
    
    $("#track-note-popup").stop(true, true).animate({opacity: "show"}, "slow");
}

function hideTrackNote(e)
{
    /*$(this).next("div").animate({opacity: "hide", top: "40"}, "fast");*/
    $("#track-note-popup").animate({opacity: "hide"}, "fast");
}


function checkHash()
{
    var hash = window.location.hash;
    
    if (hash != lastHash)
    {
        if (hash == "")
        {
            showPaneIndex(0, false);
        }
        else
        {
            var realHash = hash.substring(1);
            var arrayIndex = jQuery.inArray(realHash, hashes);
            if (arrayIndex != -1)
            {
                showMap(arrayIndex, true);
            }
        }
    }
}


$(document).ready(function() {
// Document ready code.
    $("#ctl00_mainContent_showClubMapLink").click(function(event) {
        showMap(0, true);
        event.preventDefault(); 
    });
    $("#ctl00_mainContent_showNationalMapLink").click(function(event) {
        showMap(1, true);
        event.preventDefault(); 
    });
    $("#ctl00_mainContent_showFullMapLink").click(function(event) {
       showMap(2, true);
        event.preventDefault(); 
    });
    
    
    $(".track-note img").hover(showTrackNote, hideTrackNote);

    setInterval("checkHash()", 250);
});