﻿//globals
var rookies_videoPlaying = false;
var rookies_videoStarted = false;
var rookies_videoPos = 0;
var rookies_videoDuration = 1;
        

function loadVideo(SLObjectID, videoPath) {
    var plugin = document.getElementById(SLObjectID);

    if (plugin) {
        plugin.Content.Page.LoadVideo(videoPath);
    }
}

function playVideo(SLObjectID) {
    var plugin = document.getElementById(SLObjectID);
    
    if (plugin) {
        plugin.Content.Page.PlayVideo();
    }
}

function pauseVideo(SLObjectID) {
    var plugin = document.getElementById(SLObjectID);
    
    if (plugin && $('#PlayerHost').css('display')=="block") {
        plugin.Content.Page.PauseVideo();
    }
}

function replayVideo(SLObjectID) {
    if(jQuery.browser.sl) {
        setTimeout("replayVideoExecute('" + SLObjectID + "')", 100);
    } else {
        //replay tracking
        var page = getPage();
        if(jQuery.browser.sl) {videoType = "sl";}else{videoType = "wmv";}
        CallAtlas("mrtwxp_winftprookies" + videoType + page + "_start");
        //CallOmnitureForVideo("event5","Rookies_VideoPlay_" + page);
        
        //start replay
        var plugin = document.getElementById(SLObjectID);
        if(plugin) {
            plugin.controls.play();
        }
    }
}

function pauseWMPVideo(SLObjectID) {
    var plugin = document.getElementById(SLObjectID);
    if(plugin) {
        plugin.controls.pause();
    }
}

function replayVideoExecute(SLObjectID) {
    var plugin = document.getElementById(SLObjectID);

    if (plugin) {
        //was causing js error
        var page = getPage();
        if(jQuery.browser.sl) {videoType = "sl";}else{videoType = "wmv";}
        CallAtlas("mrtwxp_winftprookies" + videoType + page + "_start");
        //CallOmnitureForVideo("event5", "Rookies_VideoPlay_" + page);

        if($.browser.msie) {
           //plugin.Content.Page.RestartVideo();
           setTimeout("replaySLVideo('"+SLObjectID+"')",100);
        }
    }
}

function stopVideo(SLObjectID) {
    var plugin = document.getElementById(SLObjectID);

    if (plugin) {
        plugin.Content.Page.StopVideo();
    }
}

function replayPlayerHandler(SLObjectID) {
    document.getElementById("PlayerHost").style.display = "block";
    document.getElementById("PlayerEndFrameHost").style.display = "none";
    closeEmbedDialog();
    closeShareDialog();
    replayVideo(SLObjectID);
}

function replaySLVideo(SLObjectID) {
    var plugin = document.getElementById(SLObjectID);
    if (plugin) {
        plugin.Content.Page.RestartVideo();
    }
}

