
// STARTER

	if (!isset('loading_image')) { loading_image = ENGINE_RES+'img/'+'loader_2d_white.gif'; }
	loading_gif = '<img src="'+loading_image+'">';
	var popup_handler = 'ajax_popup';
	var page_handler = 'content';
	if (!isset('enable_sugester')) enable_sugester = true;
	if (!isset('enable_ajax_div')) enable_ajax_div = true;
	
	Event.observe(window, 'load', function()
	{
		if (!isset('requiredIEversion')) requiredIEversion = 7;
		if (
			(BrowserDetect.browser == 'Internet Explorer' && BrowserDetect.version < requiredIEversion) || 
			(BrowserDetect.browser == 'Chrome' && BrowserDetect.version < 3) || 
			(BrowserDetect.browser == 'Opera' && BrowserDetect.version < 9) || 
			(BrowserDetect.browser == 'Firefox' && BrowserDetect.version < 2)
		)
		{
			$(page_handler).insert({'top': '<div id="browser_alert"><div class="browser_alert_header">Uwaga! Twoja przeglądarka jest w starej wersji. Zaktualizuj ją natychmiast.</div><div class="browser_alert_text">Korzystasz z <b>'+BrowserDetect.browser +' '+ BrowserDetect.version+'</b>. <u>Strona nie obsługuje tej wersji przeglądarki.</u> Jeśli jesteś w pracy i widzisz tę wiadomość, skontaktuj się ze swoim administratorem i poproś o aktualizację przeglądarki.<br/><br/>Kliknij na jedną z poniższych ikon aby przejść do strony pobierania najnowszych przeglądarek. Polecamy Operę 10.x</div>'+
			'<div class="browser_alert_choose">'+
				'<a href="http://www.opera.com/browser/"><img src="'+DOC_ROOT+'engine/res/img/browser_opera.jpg" alt="Opera" title="Opera"></a> '+
				'<a href="http://www.mozilla-europe.org/pl/firefox/"><img src="'+DOC_ROOT+'engine/res/img/browser_ff.jpg" alt="Firefox" title="Firefox"></a> '+
				'<a href="http://www.google.com/chrome/?hl=pl"><img src="'+DOC_ROOT+'engine/res/img/browser_gc.jpg" alt="Chrome" title="Chrome"></a> '+
				'<a href="http://www.microsoft.com/poland/windows/internet-explorer/default.aspx"><img src="'+DOC_ROOT+'engine/res/img/browser_ie.jpg" alt="MSIE" title="MSIE"></a>'+
			'</div></div>'});
		}
		
		if (!isset('page_body')) page_body = document.body.down(0).id;
		
		if (page_body && enable_ajax_div)
		{
			if (!$('fade')) $(page_body).insert('<div id="fade" onclick="ajax_fadeout();" style="display: none;"></div>', 'after');
			if (!$('ajax_loader')) $(page_body).insert('<div id="ajax_loader" onclick="ajax_loader(true);" style="display: none;">'+loading_gif+'</div>', 'after');
			if (!$('ajax_popup')) $(page_body).insert('<div id="ajax_popup" style="display: none;">'+loading_gif+'</div>', 'after');
			if (enable_sugester)
			{
				$(page_body).insert('<div id="sugester"></div>', 'after');
				
				$('sugester').observe('click', function(e) {
					sugester('start');
				});
			}
		}
	});

// END OF STARTER

function sugester(action, form)
{
	if(action == 'start')
	{
		new Ajax.Request(DOC_ROOT + 'api/ajax/sugester/show', {
			method: 'post',
			onSuccess: function(transport) {
				ajax_loader(true);
				ajax_popup(transport.responseText);
			},
			onCreate: function(transport) {
				ajax_fadein();
				ajax_loader();
			}
		});
	}
	
	if(action == 'save')
	{
		data = form.serialize();
		new Ajax.Request(DOC_ROOT + 'api/ajax/sugester/save', {
			method: 'post',
			parameters: data,
			onSuccess: function(transport) {
				ajax_popup(transport.responseText);
			},
			onCreate: function(transport) {
				ajax_popup(loading_gif);
			}
		});
		return false;
	}
	
	if(!action)
	{
		ajax_loader(true);
		ajax_popup_close();
		ajax_fadeout();
	}
}

function ajax_loader(show)
{
	if (!show)
	{
		$('ajax_loader').show();
		ajax_center('ajax_loader', true);
	}
	else
	{
		$('ajax_loader').hide();
	}
}

function ajax_center(handler, move)
{
	if (!handler) { handler = 'ajax_popup'; }
	var page_size = getPageSize();
	
	var ap_width = $(handler).getWidth();
	if (ap_width == 0) { ap_width = 900; }
	var ap_height = $(handler).getHeight();
	if (ap_height == 0) { ap_height = 300; }
	
	var tp = getPageScroll() + ( ( page_size[3] - ap_height ) / 2);
	var lf = (page_size[2] - ap_width)/2;
	
	if (move)
	{
		$(handler).style.top = tp + 'px';
		$(handler).style.left = lf + 'px';
	}
	
	return new Array (lf, tp);
}

function ajax_popup(content, handler)
{
	if (!handler) { handler = 'ajax_popup'; }
	popup_handler = handler;
	$(handler).show();
	$(handler).update(content);
	
	ajax_center(handler, true);
}

function ajax_alert(text)
{
	var html = '<div id="ajax_alert_text">'+text+'</div>'+
		'<div id="ajax_alert_button"><input type="button" onclick="ajax_popup_close();" value="OK"></div>';
	
	ajax_fadein();
	setTimeout("ajax_popup('"+html+"', 'ajax_popup');", 500);
}

