﻿function createCookie(name, value, minutes) {
    if (minutes) {
        var date = new Date();
        date.setTime(date.getTime() + (minutes * 60 * 1000));
        var expires = "; expires=" + date.toGMTString();
    }
    else var expires = "";
    var domn = new String();
    domn = getRootDomain();
    domn = "." + domn;
    document.cookie = name + "=" + value + expires + "; domain=" + domn + "; path=/";
}

function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for (var i = 0; i < ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0) == ' ') c = c.substring(1, c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
    }
    return null;
}

function eraseCookie(name) {
    createCookie(name, "", -1);
}
function isEnableCookie() {
    createCookie("t_c", "10", 1);
    var t = readCookie("t_c");
    if (!t || t == undefined || t != "10")
        return false;
    return true;
}

function getRootDomain() {
    var d = new String();
    d = document.domain.toLowerCase();
    if (d.indexOf("www.") == 0)
        d = d.substring(4);
    if (d.indexOf(".") < d.lastIndexOf(".")) {
        if (!domainIsBlogOrSpecial(d)) {
            d = d.substring(d.indexOf(".") + 1);
        }
    }
    return d;
}

function domainIsBlogOrSpecial(d) {
    var bAr = new Array();
    bAr[0] = "blogspot.com";
    bAr[1] = "wordpress.com";
    for (var i in bAr) {
        if (d.indexOf(bAr[i]) > 0)
            return true;
    }
    return false;
}

function informergid_ES(s, u) {
    if (typeof (encodeURIComponent) == 'function') {
        if (u) return encodeURI(s);
        else return encodeURIComponent(s);
    } else {
        return escape(s);
    }
}

//-- Auto/Organic Sources and Keywords
var search_engine = new Array();
var search_enginekw = new Array();
search_engine[0] = "google"; search_enginekw[0] = "q";
search_engine[1] = "yahoo"; search_enginekw[1] = "p";
search_engine[2] = "msn"; search_enginekw[2] = "q";
search_engine[3] = "aol"; search_enginekw[3] = "query";
search_engine[4] = "aol"; search_enginekw[4] = "encquery";
search_engine[5] = "lycos"; search_enginekw[5] = "query";
search_engine[6] = "ask"; search_enginekw[6] = "q";
search_engine[7] = "altavista"; search_enginekw[7] = "q";
search_engine[8] = "netscape"; search_enginekw[8] = "query";
search_engine[9] = "cnn"; search_enginekw[9] = "query";
search_engine[10] = "looksmart"; search_enginekw[10] = "qt";
search_engine[11] = "about"; search_enginekw[11] = "terms";
search_engine[12] = "mamma"; search_enginekw[12] = "query";
search_engine[13] = "alltheweb"; search_enginekw[13] = "q";
search_engine[14] = "gigablast"; search_enginekw[14] = "q";
search_engine[15] = "voila"; search_enginekw[15] = "rdata";
search_engine[16] = "virgilio"; search_enginekw[16] = "qs";
search_engine[17] = "live"; search_enginekw[17] = "q";
search_engine[18] = "baidu"; search_enginekw[18] = "wd";
search_engine[19] = "alice"; search_enginekw[19] = "qs";
search_engine[20] = "yandex"; search_enginekw[20] = "text";
search_engine[21] = "najdi"; search_enginekw[21] = "q";
search_engine[22] = "aol"; search_enginekw[22] = "q";
search_engine[23] = "club-internet"; search_enginekw[23] = "q";
search_engine[24] = "mama"; search_enginekw[24] = "query";
search_engine[25] = "seznam"; search_enginekw[25] = "q";
search_engine[26] = "search"; search_enginekw[26] = "q";
search_engine[27] = "szukaj"; search_enginekw[27] = "szukaj";
search_engine[28] = "szukaj"; search_enginekw[28] = "qt";
search_engine[29] = "netsprint"; search_enginekw[29] = "q";
search_engine[30] = "google.interia"; search_enginekw[30] = "q";
search_engine[31] = "szukacz"; search_enginekw[31] = "q";
search_engine[32] = "yam"; search_enginekw[32] = "k";
search_engine[33] = "pchome"; search_enginekw[33] = "q";
search_engine[34] = "go.mail"; search_enginekw[34] = "q";
search_engine[35] = "myWebSearch"; search_enginekw[35] = "searchfor";
search_engine[36] = "images.google"; search_enginekw[36] = "imgurl";
search_engine[37]="bing";search_enginekw[37]="q";
search_engine[38] = "rambler"; search_enginekw[38] = "query";
search_engine[39] = "totul"; search_enginekw[39] = "q";
search_engine[40] = "nova.rambler"; search_enginekw[40] = "query";

