function JSONscriptRequest(a) {
    this.fullUrl = a;
    this.noCacheIE = '&noCacheIE=' + (new Date()).getTime();
    this.headLoc = document.getElementsByTagName("head").item(0);
    this.scriptId = 'JscriptId' + JSONscriptRequest.scriptCounter++;
}
JSONscriptRequest.scriptCounter = 1;
JSONscriptRequest.prototype.buildScriptTag = function() {
    this.scriptObj = document.createElement("script");
    this.scriptObj.setAttribute("type", "text/javascript");
    this.scriptObj.setAttribute("charset", "utf-8");
    this.scriptObj.setAttribute("src", this.fullUrl + this.noCacheIE);
    this.scriptObj.setAttribute("id", this.scriptId);
};
JSONscriptRequest.prototype.removeScriptTag = function() {
    this.headLoc.removeChild(this.scriptObj);
};
JSONscriptRequest.prototype.addScriptTag = function() {
    this.headLoc.appendChild(this.scriptObj);
};
document.write("<scr" + "ipt lang" + "uage=\"JavaScript\" type=\"text/javascript\" src=\"http://admin.brightcove.com/js/BrightcoveExperiences.js\"></scr" + "ipt>");
document.write("<scr" + "ipt lang" + "uage=\"JavaScript\" type=\"text/javascript\" src=\"http://admin.brightcove.com/js/APIModules_all.js\"></scr" + "ipt>");
   document.write("<div id=\"holder\">");