obj_ajax_confirm = function (text, after)
{
	this.after = after;
	var html = '<div id="ajax_alert"><div id="ajax_alert_text">'+text+'</div>'+
		'<div id="ajax_alert_button"><input type="button" id="ajax_confirm_ok_button" onclick="ac.after(); ajax_popup_close();" value="OK"> '+
		'<input type="button" onclick="ajax_popup_close();" value="Anuluj"></div></div>';
	
	ajax_fadein();
	setTimeout("ajax_popup('"+html+"', 'ajax_popup');", 500);
	setTimeout("$('ajax_confirm_ok_button').focus();", 500);
}

function ajax_confirm(text, after)
{
	ac = new obj_ajax_confirm(text, after);
}

function ajax_image(src)
{
	var html = '<img src="'+ src +'" alt="" onload="ajax_center(false, true);" />';
	
	ajax_fadein();
	ajax_popup(html);
}

function ajax_popup_size(width, height)
{
	$('ajax_popup').style.width = width + 'px';
	$('ajax_popup').style.height = height + 'px';
}

function ajax_popup_close()
{
	$(popup_handler).hide();
	ajax_fadeout();
}

function ajax_fadein()
{
	if ($('fade'))
	{
		var page_size = getPageSize();
		$('fade').style.width = page_size[0] + 'px';
		$('fade').style.height = (page_size[3] + getPageScroll()) + 'px';
		$('fade').setOpacity(0.0);
		$('fade').show();
		new Effect.Opacity('fade', { from: 0.0, to: 0.7, duration: 0.5 });
	}
}

function ajax_fadeout()
{
	new Effect.Opacity('fade', { from: 0.7, to: 0.0, duration: 0.5 });
	setTimeout("$('fade').hide();", 500);
	if ($(popup_handler)) $(popup_handler).hide();
}

function getPageScroll() {
	if (self.pageYOffset) {
		return this.isFrame ? parent.pageYOffset : self.pageYOffset;
	} else if (this.document.documentElement && this.document.documentElement.scrollTop){
		return this.document.documentElement.scrollTop;
	} else if (document.body) {
		return this.document.body.scrollTop;
	}
};

function getPageSize()
{	
	var xScroll, yScroll, windowWidth, windowHeight;
	if (window.innerHeight && window.scrollMaxY) {
		xScroll = this.document.scrollWidth;
		yScroll = (this.isFrame ? parent.innerHeight : self.innerHeight) + (this.isFrame ? parent.scrollMaxY : self.scrollMaxY);
	} else if (this.document.body.scrollHeight > this.document.body.offsetHeight){
		xScroll = this.document.body.scrollWidth;
		yScroll = this.document.body.scrollHeight;
	} else {
		xScroll = this.document.getElementsByTagName("html").item(0).offsetWidth;
		yScroll = this.document.getElementsByTagName("html").item(0).offsetHeight;
		xScroll = (xScroll < this.document.body.offsetWidth) ? this.document.body.offsetWidth : xScroll;
		yScroll = (yScroll < this.document.body.offsetHeight) ? this.document.body.offsetHeight : yScroll;
	}
	if (self.innerHeight) {
		windowWidth = (this.isFrame) ? parent.innerWidth : self.innerWidth;
		windowHeight = (this.isFrame) ? parent.innerHeight : self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) {
		windowWidth = this.document.documentElement.clientWidth;
		windowHeight = this.document.documentElement.clientHeight;
	} else if (document.body) {
		windowWidth = this.document.getElementsByTagName("html").item(0).clientWidth;
		windowHeight = this.document.getElementsByTagName("html").item(0).clientHeight;
		windowWidth = (windowWidth == 0) ? this.document.body.clientWidth : windowWidth;
		windowHeight = (windowHeight == 0) ? this.document.body.clientHeight : windowHeight;
	}
	var pageHeight = (yScroll < windowHeight) ? windowHeight : yScroll;
	var pageWidth = (xScroll < windowWidth) ? windowWidth : xScroll;
	return new Array(pageWidth, pageHeight, windowWidth, windowHeight);
}
	
function ajax_static(target, sid, page)
{
	ping_set();
	
	if (!page) page = 0;
	
	new Ajax.Request(DOC_ROOT+'api/ajax/static/'+sid+'/'+page, {
		method: 'post',
		onSuccess: function(transport) {
			$(target).update(transport.responseText);
			ping_show();
			initLytebox();
			pageTracker._trackPageview('/ajax-static/'+sid);
		},
		onCreate: function(transport) {
			//$(target).update(loading_gif);
		}
	});
	
	return false;
}
	
function ajax_page(target, url, data, params)
{
	if (!data) { data = {}; metoda = 'get'; } else { metoda = 'post'; }
	new Ajax.Request(url, {
		method: metoda,
		parameters: data,
		onSuccess: function(transport) {
			if (transport.responseText != '')
			{
				$(target).update(transport.responseText);
				initLytebox();
				pageTracker._trackPageview(url);
				if (params.after) params.after();
			} else {
				ajax_page(target, url, data, params);
			}
		},
		onCreate: function(transport) {
			//if (params.loader) $(target).update(loading_gif);
		}
	});
	
	return false;
}

function show_hide(id)
{
	$(id).toggle();
}

function ping_set()
{
	ping = new Date();
	ping_start = ping.getSeconds()*1000 + ping.getMilliseconds();
}

function ping_get()
{
	ping = new Date();
	ping_stop = ping.getSeconds()*1000 + ping.getMilliseconds();
	pings = ping_stop - ping_start;
	
	ping = new Date();
	ping_start = 0;
	ping_stop = 0;
	
	return pings;
}

function ping_show()
{
	var ping = ping_get();
	$('ajax_ping').update(ping + 'ms');
}