function _uEC(s) {
    var n = "";
    if (!s || s == "") return "";
    for (var i = 0; i < s.length; i++) { if (s.charAt(i) == " ") n += "+"; else n += s.charAt(i); }
    return n;
}

// Версия flash
function informergid_Flash() {
    var f = "-", n = navigator;
    if (n.plugins && n.plugins.length) {
        for (var ii = 0; ii < n.plugins.length; ii++) {
            if (n.plugins[ii].name.indexOf('Shockwave Flash') != -1) {
                f = n.plugins[ii].description.split('Shockwave Flash ')[1];
                break;
            }
        }
    } else if (window.ActiveXObject) {
        for (var ii = 10; ii >= 2; ii--) {
            try {
                var fl = eval("new ActiveXObject('ShockwaveFlash.ShockwaveFlash." + ii + "');");
                if (fl) { f = ii + '.0'; break; }
            }
            catch (e) { }
        }
    }
    if (f.indexOf(' ', 0) > 0)
        f = f.substring(0, f.indexOf(' '));
    return f;
}

//Информация о браузере
// sr - разрешение экрана
// sr - биты цвета
// ul - язык
// je - включен лия java
// fl - версия flash
function informergid_BInfo() {
    var sr = "-", sc = "-", ul = "-", fl = "-", cs = "-", je = 1;
    var n = navigator;
    if (self.screen) {
        sr = screen.width + "x" + screen.height;
        sc = screen.colorDepth + "-bit";
    } else if (self.java) {
        var j = java.awt.Toolkit.getDefaultToolkit();
        var s = j.getScreenSize();
        sr = s.width + "x" + s.height;
    }
    if (n.language) { ul = n.language.toLowerCase(); }
    else if (n.browserLanguage) { ul = n.browserLanguage.toLowerCase(); }
    je = n.javaEnabled() ? 1 : 0;
    fl = informergid_Flash();
    return "&_sr=" + sr + "&_sc=" + sc + "&_ul=" + ul + "&_je=" + je + "&_fl=" + fl;
}

//запоминаем домен с которого пришли и страницу с которой пришел, а так же домен на котором находимся и страницу на которой сечас находится
// rdmn - домен с которого пришли
// rpg - страница с которой пришел
// dmn - домен на котром находимся
// pg - страница на котрой находимся
function informergid_Ref(_u, _ext) {
    var _ih = "r";
    if (!_u || _u == "")
        _ref = document.referrer;
    else {
        _ref = _u;
        _ih = "";
    }
    if (!_ref || _ref == "") return "";
    var i = 0, h, k, n;
    if ((i = _ref.indexOf("://")) < 0) return "";
    h = _ref.substring(i + 3, _ref.length);
    if (h.indexOf("/") > -1) {
        k = h.substring(h.indexOf("/"), h.length);
        if (!_ext) {
            if (k.indexOf("?") > -1) k = k.substring(0, k.indexOf("?"));
        }
        h = h.substring(0, h.indexOf("/"));
    }
    h = h.toLowerCase();
    n = h;
    if ((i = n.indexOf(":")) > -1) n = n.substring(0, i);

    if (h.indexOf("www.") == 0) h = h.substring(4, h.length);
    _r = "&" + _ih + "dmn=" + _uEC(h) + "&" + _ih + "pg=";
    if (!_ext)
        _r += _uEC(k);
    else
        _r += informergid_ES(k);
    return _r;
}


