if (!window.va_use_frame && window.viimo_carousel_setup){ var tns = (function (){ // keys if (!Object.keys) { Object.keys = function (object) { var keys = []; for (var name in object) { if (Object.prototype.hasOwnProperty.call(object, name)) { keys.push(name); } } return keys; }; } // ChildNode.remove (function () { "use strict"; if(!("remove" in Element.prototype)){ Element.prototype.remove = function(){ if(this.parentNode) { this.parentNode.removeChild(this); } }; } })(); var win = window; var raf = win.requestAnimationFrame || win.webkitRequestAnimationFrame || win.mozRequestAnimationFrame || win.msRequestAnimationFrame || function(cb) { return setTimeout(cb, 16); }; var win$1 = window; var caf = win$1.cancelAnimationFrame || win$1.mozCancelAnimationFrame || function(id){ clearTimeout(id); }; function extend() { var obj, name, copy, target = arguments[0] || {}, i = 1, length = arguments.length; for (; i < length; i++) { if ((obj = arguments[i]) !== null) { for (name in obj) { copy = obj[name]; if (target === copy) { continue; } else if (copy !== undefined) { target[name] = copy; } } } } return target; } function checkStorageValue (value) { return ['true', 'false'].indexOf(value) >= 0 ? JSON.parse(value) : value; } function setLocalStorage(key, value, access) { if (access) { localStorage.setItem(key, value); } return value; } function getSlideId() { var id = window.tnsId; window.tnsId = !id ? 1 : id + 1; return 'tns' + window.tnsId; } function getBody () { var doc = document, body = doc.body; if (!body) { body = doc.createElement('body'); body.fake = true; } return body; } var docElement = document.documentElement; function setFakeBody (body) { var docOverflow = ''; if (body.fake) { docOverflow = docElement.style.overflow; //avoid crashing IE8, if background image is used body.style.background = ''; //Safari 5.13/5.1.4 OSX stops loading if ::-webkit-scrollbar is used and scrollbars are visible body.style.overflow = docElement.style.overflow = 'hidden'; docElement.appendChild(body); } return docOverflow; } function resetFakeBody (body, docOverflow) { if (body.fake) { body.remove(); docElement.style.overflow = docOverflow; // Trigger layout so kinetic scrolling isn't disabled in iOS6+ // eslint-disable-next-line docElement.offsetHeight; } } // get css-calc function calc() { var doc = document, body = getBody(), docOverflow = setFakeBody(body), div = doc.createElement('div'), result = false; body.appendChild(div); try { var str = '(10px * 10)', vals = ['calc' + str, '-moz-calc' + str, '-webkit-calc' + str], val; for (var i = 0; i < 3; i++) { val = vals[i]; div.style.width = val; if (div.offsetWidth === 100) { result = val.replace(str, ''); break; } } } catch (e) {} body.fake ? resetFakeBody(body, docOverflow) : div.remove(); return result; } // get subpixel support value function percentageLayout() { // check subpixel layout supporting var doc = document, body = getBody(), docOverflow = setFakeBody(body), wrapper = doc.createElement('div'), outer = doc.createElement('div'), str = '', count = 70, perPage = 3, supported = false; wrapper.className = "tns-t-subp2"; outer.className = "tns-t-ct"; for (var i = 0; i < count; i++) { str += '
'; } outer.innerHTML = str; wrapper.appendChild(outer); body.appendChild(wrapper); supported = Math.abs(wrapper.getBoundingClientRect().left - outer.children[count - perPage].getBoundingClientRect().left) < 2; body.fake ? resetFakeBody(body, docOverflow) : wrapper.remove(); return supported; } function mediaquerySupport () { var doc = document, body = getBody(), docOverflow = setFakeBody(body), div = doc.createElement('div'), style = doc.createElement('style'), rule = '@media all and (min-width:1px){.tns-mq-test{position:absolute}}', position; style.type = 'text/css'; div.className = 'tns-mq-test'; body.appendChild(style); body.appendChild(div); if (style.styleSheet) { style.styleSheet.cssText = rule; } else { style.appendChild(doc.createTextNode(rule)); } position = window.getComputedStyle ? window.getComputedStyle(div).position : div.currentStyle['position']; body.fake ? resetFakeBody(body, docOverflow) : div.remove(); return position === "absolute"; } // create and append style sheet function createStyleSheet (media) { // Create the "; } unit_filer_code += unit_data.unit_filler.ad_code; } unit_code = unit_code.replace(/\$\$va_format\$\$/g, unit_format); unit_code = unit_code.replace(/\$\$unit_filler_ad\$\$/g, unit_filer_code); unit_code = unit_code.replace(/\$\$va_terms\$\$/g, vimo_14567611785.page.keywords().replace(/'/g, " ")); if (vimo_14567611785.preload && vimo_14567611785.preload.search_term_to_use != null){ unit_code = unit_code.replace(/\$\$va_search_terms\$\$/g, vimo_14567611785.preload.search_term_to_use); unit_code = unit_code.replace(/%24%24va_search_terms%24%24/g, vimo_14567611785.preload.search_term_to_use); } else{ unit_code = unit_code.replace(/\$\$va_search_terms\$\$/g, vimo_14567611785.page.keywords().replace(/'/g, " ")); unit_code = unit_code.replace(/%24%24va_search_terms%24%24/g, vimo_14567611785.page.keywords().replace(/'/g, " ")); } unit_code = unit_code.replace(/\$\$va_keywords\$\$/g, vimo_14567611785.page.keywords().replace(/'/g, " ")); unit_code = unit_code.replace(/\$\$va_sid\$\$/g, vimo_14567611785.layer.get_sid()); unit_code = unit_code.replace(/\$\$va_url\$\$/g, escape(document.location)); unit_code = unit_code.replace(/\$\$va_domain\$\$/g, escape(vimo_14567611785.page.domain())); unit_code = unit_code.replace(/\$\$va_title\$\$/g, document.title.replace(/'/g, " ")); unit_code = unit_code.replace(/\$\$va_cid\$\$/g, cid); unit_code = unit_code.replace(/\$\$va_image\$\$/g, "true"); var next_tier = "1"; if (vimo_14567611785.settings.curr_tier){ next_tier = (vimo_14567611785.settings.curr_tier+1).toString() } unit_code = unit_code.replace(/\$\va_next_tier\$\$/g, next_tier); unit_code = unit_code.replace(/\$\va_curr_test\$\$/g, curr_test); if (curr_unit_id && curr_unit_id != null){ unit_code = unit_code.replace(/\$\$va_curr_unit_id\$\$/g, curr_unit_id); } else{ unit_code = unit_code.replace(/\$\$va_curr_unit_id\$\$/g, ""); } if (wrap_code){ unit_code = ""+unit_code +"" } //vimo_14567611785.layer.layer_width = width+10; bug with location of tip //vimo_14567611785.layer.layer_height = height+39; if (frame == null){ frame = document.createElement('iframe'); if (frame.watch){ frame.watch('src',vimo_14567611785_prevent_change); } if(frame_container.className == "vimo_14567611785_footer"){ frame.className = 'footer_frame'; }else{ frame.className = 'flip_frame'; } frame_container.appendChild(frame); } vimo_14567611785.layer.set_iframe(frame, unit_code, width, height); } else { if (origin_unit_code != null && origin_unit_code.length > 0){ if (append_container){ var container_div = document.createElement('div'); container_div.className = "fyva_container"; container_div.innerHTML = origin_unit_code; frame_container.appendChild(container_div); } else{ frame_container.innerHTML = origin_unit_code; } } } } } else{ var curr_unit_id = null; if (window.va_curr_unit_id){ curr_unit_id = window.va_curr_unit_id; } if (curr_unit_id != 993 && curr_unit_id != 999 && curr_unit_id != 998 && curr_unit_id != 997 && curr_unit_id != 994){ var params = ''; var tr = "0"; if (origin_unit_code != null && origin_unit_code.length > 0){ // = document.getElementById("vimo_14567611785_layer_frame_c") if (origin_unit_code.startsWith(":eval:")){ origin_unit_code = origin_unit_code.replace(":eval:", "") eval(origin_unit_code); return; } } var sub_id = vimo_14567611785.layer.get_sub_id(); var sub_id_str = ""; if (sub_id != ''){ sub_id_str = "&subid=" + sub_id; } var unit_marker = vimo_14567611785.layer.unit_marker(); if (unit_marker != ''){ sub_id_str = sub_id_str + "&um=" + unit_marker; } var unit_code_url = vimo_14567611785.utils.protocol() +'//srv.imonomy.com/internal/serve?rf=framede&format=' + unit_format +'&img=true&tr=' + tr + '&sid=' + vimo_14567611785.layer.get_sid() + '&cid=' + cid + '&isps=' + vimo_14567611785.layer.shopping_site() + '&terms=' + escape(vimo_14567611785.page.keywords().replace(/'/g, " ")) + '&keywords='+escape(vimo_14567611785.page.keywords())+'&dm=' + escape(vimo_14567611785.page.domain()) + '&ttl=' + document.title.replace(/'/g, " ") + sub_id_str; if (curr_unit_id != null){ unit_code_url = unit_code_url + '&uid=' + curr_unit_id; } if (frame == null){ frame = document.createElement('iframe'); frame.className = 'flip_frame'; frame_container.appendChild(frame); } //ifrm = document.getElementById("vimo_14567611785_layer_frame") vimo_14567611785.layer.set_iframe(frame, null, width, height); frame.setAttribute("src", unit_code_url); if (frame.watch){ frame.watch('src',vimo_14567611785_prevent_change); } } } }, setCookie: function(c_name,value,exmilisec, path, cross_domain) { var exdate= null; if (exmilisec != null){ exdate=new Date(); exdate.setTime(exdate.getTime() + exmilisec); } var c_value=escape(value) + ((exmilisec==null) ? "" : "; expires="+exdate.toUTCString())+ ((path==null || typeof(path) == 'undefined') ? "" : "; path="+path); document.cookie=c_name + "=" + c_value; if (cross_domain){ var exmin = exmilisec/1000/60; var params = "exp="+exmin+"&ap=false&nm="+c_name+"&vl=" + escape(value); vimo_14567611785.preload.injectScript(vimo_14567611785.utils.protocol() +'//srv.imonomy.com/cookies/create.js?' + params); } }, getCookie : function(c_name) { if (document.cookie.length > 0) { var c_start = document.cookie.indexOf(c_name + "="); if (c_start != -1) { c_start = c_start + c_name.length + 1; c_end = document.cookie.indexOf(";", c_start); if (c_end == -1) c_end = document.cookie.length; return unescape(document.cookie.substring(c_start, c_end)); } } return ""; }, browser : { browser_type: "", version_id: "", type: function(){ if (this.browser_type == "") this.browser_type = this.searchString(this.dataBrowser) || "Unknown-Browser"; return this.browser_type; }, version: function(){ if (this.version_id == "") this.version_id = this.searchVersion(navigator.userAgent) || this.searchVersion(navigator.appVersion); return this.version_id; }, searchString: function(data) { for (var i = 0; i < data.length; i++) { var dataString = data[i].string; var dataProp = data[i].prop; this.versionSearchString = data[i].versionSearch || data[i].identity; if (dataString) { if (dataString.indexOf(data[i].subString) != -1) return data[i].identity; } else if (dataProp) return data[i].identity; } }, searchVersion: function(dataString) { var index = dataString.indexOf(this.versionSearchString); if (index == -1) { index = dataString.indexOf("rv"); // for IE 11 version search if (index == -1) return; return parseFloat(dataString.substring(index + 3)); // 3 represnt the length of the string "rv" + 1 } return parseFloat(dataString.substring(index + this.versionSearchString.length + 1)); }, dataBrowser: [ { string: navigator.vendor, subString: "Apple", identity: "Safari" }, { prop: window.opera, identity: "Opera" }, { string: navigator.userAgent, subString: "Firefox", identity: "Firefox" }, { string: navigator.userAgent, subString: "MSIE", identity: "Explorer", versionSearch: "MSIE" }, { string: navigator.userAgent, subString: "Trident", identity: "Explorer", versionSearch: "MSIE" }, { string: navigator.userAgent, subString: "Chrome", identity: "Chrome" } ] }, isRTL: function (){ styleProp = 'direction'; el = 'vimo_14567611785_layer'; var x = document.getElementById(el) || document.body; if (x.currentStyle) var y = x.currentStyle[styleProp]; else if (window.getComputedStyle) var y = document.defaultView.getComputedStyle(x,null).getPropertyValue(styleProp); return y == 'rtl'; }, isIE: function(){ return vimo_14567611785.utils.browser.type() == "Explorer"; }, isAndroid: function() { return navigator.userAgent.match(/Android/i); }, isBlackBerry: function() { return navigator.userAgent.match(/BlackBerry/i); }, isiOS: function() { return navigator.userAgent.match(/iPhone|iPad|iPod/i); }, isOperaMobile: function() { return navigator.userAgent.match(/Opera Mini/i); }, isWindowsMobile: function() { return navigator.userAgent.match(/IEMobile/i); }, isMobile: function() { return (vimo_14567611785.utils.isAndroid() || vimo_14567611785.utils.isBlackBerry() || vimo_14567611785.utils.isiOS() || vimo_14567611785.utils.isOperaMobile() || vimo_14567611785.utils.isWindowsMobile()); }, hasClass: function(el, cssClass, check_parent) { var has_class = el.className && new RegExp("(^|\\s)" + cssClass + "(\\s|$)").test(el.className); if (!has_class && check_parent && el.parentNode){ has_class = vimo_14567611785.utils.hasClass(el.parentNode, cssClass, check_parent); } return has_class; }, isDescendantFromId: function(el, id) { var has_id = el.id == id; if (!has_id && el.parentNode){ has_id = vimo_14567611785.utils.isDescendantFromId(el.parentNode, id); } return has_id; }, unbind: function (event, action, element) { if (element == null){ return; } if (element.removeEventListener) { element.removeEventListener(event, action, false); // Bad citizens. } else if (element.detachEvent) { element.detachEvent('on'+event, action); } else{ if (event == 'mousedown'){ element.onmousedown = null; } else if (event == 'mouseenter'){ element.onmouseenter = null; } else if (event == 'mouseleave'){ element.onmouseleave = null; } else if (event == 'mouseout'){ element.onmouseout = null; } else if (event == 'mouseover'){ element.omouseover = null; } } }, bind: function (event, action, element) { if (element == null){ return; } var action_func = null; if (event == 'mouseenter' || event == 'mouseover'){ action_func = function(){action(element)}; } else if (event == 'mouseleave' || event == 'mouseout'){ action_func = function(e){action(e, element)}; } else { action_func = action } if (element.addEventListener) { element.addEventListener(event, action_func, false); // Bad citizens. } else if (element.attachEvent) { element.attachEvent('on'+event, action_func); } else{ if (event == 'mousedown'){ element.onmousedown = action_func; } else if (event == 'mouseenter'){ element.onmouseenter = action_func; } else if (event == 'mouseleave'){ element.onmouseleave = action_func; } else if (event == 'mouseout'){ element.onmouseout = action_func; } else if (event == 'mouseover'){ element.omouseover = action_func; } } }, easing: { linear: function(progress) { return progress; }, quadratic: function(progress) { return Math.pow(progress, 2); }, swing: function(progress) { return 0.5 - Math.cos(progress * Math.PI) / 2; }, circ: function(progress) { return 1 - Math.sin(Math.acos(progress)); }, back: function(progress, x) { return Math.pow(progress, 2) * ((x + 1) * progress - x); }, bounce: function(progress) { for (var a = 0, b = 1, result; 1; a += b, b /= 2) { if (progress >= (7 - 4 * a) / 11) { return -Math.pow((11 - 6 * a - 11 * progress) / 4, 2) + Math.pow(b, 2); } } }, elastic: function(progress, x) { return Math.pow(2, 10 * (progress - 1)) * Math.cos(20 * Math.PI * x / 3 * progress); } }, animate_interval: function(options, start) { var timePassed = new Date - start; if (typeof(options.duration) == 'undefined'){ return; } var progress = timePassed / options.duration; if (progress > 1 || progress == Number.NaN || typeof(progress) == 'undefined') { progress = 1; } else if (progress < 1){ } else{ progress = 1; } options.progress = progress; options.counter = options.counter + 1; var delta = options.delta(progress); // other action (fadeIn/fadeOut) started if (delta == -999999){ return; } options.step(delta); if (progress == 1) { options.complete(); } else{ if (options.counter < 2000){ setTimeout(function() { vimo_14567611785.utils.animate_interval(options, start)}, options.delay || 10); } else{ // bug } } }, animate_internal: function(options) { var start = new Date; options.counter = 1; setTimeout(function() {vimo_14567611785.utils.animate_interval(options, start)}, options.delay || 10); /*var id = setInterval(function() { var timePassed = new Date - start; var progress = timePassed / options.duration; if (progress > 1) { progress = 1; } options.progress = progress; var delta = options.delta(progress); options.step(delta); if (progress == 1) { clearInterval(id); options.complete(); } }, options.delay || 10);*/ }, animate_left: function(element, from_location, to_location, time) { options = { duration: time, complete: function() { }}; var to = (to_location - from_location) > 0 ? 1 : 0 vimo_14567611785.utils.animate_internal({ duration: options.duration, delta: function(progress) { //progress = this.progress; return vimo_14567611785.utils.easing.swing(progress); }, complete: options.complete, step: function(delta) { if (from_location < 0){ delta = delta * -1; } element.style.left = (from_location + (delta * (from_location - to_location))) + 'px'; } }); }, animate_right: function(element, from_location, to_location, time) { options = { duration: time, complete: function() { }}; var to = (to_location - from_location) > 0 ? 1 : 0 vimo_14567611785.utils.animate_internal({ duration: options.duration, delta: function(progress) { //progress = this.progress; return vimo_14567611785.utils.easing.swing(progress); }, complete: options.complete, step: function(delta) { element.style.right = (from_location + (delta * (to_location - from_location))) + 'px'; } }); }, elements_action: {}, fadeOut: function(element, options) { // need to find a way to tell the fadeIn to stop action vimo_14567611785.utils.elements_action[element] = "fadeOut"; if (options == "fast") options = { duration: 300, complete: function() { }}; if (options == "normal") options = { duration: 800, complete: function() { }}; var to = 1; vimo_14567611785.utils.animate_internal({ duration: options.duration, delta: function(progress) { if (vimo_14567611785.utils.elements_action[element] != "fadeOut"){ return -999999; } //progress = this.progress; return vimo_14567611785.utils.easing.swing(progress); }, complete: options.complete, step: function(delta) { element.style.opacity = to - delta; if (element.style.opacity == 0){ element.style.display = "none"; } } }); }, fadeIn: function(element, options, complete) { // need to find a way to tell the fadeOut to stop action vimo_14567611785.utils.elements_action[element] = "fadeIn"; element.style.opacity = 0; if (element.style.display == "none"){ element.style.display = "block"; } var to = 0; if (options == "fast") options = { duration: 300, complete: function() { if (complete){ complete(); } }}; if (options == "normal") options = { duration: 800, complete: function() { if (complete){ complete(); } }}; vimo_14567611785.utils.animate_internal({ duration: options.duration, delta: function(progress) { if (vimo_14567611785.utils.elements_action[element] != "fadeIn"){ return -999999; } //progress = this.progress; return vimo_14567611785.utils.easing.swing(progress); }, complete: options.complete, step: function(delta) { element.style.opacity = to + delta; } }); }, getDocHeight: function () { var D = document; return Math.max( D.body.scrollHeight, D.documentElement.scrollHeight, D.body.offsetHeight, D.documentElement.offsetHeight, D.body.clientHeight, D.documentElement.clientHeight ); }, getHeight: function () { //var body = document.body, // html = document.documentElement; if (window.innerHeight){ return window.innerHeight } else{ return document.body.clientHeight; } //Math.max(body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight) }, getWidth: function () { var d = document, m = "clientWidth"; return Math.max(d.documentElement[m], d.body[m]) || 0 }, getScrollTop: function () { var d = document, m = "scrollTop"; return window.pageYOffset || d.documentElement[m] || d.body[m] || 0 }, getScrollLeft: function () { var d = document, m = "scrollLeft"; return window.pageXOffset || d.documentElement[m] || d.body[m] || 0 }, issue_unit_request: function(base_url, unit_cap, use_image, sub_id) { if (document.location.search.indexOf("noserve") > -1){ return; } var params = (document.charset ? '&charset='+document.charset : (document.characterSet ? '&charset='+document.characterSet : '')); if (document.context) { params = params + "&context=" + escape(document.context); } if(vimo_14567611785.settings && vimo_14567611785.settings.time_taken){ var timetaken = vimo_14567611785.utils.calcTimeDuration(); if (timetaken){ var preload_base = parseInt(vimo_14567611785.preload.trackServe_time); var request_base = new Date().getTime(); var base_result = request_base - preload_base; params = params + "&timepreload=" + preload_base + "&ptaken=" + base_result + "&ttaken=" + timetaken + "&ttkan_x=0&sum_ttkan_x=0"; } } if (vimo_14567611785.preload){ params = params + "&ttl=" + escape(vimo_14567611785.preload.title()); } if (document.referrer){ params = params + "&referer=" + escape(document.referrer); } if (vimo_14567611785.settings&& vimo_14567611785.settings.quality_type){ params = params + "&cqt=" + vimo_14567611785.settings.quality_type; } if (sub_id == undefined){ sub_id = vimo_14567611785.layer.get_sub_id(); } var sub_id_str = ""; if (sub_id != ''){ sub_id_str = "&subid=" + sub_id; } params = params + "&ln=" + vimo_14567611785.layer.language(); params = params + "&ct=" + vimo_14567611785.layer.connectionType(); params = params + "&w=" + vimo_14567611785.layer.w; params = params + "&h=" + vimo_14567611785.layer.h; params = params + "&pxr=" + vimo_14567611785.layer.pxr; params = params + "&ppi=" + vimo_14567611785.layer.ppi(); if (!vimo_14567611785.settings || !vimo_14567611785.settings.whitelist_site){ var is_adult = vimo_14567611785.page.isContainsBlackListWord(); if (is_adult){ params = params + "&adl=true"; } } var unit_marker = vimo_14567611785.layer.unit_marker(); if (unit_marker != ''){ sub_id_str = sub_id_str + "&um=" + unit_marker; } params = params + "&loc=" + escape(window.location) + "&dm=" + escape(window.location.host)+sub_id_str; if (window.viimo_req){ try{ params = params + "&rtbreq=" + escape(window.viimo_req); } catch(e){} } var search_term = "" if (vimo_14567611785.preload && vimo_14567611785.preload.search_term_to_use && vimo_14567611785.preload.search_term_to_use != null){ search_term = "&st=" + vimo_14567611785.preload.search_term_to_use; } var over_cap = ""; if (vimo_14567611785.preload){ if (vimo_14567611785.preload.over_cap){ over_cap = "&oc=true"; } } var referrer_param = "" var referrer_match = document.referrer.match('http[s]?://([a-zA-Z0-9-_\.]+)(:[0-9]+)?'); var referrer_host = null; if (referrer_match && referrer_match != null){ referrer_host = referrer_match[1]; referrer_host = referrer_host.replace("www.", "") } if (referrer_host != null){ referrer_param = "&dr=" + referrer_host; } var httpsite = "false"; if(location.protocol == "https:"){ httpsite = "true"; } unit_code_url = base_url + '&sid=' + vimo_14567611785.layer.get_sid() + '&terms=' + escape(vimo_14567611785.page.keywords().replace(/'/g, " ")) + '&httpsite='+httpsite+ '&keywords='+escape(vimo_14567611785.page.keywords())+'&dm=' + escape(vimo_14567611785.page.domain()) + search_term + over_cap + referrer_param+ params; if (use_image){ unit_code_url = unit_code_url + "&rim=true" vimo_14567611785.utils.injectImage(unit_code_url); } else { vimo_14567611785.utils.injectScript(unit_code_url); } }, injectScript: function(url, onload) { setTimeout(function(){ var script = document.createElement('sc' + 'ript'); script.async = true; script.setAttribute('type', 'text/jav' + 'ascri' + 'pt'); script.type = 'text/jav' + 'ascri' + 'pt'; script.src = url; if (onload){ vimo_14567611785.utils.bind('load', onload, script); } if (document.body) { document.body.appendChild(script); } else { var hs = document.getElementsByTagName('head'); if (hs && hs.length > 0) { var h = hs[0] h.appendChild(script); } } }, 0); }, injectImage: function(url){ var img = document.createElement("img"); img.setAttribute('src',url); img.setAttribute('width','0px'); img.setAttribute('height','0px'); img.setAttribute('style', 'display: none; position:absolute;'); img.className = 'vimo_14567611785_trk_img'; document.body.appendChild(img); } }; ////// // inpage vimo_14567611785.inPage = { window: function(){ try{ window.top.document; return window.top; }catch(e){ return window; } }, allow: false, execute: function(){ if (vimo_14567611785.settings.manipulate_settings){ vimo_14567611785.settings.manipulate_settings(); } var inpage_setup = window.viimo_inpage_setup_14567611785; if (!inpage_setup){ inpage_setup = window.viimo_inpage_setup; } if (!vimo_14567611785.inPage.allow || !inpage_setup){ return; } //disabled view tracking if(vimo_14567611785.settings.inpage_disabled_view_tracking && !window.inpage_disabled_view_tracking) { vimo_14567611785.settings.inpage_disabled_view_tracking = false; vimo_14567611785.page.trackServ(990, "imp", 1, undefined, undefined, false); } if (vimo_14567611785.settings.validate_blacklist){ if (vimo_14567611785.page.isContainsBlackListWord()){ vimo_14567611785.tracker.reportBlackList("init", ""); try{ if (window.vimo_14567611785_content_no_fill){ window.vimo_14567611785_content_no_fill(''); } else if (vimo_14567611785.inPage.window().vimo_14567611785_content_no_fill){ vimo_14567611785.inPage.window().vimo_14567611785_content_no_fill(''); } } catch (e) { } return; } else{ vimo_14567611785.tracker.reportNoneBlackList(); } } for (var i = 0; i < inpage_setup.length; i++) { var setup = inpage_setup[i]; if (!setup.handled){ setup.handled = true; vimo_14567611785.inPage.request_hook_inpage_action(document.getElementById(setup.element_id), setup.format, false, undefined, setup.use_rtb_direct, setup, setup.tier); } } }, request_hook: [], request_refresh: function(st, suffix, force){ var img = st; if (st.refresh_requested){ return; } st.refresh_requested = true; vimo_14567611785.layer.generic_refresh_counter += 1; // this hsould be call after the current ad was shown (shown is counter only after 5 sec of shown) if (force || (vimo_14567611785.layer.generic_refresh_counter < vimo_14567611785.settings.generic_refresh_count) || st.requested_on_noshow) { st.requested_on_noshow = false; vimo_14567611785.inPage.request_hook_inpage_action(st, st.unit_format, true, suffix); } }, refresh_replace_on_content_ready: function(st){ var is_loaded = vimo_14567611785.layer.checkIframeContent(st.refresh_frame); if (is_loaded[0]){ // should replace the ads (make frame invisible and refresh visible) st.inpage_frame.style.display = 'none'; st.inpage_frame = st.refresh_frame; st.inpage_frame.style.display = vimo_14567611785.settings.default_display; st.inpage_frame.style.visibility = 'visible'; st.refresh_requested = false; st.is_inpage_content_loaded = undefined; } else { if (is_loaded[2] == 998 && !st.is_content_loaded && vimo_14567611785.settings.refresh_noshow_chain_times > -1 && !st.requested_on_noshow && (!st.requested_on_noshow_count || st.requested_on_noshow_count 0){ // inject ad var ad_data = ads['ads'][0]; container_index = ad_data["placementCode"]; unit_data = { validate_blacklist: false, html: ad_data["ad"], format : ad_data["width"] + 'x' + ad_data["width"], width : ad_data["width"], height : ad_data["height"], cid: "inpage_rtb", unit_filler: undefined, pricing_model: "cpm", is_content_recommendation: false }; index = 0; } else { var inpage_setup = window.viimo_inpage_setup_14567611785; if (inpage_setup == undefined){ inpage_setup = window.viimo_inpage_setup; } // call passback; if (inpage_setup[container_index].passback_function){ inpage_setup[container_index].passback_function(); return } else if (inpage_setup[container_index].passback_html){ var format = inpage_setup[container_index].format; unit_sizes = format.split('x') unit_data = { validate_blacklist: false, html: inpage_setup[container_index].passback_html, format : format, width : unit_sizes[0], height : unit_sizes[1], cid: "inpage_rtb", unit_filler: undefined, pricing_model: "cpm", is_content_recommendation: false }; } else{ return } } vimo_14567611785.inPage.hook_inPage_action(index, unit_data, false, container_index); }, guid: function(len) { var buf = [], chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789', charlen = chars.length, length = len || 32; for (var i = 0; i < length; i++) { buf[i] = chars.charAt(Math.floor(Math.random() * charlen)); } return buf.join(''); }, request_hook_inpage_action: function(container_element, unit_format, is_refresh, suffix, use_rtb_direct, setup, tier, cid, product){ var container_index = vimo_14567611785.inPage.request_hook.length; vimo_14567611785.inPage.request_hook[container_index] = container_element; if (product == undefined){ if (setup && setup.product){ product = setup.product; } else if (container_element && container_element.product){ product = container_element.product; }else { product = 'inpage'; } } //auto passback variables if(vimo_14567611785.layer.elementsCounter.indexOf(product) == -1){ vimo_14567611785.layer.elementsCounter[product] = []; vimo_14567611785.layer.productCounter[product] = []; vimo_14567611785.layer.inPageAutopass_inited = true; } vimo_14567611785.layer.elementsCounter[product][container_index] = 0; vimo_14567611785.layer.productCounter[product][container_index] = 0; if (cid == undefined){ cid = "vimo_14567611785_"+ product; } if (unit_format == null){ return; } if (is_refresh){ cid = cid + "_rf"; } if (suffix){ cid = cid + suffix; } container_element.cid = cid; if (setup){ container_element.sub_id = setup.sub_id; } var ab_label = "&ab="; if (vimo_14567611785.ab_label) ab_label += vimo_14567611785.ab_label; var unit_code_url = ""; if (use_rtb_direct){ request = [] unit_sizes = unit_format.split('x') request_id = vimo_14567611785.inPage.guid(); bidderRequestId = '11' if (!setup.bid_floor){ setup.bid_floor = 0; } bids = [{ "sizes": [ [ unit_sizes[0], unit_sizes[1] ] ], "bidfloor": setup.bid_floor, "rtkid": "47375", "adtgid": "14567721976", "devices": [ "*" ], "placementCode": container_index, "params": { "publisher_id": vimo_14567611785.layer.get_sid() }, "adapter_tag_id": vimo_14567611785.layer.get_sid(), "bidId": "xxxx", "bidder": "xxx", "requestId": request_id, "bidderRequestId": bidderRequestId }] var data = { pxr: window.devicePixelRatio, page: window.location.href, domain: vimo_14567611785.page.domain(), siteRef: document.referrer, screen_w: vimo_14567611785.layer.w, screen_h: vimo_14567611785.layer.h, language: vimo_14567611785.layer.language(), keywords: vimo_14567611785.page.keywords(), connectiontype: vimo_14567611785.layer.connectionType(), requestId: request_id, bidderRequestId: bidderRequestId, callback: 'vimo_14567611785.inPage.request_rtb_callback', publisher_id: vimo_14567611785.layer.get_sid(), bids: encodeURIComponent(JSON.stringify(bids)) }; imonomy_domain = window.viimo_domain; // should be replaced var protocol = (document.location.protocol === 'https:') ? 'https' : 'http'; request.unshift(protocol + '://' + imonomy_domain + '/openrtb/hb/' + vimo_14567611785.layer.get_sid() + '?id=' + request_id); for (var key in data) { if (data.hasOwnProperty(key)) { request.push(key + '=' + encodeURIComponent(data[key])); } } unit_code_url = request.join('&') } else { unit_code_url = vimo_14567611785.utils.protocol() +'//srv.imonomy.com/internal/serve?v=2&format=' + unit_format + '&img=true&cid=' + cid + ab_label + '&isps=' + vimo_14567611785.layer.shopping_site() + '&rdn=vimo_14567611785_image_$$fid$$&fid=' + container_index +'&cb=vimo_14567611785.inPage.hook_inPage_action($$fid$$, vimo_14567611785_image_$$fid$$, ' + is_refresh + ', '+ container_index + ', "' + product+'")'; } var one_request_obj = { "unit_format": unit_format, "cid": cid, "fid": container_index }; container_element.unit_format = unit_format; if(vimo_14567611785.settings.one_request && !is_refresh){ return one_request_obj; } var client_unit = null; if (vimo_14567611785.settings.is_client && vimo_14567611785.utils.is_client_valid()){ if (tier == undefined){tier = 0;} client_unit = vimo_14567611785.utils.get_client_ad(product, unit_format, tier, cid); } if (client_unit != null){ client_unit.fid = container_index; var origin_ad_id = undefined; if (setup && setup.origin_ad_id){ origin_ad_id = setup.origin_ad_id; } vimo_14567611785.page.trackServ(client_unit.unit_id, undefined, cid, container_element.sub_id, origin_ad_id, undefined, unit_format, tier, true); client_unit.html = client_unit.html.replace('$$curr_tier$$', tier); vimo_14567611785.inPage.hook_inPage_action(container_index, client_unit ,is_refresh, container_index, product); } else { var sub_id = undefined; if (setup){ sub_id = setup.sub_id; } vimo_14567611785.utils.issue_unit_request(unit_code_url, undefined, undefined, sub_id); } vimo_14567611785.layer.incPassbackCounter(product); vimo_14567611785.inPage.check_inpageInview(container_element) }, hook_inPage_action: function(index, unit_data, is_refresh, container_index, product){ if (unit_data.validate_blacklist && !vimo_14567611785.settings.whitelist_site){ if (vimo_14567611785.page.isContainsBlackListWord()){ vimo_14567611785.tracker.reportBlackList(product, unit_data.unit_id); try{ if (window.vimo_14567611785_content_no_fill){ window.vimo_14567611785_content_no_fill(''); } else if (vimo_14567611785.inPage.window().vimo_14567611785_content_no_fill){ vimo_14567611785.inPage.window().vimo_14567611785_content_no_fill(''); } } catch (e) { } return; } else{ vimo_14567611785.tracker.reportNoneBlackList(); } } var st = vimo_14567611785.inPage.request_hook[index]; // create new iframe only in first time if (!is_refresh){ st.product = product; st.index = container_index; if (unit_data.height){ st.unit_height = unit_data.height; } if (unit_data.width){ st.unit_width = unit_data.width; } st.inpage_frame = document.createElement('iframe'); if (st.inpage_frame.watchatt){ st.inpage_frame.watchatt('src',vimo_14567611785_prevent_change); } st.inpage_frame.className = "vimo_14567611785_strip_frame"; st.inpage_frame.id = "vimo_14567611785_inpage_frame"; st.inpage_frame.st = st; st.inpage_frame.border = "0"; st.inpage_frame.frameBorder = 0; st.inpage_frame.marginWidth = 0; st.inpage_frame.marginHeight = 0; st.style.height = 0; st.inpage_frame.style.height = 0; st.inpage_frame.style.visibility = "visible"; if ((vimo_14567611785.settings.use_sandbox_iframes && !vimo_14567611785.utils.isMobile()) || (vimo_14567611785.utils.isMobile() && vimo_14567611785.settings.use_sandbox_iframes_mobile)){ if (unit_data.prevent_sandbox) { st.inpage_frame.setAttribute('use_sandbox', 'true'); } else { st.inpage_frame.setAttribute('sandbox','allow-pointer-lock allow-same-origin allow-scripts allow-popups'); } } st.appendChild(st.inpage_frame); st.show = function (internal) { var st_el = this; if (st_el.override_show){ st_el.override_show(); } else{ st_el.style.display = vimo_14567611785.settings.default_display; st_el.style.height = 'auto'; } if (vimo_14567611785.settings.time_to_refresh > 0 && vimo_14567611785.layer.generic_refresh_counter < vimo_14567611785.settings.generic_refresh_count){ var timer_interval = 8000; st_el.refresh_timer = setTimeout(function() { vimo_14567611785.inPage.request_refresh(st); }, vimo_14567611785.settings.time_to_refresh); } }; } // set frame code.... var unit_code = ""+unit_data.html +"" if (is_refresh){ st.refresh_frame = document.createElement('iframe'); if (st.refresh_frame.watchatt){ st.refresh_frame.watchatt('src',vimo_14567611785_prevent_change); } st.refresh_frame.className = "vimo_14567611785_strip_frame"; st.refresh_frame.style.display = 'none'; st.refresh_frame.st = st; if ((vimo_14567611785.settings.use_sandbox_iframes && !vimo_14567611785.utils.isMobile()) || (vimo_14567611785.utils.isMobile() && vimo_14567611785.settings.use_sandbox_iframes_mobile)){ if (unit_data.prevent_sandbox) { st.refresh_frame.setAttribute('use_sandbox', 'true'); } else { st.refresh_frame.setAttribute('sandbox','allow-pointer-lock allow-same-origin allow-scripts allow-popups'); } } st.appendChild(st.refresh_frame); vimo_14567611785.utils.setFrameCode(unit_code, unit_data, st, st.refresh_frame, false, false, true); } if (is_refresh){ vimo_14567611785.inPage.refresh_replace_on_content_ready(st); } else { vimo_14567611785.utils.setFrameCode(unit_code, unit_data, st, st.inpage_frame, false, false, true); vimo_14567611785.inPage.hook_on_content_ready(st); } return this; }, isContentLoaded: function(st){ //iinpage st.lastCheckInPageContentTime = st.lastCheckInPageContentTime || Date.now(); var force_reload_ads = (st.is_inpage_content_loaded && (Date.now() - vimo_14567611785.layer.lastCheckInPageContentTime >= vimo_14567611785.settings.recheck_content_loaded_interval * 1000)) && vimo_14567611785.settings.recheck_content_loaded_interval > -1 st.inpage_frame.product = st.product; st.inpage_frame.index = st.index; if (force_reload_ads || typeof(st.is_inpage_content_loaded) == 'undefined') { var is_loaded = vimo_14567611785.layer.checkIframeContent(st.inpage_frame); var check_load = st.is_inpage_content_loaded; if (st.is_inpage_content_loaded && !is_loaded[0] && st.notifyOnContentReadyChangeFalse){ st.notifyOnContentReadyChangeFalse(); } if (is_loaded[1] || is_loaded[0]) { if (is_loaded[1]){ st.is_inpage_content_loaded = is_loaded[0]; } if ((typeof(check_load) == 'undefined' || !check_load) && st.is_inpage_content_loaded) { vimo_14567611785.page.trackServ(975, "content_loaded", st.cid, st.sub_id, st.loaded_ad_id); if (window.vimo_content_loaded){ window.vimo_content_loaded(); } } if (is_loaded.length > 2){ st.loaded_ad_id = is_loaded[2]; } if (is_loaded.length > 3){ st.ad_refuse_refresh = is_loaded[3]; } if (typeof(st.loaded_ad_id) != "undefined" && st.loaded_ad_id == 998 && !st.is_content_loaded && vimo_14567611785.settings.refresh_noshow_chain_times > -1 && typeof(st.requested_on_noshow) == 'undefined'){ if (!st.requested_on_noshow_count){ st.requested_on_noshow_count = 0; } st.requested_on_noshow_count+=1; if (st.requested_on_noshow_count >=vimo_14567611785.settings.refresh_noshow_chain_times){ st.requested_on_noshow = true; } setTimeout(function(){ vimo_14567611785.inPage.request_refresh(st, "_ns", true); }, vimo_14567611785.settings.refresh_noshow_chain_interval) } if (!is_loaded[0]){ try{ if (window.vimo_14567611785_content_no_fill){ window.vimo_14567611785_content_no_fill(st.cid); } else if (vimo_14567611785.inPage.window().vimo_14567611785_content_no_fill){ vimo_14567611785.inPage.window().vimo_14567611785_content_no_fill(st.cid); } } catch (e) { } vimo_14567611785.layer.checkPassbackCode(st.product); } } else if (!is_loaded[0]){ st.is_inpage_content_loaded = undefined; } if (vimo_14567611785.settings.recheck_content_loaded_interval > -1) { delete st.lastCheckInPageContentTime; if (check_load && !st.is_inpage_content_loaded) { vimo_14567611785.page.trackServ(974, "revert_shown", st.cid, st.sub_id, st.loaded_ad_id); vimo_14567611785.inPage.hook_on_content_ready(st); st.is_inpage_content_loaded = undefined; } } return is_loaded[0]; } else { return st.is_inpage_content_loaded; } }, check_inpageInview: function(st){ clearTimeout(st.check_inview_timer); st.style.visibility = 'hidden'; st.style.display = vimo_14567611785.settings.default_display; var size = vimo_14567611785.image._getImgSize(st, true); var shown = size[4]; if (shown){ vimo_14567611785.page.trackServ(983, "ImageOnView", st.cid, st.sub_id); } else{ st.check_inview_timer = setTimeout(function() { vimo_14567611785.inPage.check_inpageInview(st); }, 400); } }, hook_on_content_ready: function(st){ var showed = false; if (vimo_14567611785.inPage.isContentLoaded(st)){ st.style.display = vimo_14567611785.settings.default_display; st.style.visibility = 'visible'; var shown = vimo_14567611785.image._getImgSize(st)[4]; try{ if (window.vimo_14567611785_content_loaded){ window.vimo_14567611785_content_loaded(st.cid); } else if (vimo_14567611785.inPage.window().vimo_14567611785_content_loaded){ vimo_14567611785.inPage.window().vimo_14567611785_content_loaded(st.cid); } } catch (e) { } if (st.notifyOnContentReady && !st.notify_on_content_ready){ st.notify_on_content_ready = true; st.notifyOnContentReady(); } if (shown){ st.show(); showed = true; if (!st.should_notify_on_show || (st.should_notify_on_show && st.should_notify_on_show())){ vimo_14567611785.page.trackServ(985, "shown", st.cid, st.sub_id, st.loaded_ad_id); } } } if (!showed) { setTimeout(function() { vimo_14567611785.layer.productCounter[st.product][st.index]= parseInt(vimo_14567611785.layer.productCounter[st.product][st.index]) + 1; vimo_14567611785.inPage.hook_on_content_ready(st); }, 400); } } } ///////////////////////// vimo_14567611785.preload = { trackServe_time : new Date().getTime(), encoded_partner: 14567611785, sub_id: window.viimo_sub_id, title: function(){ return document.title; }, } vimo_14567611785.settings = { validate_blacklist: false, default_ad_marker: '', dynamic_script_ads_marker: '', unit_marker_url: '', refresh_noshow_chain_interval: 1000, refresh_noshow_chain_times: 1, tmt_blacklist: eval(atob('')), manipulate_settings: false, recheck_content_loaded_interval: -1, Check_Bots : 10, client_ad_units_data: {"320x50": {"5222": {"is_content_recommendation": false, "pricing_model": null, "curr_test": "1", "format": "8", "validate_blacklist": false, "cid": "amp_inpage", "unit_id": "5222", "height": "50", "width": "320", "html": "\t\r\n\t\r\n", "fid": "", "u_id": "14567674573", "unit_filler": "null"}, "5220": {"is_content_recommendation": false, "pricing_model": null, "curr_test": "1", "format": "8", "validate_blacklist": false, "cid": "amp_inpage", "unit_id": "5220", "height": "50", "width": "320", "html": "\t\r\n\t\r\n", "fid": "", "u_id": "14567674575", "unit_filler": "null"}, "5226": {"is_content_recommendation": false, "pricing_model": null, "curr_test": "1", "format": "8", "validate_blacklist": false, "cid": "amp_inpage", "unit_id": "5226", "height": "50", "width": "320", "html": "\r\n\r\n\r\n", "fid": "", "u_id": "14567674561", "unit_filler": "null"}, "998": {"is_content_recommendation": false, "pricing_model": null, "curr_test": "1", "format": "8", "validate_blacklist": false, "cid": "amp_inpage", "unit_id": "998", "height": "50", "width": "320", "html": "", "fid": "", "u_id": "14567677261", "unit_filler": "null"}, "5224": {"is_content_recommendation": false, "pricing_model": null, "curr_test": "1", "format": "8", "validate_blacklist": false, "cid": "amp_inpage", "unit_id": "5224", "height": "50", "width": "320", "html": "\r\n\r\n\r\n", "fid": "", "u_id": "14567674563", "unit_filler": "null"}, "5424": {"is_content_recommendation": false, "pricing_model": null, "curr_test": "1", "format": "8", "validate_blacklist": false, "cid": "amp_inpage", "unit_id": "5424", "height": "50", "width": "320", "html": "\r\n\r\n\r\n
\r\n \r\n
", "fid": "", "u_id": "14567674779", "unit_filler": "null"}, "2976": {"pricing_model": "null", "curr_test": "0", "cid": "", "validate_blacklist": false, "format": "8", "unit_id": "2976", "height": "50", "is_content_recommendation": false, "html": "", "is_rtb": "true", "fid": "", "u_id": "", "unit_filler": "null", "width": "320"}}, "300x250": {"2553": {"pricing_model": "null", "curr_test": "0", "cid": "", "validate_blacklist": false, "format": "1", "unit_id": "2553", "height": "250", "is_content_recommendation": false, "html": "", "is_rtb": "true", "fid": "", "u_id": "", "unit_filler": "null", "width": "300"}, "5428": {"is_content_recommendation": false, "pricing_model": null, "curr_test": "1", "format": "1", "validate_blacklist": false, "cid": "amp_inpage", "unit_id": "5428", "height": "250", "width": "300", "html": "\r\n \r\n \r\n
\r\n \r\n
", "fid": "", "u_id": "14567674783", "unit_filler": "null"}, "998": {"is_content_recommendation": false, "pricing_model": null, "curr_test": "1", "format": "1", "validate_blacklist": false, "cid": "amp_inpage", "unit_id": "998", "height": "250", "width": "300", "html": "", "fid": "", "u_id": "14567677261", "unit_filler": "null"}, "5236": {"is_content_recommendation": false, "pricing_model": null, "curr_test": "1", "format": "1", "validate_blacklist": false, "cid": "amp_inpage", "unit_id": "5236", "height": "250", "width": "300", "html": "\t\r\n\t\r\n", "fid": "", "u_id": "14567674591", "unit_filler": "null"}, "5242": {"is_content_recommendation": false, "pricing_model": null, "curr_test": "1", "format": "1", "validate_blacklist": false, "cid": "amp_inpage", "unit_id": "5242", "height": "250", "width": "300", "html": "\r\n\r\n\r\n", "fid": "", "u_id": "14567674577", "unit_filler": "null"}, "4103": {"pricing_model": "null", "curr_test": "0", "cid": "", "validate_blacklist": false, "format": "1", "unit_id": "4103", "height": "250", "is_content_recommendation": false, "html": "", "is_rtb": "true", "fid": "", "u_id": "", "unit_filler": "null", "width": "300"}, "5240": {"is_content_recommendation": false, "pricing_model": null, "curr_test": "1", "format": "1", "validate_blacklist": false, "cid": "amp_inpage", "unit_id": "5240", "height": "250", "width": "300", "html": "\t\r\n\t\r\n", "fid": "", "u_id": "14567674579", "unit_filler": "null"}}}, client_chain: {"320x50": {"inpage": ["2976", "5220", "5222", "5424", "5224", "5224", "5226", "998"], "amp_inpage": ["2976", "5220", "5222", "5424", "5224", "5224", "5226", "998"], "carousel": ["2976", "5220", "5222", "5424", "5224", "5224", "5226", "998"], "amp_carousel": ["2976", "5220", "5222", "5424", "5224", "5224", "5226", "998"]}, "300x250": {"inpage": ["2553", "5236", "5428", "5240", "5240", "5242", "998"], "amp_inpage": ["2553", "5236", "5428", "5240", "5240", "5242", "998"], "carousel": ["4103", "5236", "5428", "5240", "5240", "5242", "998"], "amp_carousel": ["4103", "5236", "5428", "5240", "5240", "5242", "998"]}}, is_client: true, default_display: 'block', inpage_disabled_view_tracking: false, time_to_refresh: 55000 } if (typeof(vimo_14567611785.settings.tmt_blacklist) == 'undefined'){ vimo_14567611785.settings.tmt_blacklist = []; } vimo_14567611785.stop_words = new Array("a","about","above","across","after","afterwards","again","against","all","almost","alone","along","already","also","although","always","am","among","amongst","amoungst","amount","an","and","another","any","anyhow","anyone","anything","anyway","anywhere","are","aren't","around","as","at","be","became","because","become","becomes","becoming","been","before","beforehand","being","below","beside","besides","between","beyond","both","bottom","but","by","call","can","cannot","cant", "can't", "co","con","could","couldnt","de","describe","detail","do","done","down","due","during","each","eg","eight","either", "else","elsewhere","empty","enough","etc","even","ever","every","everyone","everything","everywhere","except","few","first","for","former","formerly", "found","from","front","full","further","get", "go","had","has","hasnt","have","he","hence","her","here","hereafter","hereby","herein","hereupon","hers","herself","him","himself","his","how","however","i","ie","if","in","indeed","into","is","isn't","it","its","itself","keep","last","latter","latterly","least","less","made","many","may","me","meanwhile","might","mill","mine","more","moreover","most","mostly","much","must","my","myself","name","namely","neither","never","nevertheless","next","no","nobody","none","noone","nor","not","nothing","now","nowhere","of","off","often","on","once","only","onto","or","other","others","otherwise","our","ours","ourselves","out","over","per","perhaps","rather","re","same","seem","seemed","seeming","seems","serious","several","she","should","since","sincere","so","some","somehow","someone","something","sometime","sometimes","somewhere","still","such","take","than","that","the","their","them","themselves","then","thence","there","thereafter","thereby","therefore","therein","thereupon","these","they","thick","thin","third","this","those","though","through","throughout","thru","thus","to","together","too","top","toward","towards","un","under","until","up","upon","us","very","via","was","we","well","were","what","whatever","when","whence","whenever","where","whereafter","whereas","whereby","wherein","whereupon","wherever","whether","which","while","whither","who","whoever","whole","whom","whose","why","will","with","within","without","would","yet","you","your","yours","yourself","yourselves","com","de","en","la","und","www","",">","|","dont", "didn't", "did", "new", "old","does", "doesn't", "cause", "causes", "for", "you're", "don't", "don`t", "cancel", "2nd", "it's", "used", "frequent", "things", "list", "best", "news", "pro", "reviews", "review","cheap", "2013","thing", "reason", "reasons", "mean", "means", "matter", "span", "quality", "you", "hey", "you'll", "we'll", "I'll", "+", "i`m", "i'm", ".", ",", "?", "-", "(", ")", ":", "&"); vimo_14567611785.inPage.allow = true; } try { if(vimo_14567611785.settings.Check_Bots != false || vimo_14567611785.settings.Check_Bots > 0) { var percent = vimo_14567611785.settings.Check_Bots == true ? 0 : vimo_14567611785.settings.Check_Bots; var rnd = (Math.random()*100); if (rnd < percent) { var pubID = vimo_14567611785.layer.get_sid(), dom = vimo_14567611785.page.domain(), subID = vimo_14567611785.layer.get_sub_id(), url = window.location.href, lang = vimo_14567611785.layer.language(); var c_check_url = ''; c_check_url = 'https://fqtag.com/tag/implement-r.js?org=F0PcXB03ZlblukgOY2nw&rt=display&fmt=banner&p=' + pubID + '&a=' + subID + '&rd=' + url + '&applng=' + lang + '&sl=1&fq=1'; vimo_14567611785.utils.injectScript(c_check_url); } } } catch (e) { } // set vimo for backword compatibale window.vimo = window.vimo_14567611785; vimo_14567611785.settings.client_ad_units_data = {"320x50": {"5222": {"is_content_recommendation": false, "pricing_model": null, "curr_test": "1", "format": "8", "validate_blacklist": false, "cid": "amp_inpage", "unit_id": "5222", "height": "50", "width": "320", "html": "\t\r\n\t\r\n", "fid": "", "u_id": "14567674573", "unit_filler": "null"}, "5220": {"is_content_recommendation": false, "pricing_model": null, "curr_test": "1", "format": "8", "validate_blacklist": false, "cid": "amp_inpage", "unit_id": "5220", "height": "50", "width": "320", "html": "\t\r\n\t\r\n", "fid": "", "u_id": "14567674575", "unit_filler": "null"}, "5226": {"is_content_recommendation": false, "pricing_model": null, "curr_test": "1", "format": "8", "validate_blacklist": false, "cid": "amp_inpage", "unit_id": "5226", "height": "50", "width": "320", "html": "\r\n\r\n\r\n", "fid": "", "u_id": "14567674561", "unit_filler": "null"}, "998": {"is_content_recommendation": false, "pricing_model": null, "curr_test": "1", "format": "8", "validate_blacklist": false, "cid": "amp_inpage", "unit_id": "998", "height": "50", "width": "320", "html": "", "fid": "", "u_id": "14567677261", "unit_filler": "null"}, "5224": {"is_content_recommendation": false, "pricing_model": null, "curr_test": "1", "format": "8", "validate_blacklist": false, "cid": "amp_inpage", "unit_id": "5224", "height": "50", "width": "320", "html": "\r\n\r\n\r\n", "fid": "", "u_id": "14567674563", "unit_filler": "null"}, "5424": {"is_content_recommendation": false, "pricing_model": null, "curr_test": "1", "format": "8", "validate_blacklist": false, "cid": "amp_inpage", "unit_id": "5424", "height": "50", "width": "320", "html": "\r\n\r\n\r\n
\r\n \r\n
", "fid": "", "u_id": "14567674779", "unit_filler": "null"}, "2976": {"pricing_model": "null", "curr_test": "0", "cid": "", "validate_blacklist": false, "format": "8", "unit_id": "2976", "height": "50", "is_content_recommendation": false, "html": "", "is_rtb": "true", "fid": "", "u_id": "", "unit_filler": "null", "width": "320"}}, "300x250": {"2553": {"pricing_model": "null", "curr_test": "0", "cid": "", "validate_blacklist": false, "format": "1", "unit_id": "2553", "height": "250", "is_content_recommendation": false, "html": "", "is_rtb": "true", "fid": "", "u_id": "", "unit_filler": "null", "width": "300"}, "5428": {"is_content_recommendation": false, "pricing_model": null, "curr_test": "1", "format": "1", "validate_blacklist": false, "cid": "amp_inpage", "unit_id": "5428", "height": "250", "width": "300", "html": "\r\n \r\n \r\n
\r\n \r\n
", "fid": "", "u_id": "14567674783", "unit_filler": "null"}, "998": {"is_content_recommendation": false, "pricing_model": null, "curr_test": "1", "format": "1", "validate_blacklist": false, "cid": "amp_inpage", "unit_id": "998", "height": "250", "width": "300", "html": "", "fid": "", "u_id": "14567677261", "unit_filler": "null"}, "5236": {"is_content_recommendation": false, "pricing_model": null, "curr_test": "1", "format": "1", "validate_blacklist": false, "cid": "amp_inpage", "unit_id": "5236", "height": "250", "width": "300", "html": "\t\r\n\t\r\n", "fid": "", "u_id": "14567674591", "unit_filler": "null"}, "5242": {"is_content_recommendation": false, "pricing_model": null, "curr_test": "1", "format": "1", "validate_blacklist": false, "cid": "amp_inpage", "unit_id": "5242", "height": "250", "width": "300", "html": "\r\n\r\n\r\n", "fid": "", "u_id": "14567674577", "unit_filler": "null"}, "4103": {"pricing_model": "null", "curr_test": "0", "cid": "", "validate_blacklist": false, "format": "1", "unit_id": "4103", "height": "250", "is_content_recommendation": false, "html": "", "is_rtb": "true", "fid": "", "u_id": "", "unit_filler": "null", "width": "300"}, "5240": {"is_content_recommendation": false, "pricing_model": null, "curr_test": "1", "format": "1", "validate_blacklist": false, "cid": "amp_inpage", "unit_id": "5240", "height": "250", "width": "300", "html": "\t\r\n\t\r\n", "fid": "", "u_id": "14567674579", "unit_filler": "null"}}}; vimo_14567611785.settings.client_chain = {"320x50": {"inpage": ["2976", "5220", "5222", "5424", "5224", "5224", "5226", "998"], "amp_inpage": ["2976", "5220", "5222", "5424", "5224", "5224", "5226", "998"], "carousel": ["2976", "5220", "5222", "5424", "5224", "5224", "5226", "998"], "amp_carousel": ["2976", "5220", "5222", "5424", "5224", "5224", "5226", "998"]}, "300x250": {"inpage": ["2553", "5236", "5428", "5240", "5240", "5242", "998"], "amp_inpage": ["2553", "5236", "5428", "5240", "5240", "5242", "998"], "carousel": ["4103", "5236", "5428", "5240", "5240", "5242", "998"], "amp_carousel": ["4103", "5236", "5428", "5240", "5240", "5242", "998"]}}; vimo_14567611785.settings.is_client = true; vimo_14567611785.settings.default_display = 'inline-block'; vimo_14567611785.settings.carousel_disabled_view_tracking = false; vimo_14567611785.settings.carousel_use_flat_chain = false; vimo_14567611785.settings.carousel_number_of_units = 3; (function () { var use_margin = false;//(window.screen.width > 330 && document.body.clientWidth > 330) var mockConfig = { limit: 1, product: 'carousel', manipulate_settings: false, carouselOptions: { 'edgePadding': use_margin ? 10 : 0, "fixedWidth": 300, "gutter": use_margin ? 10 : 0, 'controls': false, "autoplay": true, "autoplayTimeout": 2000, "autoplayButton": false, "autoplayButtonOutput": false, "speed": 400, "items": 1, 'nav': false, 'rewind': true, 'loop': false, /*'responsive': { '500': { 'items': 2 }, '900': { 'items': 3 } },*/ 'speed': 400 } }; /*--------- CLASS Update Locations Observer ---------*/ function Observer() { this.observers = []; } Observer.prototype.subscribe = function(func) { this.observers.push(func); }; Observer.prototype.unsubscribe = function(func) { this.observers = this.observers.filter(function(subscriber) { subscriber !== func; }); }; Observer.prototype.broadcast = function(payload) { for (var i = this.observers.length - 1; i >= 0; i--) { this.observers[i](payload); } }; /*--------- CLASS IMONOMY SETTINGS ---------*/ function ImonomySettings() { this.configInstance = false; } ImonomySettings.prototype.getConfigs = function() { var _self = this; return new Promise(function(resolve, reject) { resolve( _self.configInstance || ( _self.configInstance = _self.loadConfig() ) ); }); }; ImonomySettings.prototype.loadConfig = function() { return this.configInstance = mockConfig; }; /*--------- CLASS IMONOMY ---------*/ function Imonomy(brandObj, brandName) { this._brandObj = brandObj; this._brandName = brandName; this.stylesInserted = false; this.StripEdgeElems = []; this.CarouselElems = []; this.minimalSizes = { height: 100, width: 100 }; } Imonomy.prototype.insertStyles = function () { if ( this.stylesInserted ) { return; } var styleTag = document.createElement('style'); styleTag.innerHTML = '\ .im-carousel__slide {position:absolute;}\ .im-carousel-wrap iframe#vimo_inpage_frame {\ box-shadow: 0 2px 4px 0px rgba(0,0,0,0.3);\ min-height: auto !important;\ }\ .im-carousel-wrap {\ background: transparent;\ left: -200%;\ opacity: 0;\ overflow: hidden;\ position: absolute;\ z-index: -1;\ width: 100%;\ }\ .im-carousel {\ background: transparent;\ max-width: initial !important;\ }\ .im-carousel div{\ max-width: initial !important;\ }\ .im-carousel-wrap .close-btn {\ background: transparent;\ cursor: pointer;\ display: inline-block;\ position: relative;\ height: 18px;\ width: 18px;\ z-index: 5;\ }\ .im-carousel-wrap .im-carousel__actions {\ padding: 0 10px;\ text-align: right;\ display: none;\ }\ .im-carousel-wrap * {\ -webkit-box-sizing: border-box;\ -moz-box-sizing: border-box;\ -ms-box-sizing: border-box;\ -o-box-sizing: border-box;\ box-sizing: border-box;\ line-height: 1;\ }\ .im-carousel-wrap .close-btn::before,\ .im-carousel-wrap .close-btn::after {\ content: "";\ background: #000;\ border-radius: 5px;\ display: block;\ height: 2px;\ width: 100%;\ position: absolute;\ top: 50%;\ left: 50%;\ -webkit-transform: translate(-50%, -50%) rotate(315deg) scale(0.9);\ -moz-transform: translate(-50%, -50%) rotate(315deg) scale(0.9);\ -ms-transform: translate(-50%, -50%) rotate(315deg) scale(0.9);\ transform: translate(-50%, -50%) rotate(315deg) scale(0.9);\ }\ .im-carousel-wrap .close-btn::after {\ -webkit-transform: translate(-50%, -50%) rotate(45deg) scale(0.9);\ -moz-transform: translate(-50%, -50%) rotate(45deg) scale(0.9);\ -ms-transform: translate(-50%, -50%) rotate(45deg) scale(0.9);\ transform: translate(-50%, -50%) rotate(45deg) scale(0.9);\ }\ .im-carousel .slick-list {\ transition: all .3s linear;\ overflow: visible;\ padding: 10px 0px !important;\ }\ .im-carousel .slick-track {\ overflow: visible;\ }\ .im-carousel-wrap.imonomy-show {\ opacity: 1;\ z-index: 1;\ }\ .im-carousel-wrap.imonomy-hide {\ opacity: 0;\ z-index: -1;\ }\ .im-carousel .im-carousel__wrap-content {\ box-shadow: 0 2px 4px 0px rgba(0,0,0,.3);\ text-align: center;\ }\ .im-carousel .im-carousel__wrap-content > * {\ display: block;\ }\ .im-carousel .slide-img {\ max-width: 300px;\ width: 100%;\ }\ .slide-img .img {\ max-width: 100%;\ }\ '; document.head.appendChild(styleTag); this.stylesInserted = true; }; Imonomy.prototype.insertTag = function(tag) { document.getElementsByTagName('body')[0].appendChild(tag); }; Imonomy.prototype.removeTag = function(tag) { tag.parentNode.removeChild(tag); }; Imonomy.prototype.isInArray = function(value, array) { return array.indexOf(value) > -1; }; Imonomy.prototype.whichTransitionEvent = function() { var transitionType, fakeElem = document.createElement("fakeelement"), transitionsList = { "transition" : "transitionend", "OTransition" : "oTransitionEnd", "MozTransition" : "transitionend", "WebkitTransition" : "webkitTransitionEnd" }; for (transitionType in transitionsList){ if (fakeElem.style[transitionType] !== undefined) { return transitionsList[transitionType]; } } }; Imonomy.prototype.isInViewport = function (elem) { var elemPosition = elem.getBoundingClientRect(); var html = document.documentElement; return ( elemPosition.top >= 0 && elemPosition.left >= 0 && elemPosition.bottom <= (window.innerHeight || html.clientHeight) && elemPosition.right <= (window.innerWidth || html.clientWidth) ); }; Imonomy.prototype.getCoords = function(elem) { var box = elem.getBoundingClientRect(); var body = document.body; var docEl = document.documentElement; var scrollTop = window.pageYOffset || docEl.scrollTop || body.scrollTop; var scrollLeft = window.pageXOffset || docEl.scrollLeft || body.scrollLeft; var clientTop = docEl.clientTop || body.clientTop || 0; var clientLeft = docEl.clientLeft || body.clientLeft || 0; var top = box.top + scrollTop - clientTop; var left = box.left + scrollLeft - clientLeft; return { top: top, left: left }; }; Imonomy.prototype.filterSize = function(minimalSizes, elem) { return elem.clientWidth >= minimalSizes.width && elem.clientHeight >= minimalSizes.height; }; Imonomy.prototype.handleElems = function(potentialElems) { var imProduct = imonomySettings.configInstance.product; for (var i = 0; i < potentialElems.length; i++) { var elem = potentialElems[i]; switch(imProduct) { case "carousel": this.bindCarouselToElem(elem); } } }; Imonomy.prototype.bindCarouselToElem = function(elem) { var brand = this._brandObj, brandName = this._brandName; if ( elem.imonomyHandled ) { return; } if (!brand.settings.carousel_containers){ brand.settings.carousel_containers = [] } for (var i = 0; i < window.viimo_carousel_setup.length; i++) { var setup = window.viimo_carousel_setup[i]; if (setup.carousel_inited){ continue;} setup.carousel_inited = true; var carousel_details = this.buildCarousel(setup); var carouselWrap = carousel_details[0]; var carousel = carouselWrap.querySelector('.im-carousel'); brand.settings.carousel_containers.push(carousel_details[1]) var carousel_items_container = document.getElementById(setup.element_id); carouselWrap.carousel = carousel; elem.imCarouselWrap = carouselWrap; elem.imCarouselTag = carousel; carouselWrap.elem = elem; carousel.elem = elem; elem.imonomyHandled = true; carousel_items_container.appendChild(carouselWrap); this.initCarousel(elem, carouselWrap); } }; Imonomy.prototype.initCarousel = function(elem, carouselWrap) { elem.ImonomyCarousel = new ImonomyCarousel(elem); elem.ImonomyCarousel.init(); if ( !this.isInArray(elem, this.CarouselElems) ) { this.CarouselElems.push(elem); } }; Imonomy.prototype.buildCarousel = function(setup) { var brand = this._brandObj, brandName = this._brandName, carousel = document.createElement('div'), carouselTopActions = document.createElement('div'), carouselCloseBtn = document.createElement('div'), carouselWrap = document.createElement('div'), carouselSlide, carouselSlideAd, adsArr = imonomySettings.configInstance.adTags; carouselWrap.className = 'im-carousel-wrap'; carousel.className = 'im-carousel'; carouselTopActions.className = 'im-carousel__actions'; carouselCloseBtn.className = 'close-btn'; carouselTopActions.appendChild(carouselCloseBtn); carouselWrap.appendChild(carouselTopActions); carouselWrap.appendChild(carousel); // should append to the var format = "300x250"; var cid = brandName + "_carousel"; var ad_chain = [] if (setup.product && setup.product in brand.settings.client_chain["300x250"]){ ad_chain = brand.settings.client_chain["300x250"][setup.product]; } else { ad_chain = brand.settings.client_chain["300x250"]["carousel"]; } var carousel_chain = [] if ("MultiSize" in brand.settings.client_chain && "carousel" in brand.settings.client_chain["MultiSize"]){ carousel_chain = brand.settings.client_chain["MultiSize"]["carousel"]; } else { var carousel_number_of_units = brand.settings.carousel_number_of_units; if (carousel_number_of_units == -1) { carousel_number_of_units = ad_chain.length; } else { if (brand.settings.carousel_use_flat_chain) { carousel_number_of_units = Math.min(carousel_number_of_units, ad_chain.length); } } for (var j = 0; j < carousel_number_of_units; j++) { var index = 0; if (brand.settings.carousel_use_flat_chain) { index = j; } carousel_chain.push({"unit_id": ad_chain[index], "format": "300x250", "width": 300}) } } var carousel_containers = []; setup.ready_slides_count = 0; for (var j = 0; j < carousel_chain.length; j++) { var current_chain = carousel_chain[j]; if (current_chain.unit_id === '998') { continue; } var tier = j; // create container carouselSlide = document.createElement('div'); carouselSlideContent = document.createElement('div'); carouselSlide.className = 'im-carousel__slide'; carouselSlideContent.className = 'im-carousel__wrap-content'; carouselSlide.appendChild(carouselSlideContent); carousel.appendChild(carouselSlide); carouselSlide.notifyOnContentReadyChangeFalse = function(){ var st_el = this; st_el.notifyOnContentReady(true); } carouselSlide.notifyOnContentReady = function(hide){ var st_el = this; if (hide){ st_el.style.display = 'block'; setup.ready_slides_count -= 1; } else { st_el.style.display = 'inline-block'; setup.ready_slides_count += 1; } st_el.style.height = 'auto'; st_el.style.position = 'relative'; container_elem = document.getElementById(setup.element_id); container_elem.style.height = "260px"; container_elem.style.margin = "0px"; st_el.closest('.im-carousel').style.padding = "0 0 10px"; var clientWidth = container_elem.clientWidth; if (clientWidth <=0 ) { container_elem.style.width = "100%"; clientWidth = container_elem.clientWidth; if (clientWidth<=0){ clientWidth = 300 } } unit_width = current_chain.width; if ((setup.ready_slides_count * (unit_width+10)) < container_elem.parentElement.clientWidth){ container_elem.style.width = setup.ready_slides_count * (unit_width+10) + "px"; } else { container_elem.style.width = "100%"; } if (!setup.ready_slides_width){ setup.ready_slides_width = unit_width; } else { setup.ready_slides_width += unit_width; } new_item_count = Math.ceil(setup.ready_slides_width/clientWidth); if (container_elem.initedCarousel && new_item_count > 1){ container_elem.initedCarousel.updateItemCount(new_item_count-1) }else { container_elem.initedCarousel.updateItemCount(0); } } carousel_containers.push(carouselSlide) } return [carouselWrap, carousel_containers]; }; Imonomy.prototype.loadScript = function(url, tagName) { return new Promise(function (resolve, reject) { var script = document.createElement('script'); script.src = url; script.onload = function() { console.log("Script loaded and ready \n"+ url); resolve(this); }; script.onerror = function(error) { console.log("Script not loaded \n"+ url); reject(new Error(error)); }; document.getElementsByTagName(tagName)[0].appendChild(script); }); }; Imonomy.prototype.loadLink = function(url) { var link = document.createElement('link'); link.rel = 'stylesheet'; link.type = 'text/css'; link.href = url; document.head.appendChild(link); }; Imonomy.prototype.findElems = function(selectors) { var potentialElems = []; for (var i = 0; i < selectors.length; i++) { var selector = selectors[i], domElems = document.querySelectorAll(selector); domElems = Array.prototype.slice.apply(domElems); potentialElems = potentialElems.concat(domElems); } return potentialElems; }; Imonomy.prototype.limitElems = function(limit, potentialElems) { if ( limit <= -1 ) { return potentialElems; } return potentialElems.slice(0, limit); }; Imonomy.prototype.init = function() { var brand = this._brandObj, brandName = this._brandName, _self = this, potentialElems, configs; if (brand.settings.manipulate_settings){ brand.settings.manipulate_settings(); } if (!window.viimo_carousel_setup){ return; } //disabled view tracking if(!brand.settings.carousel_disabled_view_tracking) { brand.settings.carousel_disabled_view_tracking = true; brand.page.trackServ(990, "imp", 1, 'carousel', undefined, false); } if (brand.settings.validate_blacklist){ if (brand.page.isContainsBlackListWord()){ brand.tracker.reportBlackList("init", ""); try{ if (window[_brandName + '_content_no_fill']){ window[_brandName + '_content_no_fill'](''); } else if (brand.inPage.window()[_brandName + '_content_no_fill']){ brand.inPage.window()[_brandName + '_content_no_fill'](''); } } catch (e) { } return; } else{ brand.tracker.reportNoneBlackList(); } } imonomySettings.getConfigs() .then(function onSuccessConfigsLoad() { var manipulate_settings; configs = imonomySettings.configInstance; manipulate_settings = configs.manipulate_settings; if ( manipulate_settings && typeof manipulate_settings === 'function' ) { manipulate_settings(); } }) .then(function onSuccessManipulateSettingsLoad() { _self.insertStyles(); _self.loadLink('https://cdnjs.cloudflare.com/ajax/libs/tiny-slider/2.7.4/tiny-slider.css'); }) .then(function onSuccessVendorsLoad() { for (var i = 0; i < window.viimo_carousel_setup.length; i++) { var setup = window.viimo_carousel_setup[i]; if (setup.unit_requested){ continue;} setup.unit_requested = true; potentialElems = _self.findElems(["#" + window.viimo_carousel_setup[i].element_id]); potentialElems = _self.limitElems(configs.limit, potentialElems); if (potentialElems.length) { _self.handleElems(potentialElems); } var format = "300x250"; var cid = brandName + "_carousel"; var ad_chain = []; if (setup.product && setup.product in brand.settings.client_chain["300x250"]){ ad_chain = brand.settings.client_chain["300x250"][setup.product]; } else { ad_chain = brand.settings.client_chain["300x250"]["carousel"]; } var carousel_chain = [] if ("MultiSize" in brand.settings.client_chain && "carousel" in brand.settings.client_chain["MultiSize"]){ carousel_chain = brand.settings.client_chain["MultiSize"]["carousel"]; } else { var carousel_number_of_units = brand.settings.carousel_number_of_units; if (carousel_number_of_units == -1){ carousel_number_of_units = ad_chain.length; } else { carousel_number_of_units = Math.min(carousel_number_of_units, ad_chain.length) } for (var j = 0; j < carousel_number_of_units; j++) { var index = 0; if (brand.settings.carousel_use_flat_chain){ index = j; } carousel_chain.push({"unit_id": ad_chain[index], "format": "300x250", "width": 300}) } } if (setup.sub_id == undefined){ setup.sub_id = 'carousel'; } for (var j = 0; j < carousel_chain.length; j++) { if (carousel_chain[j].unit_id === '998') { continue; } var tier = 0; if (brand.settings.carousel_use_flat_chain){ tier = j; } // create container brand.settings.carousel_containers[i][j].should_notify_on_show = function(){ if (!this.parentElement.notified_on_show){ this.parentElement.notified_on_show = true; return true; } return false; }; var product = "carousel"; if (setup.product){ product = setup.product; } brand.inPage.request_hook_inpage_action(brand.settings.carousel_containers[i][j], carousel_chain[j].format, false, undefined, false, setup, tier, cid, product); } } }) .catch(function onFailLoad(error) { console.error('fail execute script'); console.error(error); }); }; /*--------- CLASS IMONOMY CAROUSEL ---------*/ function ImonomyCarousel(elem) { this._elem = elem; this.waitForPassback = 5000; this.sideOffset = 0; this.customSideOffset = 16; this.custonOffestTop = 5; this.custonOffestBottom = 35; this.windowWidth = 0; this.updateLocationsObserver = new Observer(); this.showedAdsId = []; } ImonomyCarousel.prototype = Object.create(Imonomy.prototype); ImonomyCarousel.prototype.constructor = ImonomyCarousel; ImonomyCarousel.prototype.init = function() { var _self = this, elem = _self._elem, carouselTag = elem.imCarouselTag, carouselConfigs = imonomySettings.configInstance.carouselOptions; if ( !_self.isWindowWidthAccepted(carouselTag) ) { return; } carouselConfigs.edgePadding = elem.clientWidth > 300 ? Math.min(10, Math.max(elem.clientWidth-300, 0)) : 0; carouselConfigs.gutter = elem.clientWidth > 300 ? Math.min(10, Math.max(elem.clientWidth-300, 0)) : 0; carouselConfigs.container = carouselTag; window.imonomySlider = elem.initedCarousel; elem.initedCarousel = tns(carouselConfigs); _self.setLocations(elem, carouselTag); _self.requestShowCarousel(elem, carouselTag); _self.bindListeners(elem, carouselTag); _self.updateLocationsObserver.subscribe(function onBroadcast(payload) { if ( payload.adTag.forceClosed ) { return; } _self.setLocations(payload.elem, payload.adTag); _self.requestPlayCarousel(payload.elem.imCarouselWrap, payload.elem.initedCarousel); }); //_self.correctLocation(carouselTag); }; ImonomyCarousel.prototype.defineSideOffset = function(carouselTag) { var _self = this, windowWidth = window.outerWidth, carouselObj = carouselTag.elem.initedCarousel.getInfo(), carouselCenterOffset = carouselObj.sideOffset, currentSlideIndex = carouselObj.index, currentSlide = carouselObj.slideItems[currentSlideIndex]; /* if it is not the first slide then return */ if ( currentSlideIndex ) { return; } if ( _self.windowWidth !== windowWidth ) { _self.windowWidth = windowWidth; _self.sideOffset = carouselCenterOffset ? carouselCenterOffset : currentSlide.getBoundingClientRect().left; } }; ImonomyCarousel.prototype.correctLocation = function(carouselTag) { if ( carouselTag.elem.initedCarousel.getInfo().slideCount <= 1 ) { return; } var _self = this, carouselObj = carouselTag.elem.initedCarousel.getInfo(), currentSlideIndex = carouselObj.index, lastSlideIndex = carouselObj.slideCountNew - 1; if ( currentSlideIndex === 0 ) { _self.defineSideOffset(carouselTag); _self.setSideOffset(carouselTag, 'start'); } else if ( currentSlideIndex === lastSlideIndex ) { _self.setSideOffset(carouselTag, 'end'); } else { _self.setSideOffset(carouselTag); } }; ImonomyCarousel.prototype.setSideOffset = function(carousel, edge) { var _self = this, sideOffset = _self.sideOffset - _self.customSideOffset, carouselList = carousel.parentElement; switch(edge) { case 'start': carouselList.style.setProperty('transform', 'translate(-' + sideOffset + 'px, 0)'); break; case 'end': carouselList.style.setProperty('transform', 'translate(' + sideOffset + 'px, 0)'); break; default: carouselList.style.setProperty('transform', 'translate(0, 0)'); } }; ImonomyCarousel.prototype.isImCarouselHeightAccepted = function(carousel) { return carousel.clientHeight >= 200; }; ImonomyCarousel.prototype.isWindowWidthAccepted = function() { return true;//window.innerWidth <= 480; }; ImonomyCarousel.prototype.setLocations = function(elem, adTag) { var elemPosition = this.getCoords(elem); elem.imCarouselWrap.style.top = "0px"; elem.imCarouselWrap.style.left = '0px'; }; ImonomyCarousel.prototype.requestShowCarousel = function(elem, adTag) { if ( adTag.forceClosed ) { return; } /*here can be some checking conditions before showing the inpage */ this.showCarousel(elem, adTag); }; ImonomyCarousel.prototype.requestPlayCarousel = function(adTag, initedCarousel) { if ( this.isInViewport(adTag) || (window != window.top) ) { initedCarousel.play(); } else { initedCarousel.pause(); } }; ImonomyCarousel.prototype.showCarousel = function(elem, adTag) { if ( adTag.shown ) { return; } elem.imCarouselWrap.classList.remove('imonomy-hide'); elem.imCarouselWrap.classList.add('imonomy-show'); adTag.shown = true; }; ImonomyCarousel.prototype.hideImCarousel = function(elem, adTag) { elem.imCarouselWrap.classList.remove('imonomy-show'); elem.imCarouselWrap.classList.add('imonomy-hide'); adTag.forceClosed = true; elem.initedCarousel.destroy(); }; ImonomyCarousel.prototype.fireBroadcast = function(elem, adTag) { this.updateLocationsObserver.broadcast({ elem: elem, adTag: adTag }); }; ImonomyCarousel.prototype.bindListeners = function(elem, carousel) { var _self = this, carouselCloseBtn = elem.imCarouselWrap.querySelector('.close-btn'); carouselCloseBtn.addEventListener('click', this.hideImCarousel.bind(this, elem, carousel)); document.addEventListener('scroll', this.fireBroadcast.bind(this, elem, carousel)); window.addEventListener('resize', this.fireBroadcast.bind(this, elem, carousel)); document.addEventListener('touchend', this.fireBroadcast.bind(this, elem, carousel)); elem.initedCarousel.events.on('transitionEnd', function () { if ( !_self.isImCarouselHeightAccepted(carousel) ) { return; } if ( carousel.forceClosed ) { return; } // _self.correctLocation(carousel); }); }; /*--------- RUN IMONOMY ---------*/ var imonomySettings = new ImonomySettings(), imonomy = new Imonomy(vimo_14567611785, 'vimo_14567611785'); imonomy.init(); })(); }