if(typeof Symbiotic == "undefined") {
	Symbiotic = {};
}

if(typeof Symbiotic.Cookie == "undefined") {
	Symbiotic.Cookie = {};
}

if(typeof Symbiotic.Jettic == "undefined") {
	Symbiotic.Jettic = {};
}

Symbiotic.Cookie.getCookies = function() {
	
	var cookies = document.cookie.split(";");
	
	for(var i = 0; i < cookies.length; i++) {
		cookies[i] = cookies[i].replace(/^\s+|\s+$/g, '') ;
	}
	
	return cookies;
};

Symbiotic.Cookie.setCookie = function(name, value, expiryInMs, path, domain, secure) {
	
	var date = new Date();
	date.setTime(date.getTime() + expiryInMs);
	
	var params = new Array();
	
	params.push(name + "=" + value);
	params.push("expires=" + date.toUTCString());
	
	if(typeof path != "undefined" && path != null)
		params.push("path=" + path);
	
	if(typeof domain != "undefined" && domain != null)
		params.push("domain=" + domain);
	
	if(typeof secure != "undefined")
		params.push("secure");
	
	document.cookie = params.join("; ");
};

Symbiotic.Cookie.getCookie = function(name) {
	
	var cookies = Symbiotic.Cookie.getCookies();
	
	for(var i = 0; i < cookies.length; i++) {
		if((index = cookies[i].indexOf(name + "=")) == 0) {
			return cookies[i].substring(name.length + 1);
		}
	}
	
	return null;
};

Symbiotic.Jettic = {
	url: null,
	domainId: null,
	sessionId: null,
	waitForInvitationTimeout: null,
	invitationResultTypes: {
		STARTCHAT: 8,
		NOCHAT: 4
	}
};

Symbiotic.Jettic.startSession = function() {
	
	var sessionId = Symbiotic.Cookie.getCookie("SymbioticJetticSession");
	
	if(sessionId == null) {
		
		var chars = "0123456789abcdefghiklmnopqrstuvwxyz";
		
		var length = 36;
		sessionId = '';
		
		for (var i = 0; i < length; i++) {
			var rnum = Math.floor(Math.random() * chars.length);
			sessionId += chars.substring(rnum, rnum + 1);
		}
	}
	
	Symbiotic.Cookie.setCookie("SymbioticJetticSession", sessionId, 600000); // 10 min
	Symbiotic.Jettic.sessionId = sessionId;
	
	// refresh session
	setTimeout('Symbiotic.Jettic.startSession()', 300000); // 5 min
};

Symbiotic.Jettic.isReady = function() {
	return Symbiotic.Jettic.sessionId != null;
};

