﻿$MM.models.Video = $MM.backbone.Model.extend({

    initialize: function () {
        $j(document).ready($j.proxy(this.domReady, this));
    },
    domReady: function () {


    },
    initVideo: function (vidConfig) {

        $j('#' + vidConfig.videoOverlayTriggerId).remove();
        if (!VideoJS.browserSupportsVideo()) {
            var flashContainer = $j('#videoPlayerFactory video .video-js-box').clone();
            $j('#videoPlayerFactory video').replaceWith($j(flashContainer));
        }
        var videoPlayerInstance = $j('#videoPlayerFactory').clone();
        videoPlayerInstance.removeClass("hidden");
        $j(videoPlayerInstance).attr('id', 'videoPlayerInstance');

        var curVideoPlayerInstance = $j(videoPlayerInstance).html();
        var vob = $j(videoPlayerInstance);
        var trig = $j(vob.find(".vid-trigger-link"));
        trig.attr("id", vidConfig.videoOverlayTriggerId).attr("rel", "#" + vidConfig.videoOverlayId);
        $j(vob.find(".video-js-box.mot-popup-box")).attr("id", vidConfig.videoOverlayId);

        $j(vob.find("video.video-js")).attr("id", vidConfig.videoId);
        $j(vob.find("video.video-js")).attr("title", vidConfig.title);
        $j(vob.find("video.video-js")).attr("width", vidConfig.width);
        $j(vob.find("video.video-js")).attr("height", vidConfig.height);
        $j(vob.find("video.video-js")).attr("poster", vidConfig.videoPoster);
        try {
            $j(vob.find("#video_mp4")).attr("src", vidConfig.mp4Path);
            $j(vob.find("#video_webm")).attr("src", vidConfig.webmPath);
            $j(vob.find("#video_ogg")).attr("src", vidConfig.oggPath);
        } catch (e) { }
        $j(vob.find(".video-js-flash-container")).attr("id", vidConfig.videoFlashContainerId).height(vidConfig.height).width(vidConfig.width);
        $j(vob.find(".flowplayer")).attr("id", vidConfig.flowplayerId).attr("href", vidConfig.mp4Path).height(vidConfig.height).width(vidConfig.width);
        $j(vob.find(".mot-vid-flash-controls")).attr("id", vidConfig.videoControlsId);
        $j(vob.find("#mot-video-title")).text(vidConfig.title);
        $j(vob.find(".addthis")).text(vidConfig.shareLabel);

        $j(videoPlayerInstance).html(vob.html());
        $j('body').append($j(videoPlayerInstance).html());

        $j('#' + vidConfig.videoOverlayTriggerId).motPopup({
            padding: 0,
            autoResize: false,
            onComplete: function () {
                $j('.vjs-video-share').click(function () { $j('.addthis_button_compact:eq(0)').trigger('click'); });
                if ($MM.controls.hero) $MM.controls.hero.toggleInActive();
            },
            onCleanup: function () {
                flowPlayerController.destroyPlayer(); 	// destroy fallback player
                if (motPlayerHTML) motPlayerHTML.pause(); 	// if html5 player, stop before close
            },
            onClose: function () {
                if ($j('html').hasClass('mot_ie')) {
                    document.getElementById(vidConfig.flowplayerId).innerHTML = ""; 	// empty flash fallback generated flowplayer embed code
                } else {
                    $j('#' + vidConfig.flowplayerId).empty(); 	// if flash fallback empty generated flowplayer embed code
                }
                //fixes no scroll bar issue in FF when closing out of a fullscreen video
                document.documentElement.style.overflow = "";
                //fixes IE close button from being hidden, fixes state that button is fixed on fullscreen
                $j("div.mot-popup-close").css({ position: "absolute" });
                $j("#mot-popup-container").css({ 'background': '#525253' });

                $j("#" + vidConfig.videoOverlayId).remove();
                if ($MM.controls.hero) $MM.controls.hero.toggleActive();
            }
        });
        if ($j('html').hasClass('mot_ie')) {
            $j('#' + vidConfig.flowplayerId).css('width', vidConfig.width);
            $j('#' + vidConfig.flowplayerId).css('height', vidConfig.height);
            $j('#' + vidConfig.videoFlashContainerId).css('width', vidConfig.width);
            $j('#' + vidConfig.videoFlashContainerId).css('height', vidConfig.height);
            $j('#' + vidConfig.videoOverlayId).css('width', vidConfig.width);
            $j('#' + vidConfig.videoOverlayId).css('height', vidConfig.height);
        }
        $j('#' + vidConfig.videoOverlayId).show();
        $j('#' + vidConfig.videoOverlayTriggerId).trigger('click');  // open motPopup window

        var motPlayerHTML = null; 
        if (VideoJS.browserSupportsVideo()) {
            motPlayerHTML = VideoJS.setup(vidConfig.videoId, { autoplay: true, shareButton: vidConfig.share, shareLabel: vidConfig.shareLabel, onStart: vidConfig.onStart, onComplete: vidConfig.onComplete });
            motPlayerHTML.play(); // autoplay
        } else {
            flowPlayerController.init(
            		vidConfig.flowplayerId, 
            		vidConfig.videoControlsId, 
            		vidConfig.share, 
            		vidConfig.onStart, 
            		vidConfig.onComplete,
            		vidConfig.swfPlayer
            );
        }
        
        //Setting the WT for the Share button
        $j('.vjs-video-share a').click(vidConfig.shareOnclick);
        
    }


});

$MM.controls.video = new $MM.models.Video();

