// Plugin for window-fixed side navigation
(function ($) {

    $.fn.follower = function () {

        return this.each(function () {

            $this = $(this);

            $this.data("_og", {
                position: $this.css("position"),
                offset: $this.offset(),
                top: $this.css("top")
            });

            $(window).scroll(function () {

                var topsy = $(this).scrollTop();
                var threshold = $this.data("_og").offset.top;

                if (topsy > threshold) {
                    $this.addClass("anchor-top");
                } else {
                    $this.removeClass("anchor-top");
                }
            });

        });
    };
})
(jQuery);


function init_libraryPage() {

    var videoLinks = $("body.resources .thumb.med");

    function swapVideo(response) {
        $(".content .lib-vid-player:first").replaceWith(response);
    }

    function getVideo() {
        $.scrollTo("#silverlightControlHost", 300, { offset: -40 });
        var request = $(this).attr("href");
        videoLinks.removeClass("active");
        $(this).addClass("active");
        $.ajax({
            url: request,
            success: swapVideo
        });
        return false;
    }

    videoLinks.click(getVideo);
    videoLinks.eq(0).addClass("active");
}


function init_loginForm() {

    $("#Login1_UserName").focus();
}

function init_homepage() {

    var container = $(".thehero .wrapper").css({ position: "relative" });

    function showVideo(response) {
        var video = $(response).css({ position: "absolute", left: -80, top: -30 }).hide();
        container.removeClass("loading").append(video);
        $(".launch-vid-player", container).fadeIn(300);
    }

    function hideVideo() {
        $(".launch-vid-player", container).fadeOut(150, function () {
            $(this).remove();
            $(".logo", container).show();
            $(".launch", container).show();
        });
        return false;
    }

    function getVideo() {
        var request = $(this).attr("href");
        $(".logo, .launch", container).hide();
        container.addClass("loading");
        $.ajax({
            url: request,
            success: showVideo
        });
        return false;
    }

    $(".launch-vid-player .close", container).live("click", hideVideo);
    $("a.launch").click(getVideo);
}


function init_lightbox() {

    $(window).load(function () {
        $("a[rel='screenshot'], a[rel='video']").colorbox({
            scrolling: false,
            transition: "elastic",
            speed: 300,
            initialWidth: 500,
            initialHeight: 350,
            current: ""
        });
        $("a.cbox").colorbox();
        $("a.loginbtn").colorbox({ inline: true, href: "#loginbox" })
    });

    function sharePanel() {
        return $(".lightbox-content .over-panel.share");
    }

    function embedPanel() {
        return $(".lightbox-content .over-panel.embed");
    }

    function panelLinks() {
        return $(".lightbox-content .menu .media a");
    }

    function toggleVideo() {
        var video = $("#silverlightControlHost");
        var visibility = (video.css("visibility") == "hidden") ? "visible" : "hidden";
        video.css("visibility", visibility);
    }

    panelLinks().live("click", function () {
        var panel;
        switch ($(this).attr("href").split("#")[1]) {
            case "embed": panel = embedPanel(); break;
            case "share": panel = sharePanel(); break;
            default: break;
        }

        if (panel) {
            if ($(".activeLightboxPanel").length) {
                $(".activeLightboxPanel").removeClass("activeLightboxPanel").hide();
                panel.show().addClass("activeLightboxPanel");
            } else {
                toggleVideo();
                panel.show().addClass("activeLightboxPanel");
            }
            return false;
        }
    });

    // embed panel

    $(".activeLightboxPanel.embed .button:eq(0)").live("click", function (event) {
        $(".activeLightboxPanel textarea").select();
        return false;
    });

    $(".activeLightboxPanel.embed .button:eq(1)").live("click", function (event) {
        embedPanel().fadeOut(300).removeClass("activeLightboxPanel");
        toggleVideo();
        return false;
    });

    // share panel 

    $(".activeLightboxPanel.share .button:eq(0)").live("click", function (event) {
        sharePanel().fadeOut(300).removeClass("activeLightboxPanel");
        toggleVideo();
        return false;
    });
}


