﻿if (!window.slmenu)
    slmenu = {};

slmenu.Page = function() {
}

slmenu.Page.prototype =
{
    handleLoad: function(control, userContext, rootElement) {
        this.control = control;
        this.bufferingStatusVid1 = false;
        this.tmpvid1BgUrl;
        this.tmpvid2BgUrl;
        this.tmpvid3BgUrl;
        this.tmpvid4BgUrl;

        //External call internal Methods for MouseEnter and MouseLeave
        globalVars.set("callAniMouseEnter-vid1", Silverlight.createDelegate(this, this.handlevid1MouseEnter));
        globalVars.set("callAniMouseLeave-vid1", Silverlight.createDelegate(this, this.handlevid1MouseLeave));
        globalVars.set("callAniBufferingProgressChanged-vid1", Silverlight.createDelegate(this, this.handleBufferingProgressChangedVid1));
        globalVars.set("callAniClick-vid1", Silverlight.createDelegate(this, this.handleVid1Click));
        globalVars.set("callAniMouseEnter-vid2", Silverlight.createDelegate(this, this.handlevid2MouseEnter));
        globalVars.set("callAniMouseLeave-vid2", Silverlight.createDelegate(this, this.handlevid2MouseLeave));
        globalVars.set("callAniBufferingProgressChanged-vid2", Silverlight.createDelegate(this, this.handleBufferingProgressChangedVid2));
        globalVars.set("callAniClick-vid2", Silverlight.createDelegate(this, this.handleVid2Click));
        globalVars.set("callAniMouseEnter-vid3", Silverlight.createDelegate(this, this.handlevid3MouseEnter));
        globalVars.set("callAniMouseLeave-vid3", Silverlight.createDelegate(this, this.handlevid3MouseLeave));
        globalVars.set("callAniBufferingProgressChanged-vid3", Silverlight.createDelegate(this, this.handleBufferingProgressChangedVid3));
        globalVars.set("callAniClick-vid3", Silverlight.createDelegate(this, this.handleVid3Click));
        globalVars.set("callAniMouseEnter-vid4", Silverlight.createDelegate(this, this.handlevid4MouseEnter));
        globalVars.set("callAniMouseLeave-vid4", Silverlight.createDelegate(this, this.handlevid4MouseLeave));
        globalVars.set("callAniBufferingProgressChanged-vid4", Silverlight.createDelegate(this, this.handleBufferingProgressChangedVid4));
        globalVars.set("callAniClick-vid4", Silverlight.createDelegate(this, this.handleVid4Click));

        this.callFadeInOnce1 = 0;
        this.callFadeInOnce2 = 0;
        this.callFadeInOnce3 = 0;
        this.callFadeInOnce4 = 0;
        this.callFadeIn = 0;
        this.callFadeInOnce = 0;

        //Buffering handler
        for (i = 1; i < globalVars.get("NumberOfVideos") + 1; i++) {
            rootElement.findName("Media-vid" + i).addEventListener("BufferingProgressChanged", globalVars.get("callAniBufferingProgressChanged-vid" + i));
            rootElement.findName("Media-vid" + i).Source = globalVars.get("vid" + i + "UrlThumb");
            rootElement.findName("Media-vid" + i).Volume = 0;
            rootElement.findName("vid" + i + "canvas").addEventListener("MouseEnter", globalVars.get("callAniMouseEnter-vid" + i));
            rootElement.findName("vid" + i + "canvas").addEventListener("MouseLeave", globalVars.get("callAniMouseLeave-vid" + i));
            //rootElement.findName("vid" + i + "canvas").addEventListener("MouseEnter", Silverlight.createDelegate(this, this.mymethod));
        }
    },
    handleBufferingProgressChangedVid1: function(sender, eventArgs) {
        if (sender.BufferingProgress == 1) {
            this.callFadeIn++;
            if (this.callFadeIn == globalVars.get("NumberOfVideos")) {
                this.control.content.findName("vidfadein").begin();
            }
            sender.findName("vid1canvas").addEventListener("MouseLeftButtonDown", Silverlight.createDelegate(this, this.handleVid1Click));
            this.callFadeInOnce1++;
        }
    },
    handlevid1MouseEnter: function(sender, eventArgs) {
        VidMouseEnter(this.control.content, "1");
    },
    handlevid1MouseLeave: function(sender, eventArgs) {
        VidMouseLeave(this.control.content, "1");

    },
    handleVid1Click: function(sender, eventArgs) {
        VidClick(sender, "1");
    },
    handleBufferingProgressChangedVid2: function(sender, eventArgs) {
        if (sender.BufferingProgress == 1) {
            this.callFadeIn++;
            if (this.callFadeIn == globalVars.get("NumberOfVideos")) {
                this.control.content.findName("vidfadein").begin();
            }
            sender.findName("vid2canvas").addEventListener("MouseLeftButtonDown", Silverlight.createDelegate(this, this.handleVid2Click));
            this.callFadeInOnce2++;
        }
    },
    handlevid2MouseEnter: function(sender, eventArgs) {
        VidMouseEnter(this.control.content, "2");
    },
    handlevid2MouseLeave: function(sender, eventArgs) {
        VidMouseLeave(this.control.content, "2");
    },
    handleVid2Click: function(sender, eventArgs) {
        VidClick(sender, "2");
    },
    handleBufferingProgressChangedVid3: function(sender, eventArgs) {
        if (sender.BufferingProgress == 1 && this.callFadeInOnce3 == 0) {
            this.callFadeIn++;
            if (this.callFadeIn == globalVars.get("NumberOfVideos")) {
                this.control.content.findName("vidfadein").begin();
            }
            sender.findName("vid3canvas").addEventListener("MouseLeftButtonDown", Silverlight.createDelegate(this, this.handleVid3Click));
            this.callFadeInOnce3++;
        }
    },
    handlevid3MouseEnter: function(sender, eventArgs) {
        VidMouseEnter(this.control.content, "3");
    },
    handlevid3MouseLeave: function(sender, eventArgs) {
        VidMouseLeave(this.control.content, "3");
    },
    handleVid3Click: function(sender, eventArgs) {
        VidClick(sender, "3");
    },
    handleBufferingProgressChangedVid4: function(sender, eventArgs) {
        if (sender.BufferingProgress == 1 && this.callFadeInOnce4 == 0) {
            this.callFadeIn++;
            if (this.callFadeIn == globalVars.get("NumberOfVideos")) {
                this.control.content.findName("vidfadein").begin();
            }
            sender.findName("vid4canvas").addEventListener("MouseLeftButtonDown", Silverlight.createDelegate(this, this.handleVid4Click));
            this.callFadeInOnce4++;
        }
    },
    handlevid4MouseEnter: function(sender, eventArgs) {
        VidMouseEnter(this.control.content, "4");
    },
    handlevid4MouseLeave: function(sender, eventArgs) {
        VidMouseLeave(this.control.content, "4");
    },
    handleVid4Click: function(sender, eventArgs) {
        VidClick(sender, "4");
    }
}