function VideoEvent(name, event, args) {
    var page = getPage();
    var mediaType = $.browser.sl?"sl":"wmp";
    //alert('name: ' + name + '; event: ' + event + '; args: ' + args);

    var CurrentPosition = 0;
    var MediaLength = 0;
    if (args != null && args.length > 1) {
    	CurrentPosition = Math.round(parseInt(args[0] >= 0 ? args[0] : args["CurrentPosition"]));
    	MediaLength = Math.round(parseInt(args[1] >= 0 ? args[1] : args["MediaLength"]));
    }
    
    if(name == "Rookies") {
        switch(event) {
            case "Completed":
                CallAtlas("mrtwxp_winftprookies" + videoType + page + "_end");
                //CallOmnitureForVideo("event6", "Rookies_VideoComplete_" + page);
                omnitureVideoClose(name, "Rookies_" + page, mediaType);
                if (pick == winner) {$("#PickWin").show();} 
                else {$("#PickLose").show();}
                $("#PlayerHost").hide();
                $("#PlayerEndFrameHost").show();
                break;
            case "Play":
                if(rookies_videoStarted) {omnitureVideoStart(name, "Rookies_" + page, CurrentPosition);}
                break;
            case "Pause":
                omnitureVideoStop(name,"Rookies_" + page, CurrentPosition);
                break;
            case "Open":
                omnitureVideoOpen(name, "Rookies_" + page, MediaLength, mediaType);
                rookies_videoStarted = true;
                break;
            case "Share":
                handleSocialBookmark(args[0].toLowerCase());
                break;
            case "SocialBookmark":
                handleSocialBookmark(args[0].toLowerCase());
                break;
            case "Embed":
                var page = getPage();
                CallAtlas("mrtwxp_winftprookiesembedurlextendedvideo_" + page);
                break;
        }
    }
    else if(name == "slideshow_adam") {
        switch(event) {
            case "Completed":
                $('#slideshow_still').show();
                $('#slideshow_player_host').hide();
                CallAtlas("mrtwxp_winftprookiessl8vs80adam_end");
                //CallOmnitureForVideo("event6", "Rookies_VideoComplete_8vs80adam");
                omnitureVideoClose(name,"Rookies_8vs80adam");
                break;
            case "Play":
                if(rookies_videoStarted) {omnitureVideoStart(name,"Rookies_8vs80adam",CurrentPosition);}
                break;
            case "Pause":
                omnitureVideoStop(name,"Rookies_8vs80adam",CurrentPosition);
                break;
            case "Open":
                omnitureVideoOpen(name, "Rookies_8vs80adam", MediaLength, mediaType);
                rookies_videoStarted = true;
                break;
            default:
                break;
        }
    }
    else if(name == "slideshow_david") {
        switch(event) {
            case "Completed":
                $('#slideshow_still').show();
                $('#slideshow_player_host').hide();
                CallAtlas("mrtwxp_winftprookiessl8vs80dave_end");
                //CallOmnitureForVideo("event6", "Rookies_VideoComplete_8vs80dave");
                omnitureVideoClose(name,"Rookies_8vs80dave");
                break;
            case "Play":
                if(rookies_videoStarted) {omnitureVideoStart(name,"Rookies_8vs80dave");}
                break;
            case "Pause":
                omnitureVideoStop(name,"Rookies_8vs80dave");
                break;
            case "Open":
                omnitureVideoOpen(name, "Rookies_8vs80dave", MediaLength, mediaType);
                rookies_videoStarted = true;
                break;
            default:
                break;
        }
    }
}

function onSilverlightError(sender, args) {

    var appSource = "";
    if (sender != null && sender != 0) {
        appSource = sender.getHost().Source;
    }
    var errorType = args.ErrorType;
    var iErrorCode = args.ErrorCode;

    var errMsg = "Unhandled Error in Silverlight 2 Application " + appSource + "\n";

    errMsg += "Code: " + iErrorCode + "    \n";
    errMsg += "Category: " + errorType + "       \n";
    errMsg += "Message: " + args.ErrorMessage + "     \n";

    if (errorType == "ParserError") {
        errMsg += "File: " + args.xamlFile + "     \n";
        errMsg += "Line: " + args.lineNumber + "     \n";
        errMsg += "Position: " + args.charPosition + "     \n";
    }
    else if (errorType == "RuntimeError") {
        if (args.lineNumber != 0) {
            errMsg += "Line: " + args.lineNumber + "     \n";
            errMsg += "Position: " + args.charPosition + "     \n";
        }
        errMsg += "MethodName: " + args.methodName + "     \n";
    }

    throw new Error(errMsg);
}

var videoType = "";

function insertVideo(ObjectId, mediaPath) {
    if (jQuery.browser.sl) {
        insertXAP(ObjectId, mediaPath);
        videoType = "sl";
    } else {
        if ($.browser.msie && $.browser.wmp) {
            insertWMV(ObjectId, mediaPath);
            videoType = "wmv";
        } else {
            //insert background
            $('#PlayerHost').css("background","url(/windows/framework/subsites/rookies/images/"+ getPage() +"_still.jpg) top left");
            //embed
            insertXAP(ObjectId, mediaPath);
            videoType = "sl";
        }
    }

    if (videoType != "") {
        var page = getPage();

        CallAtlas("mrtwxp_winftprookies" + videoType + page + "_start");
        //CallOmnitureForVideo("event5", "Rookies_VideoPlay_" + page);
        //omnitureVideoOpen(name, "Rookies_" + page, /*videoLength,*/videoType);
        //VideoEvent(name,"Open",null);
    }
}

