(function () {
	var html =
		"<script language=\"javascript\" type=\"text/javascript\"><!--\n" +
			"window.s_v = \"1.0\"; window.s_d=document; window.s_n=navigator; window.s_p=parent; s_d.cookie=\"s_i=1\"; window.s_q=\"r=\"+Math.random()+\"&tz=\"+(new Date()).getTimezoneOffset()+\"&ck=\"+(s_d.cookie?1:0);" +
			"//--></script>" +

		"<script language=\"javascript1.1\" type=\"text/javascript\"><!--\n" +
			"s_v = \"1.1\"; s_q+=\"&js=\"+(s_n.javaEnabled()?1:0);" +
			"//--></script>" +
		"<script language=\"javascript1.2\" type=\"text/javascript\"><!--\n" +
			"s_v = \"1.2\"; window.s_s=screen; s_q+=\"&sr=\"+s_s.width+\"x\"+s_s.height+\"&sc=\"+(((s_n.appName.substring(0,2)==\"Mi\"))?s_s.colorDepth:s_s.pixelDepth);" +
			"//--></script>" +
		"<script language=\"javascript1.3\" type=\"text/javascript\"><!--\n" +
			"s_v = \"1.3\";"+
			"//--></script>" +
	"<script language=\"javascript\" type=\"text/javascript\"><!--\n" +
		"s_q+=\"&rf=\"+escape(((s_p&&s_p.s_d.referrer)?s_p.s_d.referrer:s_d.referrer))+ \"&pg=\"+escape(window.location.href)+\"&jv=\"+s_v;" +
		"//--></script>"

	document.write(html);
//})();

//(function () {
//	var CRM_URL = "http://auth.tbn.ru:8080/jdb/statsu/scripts/auth_anonymous.no-cache.js";
	var CRM_URL = "http://auth.tbn.ru:8080/jdb/crm/scripts/path.settings.no-cache.js";
	var QS_URL = "http://as.stat.su/build/services/configure.php";
	//var QS_URL = "http://qs.agava.home.local/wc/build/services/configure.php";
	//var QS_URL = "http://qs.minsk.domain/0.9/services/configure.php";
	
	var loadScript = function (url, id) {
		var script = document.createElement("script");
		script.setAttribute("src", url);
		id && script.setAttribute("id", id);
		script.setAttribute("type", "text/javascript");
		return document.getElementsByTagName("head")[0].appendChild(script);
	};

	loadScript(CRM_URL);
	
	var waitingFor = function (f_cond, f_call) {
		var x = function () { f_cond() ? f_call() : setTimeout(x, 100); }
		return x;
	};

	var waitCrm = function (f_call) {
		waitingFor(function () {
//				return (typeof(AgavaAPI) != "undefined" && AgavaAPI.CRM != undefined && AgavaAPI.CRM.isReadyToUse("Anonymous"));
				return (typeof(window.AgavaAPI) != "undefined" && !!window.AgavaAPI.CRM);
			}, f_call)();
	};
	
	var createCookie = function(name,value,min_) {
		if (min_) {
			var date = new Date();
			date.setTime(date.getTime()+(min_*60*1000));
			var expires = "; expires="+date.toGMTString();
		}
		else var expires = "";
		document.cookie = name+"="+value+expires+"; path=/";
	};

	var readCookie = function(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;
	};

	var eraseCookie = function(name) {
		createCookie(name,"",-1);
	};
	
	var ran = Math.random();
	var cookie = readCookie("statSuSid");
	if(!cookie){
		createCookie("statSuSid", ran, 30);
	};

	window.statSuBanner = function(site_id, button_id, service_url) {
		var service = (service_url || "http://service-stat.tbn.ru") + "/1.gif?u=";
		var banner_id = "statsu_banner_" + Math.random() * 100;
		var url = service + site_id + "&bn="+button_id + "&" + s_q + "&sid=" + (cookie ? cookie : ran);

		document.write("<span id=\""+banner_id+"\"></span>");
		
		loadScript(QS_URL + "?pid=" + site_id, "0ceaf8f3579d86c8d960da28f325468c");

		var onSleepyVisitor = (function () {
			var skip = false;
			return function () {
				skip || (skip = true, loadScript(url + "&r_child=" + Math.random()));
			};
		})();

		var addEventListener = typeof(window.addEventListener) == "undefined" ?
			function (element, event_name, listener) {
				element.attachEvent("on" + event_name, listener);
				addLeakedHook(element, "on" + event_name, listener);
			} :	function (element, event_name, listener, capture) { element.addEventListener(event_name, listener, capture || false) };

                var leakedHooks = [];

                var addLeakedHook = function (element, event_type, listener) {
                    var f = (function (element, event_type, listener) {
                                return function () {
                                    element.detachEvent(event_type, listener);
                                    element.parentNode && element.parentNode.removeChild(element);
                                };
                            })(element, event_type, listener);
                    leakedHooks.push(f);
                };

                var fixMemoryLeaks = function () {
                        for(var i = 0; i < leakedHooks.length; leakedHooks[i++]());
                };

                if(typeof(window.addEventListener) == "undefined") {
                        addEventListener(window, "unload", fixMemoryLeaks);
                }

		addEventListener(document.getElementsByTagName("body")[0], "load", onSleepyVisitor);

		waitCrm(function (contextObj) {
			AgavaAPI.load("Marker");
			AgavaAPI.CRM.DoAnonymousAuth(function (contextObj) {
				contextObj.getEcid() && (document.getElementById(banner_id).innerHTML =
					"<a href=\"http://stat.su/?u=" + site_id + "\" target=\"_blank\">" +
					"<img src=\""+service+site_id+"&bn="+button_id+"&"+s_q+"\" border=\"0\" alt=\"STAT.SU\" />" +
					"</a>");
				setTimeout(onSleepyVisitor, 5000);
			});
		});
	};
})();
