function $(id) {return document.getElementById(id);}

/* 
** Jakub Derda 2008
**   TMT Systems
** Wszystkie prawa 
**   zastrzeżone
*/

Navi = {}

Navi.loaded = false;
Navi.img = new Image();
Navi.basesite = "";

Navi.initialize = function()
{
	var tmp = window.location.href.toLowerCase();
	var index = (tmp.indexOf("/site/") != -1) ? tmp.indexOf("/site/") : tmp.length;
	Navi.basesite = tmp.substr(0, index);
	if (Navi.basesite.indexOf("#"))
	{
		Navi.basesite = Navi.basesite.split("#");
		Navi.basesite = Navi.basesite[0];
	}
	if (Navi.basesite.indexOf("#"))
	{
		Navi.basesite = Navi.basesite.split("/index.php");
		Navi.basesite = Navi.basesite[0];
	}
	Navi.img.src = Navi.basesite + "/gfx/loader.gif";
	Navi.loaded = true;
	//setTimeout("Navi.get();", 500);
	Navi.get();
	//Menu.initialize();
}

Navi.url = function(type)
{
	var url = window.location.href.toLowerCase().split("#");
	var mod = "";
	var gets = new Array();
	var module = false;
	var site = false;
	var nload = true;
	
	if (url[1]) 
	{
		url = url[1].split(".");
		module = (url[1]=="1") ? true : false;
		for (var i=1; i<=Math.floor((url.length-2)/2); i++)
		{
			var x = new Object();
			x.name = url[2*i];
			x.val = url[2*i+1];
			gets.push(x);
		}
		url = url[0];
		nload = false;
	} else {
		url = url[0];
		url = url.split("/site/");
		if (url[1]) //został załadowany jakiś moduł lub podstrona poprzez PHP
		{
			url = url[1].split("/");
			for (var i=0; i<url.length; i++)
			{
				if ((url[i]=="module") && (url[i+1])) {module = true; mod = url[i+1]; turl = ""; break;}
				if ((url[i]=="page") && (url[i+1])) {site = true; turl = url[i+1]; break;}
			}
			url = turl;
			if (type==1) {return true;}
		} else { //wywołanie samego adresu lub wraz z index.php
			url = "home";
			lang = 1;
		}
	}
	
	if (!type) return url;
	if (type==1) return nload;
	if (type==2) return module;
	if (type==3) return site;
	if (type==4) return mod;
	if (type==5) return gets;
	
	/* 
	  -   ||site (--name--)
	1 - module||site (true/false)
	2 - load (true/false)
	3 - site (true/false)
	4 - module (--name--)
	5 - gets (array of object(name,val))
	*/
}

Navi.cookie = function(index)
{
	var res = document.cookie.match( '(^|;) ?'+index+'=([^;]*)(;|$)' );
	return (res) ? unescape(res[2]) : null;
}

Navi.nav = function(page, module)
{
	if (!module) {var module = false;}
	if ((page.toLowerCase() != Navi.url()) || (Navi.module != module) || Navi.module)
	{
		Navi.module = module;
		var url = window.location.href.split("#");
		//var lang = Math.abs(Navi.url(5));
		//url = url[0] + '#' + page + "." + lang;
		url = url[0] + '#' + page + ".";
		url += (Navi.module) ? "1" : "0";
		if (arguments.length>2)
		{
			for (var i=2; i<arguments.length; i++)
			{
				url += "."+arguments[i];
			}
		}
		window.location.href = url;
		setTimeout("Navi.get();", 100);
	}
	return false;
}


Navi.get = function()
{
	Navi.module = (Navi.url(2));
	var name = (Navi.module) ? "module" : "page";
	var url = Navi.basesite+"/get.php?"+name+"="+Navi.url();
	var gets = Navi.url(5);
	if(gets.length)
	{
		url += (url.indexOf("?")) ? "&" : "?";
		for (var i=0; i<gets.length; i++)
		{
			url += (i!=0) ? "&" : "";
			url += gets[i].name+"="+gets[i].val;
		}
	}
	if (!Navi.url(1)) {Navi.doRequest("GET", url, Navi.show);}
}

Navi.image = function(img)
{
	img.className = "load";
	if (!Navi.loaded) return;
	for (var i=0; i<document.images.length; i++) {if (document.images[i].className != "load") return;}
	Navi.fade(0);
}

Navi.show = function()
{
	if (Navi.state('main') == 4)
	{
		var response = Navi.response();
		var title = response.getElementsByTagName('title')[0].firstChild.data;
		var content = response.getElementsByTagName('content')[0].firstChild.data;
		var links = response.getElementsByTagName('links')[0];
		document.title = (title.length) ? Navi.ogon(title) : document.title;
		document.getElementById('main').innerHTML = content;
		/*
		if (links) {links = response.getElementsByTagName('links')[0].firstChild.data;} else {links="";}
		document.getElementById('TMT_submenu').innerHTML = links;
		document.getElementById('TMT_submenu').style["display"] = (links) ? "block" : "none";
		*/
	
	}
}