function insertXAP(ObjectID, mediaPath) {
    var windowless = true;
    if ($.browser.safari) { windowless = false; }

    var stringsPath = "strings_" + getPage() + ".xml"; 

    $("#PlayerHost")[0].innerHTML = "<object id='" + ObjectID + "' data='data:application/x-silverlight-2,' type='application/x-silverlight-2'" +
                                    "    width='512' height='329'>" +
                                    "    <param name='source' value='/windows/framework/subsites/rookies/ClientBin/RookiesPlayer.xap' />" +
                                    "    <param name='onerror' value='onSilverlightError' />" +
                                    "    <param name='background' value='#ffffff' />" +
                                    "    <param name='minRuntimeVersion' value='2.0.31005.0' />" +
                                    "    <param name='windowless' value='" + windowless + "' />" +
                                    "    <param name='initParams' value='VideoPath=" + mediaPath + ",StringsXmlPath=" + stringsPath + ",jsEventFunction=VideoEvent,ObjectId="+ObjectID+"' />" +
                                    "    <span style='display: none;'></span>" +
                                    "    <div><a href='http://go.microsoft.com/fwlink/?LinkID=124807' style='text-decoration: none;'>" +
									"    <img src='http://go.microsoft.com/fwlink/?LinkId=108181' alt='Get Microsoft Silverlight' style='border-style: none'/>" +
									"    </a></div>" +
                                    "</object>" +
                                    "<iframe style='visibility: hidden; height: 0; width: 0; border: 0px'></iframe>";
}

function insertWMV(ObjectID, mediaPath) {
    mediaPath = mediaPath.replace(".wmv", "_wmp.wmv");
    
    /*
    $("#PlayerHost")[0].innerHTML = "<object id='"+ObjectID+"' classid='clsid:22d6f312-b0f6-11d0-94ab-0080c74c7e95' "
        + "codebase='http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#version=5,1,52,701' "
        + "standby='loading microsoft windows media player components...' type='application/x-oleobject' width='504' "
        + "height='329'>"
        + "<param name='filename' value='"+mediaPath+"'>"
        + "<param name='animationatstart' value='true'>"
        + "<param name='transparentatstart' value='true'>"
        + "<param name='autostart' value='true'>"
        + "<param name='showcontrols' value='true'>"
        + "<param name='ShowStatusBar' value='true'>"
        + "<param name='windowlessvideo' value='true'>"
        + "<embed src='"+mediaPath+"' autostart='true' showcontrols='true' showstatusbar='1' bgcolor='white' width='504' "
        + "height='329'></object>";
    */
    
    $("#PlayerHost")[0].innerHTML = "<object width='504' height='329' classid='CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6' type='application/x-ms-wmp' id='" + ObjectID + "'>" +
                                "<param value='" + mediaPath + "' name='url' id='wmv_url' /> " +
                                "<param value='false' name='ShowStatusBar'/> " +
                                "<param value='true' name='windowlessVideo'/> " +
                                "<embed width='504' height='329' stretchToFit='true' autostart=1 " +
                                "showstatusbar='false' showtracker=0 showdisplay=0 showcontrols=0 " +
                                "name='" + ObjectID + "' id='" + ObjectID + "' " +
                                "src='" + mediaPath + "' " +
                                "pluginspage='http://www.microsoft.com/Windows/MediaPlayer/' " +
                                "type='application/x-mplayer2' />" +
                                "</object>";
    /*
    $("#PlayerHost")[0].innerHTML = "<object id='" + ObjectID + "' width='512' height='329' classid='CLSID:22D6f312-B0F6-11D0-94AB-0080C74C7E95' standby='Loading Windows Media Player components' type='application/x-oleobject' codebase='http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,4,7,1112'>" +
                                    "   <param name='filename' value='" + mediaPath + "'>" +
                                    "   <param name='Showcontrols' value='True'>" +
                                    "   <param name='autoStart' value='True'>" +
                                    "   <param name='stretchToFit' value='true'>" +
                                    "   <param value='true' name='windowlessVideo'/>" +
                                    "   <embed type='application/x-mplayer2' src='" + mediaPath + "' name='" + ObjectID + "' windowlessVideo='true' width='512' height='329'></embed>" +
                                    "</object>";
    */
    
    $("#" + ObjectID)[0].attachEvent("PlayStateChange", function(newState) {
        //rookies_videoPos = 1;
        rookies_videoDuration = Math.round(document.getElementById(ObjectID).currentMedia.duration);
        rookies_videoPos = Math.round(document.getElementById(ObjectID).controls.currentPosition);
        //rookies_videoDuration = 2;
        switch (newState) {
            //case 0: // stopped
            //    break;
            case 2: // paused
                VideoEvent(ObjectID, "Pause", {"CurrentPosition":rookies_videoPos,"MediaLength":rookies_videoDuration});
                rookies_videoPlaying = false;
                /*
                if ($("#" + ObjectID)[0].currentPosition > 0) {
                    //trackWMVOmniture("pause");
                    //trackWMVAtlas("pause");
                    //omnitureVideoStop(ObjectID,videoName);
                    rookies_videoPlaying = false;
                    VideoEvent(ObjectID, "Pause", {
                        "currentPosition":$("#" + ObjectID)[0].currentPosition,
                        "MediaLength":$("#" + ObjectID)[0].currentMedia.duration
                    });
                }
                */
                break;
            case 8:   // closed
                rookies_videoPlaying = false;
                rookies_videoStarted = false;
                VideoEvent(ObjectID, "Completed", {"CurrentPosition":rookies_videoPos,"MediaLength":rookies_videoDuration});
                break;
            case 1:   // stopped
                if(rookies_videoPlaying) {
                    VideoEvent(ObjectID, "Pause", {"CurrentPosition":rookies_videoPos,"MediaLength":rookies_videoDuration});
                    rookies_videoPlaying = false;
                }
                rookies_videoStarted = false;
                break;
            case 3:   // playing
                if (!rookies_videoStarted) {
                    rookies_videoStarted = true;
                    VideoEvent(ObjectID, "Open", {"CurrentPosition":rookies_videoPos,"MediaLength":rookies_videoDuration});
                } else {
                    if (!rookies_videoPlaying) {
                        rookies_videoPlaying = true;
                        VideoEvent(ObjectID, "Play", {"CurrentPosition":rookies_videoPos,"MediaLength":rookies_videoDuration});
                    }
               }
                /*
                if(!rookies_videoOpened) {
                    VideoEvent(ObjectID, "Open", {
                        "currentPosition":$("#" + ObjectID)[0].currentPosition,
                        "MediaLength":$("#" + ObjectID)[0].currentMedia.duration
                    });
                    rookies_videoOpened = true;
                }
                if(!rookies_videoPlaying) {
                    //omnitureVideoStart(ObjectID,videoName);
                    VideoEvent(ObjectID, "Play", {
                        "currentPosition":$("#" + ObjectID)[0].currentPosition,
                        "MediaLength":$("#" + ObjectID)[0].currentMedia.duration
                    });
                    rookies_videoPlaying = true;
                }
                */
                break;
            case 4:   // scan forward
            case 5:   // scan reverse
            case 6:   // skip forward
            case 7:   // skip reverse
                break;
        }
    });

    // this no longer works in the newer player version
    $("#" + ObjectID)[0].attachEvent("EndOfStream", function(newState) {
        //trackWMVOmniture("complete");
        //trackWMVAtlas("complete");
        VideoEvent(ObjectID, "Completed", null);
    });
}

