(function () {
    _({"status":{"code":"OK"},"jsVersion":"17.03.830","id":"565db983e4b0f8192220b093","wlcid":"545db032e4b0af1a81424b48","bid":{"id":"545db032e4b030d994859f38","videos":[{"videoId":"554b325ae4b0e0bd77688d5a","aolVideoId":517197097,"name":"Vizio LED Light Bulb Hands-on","videoUrls":["http://videos.vidible.tv/prod/2015-05/07/554b325ae4b0e0bd77688d5a_640x368_v1.mp4?B19ll9Z4_8B0YJrSpqynE7sJeM_DMtp5lbIZuhzzaKPO6dS9YCPH9i1Aaphil3ft"],"thumbnailId":"56733b886a612dc14aaa559c","thumbnail":"http://cdn.vidible.tv/prod/2015-05/07/554b325ae4b0e0bd77688d5a_60x60_v1.jpg","fullsizeThumbnail":"http://cdn.vidible.tv/prod/2015-05/07/554b325ae4b0e0bd77688d5a_cv1.jpg","subtitles":[],"captions":{},"metadata":{"duration":67000,"keywords":["Vizio LED Light Bulb Hands-on","engadget","led light bulb","led light bulbs","vizio led light bulb","vizio led light bulb demo","vizio led light bulb demonstration","Vizio products"],"videoType":"VOD","commonRating":{"value":"NR","descriptors":[],"minAge":-1}},"videoSourceType":"FILE","rssVideoId":"viddler.engadget.13a31f5f","categoryIds":"137","catName":"Tech/Web","iabCategories":[],"ownerId":517197030,"partnerName":"Engadget AOL","studioName":"engadget","chanName":"Tech","cs":{"priority":false}}]},"playerTemplate":{"initialization":"click","mobileInit":"CLICK","mobileAutoplayWifiOnly":true,"fullscreenOnUnmute":false,"previewPoster":"IMAGE","sound":"normal","initialVolume":1.0,"videosToPlay":1,"videosToRequest":1,"shuffleVideos":false,"prerollFrequency":0,"backgroundSkinLocation":{"x":0,"y":0,"w":0,"h":0},"controlsSkin":"http://cdn.vidible.tv/prod/player/swf/16.44.336/ControlsAOL_5.swf","controlsSkinLocation":{"x":0,"y":0,"w":600,"h":388},"videoLocation":{"x":0,"y":0,"w":600,"h":388},"afterVideosUI":"next","scrubBarSkin":"http://cdn.vidible.tv/prod/2013-03/10/511e8160e4b0bf40bd0340a7_v2.swf","coveringsSkin":"http://cdn.vidible.tv/prod/player/swf/16.44.336/CoveringsAOL_3.swf","coveringsSkinLocation":{"x":0,"y":0,"w":600,"h":448},"surroundSkinLocation":{"x":0,"y":0,"w":0,"h":0},"playerWidth":600,"playerHeight":448,"controlsAutoPosition":true,"controlsChromeless":true,"controlsBackgroundAlpha":"1.0","controlsConfig":{"colorSchema":{"mainColor":{"backgroundColor":16763904,"backgroundAlpha":1.0}},"logoUrl":"http://afiles.5min.com/images/vcdlogos/aolon.swf","logoClickUrl":"http://on.aol.com"},"nielsenSiteCampaign":"nlsn31325","nielsenChannelCampaign":"cmp185270","backgroundFill":true,"backgroundColor":0,"surround3DBevelShadowColor":16777215,"surround3DBevelHighlightColor":16777215,"surroundInnerRadius":0,"surroundCornerRadius":0,"surroundHole":false,"surround3D":false,"surround3DBevelSize":0,"surround3DBevelStrength":0.0,"extras":[{"extraId":"54e85e5ce4b0083d0ce32f03","config":{"Twitter":{"enabled":"false","url":"http://on.aol.com/video/[AOL_VIDEO_ID]"},"Facebook":{"enabled":"false","url":"http://on.aol.com/video/[AOL_VIDEO_ID]"}},"uiPosition":"DEFAULT","region":{"x":0,"y":0,"w":0,"h":0},"blocking":true,"urls":{"FLASH":"http://cdn.vidible.tv/prod/player/swf/16.44.336/share-tuner.swf","JS":"http://cdn.vidible.tv/prod/player/js/17.03.830/extras/share.js"},"subType":"COMMON"},{"extraId":"55388b54e4b099bcc1225caa","config":{"nextButton":{"x":573,"width":0.0,"y":8.0,"height":0.0},"rewindDuration":0.1,"thumbHeight":"100%","leafDuration":0.1,"infoType":"infoBubble","tooltipAnimationDuration":0.2,"gap":2,"backButton":{"x":0.0,"width":0.0,"y":8.0,"height":0.0},"backgroundAlpha":0.0,"aolRelatedUrl":"http://syn.5min.com/handlers/related?videoId=[VIDEO_ID]&playerWidth=[CONTAINER_WIDTH]&playerHeight=[CONTAINER_HEIGHT]&sid=|bInfo.sid|&skey=|bInfo.skey|&categories=[CATEGORY_IDS]&contentQuality=3&relatedVersion=2&uuid=812615617315010","alwaysOnScreen":"true"},"uiPosition":"BOTTOM","region":{"x":0,"y":390,"w":600,"h":58},"blocking":false,"urls":{"FLASH":"http://cdn.vidible.tv/prod/player/swf/16.44.336/AOL_5_MotionCarousel.swf","JS":"http://cdn.vidible.tv/prod/player/js/17.03.830/extras/bottomrelated.js"},"subType":"CAROUSEL"},{"extraId":"553e2d62e4b0f04ad3ca2560","uiPosition":"DEFAULT","region":{"x":0,"y":0,"w":0,"h":0},"blocking":false,"urls":{"CORE":"http://cdn.vidible.tv/prod/player/js/17.03.830/extras/nielsen_ocr.js"},"subType":"COMMON"},{"extraId":"55374b4ae4b0d985a76dd9df","uiPosition":"DEFAULT","region":{"x":0,"y":0,"w":0,"h":0},"blocking":true,"urls":{"CORE":"http://cdn.vidible.tv/prod/player/js/17.03.830/extras/comscorevmx.js"},"subType":"COMMON"},{"extraId":"552e2ea3e4b01ea94a2831d3","uiPosition":"DEFAULT","region":{"x":0,"y":0,"w":0,"h":0},"blocking":true,"urls":{"CORE":"http://cdn.vidible.tv/prod/player/js/17.03.830/extras/nielsen_dcr.js"},"subType":"COMMON"},{"extraId":"542e79b3e4b0b1e0a0e7e04c","uiPosition":"DEFAULT","region":{"x":0,"y":0,"w":0,"h":0},"blocking":true,"urls":{"FLASH":"http://cdn.vidible.tv/prod/player/swf/16.44.336/stream-sense-stacked-reporting.swf","JS":"http://cdn.vidible.tv/prod/player/js/17.03.830/extras/comscorestreamsense.js"},"subType":"COMMON"}],"publisherPayout":"None","publisherAmount":0.0,"metaData":{"freeWheelNetworkId":"10886","freeWheelProfile":"5min_smartplayer"},"showLogo":false,"aspectRatio":"16:9","isResponsive":false,"csid":"54ef07a8e4b020e2f828c02c","HLSExtra":"http://cdn.vidible.tv/prod/player/swf/16.44.336/hls-plugin.swf","IMAExtra":"http://cdn.vidible.tv/prod/player/swf/16.44.336/ima-ad-module.swf","YuMeExtra":"http://cdn.vidible.tv/prod/player/swf/16.44.336/yume-ad-module.swf","FreeWheelExtra":"http://cdn.vidible.tv/prod/player/swf/16.44.336/free-wheel-module.swf","VASTExtra":"http://cdn.vidible.tv/prod/player/swf/16.44.336/vast-ad-engine.swf","PlayerAdSystem":"http://cdn.vidible.tv/prod/player/swf/16.44.336/vidible-ad-server.swf","UIExtra":"http://cdn.vidible.tv/prod/player/swf/16.44.336/controls-sticky.swf","AgeGateExtra":"http://cdn.vidible.tv/prod/player/swf/16.44.336/age-gate.swf","SubtitlesExtra":"http://cdn.vidible.tv/prod/player/swf/16.44.336/subtitles.swf","ClickExtra":"http://cdn.vidible.tv/prod/player/swf/16.44.336/click-throughs.swf"},"timestamp":"20170125200603279","adSettings":{"podSize":1,"prerollInterleave":1,"strictSiteCheckForAds":false,"blockContentOnAdBlocker":false,"domainOptimisation":true,"adStrategy":"CONTENT_BASED","useSsai":false,"companions":[],"aeg":[],"asids":[]},"playerWidget":{"playerType":"SMART","url":"http://cdn.vidible.tv/prod/player/swf/16.44.336/player-vast.swf","adOnly":false,"isAol":true},"geo":{"country":"pol","region":"ds","zipCode":"54-402","areaCode":"0","connSpeed":"broadband"},"brandedContent":false,"sid":"e527df30-6398-4092-b198-ecc911b52dfe","bcInfo":{"sid":"577","sKey":"0","networkId":92736,"fwsitesection":48085,"oo":true},"src":"pshared.5min.com/Scripts/PlayerSeed.js?playList=517197097&height=448&width=600&sid=577&origin=SOLR&relatedMode=2&relatedBottomHeight=60&companionPos=&hasCompanion=false&autoStart=false&shuffle=0&isAP=1&localUrl=https%3A%2F%2Fwww.engadget.com.js","bsf":{"bs":{},"f":{"o2":1.0,"pxlt":1.0,"dstl":1.0}}});
    function _(json) {
        /*
        Developed by Robert Nyman, http://www.robertnyman.com
        Code/licensing: http://code.google.com/p/getelementsbyclassname/
        */
        var getElementsByClassName = function (className, tag, elm) {
            if (document.getElementsByClassName) {
                getElementsByClassName = function (className, tag, elm) {
                    elm = elm || document;
                    var elements = elm.getElementsByClassName(className),
                        nodeName = (tag) ? new RegExp("\\b" + tag + "\\b", "i") : null,
                        returnElements = [],
                        current;
                    for (var i = 0, il = elements.length; i < il; i += 1) {
                        current = elements[i];
                        if (!nodeName || nodeName.test(current.nodeName)) {
                            returnElements.push(current);
                        }
                    }
                    return returnElements;
                };
            } else if (document.evaluate) {
                getElementsByClassName = function (className, tag, elm) {
                    tag = tag || "*";
                    elm = elm || document;
                    var classes = className.split(" "),
                        classesToCheck = "",
                        xhtmlNamespace = location.protocol + "//www.w3.org/1999/xhtml",
                        namespaceResolver = (document.documentElement.namespaceURI === xhtmlNamespace) ? xhtmlNamespace : null,
                        returnElements = [],
                        elements,
                        node;
                    for (var j = 0, jl = classes.length; j < jl; j += 1) {
                        classesToCheck += "[contains(concat(' ', @class, ' '), ' " + classes[j] + " ')]";
                    }
                    try {
                        elements = document.evaluate(".//" + tag + classesToCheck, elm, namespaceResolver, 0, null);
                    } catch (e) {
                        elements = document.evaluate(".//" + tag + classesToCheck, elm, null, 0, null);
                    }
                    while ((node = elements.iterateNext())) {
                        returnElements.push(node);
                    }
                    return returnElements;
                };
            } else {
                getElementsByClassName = function (className, tag, elm) {
                    tag = tag || "*";
                    elm = elm || document;
                    var classes = className.split(" "),
                        classesToCheck = [],
                        elements = (tag === "*" && elm.all) ? elm.all : elm.getElementsByTagName(tag),
                        current,
                        returnElements = [],
                        match;
                    for (var k = 0, kl = classes.length; k < kl; k += 1) {
                        classesToCheck.push(new RegExp("(^|\\s)" + classes[k] + "(\\s|$)"));
                    }
                    for (var l = 0, ll = elements.length; l < ll; l += 1) {
                        current = elements[l];
                        match = false;
                        for (var m = 0, ml = classesToCheck.length; m < ml; m += 1) {
                            match = classesToCheck[m].test(current.className);
                            if (!match) {
                                break;
                            }
                        }
                        if (match) {
                            returnElements.push(current);
                        }
                    }
                    return returnElements;
                };
            }
            return getElementsByClassName(className, tag, elm);
        };

        var createRightCB = function (playerClassName, jsonObject) {
            var companions = jsonObject.adSettings.companions;
            if (companions != null && companions.length > 0 && companions[0].parent == null) {
                var divRightCB = document.createElement("div");
                var divId = playerClassName + "_right_cb";
                divRightCB.setAttribute('id', divId);
                jsonObject.adSettings.companions[0].parent = divId;
                divRightCB.setAttribute('style', 'width:' + companions[0].width + 'px;height:' + companions[0].height + 'px;float:left;');
                var tmpContainers = getElementsByClassName(playerClassName, null, document.body);
                if (tmpContainers != null && tmpContainers.length > 0) {
                    var playerContainer = tmpContainers[0];
                    playerContainer.setAttribute('style', 'float:left;width:' + jsonObject.playerTemplate.playerWidth + 'px;height:' + jsonObject.playerTemplate.playerHeight + 'px');
                    playerContainer.parentNode.insertBefore(divRightCB, playerContainer.nextSibling);
                }
            }
        };

        var waitUntil = function (check, onComplete, delay, timeout, bind, completeArgs, onTimeout, timeoutArgs) {
            if (!bind) bind = this;
            if (!completeArgs) completeArgs = [];
            // if the check returns true, execute onComplete immediately
            if (check()) {
                onComplete.apply(bind, completeArgs);
                return;
            }

            if (!delay) delay = 100;
            if (!timeout) timeout = 10000;

            var timeoutPointer;
            var intervalPointer = setInterval(function () {
                if (!check()) return; // if check didn't return true, means we need another check in the next interval

                // if the check returned true, means we're done here. clear the interval and the timeout and execute onComplete
                clearInterval(intervalPointer);
                if (timeoutPointer) clearTimeout(timeoutPointer);
                onComplete.apply(bind, completeArgs);
            }, delay);
            // if after timeout milliseconds function doesn't return true, abort
            if (timeout) timeoutPointer = setTimeout(function () {
                clearInterval(intervalPointer);
                if (onTimeout) {
                    onTimeout.apply(bind, timeoutArgs || []);
                }
            }, timeout);
        };

        /** Creates a function based on lazy global (window) path
         * param funcPath a path to the function (e.g. console.log)
         * returns a lazy function representing current of future global
         **/
        var lazyFunc = function (funcPath) {
            return function () {
                var func;
                try {
                    func = eval(funcPath);
                }
                catch (e) {
                    var args = Array.prototype.slice.call(arguments);
                    if (args[args.length - 1].i == null) {
                        args.push({i: 0});
                    }

                    if (args[args.length - 1].i < 4) {
                        args[args.length - 1].i++;
                        setTimeout.apply(null, Array.prototype.concat.apply([arguments.callee, 100], args));
                    }
                }
                if (func) {
                    func.apply(null, mapOldPlayerData(arguments));
                }
            };
        };

        var mapOldPlayerData = function (funcArgs) {
            var args = [];
            try {
                args = Array.prototype.slice.call(funcArgs);
                var videoProps = [{key: 'videoid', val: 'videoId'}, {key: 'videoId', val: 'VideoId'},
                    {key: 'ID', val: 'videoId'}, {key: 'duration', val: 'duration'},
                    {key: 'videoDuration', val: 'duration'}, {
                        key: 'isFirstVideo',
                        val: 'isFirstVideo'
                    }, {key: 'keywords', val: 'keywords'},
                    {key: 'eventCode', val: 'eventCode'}, {key: 'studio', val: 'studio'}, {
                        key: 'title',
                        val: 'title'
                    }, {key: 'playerType', val: 'playerType'}, {key: 'isPlayComplete', val: 'isPlayComplete'}];

                if (args.length > 0) {
                    var objectData = args[0].data;
                    if (objectData) {
                        for (var i = 0; i < videoProps.length; i++) {
                            var prop = videoProps[i];
                            if (objectData[prop.val] != null) {
                                if (!args[0][prop.key]) {
                                    args[0][prop.key] = objectData[prop.val];
                                }
                            }
                        }
                        args[0]['category'] = [];
                        if (objectData.category != "") {
                            args[0]['category'].push(objectData.category);
                        }
                    }
                }
            } catch (e) {
            }
            return args;
        };

        var addPlayerEvents = function (pl, eventList) {
            for (var i = -1, len = (eventList || []).length; ++i < len;) {
                var path = eventList[i].Value;
                var vidibleEventName = eventList[i].Key;
                pl.addEventListener(vidibleEventName, lazyFunc(path));
            }
        };

                    var utilsObj = {
    GUID: function () {
        var ts = 20170125200603279 || 0;
        if (typeof ts !== 'number') {
            ts = parseInt(ts, 10) || 0;
        }

        var d = utilsObj.numberizeUrl() + new Date().getTime() + ts;
        if (window.performance && typeof window.performance.now === "function") {
            d += performance.now();
        }
        var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
            var r = (d + Math.random() * 16) % 16 | 0;
            d = Math.floor(d / 16);
            return (c == 'x' ? r : (r & 0x3 | 0x8)).toString(16);
        });
        return uuid;
    },

    numberizeUrl: function () {
        var url = utilsObj.getPageUrl() || utilsObj.getDocumentReferrer();
        return utilsObj.numberizeString(url);
    },

    numberizeString: function (str) {
        var strNumber = 0;
        if (typeof str === "string") {
            for (var i = 0, len = str.length; i < len; i++) {
                strNumber += str.charCodeAt(i);
            }
        }
        return strNumber;
    },

    getPageUrl: function () {
        try {
            return window.top.location.href;
        }
        catch (e) {
            return null;
        }
    },

    getDocumentReferrer: function () {
        try {
            return window.top.document.referrer;
        }
        catch (e) {
            return null;
        }
    },

    getTopMostWindow: function (currWindow) {
        var currP = currWindow || window;
        while (currP) {
            try {
                var newP = currP.parent;
                // try to reach the document, if didn't succeed - goes to catch {}
                var doc = newP.document;
                if (!doc) break;
                // reached the top
                // newP is ok. use it.
                currP = newP;
                if (newP == newP.parent) break;

            } catch (ex) {
                break;
            }
        }
        return currP;
    },

    getTopMostLocation: function (win) {
        var top = this.getTopMostWindow(win);
        if (top == window.top) {
            return top.location.href;
        } else {
            return top.document && top.document.referrer || top.location.href;
        }
    }

};
                var sid = utilsObj.GUID();
        var vvuid = utilsObj.GUID().toUpperCase();

        var createPlayer = function (c, json) {
            var it = new Date().getTime();
            var ifr = window != top;
            var r = encodeURIComponent(ifr ? document.referrer : location.href);
            var vdb_params = c.getAttribute("vdb_params");
            var macro_params = "";
            if (vdb_params && macro_params){
                vdb_params = vdb_params.concat("&");
            }
            var p = (vdb_params || "") + macro_params;
            p += p && "&";
                            return vidible.createPlayer({
                    pid: "565db983e4b0f8192220b093",
                    bcid: "545db032e4b0af1a81424b48",
                    params: p + "itg=ias",
                    content: c,
                    it: it,
                    site: r,
                    sid: sid,
                    vvuid: vvuid
                }, json, {"cdn":"http://cdn.vidible.tv/prod/","trk":"http://trk.vidible.tv/trk/","ds":"http://delivery.vidible.tv/","ads":"http://video.adaptv.advertising.com/","adt":"http://video.adaptv.advertising.com/","ptv":"http://portal.vidible.tv/"});
                    };

        var getSrcQuery = function (url) {
            return url.substring(url.indexOf('?') + 1);
        };

        var getCurrentScript = function (src) {
            var currentScript = null;
            var counter = 0;
            var ourScriptAttr = 'data-readbyplayerseed';
            var scripts = document.getElementsByTagName('script');
            var potentials = [];
            var srcContainsHash = false;

            for (var i = 0; i < scripts.length; i++) {
                var theScript = scripts[i];
                var scriptSrc = theScript.getAttribute('src');
                if (scriptSrc != null && scriptSrc.toLowerCase().indexOf('playerseed.js') != -1) {
                    ++counter;
                    if (theScript.getAttribute(ourScriptAttr) == null) {
                        var parent = theScript.parentNode;
                        if (parent && parent.tagName.toLowerCase() != 'head') {
                            potentials.push({
                                id: counter,
                                script: theScript
                            });
                            if (scriptSrc.replace(/.*?\/\//, "") === src) {
                                currentScript = theScript;
                                currentScript.setAttribute(ourScriptAttr, 'true');
                                break;
                            }
                        }
                    }
                }
            }

            if (currentScript == null && potentials.length > 0) {
                var srcQuery = getSrcQuery(src);
                var potentialSrcQuery;
                var regex = /playlist=([0-9,]+)/;
                var srcPlaylist = '';
                var match = src.toLowerCase().match(regex);
                if (match != null) {
                    srcPlaylist = match[1];
                }

                for (var i = 0; i < potentials.length; i++) {
                    potentialSrcQuery = getSrcQuery(potentials[i].script.src);

                    if (potentialSrcQuery.indexOf(srcQuery) == 0 && potentialSrcQuery.charAt(srcQuery.length) == '#') {
                        currentScript = potentials[i].script;
                        counter = potentials[i].id;
                        srcContainsHash = true;
                        break;
                    }

                    match = potentialSrcQuery.toLowerCase().match(regex);

                    if (match != null) {
                        var potentialPlaylist = match[1];
                        if (srcPlaylist == potentialPlaylist) {
                            currentScript = potentials[i].script;
                            counter = potentials[i].id;
                            break;
                        }
                    }
                }

                if (currentScript == null) {
                    currentScript = potentials[0].script;
                    counter = potentials[0].id;

                    if (currentScript.src.indexOf('#') >= 0) {
                        srcContainsHash = true;
                    }
                }

                currentScript.setAttribute(ourScriptAttr, 'true');
            }

            return {
                script: currentScript,
                idx: counter,
                srcContainsHash: srcContainsHash
            };
        };

        var parseQS = function (query) {
            var params = {};
            query = decodeURIComponent(query);
            query.replace(/([^?=&]+)(=([^&]*))?/g, function (v1, v2, v3, v4) {
                params[v2] = decodeURIComponent(v4);
            });
            return params;
        }

        var setBCParams = function (c, json, p) {
            var origQS = parseQS(json.src);
            var vdbparams = [];
            for (var key in origQS) {
                if (/^fw/.test(key) || /^cs/.test(key)) {
                    vdbparams.push('m.' + key.toLowerCase() + '=' + encodeURIComponent(origQS[key]));
                }
                if (/^siteSection$/.test(key)) {
                    vdbparams.push('m.fwsitesection=' + encodeURIComponent(origQS[key]));
                }
                if (key.toLowerCase() === 'isfreewheel' && (origQS[key] === 'false' || origQS[key] === '0')) {
                    vdbparams.push('m.disableads=1');
                }
                if (key.toLowerCase() === 'sponsorship') {
                    vdbparams.push('m.fwkeyvalues=' + encodeURIComponent('sponsorship=' + origQS[key]));
                }

            }
            p += vdbparams.length > 0 ? ('&' + vdbparams.join('&') + '&') : '';
            if (c) {
                c.setAttribute('vdb_params', p);
            }
            return p;
        };

        var isString = function (obj) {
            return Object.prototype.toString.call(obj) === '[object String]';
        };

        var isNumber = function (obj) {
            return Object.prototype.toString.call(obj) === '[object Number]';
        };

        var isBoolean = function (obj) {
            return obj === true || obj === false || Object.prototype.toString.call(obj) === '[object Boolean]';
        };

        var getNextPlayerWrapperId = function (prefix) {
            for (var i = 0; i < 10; i++) {
                var el = document.getElementById(prefix + '_' + i);
                if (!el) {
                    return i;
                }
            }
            return 0;
        };

        var createPlayerWrapper = function (prefix, index) {
            var playerWrapper = document.createElement('div');
            index = (typeof index == 'undefined' ? getNextPlayerWrapperId(prefix) : index);
            playerWrapper.setAttribute('id', prefix + '_' + index);
            playerWrapper.className += ' fmvps-wrapper o2player_' + parseInt(Math.random() * 1000000000, 10);
            return playerWrapper;
        };

        var head = document.getElementsByTagName('head')[0];
        var ifr = window != top;
        var r = encodeURIComponent(ifr ? document.referrer : location.href);

                    var cId = '';
            if (cId != '') {
                var elem = document.getElementById(cId);
                if (elem != null) {
                    cId = 'vdb_' + cId;
                    elem.className = cId;
                }
            }
            var playerWrapper;
            var cl = cId || 'vdb_4b9d28e6f67f4ceb8589731df91b7311';
            var c = cl != '' ? getElementsByClassName(cl, null, document.body)[0] : null;
            if (c == null || c == 'undefined') {
                var currentScriptObj = getCurrentScript(json.src);
                var currentScriptElem = currentScriptObj.script;
                if (currentScriptElem) {
                    var queryParams = (currentScriptElem.src.split('?')[1] || '').split('&');
                    if (currentScriptObj.srcContainsHash) {
                        var newScript = document.createElement('script');
                        newScript.src = currentScriptElem.src.replace(/#/g, '%23');

                        if (currentScriptElem.parentNode) {
                            currentScriptElem.parentNode.insertBefore(newScript, currentScriptElem.nextSibling);
                        }

                        return;
                    }

                    if (!(currentScriptElem.parentNode != null && currentScriptElem.parentNode.tagName == 'HEAD') || 2 >= queryParams.length) {
                        var vdb_params = currentScriptElem.parentNode.getAttribute("vdb_params");
                        playerWrapper = createPlayerWrapper('o2player', currentScriptObj.idx);
                        if (vdb_params) {
                            playerWrapper.setAttribute("vdb_params", vdb_params)
                        }
                        currentScriptElem.parentNode.insertBefore(playerWrapper, currentScriptElem.nextSibling);
                        c = playerWrapper;
                    }
                }
            } else {
                c.className = c.className.replace(new RegExp("(\\s*)" + cl + "\\s*", "g"), "$1");

                if ((json.bcInfo || {}).sid == 848) { // handle swagbucks differently for backward compatibility
                    playerWrapper = createPlayerWrapper('SmartPlayer');
                } else if (cl.indexOf('vdb_') != 0) { // the container isn't ours
                    playerWrapper = createPlayerWrapper('o2player');
                } else {
                    c.className += " fmvps-wrapper";
                }

                if (playerWrapper) {
                    c.appendChild(playerWrapper);
                    c = playerWrapper;
                }
            }
            if (c != null && c != 'undefined') {
                createRightCB(c.className, json);
            }

            var p = c ? c.getAttribute("vdb_params") || '' : '';
            p = setBCParams(c, json, p);
            var cb = /(?:[\?&]|^)m\.cb=(.*?)(&m\..*?=|$)/g.exec(p);
            cb = cb && cb[1] || Math.random();
            var ur = /(?:[\?&]|^)m\.url=(.*?)(&m\..*?=|$)/g.exec(p);
            ur = ur && ur[1];

            function ee(pn, v, dv) {
                var ve = dv && dv(v) || v;
                if (ve == v) {
                    try {
                        ve = decodeURIComponent(v);
                        ve = encodeURIComponent(ve);
                    } catch (e) {
                        ve = encodeURIComponent(v);
                    }
                }
                p = p.replace("m." + pn + "=" + v, "m." + pn + "=" + ve);
                v = ve;
                return v;
            }

            ee("url", ur);
            p += p && "&";

            var i = document.createElement("img");
            var pixelParams = "pid=565db983e4b0f8192220b093&bcid=545db032e4b0af1a81424b48&itg=ias&ifr=" + ifr + "&cb=" + cb + "&" + p + "r=" + r;
            if (c) {
                i.src = "http://trk.vidible.tv/trk//impression.gif?" + pixelParams;
                i = document.createElement("img");
            }
            i.src = "http://trk.vidible.tv/trk//js-loaded.gif?" + pixelParams;
            var s = document.createElement("script");
            s.type = "text/javascript";
            s.src = 'http://cdn.vidible.tv/prod/player/js/' + json.jsVersion + '/o2-min.js';
            s.onload = function () {
                if (c) {
                    var pl = createPlayer(c, json);
                    addPlayerEvents(pl, getPlayerEventList(parseQS(json.src)));
                    var clb = window['vidibleInitialize'];
                    if (clb && pl) {
                        clb(pl);
                    }
                }
                var i = document.createElement("img");
                i.src = "http://trk.vidible.tv/trk//js-started.gif?" + pixelParams;
                s.onload = s.onreadystatechanged = function () {
                };
            };
            s.onreadystatechange = function () {
                if (s.readyState == 'complete' || s.readyState == 'loaded') {
                    s.onload();
                }
            };

            var ep = c || head;
            ep.appendChild(s);
            __IntegralASConfig = (function () {
                var iasParams = "pid=565db983e4b0f8192220b093&bcid=545db032e4b0af1a81424b48&ifr=" + ifr + "&cb=" + cb + "&sid=" + sid + "&vvuid=" + vvuid + "&" + p + "r=" + r;
                return {
                    onInViewMRC: "http://trk.vidible.tv/trk/ias_view.gif?" + iasParams,
                    onMeasurable: "http://trk.vidible.tv/trk/ias_measure.gif?" + iasParams,
                    onAPIResult: function (data) {
                        var ias_p = "&";
                        for (var k in data.risk) {
                            ias_p += "risk." + k + "=" + encodeURIComponent(data.risk[k]) + "&";
                        }
                        ias_p += "rsa=" + data.rsa;

                        var i = document.createElement("img");
                        i.src = "http://trk.vidible.tv/trk/ias_brand.gif?" + iasParams + ias_p;
                    }
                };
            })();

            var flScript = document.createElement('script');
            flScript.type = 'text/javascript';
            flScript.src = location.protocol + '//5726.bapi.adsafeprotected.com/bapi?anId=5726&advId=545db032e4b0af1a81424b48&campId=&pid&pubId=&placementId=&chanId=&adsafe_par&ext_impid=';
            head.appendChild(flScript);

            (function () {
                function ts(d) {
                    d.setMinutes(0);
                    d.setSeconds(0);
                    d.setMilliseconds(0);
                    return d.getTime();
                }

                var m_r = ur || r;
                var m = m_r && decodeURIComponent(m_r).match(/^.*:\/\/([^\/?#:]+)/i);
                var d = m && m[1];
                            })();
        
        var getPlayerEventList = function (params) {
            var eventList = [];
            var eventMapper = {
                "onPlay": "videoplay", "onPause": "videopause", "onReady": "playerready",
                "onVideoStartPlay": "videostart", "onVideoEnded": "videoend", "onVideoEnded": "videoend",
                "onContextStarted": "contextstarted", "onTimeUpdate": "videotimeupdate", "onPrerollStarted": "adstart",
                "onPrerollEnded": "adend", "onVideoDataLoaded": "videodataloaded"
            };

            for (var key in params) {
                if (eventMapper[key]) {
                    eventList.push({'Key': eventMapper[key], 'Value': params[key]});
                }
            }
            return eventList;
        }

        if (typeof window.PlayerSeed === 'undefined') {
            window.PlayerSeed = function (divId) {
                this.Load = function () {
                    var obj = this,
                        prop,
                        params = [],
                        serverParams = [],
                        container = document.getElementById(divId),
                        callbackIndex = FIVEMIN.o2.callbacks.length,
                        script;

                    if (!container) return;

                    var playerWrapper = createPlayerWrapper('o2player');
                    container.appendChild(playerWrapper);
                    container = playerWrapper;

                    for (prop in obj) {
                        if (Object.prototype.hasOwnProperty.call(obj, prop)) {
                            if ((isString(obj[prop]) || isNumber(obj[prop]) || isBoolean(obj[prop])) && prop != 'data') {
                                if (!/^fw/.test(prop)) {
                                    serverParams.push(prop + '=' + encodeURIComponent(obj[prop]));
                                }
                                params.push(prop + '=' + obj[prop]);
                            }
                        }
                    }
                    if (typeof obj.videoCount === 'undefined') {
                        serverParams.push('videoCount=50');
                    }
                    serverParams.push('callback=FIVEMIN.o2.callbacks[' + callbackIndex + ']');

                    FIVEMIN.o2.callbacks[callbackIndex] = function (json) {
                        waitUntil(function () {
                            return typeof window.vidible != 'undefined'
                        }, function () {
                            var p = container ? container.getAttribute("vdb_params") || '' : '';
                            json.src = params.join('&');
                            p = setBCParams(container, json, p);
                            var cb = /(?:[\?&]|^)m\.cb=(.*?)(&m\..*?=|$)/g.exec(p);
                            cb = cb && cb[1] || Math.random();
                            p += p && "&";
                            var i = document.createElement("img");
                            i.src = 'http://trk.vidible.tv/trk//impression.gif?pid=565db983e4b0f8192220b093&bcid=545db032e4b0af1a81424b48&itg=ias&' + p + "ifr=" + ifr + "&cb=" + cb + "&r=" + r;
                            var pl = createPlayer(container, json);
                            if (pl) {
                                addPlayerEvents(pl, params);
                            }
                        });
                    };

                    if (typeof window.vidible === 'undefined') {
                        var s = document.createElement("script");
                        s.type = "text/javascript";
                        s.src = 'http://cdn.vidible.tv/prod/player/js/' + json.jsVersion + '/o2-min.js';
                        head.appendChild(s);
                    }
                    script = document.createElement('script');

                    script.src = 'http://delivery.vidible.tv/aol?' + serverParams.join('&');

                    head.appendChild(script);
                };
            };

            window.FIVEMIN = window.FIVEMIN || {};
            FIVEMIN.OnePlayer = FIVEMIN.OnePlayer || {};
            FIVEMIN.OnePlayer.uad = FIVEMIN.OnePlayer.uad || {};
            FIVEMIN.OnePlayer.uad.isHtmlPlayer = FIVEMIN.OnePlayer.uad.isHtmlPlayer || function () {
                    return /android|blackberry|iphone|ipad|ipod|opera mini|iemobile/i.test(navigator.userAgent.toLowerCase());
                };
            FIVEMIN.o2 = FIVEMIN.o2 || {};
            FIVEMIN.o2.callbacks = FIVEMIN.o2.callbacks || [];
        }
    }
})();
