
(function (w) {
    /*tagconfig*/
    var adConfig = {}
    var config = 

{"playerType":1,"playerDelay":0,"playOnViewPerc":25,"errorLimit":10,"maxImp":9999,"maxRun":5,"midrolltime":5,"vastRetry":10,"loop":true,"playOnView":true,"customLogo":{},"checkTargeting":false,"logo":true,"posType":"in","posSelector":"#inRead","posDfp1x1":false,"adsControlPositioning":"distributed","tagId":"619f7f52336b3404bb36561c","position":"aniplayer_AV619f7f52336b3404bb36561c","soundButton":true,"channelId":"619f7eaa502f7d3af8112ae4","publisherId":"60cb1e00e7e2e978522e7136","templateType":"1","adServerDomain":"go1.aniview.com","playerVersion":8,"customcss":"#av-container #av-inner #gui #timeline #timeline-progress {background-color : #86c3f7;}","vitab":true,"width":100,"templateId":"619f7e5df390b62d85541647","scriptId":"AV619f7f52336b3404bb36561c","height":0,"adLabel":{"text":"Advertisement"},"timelineMode":"bottom","targetingDomain":"","autoContinue":true,"closeButtonStyle":{"position":"Default","outside":true},"autoPlay":true,"pauseButton":true,"maxWidth":758}
var b =
{}
var ab =
{}





    function merge(target, source) {
        if (typeof source !== 'object' || Array.isArray(source)) {
            return target;
        }
        for (var key in source) {
            var a = {};
            a[key] = {};
            if (typeof source[key] === 'object' && !Array.isArray(source[key])) {
                if (!target[key]) {
                    Object.assign(target, a);
                }
                merge(target[key], source[key]);
            } else {
                a[key] = source[key];
                Object.assign(target, a);
            }
        }
    }

    /*tagconfig*/
    var a = config;
    var st = {
        target: function () {
            try {if (this.sp) {
                return
            }
            var ua = navigator.userAgent || navigator.vendor || window.opera;
            var uav = navigator.appVersion ? navigator.appVersion.toLowerCase() : "";
            var op = 2;
            var isTablet = /(ipad|tablet|(android(?!.*mobile))|(windows(?!.*phone)(.*touch))|kindle|playbook|silk|(puffin(?!.*(IP|AP|WP))))/i.test(ua);
            if (isTablet && a.tabletAsDesktop) {

            } else if (/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(ua) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(ua.substr(0, 4))) {
                op = 1;
            } else {
                if (/web0s|webos|tizen/i.test(uav)) {
                    op = 4;
                }
            }
            this.op = op;} catch (reason) {(console.error || console.log)(reason);}
        },
        getConfig: function () {
            try {            function getRC(ab) {
                if (ab && ab.length) {
                    var inc = 0;
                    var rand = Math.floor(Math.random() * 100) + 1;
                    for (i = 0; i < ab.length; i++) {
                        b1 = ab[i];
                        inc += b1.sp;
                        if (b1.a && inc >= rand) {
                            return b1.a;
                        }
                    }
                }
            }

            var cfg = a;
            try {
                var i, b1, b1a;
                if (b && b.length > 0) {
                    st.target();
                    for (i = 0; i < b.length; i++) {
                        b1 = b[i];
                        if (b1.t && b1.t.p
                            && b1.t.p == this.op && b1.a) {
                            b1a = b1.a;
                            if (typeof abMobile !== 'undefined' && abMobile.length > 0) {
                                ab = abMobile
                            }
                            if (typeof adMobile !== 'undefined' && adMobile.length > 0) {
                                ad = adMobile
                            }
                            break;
                        }
                    }
                }
                else {
                    st.target();
                    if (this.op == 1){
                        if (typeof abMobile !== 'undefined' && abMobile.length > 0) {
                            ab = abMobile
                        }
                        if (typeof adMobile !== 'undefined' && adMobile.length > 0) {
                            ad = adMobile
                        }
                    }
                    else if (this.op == 2){
                        if (typeof abDesktop !== 'undefined' && abDesktop.length > 0) {
                            ab = abDesktop
                        }
                        if (typeof adDesktop !== 'undefined' && adDesktop.length > 0) {
                            ad = adDesktop
                        }
                    }
                }

                var r1 = getRC(ab) || b1a || cfg;
                if (typeof ad !== 'undefined' && ad.length > 0) {
                    var r2 = getRC(ad);
                    merge(r1, r2);
                }
                return r1;
            } catch (e) {

            }

            return cfg;} catch (reason) {(console.error || console.log)(reason);}
        },
        track: function(e, m) {
            try {if (!this.trackUrl) {
                var kvStr = "";
                var utmKeys = !adConfig.setUtm ? {} : {
                    utm_source: 'd86',
                    utm_medium: 'd87',
                    utm_term: 'd88',
                    utm_content: 'd89',
                    utm_campaign: 'd90'
                };
                for (var i = 1; i <= 20; i++) {
                    utmKeys["AV_CDIM" + i] = "cd" + i;
                }
                var searchParams = (location.href.split("?")[1] || "") + "&" + (adConfig.ref1 || "");
                var urlParams = {};
                searchParams = searchParams.split("&");
                searchParams.forEach(function (param) {
                    var kv = param.split("=");
                    var index = kv[0];
                    urlParams[index] = kv[1] || "";
                });
                Object.keys(utmKeys).forEach((key) => {
                    if (urlParams[key]) {
                        kvStr += "&" + utmKeys[key] + "=" + urlParams[key];
                    }
                });
                this.trackUrl = "https://" + (a.trackDomain || "track1.aniview.com") + "/track?pid=" + a.publisherId + "&cid=" + a.channelId + "&cb=" + Date.now() + "&r=" + location.host + "&stagid=" + (a.tagId || "") + "&stplid=" + (a.templateId || "") + "&d35=" + (a.sabTest || "") + "&d65=" + (a.nabTest || "") + "&d74=" + (a.sessionID || "") + kvStr + "&e=";
              }
              m = m ? m : "";
              (new Image()).src = this.trackUrl + e + m;
              } catch (reason) {(console.error || console.log)(reason);}
        },
        unique: function() {
            try {if (!this.win.aniplayerPos)
                this.win.aniplayerPos = {};
            this.win.aniplayerPos[a.position] = true;
            return true;} catch (reason) {(console.error || console.log)(reason);}
        },
        findWin: function() {
           try {try {
        try {
            var hasSelector = a.posSelector || a.posSelectors && a.posSelectors.length > 0;
            if ((!a.posDfp1x1 && !a.posClass && !hasSelector && !a.posId && !a.posTag) || (w === top) || !w.frameElement) {
                this.doc = document;
                this.win = w;
            } else if (a.posDfp1x1 && w.frameElement) {
                this.win = parent;
                this.doc = parent.document;
            } else {
                this.win = top;
                this.doc = top.document;
            }
        } catch (f) {
            this.doc = document;
            this.win = w;
        }
    } catch (reason) {
        (console.error || console.log)(reason);
    }} catch (reason) {(console.error || console.log)(reason);}
        },
        postCreate: function(el) {
            
        },
        retry: function() {
           try {
            var isFallback = false;
            if (this.retryCnt++ > this.timeout) {
                this.track("AV_M3", "&prbdres=nopos&sn=" + encodeURIComponent(location.href).slice(0, 400));
                return;
            }
            if (this.retryCnt == this.timeout && a.posFallbacks) {
                a.posSelectors = a.posFallbacks;
                isFallback = true;
                this.track("AV_M3", "&prbdres=fallbackpos&sn=" + encodeURIComponent(location.href).slice(0, 400));
            }
            var that = this;
            setTimeout(function() {
                that.position(isFallback);
            }, 250);} catch (reason) {(console.error || console.log)(reason);}
        },
        create: function(p, n) {
            try {var d1 = document.createElement("div");
            if(a.scriptId) {
		        d1.className = a.scriptId;
		    }
            d1.style.width = "100%";
            d1.style.margin = "0 auto";
            d1.style.maxWidth = "" + a.maxWidth + "px";
            var d2 = document.createElement("div");
            d2.id = "aniBox";
            d2.style.height = "1px";
            var d3 = document.createElement("div");
            d3.id = "" + a.position;
            if (p === this.doc || p === this.doc.head)
                p = this.doc.body;
            if (n) {
                p.insertBefore(d1, n);
            } else {
                p.appendChild(d1);
            }
            a.positionDiv = d3;
            a.refDiv = p;
            d1.appendChild(d2);
            d2.appendChild(d3);
            this.postCreate(d1);} catch (reason) {(console.error || console.log)(reason);}
        },
        position: function(isFallback) {
            try {
            function validateElements(els) {
                var ret = [];
                if (els) {
                    els.forEach(function(el) {
                        if(el && el.clientWidth > (a.minElWidth || 170)) {
                            ret.push(el);
                        }
                    });
                }
                return ret;
            }
            function findSelectors(selectors) {
                if (selectors && selectors.length > 0 && selectors.forEach) {
                    for (var i = 0; i < selectors.length; i++) {
                        var s = selectors[i];
                        try {
                            var q = st.doc.querySelectorAll(s.selector);
                            if (q.length > 0) {
                                return {
                                    q: isFallback ? validateElements(q): q,
                                    counter: s.counter
                                };
                            }
                        } catch (ex) {}
                    }
                }
                return {
                    q: []
                }
            }
            var p = this.doc;
            var isScp = false;
            var positionApiKey = "av_positionApi_" + a.scriptId;
            try {
                if ((!a.positionApi || typeof this.win[a.positionApi] !== "function")
                    && typeof top[positionApiKey] === "function") {
                    a.positionApi = positionApiKey;
                }
            } catch (ex) {}
            if (a.positionApi && typeof this.win[a.positionApi] === "function") {
                try {
                    p = this.win[a.positionApi](a, st);
                } catch (ex) {}
                if (!p) {
                    this.retry();
                    return;
                }
                if (a.posType != "in") {
                    n = p;
                    p = p.parentNode;
                }
            }
            if (a.posSelector || a.posSelectors) {
                try {
                    var sel1 = a.posSelector ? [{
                        selector: a.posSelector,
                        counter: a.posCounter
                    }] : []
                    var sel = findSelectors(sel1.concat(a.posSelectors || []));
                    var q = sel.q;
                    var l = 0;
                    if (sel.counter > 0) {
                        l = sel.counter - 1;
                    }
                    p = q[l] || q[q.length - 1];
                } catch (e) {
                    this.track("AV_M3", "&prbdres=badpos&sn=" + encodeURIComponent(location.href).slice(0, 400));
                    return;
                }
                if (!p) {
                    this.retry();
                    return;
                }
            }
            if (a.posId) {
                p = this.doc.getElementById(a.posId);
                if (!p) {
                    this.retry();
                    return;
                }
            }
            if (a.posTag) {
                var c = a.posTag.split("#");
                if (c && c.length == 2) {
                    var e = p.getElementsByTagName(c[0]);
                    if (e.length == 0) {
                        this.retry();
                        return;
                    }
                    p = e[Math.min(c[1] - 1, e.length - 1)];
                }
            }
            if (a.posClass) {
                var c = a.posClass.split("#");
                var e = 1;
                if (c.length == 2) {
                    e = c[1];
                }
                var f = p.getElementsByClassName(c[0]);
                if (f.length > 0) {
                    p = f[Math.min(e - 1, f.length - 1)];
                }
                if (!p) {
                    this.retry();
                    return;
                }
            }
            if (a.posDfp1x1 && window.frameElement) {
                n = window.frameElement.parentNode.parentNode;
                p = n.parentNode;
                if ((frameElement.clientHeight > 5 || document.body.clientHeight > 5) && !a.nohideIframe) {
                    frameElement.style.height = "0px";
                }
                if (a.posType == "after") {
                    n = n.nextElementSibling;
                }
            }
            var n;
            if (p === this.doc) {
                n = this.findScript();
                if (n) {
                    p = n.parentNode;
                }
            }
            if (p === this.doc.head) {
                n = null;
                p = this.doc;
            }
            if (a.posType && a.posType !== "in" && !n) {
                if (a.posType === "after" && p.nextElementSibling) {
                    n = p.nextElementSibling;
                } else {
                    n = null;
                }
                p = p.parentNode;
            }
            if (p) {
                if (!p.av_setpos) {
                    p.av_setpos = {};
                }
                if (!p.av_setpos[a.position]) {
                    p.av_setpos[a.position] = true;
                    a.position += "-" + Date.now();
                    this.create(p, n);
                    this.load();
                } else {
                    this.track("AV_M3", "&prbdres=duppos&sn=" + encodeURIComponent(location.href).slice(0, 400));
                }
            }} catch (reason) {(console.error || console.log)(reason);}
        },
        targetingFail: function() {
           try {this.track("AV_M3", "&prbdres=targeting");} catch (reason) {(console.error || console.log)(reason);}
        },
        checkTargeting: function(callbackSuccess, callbackFail) {
           try {var self = this;
            self.callbackSuccess = callbackSuccess;
            self.callbackFail = callbackFail;
            var adserverdomain = "tg1.aniview.com"
            try { adserverdomain = a.adServerDomain ? a.adServerDomain : this.config.adConfig.adServerDomain;} catch (e) {} 
            var targetingdomain = a.targetingDomain ? a.targetingDomain : adserverdomain;
            var publisherId = a.publisherId ? a.publisherId : this.config.adConfig.publisherId;
            var channelId = a.channelId ? a.channelId : this.config.adConfig.channelId;
            var targetingEndpoint = "https://" + targetingdomain + "/api/adserver/spt/targeting?AV_TAGID=" + a.tagId + "&AV_PUBLISHERID=" + publisherId + "&AV_CHANNELID=" + channelId + "&AV_URL=" + window.location.href;
            var xhr = new XMLHttpRequest();
            xhr.onload = function () {
                try {
                    var resp = JSON.parse(xhr.responseText);
                    if (typeof resp.result !== "undefined" && resp.result === 0) {
                        self.callbackFail();
                    } else {
                        self.callbackSuccess();
                    }
                } catch (e) {
                    self.callbackSuccess();
                }
            };
            xhr.open("GET", targetingEndpoint, true);
            xhr.send();} catch (reason) {(console.error || console.log)(reason);}
        },
        load: function() {
            try {var that = this;
            var errorCounter = 0;
            var scp = this.doc.createElement("script");
            scp.src = (a.baseJsUrl || "https://player.aniview.com/script/6.1/") + "player.js";
            function checkIfError() {
                if(errorCounter++ < 3) {
                    that.load();
                } else if(errorCounter < 15){
                    setTimeout(function(){
                        that.load();
                    }, 5000);
                }
            }
            scp.onload = function() {
                that.start();
            };
            scp.onerror = function() {
                a.baseJsUrl = "https://player.aniview.com/script/6.1/";
                checkIfError();
            };
            scp.async = true;
            this.doc.body.appendChild(scp)} catch (reason) {(console.error || console.log)(reason);}
        },
        postStart: function(p) {
            
        },
        getAttr: function() {
            try {if (a.scriptId) {
                var s = this.findScript();
                if (s) {
                    for (var i = 0, t = s.attributes; i < s.attributes.length; i++) {
                            if (t[i].nodeName && t[i].nodeName.indexOf("data-") == 0) {
                                var n = t[i].nodeName.replace(/^data-/, "").replace(/[-_]+?(\w)/g, function (_, letter) {
                                return letter.toUpperCase();
                            }).split(".");
                            var lastProp = n.pop();
                            try {
                                var innerConfig = n.reduce(function (a, prop) {
                                    return a[prop];
                                }, a);
                                innerConfig[lastProp] = t[i].nodeValue;
                            } catch(e) {
                            }
                        }
                    }
                    if (s.src) {
                        var p = s.src.indexOf("?");
                        if (p > 10) {
                            var r = (s.src.substring(p + 1, s.src.length));
                            a.ref1 = (a.ref1 || "") + "&" + (r || "");
                        }
                    }
                }
            }} catch (reason) {(console.error || console.log)(reason);}
        },
        start: function() {
            try {var b;
            try {
                if (this.win.avPlayer) {
                    b = new this.win.avPlayer(a);
                } else if (window.avPlayer) {
                    b = new avPlayer(a);
                } else {
                    b = new top.avPlayer(a);
                }
            } catch (exp) {
                b = new avPlayer(a);
            }
            this.p = b;
            if (this.pbjs && this.pbjs.preparePlayer) {
                this.pbjs.preparePlayer(b, st);
            }
            if(a.playerApi && typeof this.win[a.playerApi] === "function" ) {
               try{
                this.win[a.playerApi](a, b, st);
               } catch(ex){}
            }
            if (a.templateType != 0) {
                b.startTemplate(a.positionDiv.parentNode);
            }
            b.play(a);
            this.postStart(b);} catch (reason) {(console.error || console.log)(reason);}
        },
        preRun: function() {
            
        },
        run: function() {
            try {this.config = a = config = this.getConfig();
           this.a = a;
           this.adConfig = adConfig = (config.playerType == 2 ? config.adConfig : config) || {};
            this.getAttr();
            function generateUuid () {
                return 'xxxxxxxxxxxxxxxxxxxxxxxx'.replace(/[x]/g, function(c) {
                    var r = Math.random()*16|0, v = c == 'x' ? r : (r&0x3|0x8);
                    return v.toString(16);
                });
            }
            if (a.isSessionIdEnabled) {
                a.sessionID = generateUuid();
            }
            this.a = a
            if (window.av_s2sbid) {
                adConfig.s2sbid = window.av_s2sbid;
                window.av_s2sbid = undefined;
            }
            this.preRun();
            this.findWin();
            if (!this.doc.body) {
                this.doc.addEventListener("DOMContentLoaded", function() {
                    st.run();
                });
                if (this.bodyRetry > 0) {
                    setTimeout(function(){
                        st.run()
                    }, 250);
                    this.domRetry--;
                }
                return;
            }
            if (a.configApi && typeof this.win[a.configApi] === "function") {
                try {
                    this.win[a.configApi](a);
                } catch (ex) {
                }
            }
            if (this.unique() && !this.loaded) {
                this.loaded = true;
                this.track("playerLoaded");
                this.retryCnt = 0;
                this.timeout = a.posTimeout || 40;
                this.pbjs = window.aniviewRenderer && window.aniviewRenderer.units && window.aniviewRenderer.units[a.scriptId];
                if (this.pbjs && this.pbjs.prepareConfig)
                    this.pbjs.prepareConfig(a, st);
                if (a.checkTargeting) {
                    this.checkTargeting(this.position, this.targetingFail)
                } else {
                    this.position();
                }
            }} catch (reason) {(console.error || console.log)(reason);}
        },
        findScript: function() {
            try {        if (!this.scriptEl) {
            a.scriptApi = a.scriptApi || window["av_scriptApi_" + a.scriptId];
            if (a.scriptApi && typeof a.scriptApi === "function") {
                var scriptEl = a.scriptApi();
                if (scriptEl != null) {
                    this.scriptEl = scriptEl;
                }
            }
        }
        if (!this.scriptEl) {
            this.scriptEl = document.getElementById(a.scriptId);
        }
        return this.scriptEl;
    } catch (reason) {(console.error || console.log)(reason);}
        },
        domRetry: 20
    };
    if(a.playerDelay > 0) {
        setTimeout(function(){
            st.run();
        }, a.playerDelay * 1000);
    } else {
       st.run();
    }
})(window);