function VidClick(sender, id) {
    $("mediaPlayerContainer").setStyle({ display: "none" });
    globalVars.set("activeVidId", "vid" + id);
    sender.findName("back-vid" + id).begin();
    globalVars.get("createHtmlOverlay").show();
    globalVars.set("tmpOverlayVidSource", globalVars.get("vid" + id + "UrlSl"));
    $("SilverlightControlOverlay").content.findName("vidMedia").Source = globalVars.get("vid" + id + "UrlSl");
    globalVars.get("callOverlayVidPlay")();
    if (window.location.pathname == globalVars.get("vid" + id + "MoreBtnTopic")) {
        $("overlayMoreLink").writeAttribute("href", globalVars.get("vid" + id + "MoreBtnDetail"));
    } else {
        $("overlayMoreLink").writeAttribute("href", globalVars.get("vid" + id + "MoreBtnTopic"));
    }
    new wtTrack(globalVars.get("vid" + id + "UrlSl") + globalVars.get("slVideoUrlSuffix0"), globalVars.get("slVideoStartedWtTitlePrefix") + globalVars.get("vid" + id + "Title"), globalVars.get("WebtrendsChannel"), 7);
    sender.findName("Media-vid" + id).Stop();
}
function VidMouseLeave(sender, id) {
    sender.findName("back-vid" + id).begin();
    sender.findName("Media-vid" + id).Stop();
    sender.findName("cpy-vid" + id).visibility = "Collapsed";
    globalVars.get("navi").setNavi();
}
function VidMouseEnter(sender, id) {
    for (i = 1; i < globalVars.get("NumberOfVideos") + 1; i++) {
        if (parseInt(id) == i) {
            sender.findName("vid" + i)["Canvas.ZIndex"] = 3;
        } else {
            sender.findName("vid" + i)["Canvas.ZIndex"] = 1;
        }
    }
    sender.findName("front-vid" + id).begin();
    sender.findName("Media-vid" + id).Stop();
    sender.findName("Media-vid" + id).Play();
    sender.findName("cpy-vid" + id).visibility = "Visible";
    //set navi point
    this.tmpvid2BgUrl = $("navi-" + id).getStyle("background-image");
    $("navi-" + id).setStyle({ backgroundImage: "url(" + globalVars.get("globalRelativeUrl") + "_sub/img/navi" + globalVars.get("NumberOfVideos") + "/navi-" + id + "-hvr2.jpg)" });
}