window.onload = function (e) {
  //
  psc_w_img();
  //
}
/*
	- create new image object with 'src' attribute set with all the data captured for this request
*/
function psc_w_img() {
	// - 
	var protocol	= 'http';
	var server		= 'www.webstatcounter.com';
	var path			= '/025ac4e796ed480ee60595ba0a56c0c0/ru?';
	// - create base URL
	var str = new String();
	var base_url = str.concat(protocol, '://', server, path);
	// - info
	var props = {
		document: new Array(
			new String("title"),
			new String("referrer")
		),
		location: new Array(
			new String("protocol"),
			new String("hostname"),
			new String("pathname"),
			new String("search")
		),
		navigator: new Array(
			new String("userAgent")
		)
	};
	// - get client data
	var doc_data = psc_doc_data(props);
	//   for cookie
	var cdomain = rv_ex_domain(document.domain);
	// - get/set visitor cookie
	var cookie = rv_get_cookie("025ac4e796ed480ee60595ba0a56c0c0");
	if (cookie == null) {
		cookie = rv_set_cookie(cdomain);
	}
	// - construct complete URL
  // -- also add param to tell if we have a static hit counter
	var qstr = doc_data.join("&").concat("&", "cookie=" + cookie, "&", "domain=" + cdomain, "&", "cst=1", "&", "hsc=" + __hasi("w-s-c_iid"));
	var full_url = base_url + qstr;
	//alert("Full URL: [" + full_url + "]");
	// - record the visit
  var img = new Image(1, 1);
  img.src = full_url;
  //
}

function rv_ex_domain(domain) {
	var matched;
	var parts = domain.split(".");
	var plen = parts.length;
	//
	switch (plen) {
		case (2):
			matched = "." + domain;
			break;
		case (4):
			matched = "." + parts[1] + parts[2] + parts[3];
			break;
		case (3):
			if (parts[0] == "www") {
				matched = "." + parts[1] + "." + parts[2];
			} else {
				// - a sub domain
				matched = "." + parts.join(".");
			}
			break;
		default:
			matched = domain;
	}
	//
	return matched;
}

function rv_img(url) {
	var img_tag = "<img src=\"" + url + "\">";
	return img_tag;
}

function psc_doc_data(props) {
	//
	var stor_idx = 0;
	var doc_data = new Array();
	//
	for (i in props) {
		var doc_props = props[i];
		for (var j in doc_props) {
			var set_var = eval(i + "." + doc_props[j].toString() + ";");
			doc_data[stor_idx] = doc_props[j].toLowerCase() + "=" + escape(set_var);
			stor_idx++;
		}
	}
	//
	return doc_data;
}

function rv_set_cookie(domain) {
	// - cookie value
	var cval  = new String(Math.random());
  // -- overwrite with sub string
  cval      = cval.substring(2, cval.length);
	// - cookie expiry
	// -- 2015
	var date = new Date();
	date.setFullYear(2015);
	//
	var cookievars = {
		"025ac4e796ed480ee60595ba0a56c0c0": cval,
		expires:			    date.toLocaleDateString(),
		path:					    "/",
		domain:				    domain
	};
	//
	var cvs = new Array();
	var idx = 0;
	for (ck in cookievars) {
		cvs[idx] = ck + "=" + cookievars[ck];
		idx++;
	} 
	document.cookie = cvs.join(";");
	//
	return cval;
}

function rv_get_cookie(name) {
	var start = document.cookie.indexOf(name + "=");
	var len = start + name.length + 1;
	//
	if ((!start) 
		&& (name != document.cookie.substring(0, name.length))) {
		return null;
	}
	//
	if (start == -1) return null;
	var end = document.cookie.indexOf(";", len);
	if (end == -1) end = document.cookie.length;
	return unescape(document.cookie.substring(len, end));
}

function __hasi (id) {
  var f = (document.images[id]) ? "Y" : "N";
  return f;
}
