/* 
** 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))
    {
        if(page!="")
        {
            Navi.isloaded = page.toLowerCase();
        }
        else
        {
            page = lastPage;
        }
        var url = window.location.href.split("#");
        var getUrl = "./get.php?n="+page;
        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];
            }
            for (var i=2; i<arguments.length; i+=2)
            {
                getUrl += "&"+arguments[i]+"="+arguments[i+1];
            }
        }
        //alert(getUrl);
        //window.location.href = url;
        //setTimeout("Navi.get();", 100);
        loadPage(getUrl);
    }

    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();
            }
            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 submenu = response.getElementsByTagName('path')[0].firstChild.data;
                document.getElementById('cms_path').innerHTML = submenu;
            }
            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);
            }
            if (typeof(xingha_init)!='undefined') {
                xinha_init();
            }
        //TODO: zamiana klas w menu (ta klasa aktywnego)
        } 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;

