var currentPage = "";
var pageTransitionSpeed = 250;
var urlUpdateTimeout;
var initialized = false;
var maxContentHeight = 0;
var initialLoad = true;
// Holds the initial page; this is needed in case the user clicks back enough times to return to /
var initialPage = "";
var curTab = undefined;
var suppress = false;
var isPlaying = false;
var soundObject = undefined;
var soundObject = undefined;
var songLoadedPercent = 0;
var songDuration = 0;
var controlTemplate = '<div id="control-template"><div class="controls"><div class="statusbar"><div class="loading"></div><div class="position"></div></div></div>';
// These map to pages that are in virtual "subfolders"
var folioMap = new Array("newyorkholidaysingers", "luquado", "fonitikos", "dinomob", "ultrasound");
var servicesMap = new Array();
var otherMap = new Array();

// If this is a load from a bookmark, or an email link, or etc., redirect to a non-AJAX-y URL.
if (window.location.hash.indexOf("#") > -1 && initialLoad) {
    suppress = true;
    //var actualPage = window.location.hash.replace("#/", "");
}

var sPath = window.location.pathname;
curPage = sPath.substring(sPath.lastIndexOf('/') + 1);
if (folioMap.indexOf(curPage) > -1)
    curPage = "/folio/" + curPage;

initialPage = curPage;

var soundReady = false;
if (typeof soundManager != "undefined") {
    soundManager.url = '/Content/swf';
    soundManager.flashVersion = 9;
    soundManager.debugMode = false;
}

$(document).ready(function () {
    $.localScroll();
    $(".watermark").each(function () {
        $(this).watermark($(this).attr("title")).attr("title", "");
    });
    if (suppress && (curPage != window.location.hash.replace("#/", ""))) {
        var actualPage = window.location.hash.replace("#/", "");
    /*    $(".page").hide();
        $(".menu li.active").removeClass("active");
        var a = $(".menu li a[href='" + actualPage + "']").parents("li");*/
        if (a.length == 0) {
            if ($(".page").attr("parentpage") != undefined) {
                $(".parentPage").removeClass("parentPage");
                $("#" + $(".page").attr("parentpage")).addClass("parentPage");
                curTab = $("#" + $(".page").attr("parentpage"));
            }
        }
        else {
            curTab = $(a);
        }
    }
    else
        curTab = $(".menu li.active");
    
    SetUpSubNav();
});

function SetUpSubNav() {
    $("a.thumbRight,a.thumbLeft").lightBox({ fixedNavigation: true, imageLoading: "/Content/images/lightbox-ico-loading.gif", imageBtnClose: "/Content/images/lightbox-btn-close.gif", imageBtnPrev: "/Content/images/lightbox-btn-prev.gif", imageBtnNext: "/Content/images/lightbox-btn-next.gif", imageBlank: "/Content/images/lightbox-blank.gif" });
    CheckSoundStatus();
    if ($(".subMenu").length > 0) {
        $(".subMenu li").each(function () {
            // create placeholders.
            var col = $("<span class='bwPic'></span>");
            $(col).css({ "background": "url(" + $(this).find("img").attr("src").replace(".jpg", "Bw.jpg") + ") left bottom no-repeat", "display": "block", "opacity": "1.0", "width": "60px", "height": "60px", "position": "absolute", "top": "0", "left": "0", "cursor": "pointer", "border": "7px solid #ddd" });
            $(this).find("img").css("border-color", "#9E50D0");
            $(this).find("a").append(col);
        }).hover(function () {
            var t = $(this).find(".bwPic")
            $(t).stop();
            $(t).animate({ "opacity": "0.0" }, "fast");
        }, function () {
            var t = $(this).find(".bwPic")
            $(t).stop();
            $(t).animate({ "opacity": "1.0" }, "fast");
        });

    }
    if ($(".subHeaderNav").length > 0) {
        // Find if we're on a current page.
        //        $(".subHeaderNav .active").removeClass("active");

        //        $(".subHeaderNav a[href='" + curPage + "']").parents("li").addClass("active");

        $(".subHeaderNav .active").each(function () {
            // scale the indicator
            var ind = $(this).parents("ul").prev(".indicator");
            $(ind).css({ "width": $(this).width(), "height": $(this).height(), "left": $(this).position().left, "top": $(this).position().top });
        });

        $(".subHeaderNav li").hover(function () {
            // Animate the indicator.
            var ind = $(this).parents("ul").prev(".indicator");
            $(ind).stop();
            $(ind).animate({ "width": $(this).width(), "height": $(this).height(), "left": $(this).position().left, "top": $(this).position().top }, 100);
        }, function () {
            var ind = $(this).parents("ul").prev(".indicator");
            $(ind).stop();
            var act = $(this).parents("ul").find(".active");
            $(ind).animate({ "width": $(act).width(), "height": $(act).height(), "left": $(act).position().left, "top": $(act).position().top }, 100);
        });
    }
}