document.write("<div id=\"selfContainedPlayer_video\"></div>");
document.write("</div>");
if (!mdp)var mdp = {};
if (!mdp.app)mdp.app = {};
mdp.app.bcPlayers = {_players:{},addPlayer:function(a, b) {
    mdp.app.bcPlayers._players[a] = b;
},getPlayer:function(a) {
    var b = mdp.app.bcPlayers._players[a];
    mdp.app.bcPlayers._players[a] = "used";
    return b;
},isUsed:function(a) {
    return mdp.app.bcPlayers._players[a] == "used";
}};
mdp.selfContainedPlayerVars = {};
mdp.app.selfContainedPlayer = function(h, j, k, l) {
    /* global */
    var _keepAsync,_newVideoIDArray,q,ref,_playerLoaded,_addStage,_limit;
    /* ad related */
    var _adServerURL,_additionalAdTargetingParams,_adDomain;
    var p,playerID,_videoArrayCursor,_playlist,_bcPlayerID,playlistFieldRequest,videoFieldRequest,createNavItemCallback,onVideoChangeCallback;
    /* player related */
    var _volume,_random,_range,_continuous,_playlistCompleted,_firstRun,_startID,_titleIDs,_lastVideoPlayed;
    /* strucutre related */
    var r,div_ad_728x90,div_ad_300x250,div_ad_728x90_id,div_ad_300x250_id,div_video_id;
    /* API Related */
    var s,modVP,modExp,modCon,modAdv;

    function init() {
        /* global */
        _addStage = 0;
        ref = j;
        _playerLoaded = false;
        _firstRun = true;
        _playlistCompleted = false;
        _lastVideoPlayed = false;
        _random = mdp.selfContainedPlayerVars['randomize'] != null ? mdp.selfContainedPlayerVars['randomize'] === true : true;
        _continuous = mdp.selfContainedPlayerVars['continuous'] != null ? mdp.selfContainedPlayerVars['continuous'] === true : false;
        _limit = mdp.selfContainedPlayerVars['howManyToPlay'] != null && mdp.selfContainedPlayerVars['howManyToPlay'] != "" ? mdp.selfContainedPlayerVars['howManyToPlay'] : 10;

        /* ad related */


        /* player related */
        _playlist = mdp.selfContainedPlayerVars['playlistID'] != null && mdp.selfContainedPlayerVars['playlistID'] != "" ? mdp.selfContainedPlayerVars['playlistID'] : l;
        _titleIDs = mdp.selfContainedPlayerVars['titleIDs'] != null && mdp.selfContainedPlayerVars['titleIDs'] != "" ? mdp.selfContainedPlayerVars['titleIDs'] : null;
        _volume = mdp.selfContainedPlayerVars['volume'] != null && mdp.selfContainedPlayerVars['volume'] != "" ? mdp.selfContainedPlayerVars['volume'] : .05;
        _bcPlayerID = mdp.selfContainedPlayerVars['playerID'] != null && mdp.selfContainedPlayerVars['playerID'] != "" ? mdp.selfContainedPlayerVars['playerID'] : k;
        _range = mdp.selfContainedPlayerVars['range'] != null && mdp.selfContainedPlayerVars['range'] != "" ? mdp.selfContainedPlayerVars['range'] : null;
        _startID = mdp.selfContainedPlayerVars['startID'] != null && mdp.selfContainedPlayerVars['startID'] != "" ? mdp.selfContainedPlayerVars['startID'] : null;

        /* ad related */
        _adDomain = mdp.selfContainedPlayerVars['adDomain'] != null && mdp.selfContainedPlayerVars['adDomain'] != "" ? mdp.selfContainedPlayerVars['adDomain'] : 'betterrecipe.mdp.video';
        _adServerURL = mdp.selfContainedPlayerVars['adServerURL'] != null && mdp.selfContainedPlayerVars['adServerURL'] != "" ? mdp.selfContainedPlayerVars['adServerURL'] : 'http://ad.doubleclick.net/pfadx/' + _adDomain + '/p' + _bcPlayerID;
        _additionalAdTargetingParams = mdp.selfContainedPlayerVars['additionalAdTargetingParams'] != null && mdp.selfContainedPlayerVars['additionalAdTargetingParams'] != "" ? ';'+mdp.selfContainedPlayerVars['additionalAdTargetingParams'] : ';lnID=' + _playlist + ';';

        q = [];
        _newVideoIDArray = [];
        _keepAsync = true;
        if( mdp.selfContainedPlayerVars['div_selfContainedPlayer_id'] != null && mdp.selfContainedPlayerVars['div_selfContainedPlayer_id'] != "" ){
            div_video_id = mdp.selfContainedPlayerVars['div_selfContainedPlayer_id'];
            $("holder").attr("style","display:none;");
        } else {
            div_video_id = "selfContainedPlayer_video";
        }

        div_ad_728x90_id = mdp.selfContainedPlayerVars['div_728x90_id'] != null && mdp.selfContainedPlayerVars['div_728x90_id'] != "" ? mdp.selfContainedPlayerVars['div_728x90_id'] : "selfContainedPlayer_728x90";
        div_ad_300x250_id = mdp.selfContainedPlayerVars['div_300x250_id'] != null && mdp.selfContainedPlayerVars['div_300x250_id'] != "" ? mdp.selfContainedPlayerVars['div_300x250_id'] : "selfContainedPlayer_300x250";
        playlistFieldRequest = mdp.selfContainedPlayerVars['playlistFieldRequest'] != null && mdp.selfContainedPlayerVars['playlistFieldRequest'] != "" ? mdp.selfContainedPlayerVars['playlistFieldRequest'] : "";
        videoFieldRequest = mdp.selfContainedPlayerVars['videoFieldRequest'] != null && mdp.selfContainedPlayerVars['videoFieldRequest'] != "" ? mdp.selfContainedPlayerVars['videoFieldRequest'] : "ID";
        createNavItemCallback = typeof( mdp.selfContainedPlayerVars['createNavItemCallback'] == "function" ) ? mdp.selfContainedPlayerVars['createNavItemCallback'] : null;
        onVideoChangeCallback = typeof( mdp.selfContainedPlayerVars['onVideoChangeCallback'] == "function" ) ? mdp.selfContainedPlayerVars['onVideoChangeCallback'] : null;
        if (!(r = document.getElementById(div_video_id)))alert("div_video is not properly defined");
        if (!(div_ad_300x250 = document.getElementById(div_ad_300x250_id)))alert("div_ad_300x250 is not properly defined");
        if (!(div_ad_728x90 = document.getElementById(div_ad_728x90_id)))alert("div_ad_728x90 is not properly defined");
        _videoArrayCursor = 0;
        playerID = h;
        mdp.app.bcPlayers.addPlayer(playerID, ref);
        videoLineupWidget( _titleIDs ? _titleIDs : _playlist );
    }

    function addTitle(a) {
        q.push(a);
    }

    function addPlayer(a) {
        var b = false;
        var c = a ? a : null;
        if (!b) {
            b = true;
            var d = {};
            d.publisherID = "416537421";
            d.playerID = _bcPlayerID;
            d.videoId = c + "";
            d.bgcolor = "#993300";
            d.width = "450";
            d.height = "412";
            d.isVid = "true";
            d.isUI = "true";
            d.wmode = "transparent";
            d.adServerURL = _adServerURL;
            d.additionalAdTargetingParams = _additionalAdTargetingParams;
            var e = brightcove.createElement( "object" );
            e.id = playerID;
            var f;
            for (var i in d) {
                f = brightcove.createElement( "param" );
                f.name = i;
                f.value = d[i];
                e.appendChild(f);
            }
            brightcove.createExperience( e, r, false );
        }
    }

    function load_xml_content_string( a ) {
        var b = null;
        if (window.ActiveXObject) {
            b = new ActiveXObject("Microsoft.XMLDOM");
            b.async = "false";
            b.loadXML(a);
            return b;
        } else if ( document.implementation && document.implementation.createDocument ) {
            var c = new DOMParser();
            b = c.parseFromString( a, "text/xml" );
            return b;
        }
        return false;
    };

    function getVideoAd(a) {
        var b = new Object();
        b.type = "videoAd";
        var c = a.firstChild.childNodes.length;
        var d = a.firstChild.firstChild;
        b.duration = (a.firstChild.getAttribute("duration")) ? a.firstChild.getAttribute("duration") : 15;
        if (a.firstChild.getAttribute("trackStartURLs"))b.trackStartURLs = a.firstChild.getAttribute("trackStartURLs").split(",");
        if (a.firstChild.getAttribute("trackMidURLs"))b.trackMidURLs = a.firstChild.getAttribute("trackMidURLs").split(",");
        if (a.firstChild.getAttribute("trackEndURLs"))b.trackEndURLs = a.firstChild.getAttribute("trackEndURLs").split(",");
        if (a.firstChild.getAttribute("trackPointURLs"))b.trackPointURLs = a.firstChild.getAttribute("trackPointURLs").split(",");
        b.trackPointTime = (a.firstChild.getAttribute("trackPointTime")) ? a.firstChild.getAttribute("trackPointTime") : 0;
        for (var i = 0; i < c; i++) {
            if (d.nodeName == "videoURL" && d.firstChild)b.videoURL = d.firstChild.nodeValue;
            if (d.nodeName == "videoClickURL" && d.firstChild)b.videoClickURL = d.firstChild.nodeValue;
            d = d.nextSibling;
        }
        if (b.videoURL == undefined) {
            b = null;
        }
        return b;
    }

    function getCollapsedBanner(a, b) {
        var c = new Object();
        if (!b) b = "";
        var d = a.firstChild.childNodes.length;
        var e = a.firstChild.firstChild;
        for (var i = 0; i < d; i++) {
            if (e.nodeName == "collapsedBannerURL" + b && e.firstChild)c.bannerURL = e.firstChild.nodeValue;
            if (e.nodeName == "collapsedBannerClickURL" + b && e.firstChild)c.clickURL = e.firstChild.nodeValue;
            e = e.nextSibling;
        }
        return c;
    }

    function getExpandedBanner(a) {
        var b = new Object();
        var c = a.firstChild.childNodes.length;
        var d = a.firstChild.firstChild;
        for (var i = 0; i < c; i++) {
            if (d.nodeName == "expandedBannerURL" && d.firstChild)b.bannerURL = d.firstChild.nodeValue;
            if (d.nodeName == "expandedBannerClickURL" && d.firstChild)b.clickURL = d.firstChild.nodeValue;
            d = d.nextSibling;
        }
        return b;
    }

    function renderAd(a, b, c, d, e) {
        if (c)c.innerHTML = '<a href="' + b + '" target="_blank"><img src="' + a + '" width="' + d + '" height="' + e + '" border="0" />';
    };

    function playVideo( a ){
        _addStage = 0;
        var b = q[getVideoID(a)]["id"];
        setVideoArrayCursor(a);
        if ( getVideoArrayCursor() == 0 ) {
            _keepAsync = false;
            _playlistCompleted = true;
            _firstRun = false;
        }

        if( !_lastVideoPlayed ){
            modVP.loadVideo( b );
        } else {
            modVP.cueVideo( b );
            _lastVideoPlayed = false;
        }
        
    }

    this.playVideo = function( a ){
        playVideo( a );

    };

    function createNavigation() {
        var a = q.length;
        var b = a < _limit ? a : _limit;
        var c;
        while (_newVideoIDArray.length < b) {
            if (_random) {
                var d = Math.floor(Math.random() * a);
                var e = false;
                for (c = 0; c < _newVideoIDArray.length; c++) {
                    if (d == _newVideoIDArray[c]) {
                        e = true;
                        break;
                    }
                }

                if (!e){
                    _newVideoIDArray.push(d);
                    if( createNavItemCallback ) createNavItemCallback.call( this, q[_newVideoIDArray[_newVideoIDArray.length-1]], _newVideoIDArray.length-1 );
                }
            } else {
                for (c = 0; c < b; c++) {
                    _newVideoIDArray.push( c );
                    if( createNavItemCallback ) createNavItemCallback.call( this, q[_newVideoIDArray.length-1], _newVideoIDArray.length-1 );
                }
            }
        }

        if( _startID ){
            for (c = 0; c < _newVideoIDArray.length; c++) {
                if( q[ _newVideoIDArray[ c ] ][ "id" ] == _startID ) setVideoArrayCursor(c);
            }
        }

        addPlayer( _startID ? _startID : q[ _newVideoIDArray[ 0 ] ][ "id" ] );
    }

    function brightCoveRequest(a) {
        if (!a) {
            alert("selfContainedPlayer->brightCoveRequest:\n     Need to have an object.");
        } else {
            var b = new Array();
            for (var i in a)b.push(i + "=" + a[i]);
            var c = "&" + b.join("&");
            var t = "bkk" + "yRXZCC4" + "pq_wr" + "L6cEux" + "_XpNsb2Z6" + "xDVH-O" + "JJ7Qtlw.";
            var d = "http://a" + "pi.b" + "righ" + "tcove.com/ser" + "vices/lib" + "rary?to" + "ken=" + encodeURIComponent(t);
            var e = new JSONscriptRequest(d + c);
            e.buildScriptTag();
            e.addScriptTag();
        }
    }

    function videoLineupWidget(a) {
        var b,bcr,json;
        if (!a)alert("Please add a lineupID");
        b = a;
        if( _titleIDs ){
            json = {"command":"find_videos_by_ids","video_ids":b,"video_fields":videoFieldRequest,"callback":ref + ".onListReturned"};
        } else {
            json = {"command":"find_playlists_by_ids","playlist_ids":b,"playlist_fields":playlistFieldRequest,"video_fields":videoFieldRequest,"callback":ref + ".onListReturned"};
        }
        bcr = new brightCoveRequest(json);
    };

    function getNextIndex() {
        return _videoArrayCursor + 1 >= _newVideoIDArray.length ? 0 : _videoArrayCursor + 1;
    };

    function getVideoID(a) {
        return _newVideoIDArray[a];
    };

    function setVideoArrayCursor(a) {
        _videoArrayCursor = a;
    };

    function getVideoArrayCursor() {
        return _videoArrayCursor;
    };

    this.run = function(a) {
        if (_playerLoaded) {
            return false;
        } else {
            _playerLoaded = true;
        }
        p = a;
        s = brightcove.getExperience(p);
        modVP = s.getModule(APIModules.VIDEO_PLAYER);
        modExp = s.getModule(APIModules.EXPERIENCE);
        modCon = s.getModule(APIModules.CONTENT);
        modAdv = s.getModule(APIModules.ADVERTISING);
        modExp.addEventListener(BCExperienceEvent.TEMPLATE_READY, this.onTemplateReady);
        modExp.addEventListener(BCExperienceEvent.CONTENT_LOAD, this.onContentLoad);
        modVP.addEventListener(BCMediaEvent.BEGIN, this.onMediaBegin);
        modVP.addEventListener(BCMediaEvent.COMPLETE, this.onMediaComplete);
        modVP.addEventListener(BCMediaEvent.CHANGE, this.onMediaChange);
        modVP.addEventListener(BCMediaEvent.ERROR, this.onMediaError);
        modAdv.addEventListener(BCAdvertisingEvent.EXTERNAL_AD, this.onExternalAd);
        modAdv.addEventListener(BCAdvertisingEvent.AD_COMPLETE, this.onAdComplete);
        modAdv.enableExternalAds(true);
        modAdv.enableAdFormats(0, 14);
    };

    this.onAdComplete = function(a) {
        if( a ){}
        modVP.play();
    };

    this.onExternalAd = function(a) {
        _addStage++;
        if (_addStage > 1) {
            modAdv.resumeAfterExternalAd();
        } else {
            var b = load_xml_content_string(a["ad"]);
            var c = getVideoAd(b);
            if (c == null) {
                modAdv.resumeAfterExternalAd();
            } else {
                var d = getCollapsedBanner(b, "");
                var e = getExpandedBanner(b);
                if (div_ad_300x250 && div_ad_728x90) {
                    modAdv.showAd(c);
                    renderAd(d.bannerURL, d.clickURL, div_ad_728x90, 728, 90);
                    renderAd(e.bannerURL, e.clickURL, div_ad_300x250, 300, 250);
                }
            }
        }
    };

    this.onMediaBegin = function(a) {
        if( a ){}
        if (_keepAsync) {
            var b = q[getVideoID(getNextIndex())];
            modCon.getMediaAsynch(b);
        }

        if (_lastVideoPlayed) {
            _lastVideoPlayed = false;
        }
    };

    this.onMediaComplete = function(a) {
        if( a ){}
        if( getVideoArrayCursor() == _newVideoIDArray.length-1 ) _lastVideoPlayed = true;
        playVideo( getNextIndex() );

    };

    this.onMediaChange = function(a) {
        if( onVideoChangeCallback ) onVideoChangeCallback.call( this, a, _newVideoIDArray.length-1 );
    };

    this.onMediaError = function(a) {
        var s = "";
        for (var n in a) {
            s += "a[" + n + "] == " + a[n] + ";\n";
        }
        alert("Error:\n" + s);
    };

    this.onContentLoad = function(a) {
        if( a ){}
        modVP.play();
    };

    this.onTemplateReady = function(a) {
        if( a ){}
        modVP.setVolume(_volume);
    };

    this.getCurrentVideo = function(){
        return modVP.getCurrentVideo();
    };

    this.onListReturned = function(o) {

        if( o["error"] ) {
            alert("data returned error object");
            return;
        }
        var a;
        if( o["items"] && o["items"][0]["videoIds"] ){
            a = o["items"][0]["videos"];
        } else if( o["items"] ) {
            a = o["items"];
        } else {
            alert("error");
            return;
        }

        var b = a.length;
        var n = 0, j=0;
        var tooFar = false;
        var diff = 0;
        var pos = 0;
        /* check first - then reset values as needed */
        if( ( _range && _range < a.length ) && ( _startID ) ){
            if( _startID ){
                for (n; n<b; n++){
                    if( a[n]["id"] == _startID ){
                        if( a.length - n < _range ) {
                            tooFar = true;
                            pos = n;
                            diff = _range - ( a.length - n );
                            break;
                        }
                    }
                }
                /* now that we know we are too far, lets
                 * fix this by moving the cursor back
                 */

                for (j=0,n = pos-diff; n<b; n++,j++) {

                    addTitle(a[n]);
                    if( j == _range ) break;
                }
            }
        } else {

            for (n; n<b; n++){
                addTitle(a[n]);
            }
        }

        createNavigation();

    };


    init();
};

$(document).ready(function() {
    if (!window.parent.mdp.selfContainedPlayer) mdp.selfContainedPlayer = new mdp.app.selfContainedPlayer("selfContainedPlayer", "mdp.selfContainedPlayer", 38543143001, 40310175001);
});

function onTemplateLoaded(a) {
    var b = mdp.app.bcPlayers.getPlayer(a);
    if (b != null)eval("" + b + ".run('" + a + "');");
}
/*
			<xsl:variable name="playlistToPlay" select="/EveryzingCategoryDoc/Content/Episodes/ResultSet/Results/CompleteResult/EpisodeMetaData/CustomArgs/Arg[@key='bclid']/text()" />

			<xsl:call-template name="rs_videoplayer">
				<xsl:with-param name="howManyToPlay" select="10" />
				<xsl:with-param name="randomize" select="'false'" />
				<xsl:with-param name="playlistID" select="$playlistToPlay" />
				<xsl:with-param name="titleIDs" select="concat('&quot;',$bctidResult,'&quot;')" />
			</xsl:call-template>
*/
					
					
					
					
					
					
					
					
					
					
					
					
					
