/* 
** Jakub Derda 2008
**   TMT Systems
** Wszystkie prawa 
**   zastrzeżone
*/ 

if (typeof(Navi)!='object') {Navi = {};}

Navi.loaded = false;
Navi.img = new Image();
Navi.img.src = "./gfx/loader.gif";
Navi.basesite = "";
Navi.mouse = "";
Navi.div_name = "";
Navi.info = "";
Navi.force_get = false;
Navi.isloaded = "";
Navi.accord_arr = new Array();

Navi.initialize = function()
{
	Navi.mouse = new Object();
	if (!document.all) document.captureEvents(Event.MOUSEMOVE)
	document.onmousemove = Navi.getMouse;
	var tmp = window.location.href.toLowerCase();
	Navi.basesite = tmp.substr(0, ((tmp.indexOf("/cms/") != -1) ? tmp.indexOf("/cms/")+5 : tmp.length));
	if (Navi.basesite.indexOf("#"))
	{
		Navi.basesite = Navi.basesite.split("#");
		Navi.basesite = Navi.basesite[0];
	}
	Navi.basesite = Navi.basesite.split("index.php");
	Navi.basesite = Navi.basesite[0];
	Navi.basesite = Navi.basesite.split("?");
	Navi.basesite = Navi.basesite[0];
	if (Navi.basesite.charAt(Navi.basesite.length)=='/')
	{
		Navi.basesite = Navi.basesite.substr(0, Navi.basesite.length-1);
	}
	Navi.img.src = Navi.basesite + "/gfx/loader.gif";
	Navi.loaded = true;
	Navi.get();
	Navi.recursive();
	if (typeof(Menu)=='object') {Menu.initialize();}
}

Navi.recursive = function()
{
	if ((Navi.url().toLowerCase() != Navi.isloaded.toLowerCase()) && (Navi.isloaded != "")) {Navi.isloaded = Navi.url(); Navi.get();}
	setTimeout("Navi.recursive()", 500);
}

Navi.url = function(type)
{
	var url = window.location.href.toLowerCase().split("#");
	var gets = new Array();
	var lang = "pl";
	var site = "Strona-glowna";
	//czytanie z get_config
	
	url = url[0];
	url = url.split("?");
	if (url[1])
	{
		url = url[1].split("&");
		for (var i=0; i<url.length; i++)
		{
			tmp = url[i].split("=");
			if (tmp[0]=="n") {site = tmp[1];}
			else if (tmp[0]=="lang") {lang = tmp[1];}
			else {gets[tmp[0]] = tmp[1];}
		}
	}
	url = window.location.href.split("#");
	if (url[1]) 
	{
		gets = new Array();
		url = url[1].split(".");
		site = url[0];
		lang = url[1];
		for(i=1; i<Math.ceil(url.length/2); i++)
		{
			gets.push([url[2*i], url[2*i+1]]);
		}
	}
	if (!type) {return site} else {return (type==1) ? lang : gets;}
	
	/* 
	  - site (--name--)  [main]
	1 - lang (---id---)  [pl]
	2 - gets (--array--) []
	*/
}