$(".menu li, #artists li, #return").live("click", function () {
 /*   if (!$(this).hasClass("active")) {
        initialLoad = false;
        curTab = $(this);
        $.address.value($(this).find("a").attr('href'));
    }
    return false;*/
});
$(".ajaxButton").live("click", function (e) {
    /*e.preventDefault();
    e.stopPropagation();*/
    /*  if ($(this).attr("href") != curPage) {
    initialLoad = false;
    curTab = $(".menu li a[href='" + $(this).attr("href") + "']").parents("li");
    // $.address.value($(this).attr('href'));
    }*/
});

// Handler for the jQuery address plugin
$.address.change(function (event) {
    return;
    var l = "";
    if (event.pathNames.length == 0)
        l = initialPage;
    else {
        l = event.path.replace(/^#/, '');
    }
    
    var t = $.address.hash();
    if (curPage == initialPage && initialLoad && l == "") {
        return;
    }
    l = (l == "") ? initialPage : l;

    if (curPage != l) {
        $("#loader").css("height", $(".page").height());
        soundManager.stopAll();
        $("#loader").fadeIn(100, function () {
            pageNum = 0;
            curPage = l;
            var d = new Date();
            var t = d.getTime();
            $("#ajaxLoad").load(l + "?hb=" + t + " .page", function () {

                CheckSoundStatus();
                if ($(".page").attr("bodyclass") != undefined) {
                    $("body").removeAttr("class").addClass($(".page").attr("bodyclass"));
                }
                else {
                    $("body").removeAttr("class");
                }
                if ($(".page").attr("parentpage") != undefined) {
                    $(".parentPage").removeClass("parentPage");
                    $("#" + $(".page").attr("parentpage")).addClass("parentPage");
                }
                else {
                    $(".parentPage").removeClass("parentPage");
                }

                if (curPage.indexOf("index") > -1) {

                }

                SetUpSubNav();
                var oldTab = $(".menu li.active");
                $(oldTab).removeClass("active");
                $(curTab).addClass("active");
                $("#loader").fadeOut(100);
            });
        });
    }
});

soundManager.onready(function () {
    CheckSoundStatus();
});

function CheckSoundStatus() {
    if (typeof soundManager != "undefined") {
        if (soundManager.supported()) { // Hooray! SM2 loaded.
            soundReady = true;
        } else { // BOO
            //$("#flashError").fadeIn("fast");
        }
    }
}

$("ul.playlist li a").live("click", function () {
    if (isPlaying) {
        // Did we click on the existing one?
        if ($(this).parents("li").hasClass("sm2_playing")) {
            $(this).parents("li").removeClass("sm2_playing").addClass("sm2_paused");
            soundManager.pauseAll();
            return false;
        }
        else if ($(this).parents("li").hasClass("sm2_paused")) {
            $(this).parents("li").removeClass("sm2_paused").addClass("sm2_playing");
            soundManager.resumeAll();
            return false;
        }
        else {
            // We clicked on a different one.
            soundManager.stopAll();
            $(".sm2_playing").removeClass("sm2_playing");
            $(".sm2_paused").removeClass("sm2_paused");
            $("#control-template").remove();
        }
    }

    var targetSong = $(this).attr("href");
    var d = new Date();
    var t = d.getTime();
    var item = $(this);
    $(this).parents("li").append(controlTemplate);
    $(this).parents("li").find("#control-template").show();
    soundObject = soundManager.createSound({
        id: 'playlistSound' + t,
        url: targetSong,
        onplay: function () {
            isPlaying = true;
            $(item).parents("li").addClass("sm2_playing");
        },
        whileloading: function () {
            // get the total amount loaded.
            songLoadedPercent = (bytesLoaded / bytesTotal);
            songDuration = duration;
            // position & duration may be relative!
            var realSongDuration = 0;
            if (songLoadedPercent == 1) {
                realSongDuration = songDuration;
            }
            else
                realSongDuration = songDuration / songLoadedPercent;

            var realPositionPercent = (this.position / realSongDuration) * 100;
            $("#control-template .loading").css("width", realPositionPercent + "%");

        },
        whileplaying: function () {
            // position & duration may be relative!
            var realSongDuration = 0;
            if (songLoadedPercent == 1) {
                realSongDuration = songDuration;
                $("#control-template .loading").css("width", "100%");
            }
            else
                realSongDuration = songDuration / songLoadedPercent;

            var realPositionPercent = (this.position / realSongDuration) * 100;
            $("#control-template .position").css("width", realPositionPercent + "%");
        },
        onfinish: function () {
            $(item).parents("li").removeClass("sm2_playing").removeClass("sm2_paused").find("#control-template").remove();
        },
        onload: function () {
            songLoadedPercent = 1;
            songDuration = this.duration;
        }

    });
    soundObject.play();
    return false;
});

