var NN = window.NN || {};

NN.navstevnik = NN.navstevnik || {};

//NN.navstevnik.navstevnikId
//NN.navstevnik.idStranka
NN.navstevnik.url = null;
NN.navstevnik.cookieDomain = null;
NN.navstevnik.oTimer = null;
NN.navstevnik.prvniNavsteva = true;
NN.navstevnik.cookiePovoleny = false;
NN.navstevnik.maxDate = null;

NN.navstevnik.zaznamenejNavstevu = function() {
	var oNow = new Date();
	if (oNow>NN.navstevnik.maxDate) {
		NN.navstevnik.stopZaznamenavani();
		return;
	}
	
	var callback = {
		'success': function(oResponse) {
			if (oResponse.responseText != '' && YAHOO.lang.isString(oResponse.responseText) && YAHOO.lang.JSON.isSafe(oResponse.responseText)) {
				var oData = YAHOO.lang.JSON.parse(oResponse.responseText);
				if (oData.navstevnikId!='' && (oData.navstevnikId!=NN.navstevnik.navstevnikId || NN.navstevnik.prvniNavsteva==true)) {
					NN.navstevnik.navstevnikId = oData.navstevnikId;
					NN.navstevnik.nastavCookie(NN.navstevnik.navstevnikId);
				}
				NN.navstevnik.prvniNavsteva = false;
			}
		},
		'failure': function(oResponse) {
		},
		'scope':NN.navstevnik,
		'timeout':5000
	};
	
	var postData = 'navstevnikId='+encodeURIComponent(NN.navstevnik.navstevnikId)+'&idStranka='+NN.navstevnik.idStranka+'&url='+encodeURIComponent(NN.navstevnik.url)+'&prvniVstupNaUrl='+(NN.navstevnik.prvniNavsteva==true?'1':'0');
	
	var request = YAHOO.util.Connect.asyncRequest('POST', '/rtm/rtm.php', callback, postData);
};
NN.navstevnik.startZaznamenavani = function() {
	NN.navstevnik.resetujMaxDatum();
	NN.navstevnik.stopZaznamenavani();
	NN.navstevnik.prvniNavsteva = true;
	NN.navstevnik.oTimer = YAHOO.lang.later(5000,NN.navstevnik,NN.navstevnik.zaznamenejNavstevu,null,true);
};
NN.navstevnik.stopZaznamenavani = function() {
	if (NN.navstevnik.oTimer && NN.navstevnik.oTimer.cancel) {
		NN.navstevnik.oTimer.cancel();
	}
};
NN.navstevnik.resetujMaxDatum = function() {
	NN.navstevnik.maxDate = new Date();
	NN.navstevnik.maxDate.setMinutes(NN.navstevnik.maxDate.getMinutes()+20);
};
NN.navstevnik.testCookie = function() {
	YAHOO.util.Cookie.set('tmptestvalue','test');
	var testVal = YAHOO.util.Cookie.get('tmptestvalue');
	if (testVal) {
		YAHOO.util.Cookie.remove('tmptestvalue');
		return true;
	}
	return false;
};
NN.navstevnik.nastavCookie = function(navstevnikId) {
	var oDate = new Date();
	oDate.setDate(oDate.getDate()+178);
	YAHOO.util.Cookie.set('navstevnik_id',navstevnikId,{'path':'/','expires': oDate,'domain':NN.navstevnik.cookieDomain});
};
NN.onWindowFocus = function() {
	NN.navstevnik.startZaznamenavani();
};
NN.onWindowBlur = function() {
	NN.navstevnik.stopZaznamenavani();
};
NN.navstevnik.init = function() {
	var urlRE = new RegExp('^https?:\\/\\/([_a-zA-Z0-9\\.\\-]+\\.[a-zA-Z]{2,})(\\/{1}.*)$','i');
	var hashmarkRE = new RegExp('^([^#]*)#.*$','i');
	NN.navstevnik.url = document.URL.replace(urlRE,'$2').replace(hashmarkRE,'$1');
	
	var tmpDomain = document.URL.replace(urlRE,'$1');
	/*
	tmpDomain = tmpDomain.split('.').reverse();
	NN.navstevnik.cookieDomain = tmpDomain[1]+'.'+tmpDomain[0];
	*/
	NN.navstevnik.cookieDomain = tmpDomain;
	NN.navstevnik.resetujMaxDatum();

	if (NN.navstevnik.navstevnikId=='') {
		if (NN.navstevnik.testCookie()) {
			NN.navstevnik.cookiePovoleny = true;
			NN.navstevnik.zaznamenejNavstevu();
			NN.navstevnik.startZaznamenavani();
		}
	} else {
		NN.navstevnik.cookiePovoleny = true;
		NN.navstevnik.nastavCookie(NN.navstevnik.navstevnikId);
		NN.navstevnik.zaznamenejNavstevu();
		NN.navstevnik.startZaznamenavani();
	}
	
	if (NN.navstevnik.cookiePovoleny==true) {
		var focusEl = YAHOO.util.Event.isIE?document:window;
		YAHOO.util.Event.addListener(focusEl,'focusin',NN.onWindowFocus);
		YAHOO.util.Event.addListener(focusEl,'focusout',NN.onWindowBlur);
	}
};

YAHOO.util.Event.onDOMReady(NN.navstevnik.init);