Symbiotic.Jettic.ping = function() {
	var l = escape(window.location.href).replace(/\//g, "_J2F_");
	var url = Symbiotic.Jettic.url + "/visitor/ping/domain/" + Symbiotic.Jettic.domainId + "/session/" + Symbiotic.Jettic.sessionId + "/location/" + l + "/time/" + (new Date()).getTime();
	
	var i = new Image();
	i.src = url;
};

Symbiotic.Jettic.waitForInvitation = function() {
	var url = Symbiotic.Jettic.url + "/visitor/checkforinvitation/domain/" + Symbiotic.Jettic.domainId + "/session/" + Symbiotic.Jettic.sessionId + "/time/" + (new Date()).getTime();
	
	var i = new Image();
	i.src = url;
	
	i.onload = function() {
		var w = this.width;
		
		if(w == Symbiotic.Jettic.invitationResultTypes.STARTCHAT)
			Symbiotic.Jettic.displayInvitation();
		else
			setTimeout('Symbiotic.Jettic.waitForInvitation()', 5000);
	};
};

Symbiotic.Jettic.displayInvitation = function() {
	var invitation = document.createElement('div');
	invitation.setAttribute('id', 'symbioticJetticInvitationForm');
	invitation.style.display = 'none';
	
	document.body.appendChild(invitation);
	
	invitation.style.position = 'absolute';
	invitation.style.top = (document.all ? document.documentElement.scrollTop : window.pageYOffset) + 100 + 'px';
	invitation.style.left = '-350px';
	
	var inner = "";
	inner += '<img src="' + Symbiotic.Jettic.url + '/public/invitation.jpg"/>';
	inner += '<a href="javascript:void(0)" onclick="Symbiotic.Jettic.rejectInvitation(); this.parentNode.parentNode.removeChild(this.parentNode);" style="position: absolute; top: 6px; right: 6px; width: 28px; height: 28px;"><img style="width: 100%; height: 100%; border: 0;" src="' + Symbiotic.Jettic.url + '/public/px.gif"/></a>';
	inner += '<a href="javascript:void(0)" onclick="Symbiotic.Jettic.openChatWindow(); this.parentNode.parentNode.removeChild(this.parentNode);" style="position: absolute; top: 100px; left: 160px; width: 170px; height: 35px;"><img style="width: 100%; height: 100%; border: 0;" src="' + Symbiotic.Jettic.url + '/public/px.gif"/></a>';
	inner += '<a href="http://www.jettic.com" target="_blank" style="position: absolute; top: 100px; left: 20px; width: 100px; height: 35px;"><img style="width: 100%; height: 100%; border: 0;" src="' + Symbiotic.Jettic.url + '/public/px.gif"/></a>';
	
	invitation.innerHTML = inner;
	invitation.style.display = 'block';
	
	Symbiotic.Jettic.animateInvitation();
};

Symbiotic.Jettic.animateInvitation = function() {
	
	var left = parseInt(document.getElementById('symbioticJetticInvitationForm').style.left) + 15;
	
	document.getElementById('symbioticJetticInvitationForm').style.left = left + 'px';
	
	if(left < screen.width / 2 - 175)
		setTimeout("Symbiotic.Jettic.animateInvitation()", 10);
};

Symbiotic.Jettic.openChatWindow = function() {
	window.open(Symbiotic.Jettic.url + '/chat/start/domain/' + Symbiotic.Jettic.domainId + '/session/' + Symbiotic.Jettic.sessionId, 'JetticChatWindow', 'menubar=no, toolbar=no, location=no, scrollbars=yes, resizable=no, status=no, width=640, height=390');
};

Symbiotic.Jettic.rejectInvitation = function() {
	var url = Symbiotic.Jettic.url + "/visitor/rejectinvitation/domain/" + Symbiotic.Jettic.domainId + "/session/" + Symbiotic.Jettic.sessionId + "/time/" + (new Date()).getTime();
	
	var i = new Image();
	i.src = url;
};

Symbiotic.Jettic.start = function() {	
	Symbiotic.Jettic.startSession();
	Symbiotic.Jettic.ping();
	Symbiotic.Jettic.waitForInvitation();
};

/*if(typeof Symbiotic.windowOnLoadFnc == "undefined")
	Symbiotic.windowOnLoadFnc = window.onload;

window.onload = function() {
	
	if(typeof Symbiotic.windowOnLoadFnc == "function")
		Symbiotic.windowOnLoadFnc();
	
	Symbiotic.Jettic.start();
};*/



if (window.attachEvent) {
	window.attachEvent("onload", Symbiotic.Jettic.start);
} else if(window.addEventListener) {
	window.addEventListener("load", Symbiotic.Jettic.start, false);
}

Symbiotic.Jettic.drawRealButton = function() {
	
	if(!(typeof Symbiotic.Jettic.isReady == "function" && Symbiotic.Jettic.isReady())) {
		setTimeout("Symbiotic.Jettic.drawRealButton()", 500);
		return;
	}
	
	var type = Symbiotic.Jettic.buttonType;
	var src = Symbiotic.Jettic.url + "/visitor/wanttochatbutton/domain/" + Symbiotic.Jettic.domainId + "/type/" + type + "/time/" + (new Date()).getTime();
	
	var btnInner = '';
	btnInner += '<a href="javascript:void(0);" onclick="Symbiotic.Jettic.sendWantToChat(); Symbiotic.Jettic.openChatWindow();"><img src="' + src + '" alt="Jettic - Porozmawiaj ze mna!" title="Jettic - Porozmawiaj ze mna!" style="border: 0;"/></a>';
	btnInner += '<a href="http://www.jettic.com" style="position: absolute; top: 50px; left: 77px; font-size: 10px; font: bold 9px Arial, sans-serif; color: #555; text-decoration: underline;">www.jettic.com</a>';
			
	var replacement = document.getElementById("__jetticButton");
	if(replacement)
		replacement.innerHTML = btnInner;
};

Symbiotic.Jettic.drawButton = function(type) {
	Symbiotic.Jettic.buttonType = type;
	document.write('<div id="__jetticButton" style="width: 200px; height: 65px; position: relative; text-align: center;"></div>');
	
	Symbiotic.Jettic.drawRealButton();
};

Symbiotic.Jettic.sendWantToChat = function() {
	var url = Symbiotic.Jettic.url + "/visitor/wanttochat/domain/" + Symbiotic.Jettic.domainId + "/session/" + Symbiotic.Jettic.sessionId + "/time/" + (new Date()).getTime();
	var i = new Image();
	i.src = url;
};