window._tr = (function (_tr) {
	var url = '//tr.ondemandhosting.info/tr.gif';
	var qid = 'cid=c510b680aea677c0b057b328&pid=' + (''+Math.random()).substr(2);

	function trackImg(q) {
		var img = new Image();
		var u = url + '?' + qid + q + '&z=' + (''+Math.random()).substr(2);
		img.src = u.substr(0, 2048);
	}

	function trackXhr(q, cb) {
		var xhr, async = true;
		if (window.XDomainRequest) {
			xhr = new XDomainRequest();
		} else if (window.XMLHttpRequest) {
			xhr = new XMLHttpRequest();
		} else {
			trackImg(q);
			if (typeof cb === 'function') {
				setTimeout(cb, 4);
			}
			return;
		}
		if (cb === true) {
			async = false;
			cb = null;
		}
		if (!async && window.XDomainRequest) {
			trackImg(q);
			return;
		}
		xhr.open('POST', url, async);
		xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		if (cb) {
			if (window.XDomainRequest) {
				xhr.onload = cb;
			} else {
				xhr.onreadystatechange = function () {
					if (xhr.readyState === 4) cb();
				}
			}
		}
		try {
			xhr.send(qid + pid + q + '&z=' + Math.random());
		} catch (e) {
			trackImg(q);
			cb && setTimeout(cb, 4);
		}
	}

	function trackEvent(arg) {
		return '&t=event&ec=' + encodeURIComponent(arg[1])
			+ '&ea=' + encodeURIComponent(arg[2])
			+ (arg[3] ? '&el=' + encodeURIComponent(arg[3]) : '')
			+ (arg[4] ? '&ev=' + encodeURIComponent(arg[4]) : '');
	}

	function trackPage() {
		return '&dl=' + encodeURIComponent(window.location.href)
			+ '&dt=' + encodeURIComponent(document.title)
			+ '&dr=' + encodeURIComponent(document.referrer)
			+ '&sr=' + window.screen.availWidth
			+ 'x' + window.screen.availHeight
			+ '&vp=' + Math.max(document.documentElement.clientWidth, window.innerWidth || 0)
			+ 'x' + Math.max(document.documentElement.clientHeight, window.innerHeight || 0);
	}

	var tracker = {
		push: function () {
			for (var i = 0, l = arguments.length; i < l; i++) {
				var arg = arguments[i];
				if (arg[0] === '_trackEvent') {
					trackImg(trackEvent(arg));
				}
			}
		},
		async: function (arg, cb) {
			if (arg[0] === '_trackEvent') {
				trackXhr(trackEvent(arg), cb);
			}
		},
		sync: function (arg) {
			if (arg[0] === '_trackEvent') {
				trackXhr(trackEvent(arg), true);
			}
		}
	};

	trackImg('&t=pageview' + trackPage())

	tracker.push.apply(tracker, _tr);
	return tracker;

})(window._tr || []);