function setCookie(cname, cvalue, exdays) {
    var d = new Date();
    d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
    var expires = "expires=" + d.toUTCString();
    document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
}

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

function checkCookie() {
    var username = getCookie("cookie_id");
    if (username != "") {
        return true;
    } else {
        return false;
    }
}
var generateUid = function(separator) {
    var delim = separator || "-";

    function S4() {
        return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);
    }
    return (S4() + S4() + delim + S4() + delim + S4() + delim + S4() + delim + S4() + S4() + S4());
};

if (checkCookie() == true) {

} else {
    setCookie("cookie_id", generateUid(), 365);
}
if (getCookie("short_cookie_id") == "") {
    setCookie("short_cookie_id", generateUid(), 1);
}


/**
 * JavaScript Client Detection
 * (C) viazenetti GmbH (Christian Ludwig)
 */
(function(window) {
    {
        var unknown = '-';

        // screen
        var screenSize = '';
        if (screen.width) {
            width = (screen.width) ? screen.width : '';
            height = (screen.height) ? screen.height : '';
            screenSize += '' + width + " x " + height;
        }

        // browser
        var nVer = navigator.appVersion;
        var nAgt = navigator.userAgent;
        var browser = navigator.appName;
        var version = '' + parseFloat(navigator.appVersion);
        var majorVersion = parseInt(navigator.appVersion, 10);
        var nameOffset, verOffset, ix;

        // Opera
        if ((verOffset = nAgt.indexOf('Opera')) != -1) {
            browser = 'Opera';
            version = nAgt.substring(verOffset + 6);
            if ((verOffset = nAgt.indexOf('Version')) != -1) {
                version = nAgt.substring(verOffset + 8);
            }
        }
        // Opera Next
        if ((verOffset = nAgt.indexOf('OPR')) != -1) {
            browser = 'Opera';
            version = nAgt.substring(verOffset + 4);
        }
        // Edge
        else if ((verOffset = nAgt.indexOf('Edge')) != -1) {
            browser = 'Microsoft Edge';
            version = nAgt.substring(verOffset + 5);
        }
        // MSIE
        else if ((verOffset = nAgt.indexOf('MSIE')) != -1) {
            browser = 'Microsoft Internet Explorer';
            version = nAgt.substring(verOffset + 5);
        }
        // Chrome
        else if ((verOffset = nAgt.indexOf('Chrome')) != -1) {
            browser = 'Chrome';
            version = nAgt.substring(verOffset + 7);
        }
        // Safari
        else if ((verOffset = nAgt.indexOf('Safari')) != -1) {
            browser = 'Safari';
            version = nAgt.substring(verOffset + 7);
            if ((verOffset = nAgt.indexOf('Version')) != -1) {
                version = nAgt.substring(verOffset + 8);
            }
        }
        // Firefox
        else if ((verOffset = nAgt.indexOf('Firefox')) != -1) {
            browser = 'Firefox';
            version = nAgt.substring(verOffset + 8);
        }
        // MSIE 11+
        else if (nAgt.indexOf('Trident/') != -1) {
            browser = 'Microsoft Internet Explorer';
            version = nAgt.substring(nAgt.indexOf('rv:') + 3);
        }
        // FB APP
        else if(nAgt.indexOf('FBAN/') != -1){
            browser = 'Facebook APP';
            version =  '0' ;
        }
        // Other browsers
        else if ((nameOffset = nAgt.lastIndexOf(' ') + 1) < (verOffset = nAgt.lastIndexOf('/'))) {
            browser = nAgt.substring(nameOffset, verOffset);
            version = nAgt.substring(verOffset + 1);
            if (browser.toLowerCase() == browser.toUpperCase()) {
                browser = 'Unknown';
                // browser = navigator.appName;
            }
        }
        // trim the version string
        if ((ix = version.indexOf(';')) != -1) version = version.substring(0, ix);
        if ((ix = version.indexOf(' ')) != -1) version = version.substring(0, ix);
        if ((ix = version.indexOf(')')) != -1) version = version.substring(0, ix);

        majorVersion = parseInt('' + version, 10);
        if (isNaN(majorVersion)) {
            version = '' + parseFloat(navigator.appVersion);
            majorVersion = parseInt(navigator.appVersion, 10);
        }

        // mobile version
        var mobile = /Mobile|mini|Fennec|Android|iP(ad|od|hone)/.test(nVer);

        // cookie
        var cookieEnabled = (navigator.cookieEnabled) ? true : false;

        if (typeof navigator.cookieEnabled == 'undefined' && !cookieEnabled) {
            document.cookie = 'testcookie';
            cookieEnabled = (document.cookie.indexOf('testcookie') != -1) ? true : false;
        }

        // system
        var os = unknown;
        var clientStrings = [{
                s: 'Windows 10',
                r: /(Windows 10.0|Windows NT 10.0)/
            },
            {
                s: 'Windows 8.1',
                r: /(Windows 8.1|Windows NT 6.3)/
            },
            {
                s: 'Windows 8',
                r: /(Windows 8|Windows NT 6.2)/
            },
            {
                s: 'Windows 7',
                r: /(Windows 7|Windows NT 6.1)/
            },
            {
                s: 'Windows Vista',
                r: /Windows NT 6.0/
            },
            {
                s: 'Windows Server 2003',
                r: /Windows NT 5.2/
            },
            {
                s: 'Windows XP',
                r: /(Windows NT 5.1|Windows XP)/
            },
            {
                s: 'Windows 2000',
                r: /(Windows NT 5.0|Windows 2000)/
            },
            {
                s: 'Windows ME',
                r: /(Win 9x 4.90|Windows ME)/
            },
            {
                s: 'Windows 98',
                r: /(Windows 98|Win98)/
            },
            {
                s: 'Windows 95',
                r: /(Windows 95|Win95|Windows_95)/
            },
            {
                s: 'Windows NT 4.0',
                r: /(Windows NT 4.0|WinNT4.0|WinNT|Windows NT)/
            },
            {
                s: 'Windows CE',
                r: /Windows CE/
            },
            {
                s: 'Windows 3.11',
                r: /Win16/
            },
            {
                s: 'Android',
                r: /Android/
            },
            {
                s: 'Open BSD',
                r: /OpenBSD/
            },
            {
                s: 'Sun OS',
                r: /SunOS/
            },
            {
                s: 'Linux',
                r: /(Linux|X11)/
            },
            {
                s: 'iOS',
                r: /(iPhone|iPad|iPod)/
            },
            {
                s: 'Mac OS X',
                r: /Mac OS X/
            },
            {
                s: 'Mac OS',
                r: /(MacPPC|MacIntel|Mac_PowerPC|Macintosh)/
            },
            {
                s: 'QNX',
                r: /QNX/
            },
            {
                s: 'UNIX',
                r: /UNIX/
            },
            {
                s: 'BeOS',
                r: /BeOS/
            },
            {
                s: 'OS/2',
                r: /OS\/2/
            },
            {
                s: 'Search Bot',
                r: /(nuhk|Googlebot|Yammybot|Openbot|Slurp|MSNBot|Ask Jeeves\/Teoma|ia_archiver)/
            }
        ];
        for (var id in clientStrings) {
            var cs = clientStrings[id];
            if (cs.r.test(nAgt)) {
                os = cs.s;
                break;
            }
        }

        var osVersion = unknown;

        if (/Windows/.test(os)) {
            osVersion = /Windows (.*)/.exec(os)[1];
            os = 'Windows';
        }

        switch (os) {
            case 'Mac OS X':
                osVersion = /Mac OS X (10[\.\_\d]+)/.exec(nAgt)[1];
                break;

            case 'Android':
                osVersion = /Android ([\.\_\d]+)/.exec(nAgt)[1];
                break;

            case 'iOS':
                osVersion = /OS (\d+)_(\d+)_?(\d+)?/.exec(nVer);
                osVersion = osVersion[1] + '.' + osVersion[2] + '.' + (osVersion[3] | 0);
                break;
        }

        // flash (you'll need to include swfobject)
        /* script src="//ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js" */
        var flashVersion = 'no check';
        if (typeof swfobject != 'undefined') {
            var fv = swfobject.getFlashPlayerVersion();
            if (fv.major > 0) {
                flashVersion = fv.major + '.' + fv.minor + ' r' + fv.release;
            } else {
                flashVersion = unknown;
            }
        }
    }

    window.jscd = {
        screen: screenSize,
        browser: browser,
        browserVersion: version,
        browserMajorVersion: majorVersion,
        mobile: mobile,
        os: os,
        osVersion: osVersion,
        cookies: cookieEnabled,
        flashVersion: flashVersion
    };
}(this));

