/*
   1. проверяем наличие параметров pid/pid-priority в URL, если есть то сохраняем их в переменных. Если pid задан и pid-priority не задан, то в переменную приоритета пишем значение = 100;
   2. проверяем наличие параметров параметров pid/pid-priority в куках текущего сайта, если есть то сохраняем их в переменных только если приоритет больше значения уже прочитанного из URL;
   3. обновляем куки pid/pid-priority текущего сайта значениями из переменных;
   4. обновляем куки pid/pid-priority сайта 4game.ru значениями из переменных;
   5. обновляем ссылку на запускатр значением pid из переменной;
   6. обновляем значения pid/pid-priority виджета регистрации значениями из переменных;

 */

var pid = null;
var pidPriority = null;

function addEventBR(elem, evType, fn) {
    if (elem.addEventListener) {
        elem.addEventListener(evType, fn, false)
                return fn
    }

        iefn = function() { fn.call(elem) }
        elem.attachEvent('on' + evType, iefn)
    return iefn
};

addEventBR(window, 'load', setPid);

function setPid() {

	function g(n) {
		var result;
		result = (result = new RegExp('(?:^|; )' + encodeURIComponent(n) + '=([^;]*)').exec(document.cookie)) ? decodeURIComponent(result[1]) : null;
		return result;
	}

	if (window.location.search) {
		pid = window.location.search.match(/pid=([^\=&]+)[&]?/i) && window.location.search.match(/pid=([^\=&]+)[&]?/i)[1];
		pidPriority = window.location.search.match(/pid\-priority=([^\=&]+)[&]?/i) && window.location.search.match(/pid\-priority=([^\=&]+)[&]?/i)[1] || 100;
		if (pid) {
			var cPid = g("pid");
			var cPriority = parseInt(g("pid-priority") || 0);
			if (pidPriority >= cPriority) {
				var e = new Date(); e.setDate(e.getDate() + 90);
				document.cookie = "pid=" + pid + "; path=/; expires=" + e.toUTCString();
				document.cookie = "pid-priority=" + pidPriority + "; path=/; expires=" + e.toUTCString();
				(new Image).src = 'https://4game.ru/ptracker?pid=' + pid + '&pid\-priority=' + pidPriority;
			} else {
				pid = cPid;
				pidPriority = cPriority;
			}
		}
	}

	if (pid || (pid = g("pid"))) { // if window.location.search is empty getting pid from cookies
		var links = document.getElementsByTagName("a");
		for (var i = 0; i < links.length; i++) {
			var href = links[i].getAttribute("href");
			if (!href) continue; // skipping anchors
			href = href && href.replace(/(.*_(zapuskatr|installer)_S\d+P)\d+Z\.exe/i, "$1" + pid + "Z.exe") || '';
			links[i].setAttribute("href", href);
		}
	}
}