Navi.fade = function()
{
	if (arguments.length)
	{
		if ($('TMT_fill')) $('TMT_fill').style['display'] = 'none';
		return;
	}
	
	var sizey = (window.innerHeight ? window.innerHeight : document.body.clientHeight)-2;
	var sizex = (window.innerWidth ? window.innerWidth : document.body.clientWidth)-2;
	
	if (!$('TMT_fill'))
	{
		var node = document.createElement('div');
		node.setAttribute("id","TMT_fill");
		node.setAttribute("style","display:none; width:"+sizex+"px; height:"+sizey+"px;");
		document.body.appendChild(node);
	}
	
    $('TMT_fill').style.opacity = 0.9;
    $('TMT_fill').style.MozOpacity = 0.9;
    $('TMT_fill').style.KhtmlOpacity = 0.9;
    $('TMT_fill').style.filter = "alpha(opacity=90)";
	$('TMT_fill').innerHTML = '<center><table height="100%" valign="middle"><tr><td><img src="'+Navi.img.src+'"></td></tr></table></center>';
	$('TMT_fill').style['display'] = 'block';
}

Navi.ogon = function(input)
{
	input = input.replace("&#260", "Ą");
	input = input.replace("&#261", "ą");
	input = input.replace("&#262", "Ć");
	input = input.replace("&#263", "ć");
	input = input.replace("&#280", "Ę");
	input = input.replace("&#281", "ę");
	input = input.replace("&#321", "Ł");
	input = input.replace("&#322", "ł");
	input = input.replace("&#323", "Ń");
	input = input.replace("&#324", "ń");
	input = input.replace("&#211", "Ó");
	input = input.replace("&#243", "ó");
	input = input.replace("&#346", "Ś");
	input = input.replace("&#347", "ś");
	input = input.replace("&#377", "Ź");
	input = input.replace("&#378", "ź");
	input = input.replace("&#379", "Ż");
	input = input.replace("&#380", "ż");
	input = input.replace(/(<([^>]+)>)/ig,""); 
	return input;
}

Navi.clear = function(object)
{
	object.value = '';
}

Navi.valid = function(object, msgstr)
{
	if (!msgstr) {var msgstr = "Należy zaznaczyć odpowiednią opcję, aby wysłać formularz";}
	var form = object.parentNode;
	while (form.tagName.toLowerCase()!="form") {form = form.parentNode;}
	Navi.element = object;
	var chb = form.agreement;
	if ((!chb) || (chb.checked)) {return true;} else {alert(msgstr); return false;}
}

Navi.toggle = function()
{
	if (!arguments.length) /* jesli bez argumentow, to zwij wszystkie */
	{
		if (!$('main')) {setTimeout("Navi.toggle()", 300); return;}
		var node = $('main').childNodes;
		if (!node) return;
		for (var i=1; i<node.length; i++) 
		{
			if (node[i].tagName=="DIV" && node[i].className=="tmt_faq") 
			{
				$(node[i].id).style["display"] = 'none'; 
			}
		}
		Scroll.initialize();
		return;
	}
	var id = arguments[0];
	id = "tmt_faq"+id;
	if($(id).style["display"] == 'none')
	{$(id).style["display"] = '';} else {$(id).style["display"] = 'none';}
	Scroll.initialize(0);
}

Navi.doRequest = function(method, url, callbackMethod)
{
	Navi.request = (window.XMLHttpRequest)? new XMLHttpRequest(): new ActiveXObject("MSXML2.XMLHTTP");
	Navi.request.onreadystatechange = callbackMethod;
	
	switch(method)
	{
		case "POST":
			var post = url.split('?');	
			Navi.request.open("POST", post[0], true);
			Navi.request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			Navi.request.setRequestHeader("Content-length", post[1].length);
			Navi.request.setRequestHeader("Connection", "close");
			Navi.request.send(post[1]);
			break;
		
		case "GET":
			Navi.request.open("GET", url, true);
			Navi.request.send(url);
	}
	return;
}

Navi.state = function(id)
{
	var loadingstr = '<center><table height="100%" valign="middle"><tr><td><img src="'+Navi.img.src+'"></td></tr></table></center>';
	
	switch(Navi.request.readyState)
	{
		case 1:
			if (id != null) {document.getElementById(id).innerHTML = loadingstr;}
		case 2:
		case 3:
		case 4:
			return Navi.request.readyState;
			break;
		default:
			(id != null) ? document.getElementById('main').innerHTML = "Wystąpił nieoczekiwany błąd. Przepraszamy." : void(null);
	}
	
}
	
Navi.response = function()
{
	if(Navi.request.getResponseHeader('Content-Type').indexOf('xml') != -1) {return Navi.request.responseXML.documentElement;} else
		{return Navi.request.responseText;}
}