function postRequest(strURL) {
    var xmlHttp;
    if (window.XMLHttpRequest) { // Mozilla, Safari, ...
        var xmlHttp = new XMLHttpRequest();
    } else if (window.ActiveXObject) { // IE
        var xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlHttp.open('POST', strURL, true);
    xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
    xmlHttp.setRequestHeader('X-CSRF-TOKEN', 'rKvAmGq075PWecE5gunwY7ZHtiGTHgsPRFw0daEM');
    xmlHttp.onreadystatechange = function() {
        if (xmlHttp.readyState == 4) {

        }
    }
    xmlHttp.send(strURL);

}

var ipAddrs = [];

var title = document.getElementsByTagName("title")[0].innerHTML;
var url = encodeURIComponent(location.protocol + '//' + location.hostname + (location.port ? ":" + location.port : "") + location.pathname + (location.search ? location.search : ""));
var referrer_url = encodeURIComponent(document.referrer);
var os = jscd.os;
var os_version = jscd.osVersion;
var browser = jscd.browser;
var browser_version = jscd.browserMajorVersion;
var mobile = (jscd.mobile == false ? 0 : 1);
var screen_resolution = jscd.screen.trim();
var user_agent = navigator.userAgent;
var lat;
var lon;

var ping_url = 'https://analytic.greensoft.mn/gs?url=' + url + '&referrer_url=' + referrer_url + '&post_id=46671&post_type=1&os=' + os + '&os_version=' + os_version + '&browser=' + browser + '&browser_version=' + browser_version + '&is_mobile=' + mobile + '&screen=' + screen_resolution + '&user_agent=' + user_agent + '&cookie_id=' + getCookie("cookie_id") + '&short_cookie_id=' + getCookie("short_cookie_id") + '&site_id=1646&user_id=0';

/*
if (navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(showPosition);
} else {
    console.log("nto supported");
}


function showPosition(position) {
    lat = position.coords.latitude;
    lon = position.coords.longitude;
    console.log(lat + "," + lon);
    ping_url += ("&lat=" + lat + "&lon=" + lon);
}
*/

postRequest(ping_url);