//находим по какому ключевому запросу пользователь пришел и откуда
// rrdmn - домен с которого пришли
// rrkw - ключевое слово по которому пришли
function informergid_Robot(t) {
    _ref = document.referrer;
    if (!_ref || _ref == "") return "";
    var i = 0, h, k;
    if ((i = _ref.indexOf("://")) < 0) return "";
    h = _ref.substring(i + 3, _ref.length);
    if (h.indexOf("/") > -1) {
        h = h.substring(0, h.indexOf("/"));
    }
    for (var ii = 0; ii < search_engine.length; ii++) {
        if (h.toLowerCase().indexOf(search_engine[ii].toLowerCase()) > -1) {
            if ((i = _ref.indexOf("?" + search_enginekw[ii] + "=")) > -1 || (i = _ref.indexOf("&" + search_enginekw[ii] + "=")) > -1) {
                k = _ref.substring(i + search_enginekw[ii].length + 2, _ref.length);
                if ((i = k.indexOf("&")) > -1) k = k.substring(0, i);
                if (t) return _uEC(k);
                else return "&rrdmn=" + _uEC(search_engine[ii]) + "&rrkw=" + _uEC(k);
            }
        }
    }
    return "";
}

function informergid_random() {
    return Math.ceil(Math.random() * 10000000000);
}

var informergid_a_name = "informergidmd_a";
var informergid_u_name = "informergidmd_u";
var informergid_s_name = "informergidmd_s";

function informergid_userrid() {
    var rid = readCookie(informergid_u_name);
    return rid.substring(rid.indexOf('-') + 1);
}
function informergid_auserrid() {
    var rid = readCookie(informergid_a_name);
    return rid.substring(rid.indexOf('-') + 1);
}
function informergid_sessrid() {
    var rid = readCookie(informergid_s_name);
    return rid.substring(rid.lastIndexOf('-') + 1);
}

var BrowserDetect = {
    init: function() {
        this.browser = this.searchString(this.dataBrowser) || "";
        this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "";
    },
    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"
		},
		{
		    prop: window.opera,
		    identity: "Opera"
		},
		{
		    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: "Internet 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"
		}
	]
};

function informergid_src() {
    informergid_id = informergid_getClientId();
    var statsrc = ''; //'http://v1.stream.informergid.md/client/?id='+informergid_id;
    var auserrid;
    var userrid;
    var sessrid;
    var absuser = 0;
    var newuser = 0;
    var newsess = 0;
    if (!readCookie(informergid_a_name))
    //это новый уникальный пользователь
    {
        absuser = 1;
        newuser = 1;
        newsess = 1;
        userrid = informergid_random();
        auserrid = userrid;
        sessrid = informergid_random();
		//informergid_a_name - абсолютно новый пользователь - создается на 1 год
        createCookie(informergid_a_name, informergid_id + "-" + userrid, 60 * (350 * 24));
		//informergid_u_name - новый пользователь - создается на 20 часов
        createCookie(informergid_u_name, informergid_id + "-" + userrid, 20 * 60);
    }
    else {
        auserrid = informergid_auserrid();
        if (!readCookie(informergid_u_name))
        //is new user
        {
            newuser = 1;
            newsess = 1;
            userrid = informergid_random();
            sessrid = informergid_random();
            createCookie(informergid_u_name, informergid_id + "-" + userrid, 20 * 60);
        } else
        //is not a new user
        {
            userrid = informergid_userrid();

            if (!readCookie(informergid_s_name))
            //is new session
            {
                newsess = 1;
                sessrid = informergid_random();
            }
            else
            //is not a new session
            {
                sessrid = informergid_sessrid();
            }
        }
    }
    createCookie(informergid_s_name, informergid_id + "-" + userrid + "-" + sessrid, 30);
    statsrc += '&ausrrid=' + auserrid;
    statsrc += '&usrrid=' + userrid;
    statsrc += '&sessrid=' + sessrid;
    statsrc += '&anewusr=' + absuser;
    statsrc += '&newusr=' + newuser;
    statsrc += '&newsess=' + newsess;
	statsrc += '&ip=' + ip;
    statsrc += informergid_BInfo();
    try {
        statsrc += '&brwsr=' + BrowserDetect.browser;
        statsrc += '&brwsrv=' + BrowserDetect.version;
    } catch (exc) {
        informergid_send_exception('BrowserDetect: ' + exc);
    }
    try {
        statsrc += informergid_Ref();
        statsrc += informergid_Ref(document.URL, 1);
    } catch (exc1) {
        informergid_send_exception('informergid_Ref: ' + exc1);
    }
    statsrc += informergid_Robot();
    statsrc += '&title=' + informergid_ES(document.title);
    statsrc += '&r=' + Math.random();

    return statsrc;
}
function informergid_void() { return; }
/*function push_informergid_stats()
{
var _src = informergid_src();
var i=new Image(1,1);
i.src=_src;
i.onload=function() { informergid_void(); }
}
*/