function init_videoPanel() {

    function close() {
        $("#videopanel").slideUp(100);
        $("#embedsharelinks a.active").removeClass("active");
    }

    function open() {
        if (!$.browser.msie) {
            $("#videopanel").slideDown(100);
        } else {
            $("#videopanel").show();
        }
    }

    function setPanel(linkhref) {
        var panelID;
        switch (linkhref) {
            case "#embed":
                panelID = "#embedpanel";
                break;
            case "#download":
                panelID = "#downloadpanel";
                break;
            default: break;
        }
        $("#videopanel .activePanel").hide();
        $(panelID).show(0, open).addClass("activePanel");
        return false;
    }

    $("#embedsharelinks a:not([target])").live("click", function () {
        if (!$(this).hasClass("active")) {
            setPanel($(this).attr("href"));
            $("#embedsharelinks a.active").removeClass("active");
            $(this).addClass("active");
        }
        return false;
    });

    $("#videopanel button[name='done']").live("click", function () {
        close();
        return false;
    });

    $("#videopanel button[name='select']").live("click", function () {
        $("#videopanel textarea").select();
        return false;
    });
}


function main() {

    var currentSideSubNav;
    var pageIsScrolling = false;

    // ajax setup for all calls
    $.ajaxSetup({
        dataType: "html",
        type: "get"
    });

    if ($("body.login").length) {
        init_loginForm();
    }

    if ($("body.home").length) {
        init_homepage();
    }

    if ($("body.resources").length) {
        init_libraryPage();
    }

    if ($("body.launch").length || $("body.resources").length) {
        init_videoPanel();
    }

    init_lightbox();

    function updateSideSubNav(targetName) {
        var currentLink = $(".side-nav li ul a.active");
        var targetLink = $(".side-nav li ul a[href='#" + targetName + "']");
        if (!targetLink.hasClass("active")) {
            currentLink.removeClass("active");
            targetLink.addClass("active");
        }
    }

    function onScrollAfter() {
        updateSideSubNav(currentSideSubNav);
        pageIsScrolling = false;
    }

    function onScrollBefore() {
        pageIsScrolling = true;
    }

    if ($(".thenav").length) {

        //product menu fixation
        $(".thenav:eq(0)").follower();

        // product menu sub-item cues
        $(window).scroll(function () {

            var windowScroll = $(this).scrollTop();
            $("body.whatsnew .block").each(function () {
                var blockTop = $(this).offset().top - 80;
                var blockHeight = $(this).height();
                var isAfterTop = ((blockTop - windowScroll) < 1);
                var isBeforeBottom = ((windowScroll - (blockTop + blockHeight)) < 1);
                if (isAfterTop && isBeforeBottom) {
                    var targetName = $("a[name]:first", this).attr("name");
                    if (!pageIsScrolling) {
                        updateSideSubNav(targetName);
                    } else {
                        currentSideSubNav = targetName;
                    }
                }
            });
        });




        //		$("a[href*='video=']").each(function(){
        //		    console.log($(this).attr("href") + "\n");
        //		});
    }

    function init_localScroll() {
        $(window).load(function () {
            $.localScroll({
                axis: "y",
                duration: 400,
                hash: true,
                lock: true,
                onAfter: onScrollAfter,
                onBefore: onScrollBefore
            });
        });
    }

    if ($("a[href='#top']").length) {
        init_localScroll();
    }

//    $(function () {
//        setInterval(KeepSessionAlive, 60000);
//    });

//    function KeepSessionAlive() {
//        $.post("/Home/KeepSeesion", null, function () {},"json");
//    }    
}



function postLoad() {
    if ($(".thefoot").length) {
        $("html").css({ background: "#23262b" });
    }
}

$(document).ready(main);
$(window).load(postLoad);