function getPage() {
    var url = window.location.toString();

    if ((url.indexOf("/7v70/") != -1) || (url.indexOf("vid=7v70")) != -1) {
        return "7vs70";
    } else if ((url.indexOf("/8v80/") != -1) || (url.indexOf("vid=8v80")) != -1) {
        return "8vs80";
    } else if ((url.indexOf("/9v90/") != -1) || (url.indexOf("vid=9v90")) != -1) {
        return "9vs90";
    } else if ((url.indexOf("/adam8/") != -1) || (url.indexOf("vid=adam8")) != -1) {
        return "adam8";
    } else if ((url.indexOf("/alexa7/") != -1) || (url.indexOf("vid=alexa7")) != -1) {
        return "alexa7";
    } else if ((url.indexOf("/kylie4/") != -1) || (url.indexOf("vid=kylie4")) != -1) {
        return "kylie4";
    } else {
        // DEFAULT IS NOW 7v70
        return "7vs70";
    }
}

function openShareDialog() {
    closeEmbedDialog();
    $('#sharePopup').show();
    $('#btn-sharePlayer').addClass("Active");
    
    //hide tout
    $('#btn-get_windows_live_essentials_black').hide();

    var page = getPage();
    CallOmniture(null, null, "Rookies_share_" + page);
}

function closeShareDialog() {
    $('#sharePopup').hide();
    $('#btn-sharePlayer').removeClass("Active");
    
    //show tout
    $('#btn-get_windows_live_essentials_black').show();

}

function openEmbedDialog() {
    closeShareDialog();
    $('#embedPopup').show();
    $('#btn-embedPlayer').addClass("Active");

    //hide tout
    $('#btn-get_windows_live_essentials_black').hide();

    var page = getPage();
    CallAtlas("mrtwxp_winftprookiesembedurlextendedvideo_" + page);
}

function closeEmbedDialog() {
    $('#embedPopup').hide();
    $('#btn-embedPlayer').removeClass("Active");

    //show tout
    $('#btn-get_windows_live_essentials_black').show();
}