function informergid_executeScript() {
    informergid_id = informergid_getClientId();
    try {
        //if (informergid_id == 'moldovaorg') {
        if (window.self != window.top) {
            if (window.document.referrer && informergid_permitedFrame())
                return true;
            return false;
        }
        //}
    } catch (e1) {
    }
    return true;
}
function informergid_permitedFrame() {
    var r = window.document.referrer;
    r = r.replace("http://", "");
    r = r.replace("https://", "");
    var d = document.domain;
    if (d.indexOf("www.") == 0)
        d = d.substring(4);
    if (r.indexOf("www.") == 0)
        r = r.substring(4);
    if (r.indexOf(d) == 0)//same domain
        return true;
    if (window.document.referrer.indexOf("http://images.google") == 0)
        return true;
    return false;
}

function informergid_getClientId() {
    var tidt;
    try {
        tidt = informergid_id;
    } catch (_topex) {
        //informergid_send_exception('informergid_id nu-i: ' + document.domain);
        tidt = document.domain;
        tidt = tidt.replace("www.", "");
        tidt = tidt.replace(".", "");
        tidt = tidt.replace(".", "");
        //return;
        informergid_id = tidt;
    }
    return tidt;
}

function insertTop20Banner() {
    if (!isEnableCookie())
        return;

    if (!informergid_executeScript()) {
        //informergid_send_exception("Not Execute: " + document.domain + " | " + document.referrer);
        return;
    }

    informergid_id = informergid_getClientId();
    try {
        BrowserDetect.init();
    } catch (ex) {
        informergid_send_exception('BrowserDetect: ' + ex);
    }
    try {
        if (informergid_showimg == undefined)
            informergid_showimg = 1;
    } catch (e) {
        informergid_showimg = 1;
    }
    var top__src = '';
    try {
        top__src = informergid_src();
    } catch (ex_src) {
        try {
            informergid_send_exception('Src: ' + ex_src.message);
        } catch (_ex_src) {
            informergid_send_exception('Src: ' + ex_src);
        }
        return;
    }
    try {
        if (informergid_showimg != 0) {
            var _tp20txt = '<a href="http://www.informer.md/?site=' + informergid_id + '" target="_blank" ><img src="http://informermd.com/?informergid_id=' + informergid_id
    + top__src + '" alt="informer.md" title="Top20.md - Web Statistics!" border="0" width="88" height="31" /></a>';
            document.write(_tp20txt);
        } else {
            //var im = new Image();
            var _tp20txt2 = '<span style="display:none;"><a href="http://www.informer.md/?site=' + informergid_id + '" target="_blank" ><img src="http://informermd.com/?informergid_id=' + informergid_id
    + top__src + '" alt="informer.md" title="Top20.md - Web Statistics!" border="0" width="1" height="1" /></a></span>';
            document.write(_tp20txt2);
        }
    } catch (_ex) {
        try {
            informergid_send_exception("Mess: " + _ex.message);
        } catch (__e) {
            informergid_send_exception(_ex);
        }
    }
}
function informergid_send_exception(e) {
    var er_im = new Image();
    er_im.src = "http://informermd.com/exception.aspx?e=" + escape(e);
}
insertTop20Banner();