Navi.nav = function(page, lang)
{
	if ((page.toLowerCase() != Navi.url()) || (Navi.lang != lang))
	{
		Navi.isloaded = page.toLowerCase();
		var url = window.location.href.split("#");
		var lang = Navi.url(true);
		url = url[0] + '#' + page + "." + lang;
		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.lang = function(lang)
{
	//zamiana tresci oraz menu
	return false;
}

Navi.goToTop = function()
{
	document.body.scrollIntoView(true);
}

Navi.get = function()
{
	if (arguments.length==2)
	{
		Navi.div_name = arguments[1];
		Navi.doRequest("GET", arguments[0], Navi.show);
	} else {
		if ((window.location.href.split("#").length == 1) && (Navi.force_get==false)) {return;}
		Navi.div_name = 'cms_tresc';
		var url = Navi.basesite+"/get.php?n="+Navi.url();
		var gets = Navi.url(2);
		if(gets.length)
		{
			url += (url.indexOf("?")) ? "&" : "?";
			for (var i=0; i<gets.length; i++)
			{
				url += (i!=0) ? "&" : "";
				url += gets[i][0]+"="+gets[i][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(Navi.div_name) == 4)
	{
		if (Navi.div_name=='cms_tresc')
		{
			if (document.getElementById('cms_hint')) {Navi.hint();}
			Navi.accord_arr = new Array();
			var response = Navi.response();
			var title = response.getElementsByTagName('title')[0].firstChild.data;
			var content = response.getElementsByTagName('content')[0].firstChild.data;
			content = (content) ? content : "";
			document.title = (title.length) ? Navi.ogon(title) : document.title;
			document.getElementById('cms_tresc').innerHTML = content;
			if (document.getElementById('cms_title'))
			{
				document.getElementById('cms_title').innerHTML = response.getElementsByTagName('title_sh')[0].firstChild.data;;
			}
			if (document.getElementById('cms_submenu'))
			{
				var submenu = response.getElementsByTagName('submenu')[0].firstChild.data;
				document.getElementById('cms_submenu').style['display'] = (submenu=='') ? 'none' : 'block';
				document.getElementById('cms_submenu').innerHTML = submenu;
			}
			if (document.getElementById('cms_path'))
			{
				var path = response.getElementsByTagName('path')[0].firstChild.data;
				document.getElementById('cms_path').innerHTML = path;
			}
			for (var i=0; i<response.getElementsByTagName('module').length; i++)
			{
				node = response.getElementsByTagName('module')[i];
				if (document.getElementById('cms_module_'+node.getAttribute('name')))
				{
					document.getElementById('cms_module_'+node.getAttribute('name')).innerHTML = node.firstChild.data;
				}
			}
			if (response.getElementsByTagName('onload')[0])
			{
				eval(response.getElementsByTagName('onload')[0].firstChild.data);
			}
		} else {
			node = document.getElementById(Navi.div_name);
			node.innerHTML = Navi.request.responseText;
			if (Navi.div_name=='konsola') {node.scrollTop = node.scrollHeight-node.offsetHeight;}
			if (Navi.div_name=='div_players') {node.scrollIntoView(true);}
		}
		if (Navi.show_modified) {Navi.show_modified();}
	}
}

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.fade = function()
{
	if (arguments.length)
	{
		if (document.getElementById('TMT_fill')) document.getElementById('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 (!document.getElementById('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);
	}
	
	document.getElementById('TMT_fill').style.opacity = 0.9;
    document.getElementById('TMT_fill').style.MozOpacity = 0.9;
    document.getElementById('TMT_fill').style.KhtmlOpacity = 0.9;
    document.getElementById('TMT_fill').style.filter = "alpha(opacity=90)";
	document.getElementById('TMT_fill').innerHTML = '<center><table height="100%" valign="middle"><tr><td><img src="'+Navi.img.src+'"></td></tr></table></center>';
	document.getElementById('TMT_fill').style['display'] = 'block';
}

Navi.accord_hide = function(id)
{
	if (!document.getElementById('cms_accord_'+id)) {return;}
	node = document.getElementById('cms_accord_'+id);
	Navi.accord_arr[node.id] = (Navi.accord_arr[node.id]) ? Navi.accord_arr[node.id] : node.offsetHeight;
	node.style['display'] = 'none';
	node.style['height'] = '0px';
	node.style['overflow'] = 'hidden';
	document.getElementById('cms_accord_span_'+id).style['display'] = 'block';
}

Navi.accord_sh = function(id)
{
	//document.getElementById('cms_accord_'+id).style['display'] = (document.getElementById('cms_accord_'+id).style['display'] == 'none') ? 'block' : 'none';
	node = document.getElementById('cms_accord_'+id);
	if ((node.style['height']) && (parseInt(node.style['height'], 10)>0) && (Navi.accord_arr[id]) && (Navi.accord_arr[id]>parseInt(node.style['height'], 10)) ) {return;}
	if ((!node.style['display']) || (node.style['display']!='none'))
	{
		Navi.accord_hidee('cms_accord_'+id, -1);
	} else {
		Navi.accord_show('cms_accord_'+id, 0);
	}
}

Navi.accord_hidee = function(id, height)
{
	var step = 5;
	var timeout = 10;
	node = document.getElementById(id);
	if (height==-1)
	{
		height = node.offsetHeight;
		Navi.accord_arr[id] = (Navi.accord_arr[id]) ? Navi.accord_arr[id] : height;
		node.style['overflow']='hidden';
	}
	height= (height>=step) ? height-step : 0;
	node.style['height'] = ''+height+'px'
	if (height>0) {setTimeout("Navi.accord_hidee('"+id+"', "+height+")", timeout);}
	else {node.style['display']='none';}
}

Navi.accord_show = function(id, height)
{
	var step = 5;
	var timeout = 10;
	node = document.getElementById(id);
	if (height==0)
	{
		node.style['display']='block';
	}
	height= (height<(Navi.accord_arr[id] - step)) ? height+step : Navi.accord_arr[id];
	node.style['height'] = ''+height+'px'
	if (height<Navi.accord_arr[id]) {setTimeout("Navi.accord_show('"+id+"', "+height+")", timeout);}
}

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="90%" valign="middle"><tr><td><br /><br /><br /><br /><br /><br /><br /><br /><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('cms_tresc').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;}
}

Navi.getMouse = function(e)
{
	var obj = new Object();
	obj.x = 0;
	obj.y = 0;
  	if (document.all) 
  	{
    	obj.x = event.clientX + document.body.scrollLeft
    	obj.y = event.clientY + document.body.scrollTop
  	} else {
    	obj.x = e.pageX
    	obj.y = e.pageY
  	}  
  	if (obj.x < 0){obj.x = 0}
  	if (obj.y < 0){obj.y = 0}  
  	
  	Navi.mouse = obj;

  	if (document.getElementById('cms_hint') && (document.getElementById('cms_hint').style['display'] == 'block')) 
	{
  		odmyszki = 5;
		document.getElementById('cms_hint').style['top'] = ''+(Navi.mouse.y+odmyszki)+'px'
		document.getElementById('cms_hint').style['left'] = ''+(Navi.mouse.x+odmyszki)+'px'
	} 	
	return true;
}

Navi.hint = function()
{
	if (arguments.length==0)
	{
		document.getElementById('cms_hint').style['display'] = 'none';
		return;
	}
	if (document.getElementById('cms_hint') === null) 
	{	
		node = document.createElement('div');
		node.setAttribute("id", "cms_hint");
		node.setAttribute("style", "display:none; position:absolute;");
		document.body.appendChild(node);
	}
	contenter = '<table cellspacing="0" cellpadding="0">';
	contenter += '<tr><td class="hint_tl">&nbsp;</td><td class="hint_tm">&nbsp;</td><td class="hint_m">&nbsp;</td><td class="hint_tm">&nbsp;</td><td class="hint_tr">&nbsp;</td></tr>';
	contenter += '<tr><td class="hint_ml">&nbsp;</td><td class="hint_mm" colspan="3">'+arguments[0]+'</td><td class="hint_mr">&nbsp;</td></tr>';
	contenter += '<tr><td class="hint_bl">&nbsp;</td><td class="hint_bm" colspan="3">&nbsp;</td><td class="hint_br">&nbsp;</td></tr>';
	contenter += '</table>';
	document.getElementById('cms_hint').innerHTML = contenter;
	if (document.getElementById('cms_hint').style['display'] != 'block') 
	{
		document.getElementById('cms_hint').style['display'] = 'block';
	}
	odmyszki = 5;
	document.getElementById('cms_hint').style['top'] = ''+(Navi.mouse.y+odmyszki)+'px'
	document.getElementById('cms_hint').style['left'] = ''+(Navi.mouse.x+odmyszki)+'px'
}

Navi.googleInit = function(id, lat, lng, zoom, opis)
{
	if (GBrowserIsCompatible())
	{
        var map = new GMap2(document.getElementById(id));
        map.setCenter(new GLatLng(lat, lng), zoom);
        map.setUIToDefault();
        var point = new GLatLng(lat, lng);
        var marker = new GMarker(point);
        GEvent.addListener(marker, "click", function() {marker.openInfoWindowHtml(opis);});
        map.addOverlay(marker);
	}
}

window.onload = Navi.initialize;