window.__adl__callHook_Ept8JOyenWoTUL2r = null; window.__adl__onload_c_Ept8JOyenWoTUL2r = function __adl__onload_c_Ept8JOyenWoTUL2r(hash) { var clockerObject = window.LockyLuke || { }; function buildUrl(server, params) { var url = '//www.' + server + '/go.php?' + Object.keys( params ).filter(function(key) { return params[key] !== null && (""+params[key]).length; }).map( function(key) { return key + "=" + params[ key ]; } ).join( "&" ); return url; }; function psModify(url, oid) { var finalUrl = url + oid; if ( psDo ) { var psData = { source : psSource, target : finalUrl, retry : psRetry, force : psForce, referrer : location.href, alternativeMode : true }; return "https://" + domain + "/pitstop/?q=" + btoa( JSON.stringify( psData ) ); } else { return finalUrl; } } callHook( "onLoad" ); $clocker = document.createElement('div'); var $overlay = document.createElement('div'); offerList = []; if ( !offerList.length ) callHook( "onEmpty" ); var psSource = location.href; var psDo = false; var psRetry = false; var psForce = false; var clData = {"html":"##OFFERS##","ohtml":"","css":"","js":""}; var clocker_id = 887; var clocker_html = clData.html; var clocker_css = clData.css; var clocker_js = clData.js; var clocker_offer_html = clData.ohtml; var offer_html = ''; var clockerSID = ''; var clocker_trigger = 'onClick'; var domain = 'lockyluke.com'; var params = { view : 377538056, t : 'c', tid : 887, sid : '', sid2 : '', sid3 : '', advSub : '', advSub2 : '', advSub3 : '' }; var offerURL = buildUrl( 'lockyluke.com', params ) + '&oid='; oid_array = []; listID = 0; adlAPIurl = 'https://www.lockyluke.com/'; var closeClocker = function() { var clocker = document.getElementById('clocker-887'); var overlay = document.getElementById('clocker-overlay-887'); clocker.parentNode.removeChild(clocker); overlay.parentNode.removeChild(overlay); }; function saveFile (name, type, data) { if (data !== null && navigator.msSaveBlob) return navigator.msSaveBlob(new Blob([data], { type: type }), name); var a = document.createElement("a"); var url = window.URL.createObjectURL(new Blob([data], {type: type})); a.setAttribute("href", url); a.setAttribute("download", name); a.click(); window.URL.revokeObjectURL(url); } var checkCreditC = function(hash) { var r = new XMLHttpRequest(); r.open("POST", adlAPIurl + "creditcheck.php", true); r.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); r.onreadystatechange = function () { if (r.readyState != 4 || r.status != 200) return true; var response = JSON.parse(r.responseText); if (response['credited'] == true) { if (response['finishing_action'] == 'url') { window.location = response['finishing_action_value']; } else if (response['finishing_action'] == 'remove') { closeClocker(); } else if (response['finishing_action'] == 'js') { eval(response['finishing_action_value']); __adl__callHook_Ept8JOyenWoTUL2r( "onClose" ); } else if (response['finishing_action'] == 'dl') { var xhr = new XMLHttpRequest(); var fd = new FormData(); fd.append("t", "c"); fd.append("h", "Ept8JOyenWoTUL2r"); xhr.open("POST", adlAPIurl + "dl.php"); xhr.responseType = 'blob'; xhr.onreadystatechange = function() { if (xhr.readyState == 4) { closeClocker(); var blob = xhr.response; var contentDispo = xhr.getResponseHeader('Content-Disposition'); var fileName = contentDispo.match(/filename[^;=\n]*=((['"]).*?\2|[^;\n]*)/)[1].replace(/"/g, ""); saveFile(fileName, contentDispo, blob); } } xhr.send(fd); } clearInterval(check); } else if (response['credits'] > 0) { console.log('Not enough convs'); } }; r.send('t=cl&h=' + hash); }; checkCreditC(hash); check = setInterval(function() { callHook( "onCreditCheck" ); checkCreditC(hash); }, 60000); function populateHook() { if ( clockerObject ) { clockerObject.id = clocker_id; clockerObject.html = clocker_html; clockerObject.css = clocker_css; clockerObject.js = clocker_js; clockerObject.offer_html = clocker_offer_html; clockerObject.trigger = clocker_trigger; clockerObject.offers = offerList; clockerObject.url = offerURL; clockerObject.$overlay = $overlay; clockerObject.$clocker = $clocker; clockerObject.hookDoc = { "onEmpty" : { desc : "Called when no offers are available.", parameters : [ ], returns : "none." }, "onLoad" : { desc : "Called when LockyLuke is loaded.", parameters : [ ], returns : "none." }, "onRun" : { desc : "Called when the Locker is being processed and added to the page.", parameters : [ ], returns : "none." }, "onInitialize" : { desc : "Called when the LockyLuke hook object is populated by the Locker script.", parameters : [ ], returns : "none." }, "onCreditCheck" : { desc : "Called when a conversion check is performed.", parameters : [ ], returns : "none." }, "onClose" : { desc : "Called when the LockyLuke has been closed.", parameters : [ ], returns : "none." }, "onTransformCSS" : { desc : "Called when the CSS is transformed and added to the site.", parameters : [ { name : "css", desc : "The CSS to be transformed." }, { name : "transformation", desc : "An array containing two arrays where the first array specifices elements to find and the second array specifies elements to replace them with." } ], returns : "If this hook returns a value, the value is picked as the transformation result instead of internal result." }, "onTransformOffer" : { desc : "Called when an Offer is transformed and added to the site.", parameters : [ { name : "offer_html", desc : "The Offer HTML to be transformed." }, { name : "transformation", desc : "An array containing two arrays where the first array specifices elements to find and the second array specifies elements to replace them with." } ], returns : "If this hook returns a value, the value is picked as the transformation result instead of internal result." }, "onTransformHTML" : { desc : "Called when the Locker is transformed and added to the site.", parameters : [ { name : "locker_html", desc : "The Locker HTML to be transformed." }, { name : "transformation", desc : "An array containing two arrays where the first array specifices elements to find and the second array specifies elements to replace them with." } ], returns : "If this hook returns a value, the value is picked as the transformation result instead of internal result." } }; return true; } return false; }; function callHook(hookName, parameterA, parameterB) { if ( clockerObject && clockerObject[ hookName ] instanceof Function ) { return clockerObject[ hookName ]( parameterA, parameterB ); } return undefined; }; window.__adl__callHook_Ept8JOyenWoTUL2r = callHook; if ( populateHook() ) { callHook( "onInitialize" ); } var run = function() { callHook( "onRun" ); if (clocker_css !== '') { var $clocker_css = document.createElement('style'); $clocker_css.type = 'text/css'; var cssTransform = callHook( "onTransformCSS", clocker_css, [ ['#clocker-1'], ['#clocker-' + clocker_id] ] ); if ( !cssTransform ) { $clocker_css.innerHTML = clocker_css.stri_replace(['#clocker-1'], ['#clocker-' + clocker_id]); } else { $clocker_css.innerHTML = cssTransform; } document.body.appendChild($clocker_css); } if (Object.keys(offerList).length == 0) { return false; } else { $clocker.setAttribute('id', 'clocker-' + clocker_id); $clocker.setAttribute('class', 'clocker'); $clocker.style.display = 'none'; $overlay.style.display = 'none'; offerList.forEach(function(offer) { var offerTransform = callHook( "onTransformOffer", clocker_offer_html, [['##LINK##', '##URL##', '##NAME##'], [offerURL + offer.id, offerURL + offer.id, offer['name']]] ); if ( !offerTransform ) { offer_html += clocker_offer_html.stri_replace(['##LINK##', '##URL##', '##NAME##'], [psModify( offerURL, offer.id ), psModify( offerURL, offer.id ), offer['name']]); } else { offer_html += offerTransform; } oid_array.push(offer.id); }); var htmlTransform = callHook( "onTransformHTML", clocker_html, [['##OFFERS##', '##SID##'], [offer_html, clockerSID]] ); $clocker.innerHTML += clocker_html.stri_replace(['##OFFERS##', '##SID##'], [offer_html, clockerSID]); $overlay.setAttribute('id', 'clocker-overlay-' + clocker_id); $overlay.setAttribute('class', 'clocker-overlay'); document.body.appendChild($clocker); document.body.appendChild($overlay); // Execute deferred [].forEach.call( $clocker.querySelectorAll( "script" ), function (script) { if ( script.getAttribute("type").toLowerCase() == 'text/javascript' || script.getAttribute("type").toLowerCase() == 'javascript' ) { var f = new Function( "clockerObject", script.innerHTML ); f( clockerObject ); } }); if (clocker_trigger === 'onLoad') { $clocker.style.display = 'block'; $overlay.style.display = 'block'; } imprCountC(hash); } if (clocker_js !== '') { var $clocker_js = document.createElement('script'); $clocker_js.type = 'text/javascript'; $clocker_js.innerHTML = clocker_js; document.body.appendChild($clocker_js); } var $clockerCloseButtons = document.querySelector('.clocker-close'); if ($clockerCloseButtons) { $clockerCloseButtons.addEventListener('click', function(e) { $clocker.style.display = 'none'; $overlay.style.display = 'none'; callHook( "onClose" ); }, false); } } run(); return true; }; (function(hash){ var timer = 0; function load() { if (document.readyState==='complete' || document.readyState === 'interactive') { clearInterval(timer); __adl__onload_c_Ept8JOyenWoTUL2r(hash); } } timer = setInterval(load, 200); })('Ept8JOyenWoTUL2r'); if (typeof loadLocker === 'undefined') { function loadLocker(id) { document.getElementById('clocker-' + id).style.display = 'block'; document.getElementById('clocker-overlay-' + id).style.display = 'block'; } } if (typeof imprCountC === 'undefined') { function imprCountC(hash) { var r = new XMLHttpRequest(); r.open("POST", adlAPIurl + 'imprcount.php', true); r.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); r.send('t=cl&h=' + hash + '&view=377538056&url=' + encodeURIComponent(window.location.href) + '&o=' + oid_array.toString() + '&list=' + listID); } } String.prototype.stri_replace = function(find, replace) { var replaceString = this; var regex; for (var i = 0; i < find.length; i++) { regex = new RegExp(find[i], "gi"); replaceString = replaceString.replace(regex, replace[i]); } return replaceString; }