function urlencode(str) {
    str = str.replace('+', '%2B');
    str = str.replace('%20', '+');
    str = str.replace(' ', '+');
    return str;
}


if (location.hostname=="hiking.sk")             var urlb = "http://hiking.sk/dev/hikeplanner/";
if (location.hostname=="hikeplanner.eu")        var urlb = "http://hikeplanner.eu/";
if (location.hostname=="www.hikeplanner.eu")    var urlb = "http://www.hikeplanner.eu/";

var texts = new Array();
var photoElem;
var maxThru = 6;

if (document.getElementById("hikeplanner_lang")){
    sLang = document.getElementById("hikeplanner_lang").innerHTML
    if (sLang=="en") {
        texts['loading']="loading crossroads ..."  
        texts['thru']="... through" 
        texts['map']='<a href="http://www.turistickamapa.sk?lang=en">Tourist map available here</a>.';
           
    } else {
        texts['loading']="načítavam rázcestia ..."
        texts['thru']="... cez"
        texts['map']='' 
    }
} else {
    sLang="sk" 
    texts['loading']="načítavam rázcestia ..."
    texts['thru']="... cez"
    texts['map']='' 
}


if (selOblast = document.getElementById("hikeplanner_mini_oblast")) {
    selKriterium = document.getElementById("hikeplanner_mini_kriterium") 
    selStart     = document.getElementById("hikeplanner_mini_start") 
    selFinish    = document.getElementById("hikeplanner_mini_finish") 
    btnSubmit    = document.getElementById("hikeplanner_mini_submit") 
    divHpResults = document.getElementById("hikeplanner_mini_results") 
    
    hasThru = false;
    
    selOblast.onchange    = doHPminiGet 
    selKriterium.onchange = doHPminiValidate 
    selStart.onchange     = doHPminiValidate 
    selFinish.onchange    = doHPminiValidate  
    
} else if (selOblast = document.getElementById("hikeplanner_oblast")) {
    selKriterium = document.getElementById("hikeplanner_kriterium") 
    selStart     = document.getElementById("hikeplanner_start") 
    selThru      = document.getElementById("hikeplanner_thru") 
    divMoreThru  = document.getElementById("hikeplanner_thru_more")
    selFinish    = document.getElementById("hikeplanner_finish")
    divHpResults = document.getElementById("hikeplanner_results")
    divHpRelated = document.getElementById("hikeplanner_related")
    divHpStatus  = document.getElementById("hikeplanner_status")
    btnSubmit    = document.getElementById("hikeplanner_submit")
    
    divHpLang    = document.getElementById("hikeplanner_lang")
    
    hasThru = true;
    
    selOblast.onchange    = doHPminiGet
    /*selKriterium.onchange = doHPminiValidate 
    selStart.onchange     = doHPminiValidate
    selThru.onchange      = doHPminiValidate
    selFinish.onchange    = doHPminiValidate*/
    btnSubmit.onclick     = doHPminiValidate
}

function addMoreThruHP(){
    if (hasThru){
        if (selThru.childNodes[1].innerHTML != "... cez" && selThru.childNodes[selThru.selectedIndex+2].innerHTML != "... cez") {
            if (maxThru > 0){
                //var nazov = selThru.childNodes[selThru.selectedIndex+2].innerHTML;
                var nazov = selThru.options[selThru.selectedIndex].innerHTML;
                divMoreThru.innerHTML  += '<div><input type="hidden" name="hpThru[]" value="' + selThru.value +'" />'+nazov+ 
                                           ' [<a href="#" style="color:white" onclick="this.parentNode.innerHTML=\'\'; thruCount(\'add\'); return false;">x</a>]</div>';
                selThru.selectedIndex=0
                thruCount("sub")
                doHPminiValidate();
            } else {
                alert("maximálny počet medzibodov je vyčerpaný");
            }
        } else {
            alert("ak chceš pridať medzibod, najprv ho musíš vybrať");
        }
    }
}

function thruCount(what){
    if (what == "add") maxThru = maxThru + 1
    if (what == "sub") maxThru = maxThru - 1
}

function doHPminiGet(){
    selStart.options.length  = 0
    selFinish.options.length = 0
    
    if (hasThru) { 
        selThru.options.length = 0
        selThru.options[0]  = new Option(texts['loading'],'default')
        selThru.style.display     = "block"
        if (typeof divMoreThru != "undefined"){
            divMoreThru.innerHTML = ""
            maxThru = 6;
        }
    }
    selStart.options[0]  = new Option(texts['loading'],'default')
    selFinish.options[0] = new Option(texts['loading'],'default')
    
    selKriterium.style.display = "block" 
    selStart.style.display     = "block" 
    selFinish.style.display    = "block"
    
    var url = urlb+"getpoints.php?id="+selOblast.value+"&lang="+sLang
    xmlHttp = GetXmlHttpObject(stateHPminiChanged) 
    xmlHttp.open("GET", url , true) 
    xmlHttp.send(null)  
}

function stateHPminiChanged() { 
    if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete"){ 
        var arrIn = xmlHttp.responseText.split(";") 
        selStart.options.length  = 0
        selFinish.options.length = 0
        if (hasThru){
            selThru.options.length = 0 
            selThru.options[0]  = new Option(texts['thru'],'none')
        }
        for (i=0; i < arrIn.length; i+=2){
            if (arrIn[i]=='chyba'){
                selKriterium.style.display = "none" 
                selStart.style.display     = "none" 
                selFinish.style.display    = "none"
                if (hasThru){  
                    selThru.style.display    = "none"
                }
                btnSubmit.style.display    = "none"
                divHpResults.style.display = "none";
                divHpResults.innerHTML = "";
            } else {
                selStart.options[i/2]  = new Option(arrIn[i],arrIn[i+1])  
                selFinish.options[i/2]  = new Option(arrIn[i],arrIn[i+1])          
                if (hasThru){
                    selThru.options[(i+2)/2]  = new Option(arrIn[i],arrIn[i+1]) 
                }
            }
        }    
    } 
} 

function doHPminiValidate(){

    if ((selKriterium.value != "default")&&(selStart.value != "default")&&(selFinish.value != "default")){
        
        if ((hasThru && (selStart.value == selThru.value || selThru.value == selFinish.value) ) || (hasThru == false && (selStart.value == selFinish.value))){
            alert("Rázcestia boli zadané chybne.")
        } else {
            divHpResults.style.display = "block"
            if (hasThru){
                divHpStatus.innerHTML="<img src=\"http://hiking.sk/dev/hikeplanner/loading.gif\" />"
                var url2 = urlb+"getresults.php?type=normal&"
                
            } else {
                divHpResults.innerHTML="<img src=\"http://hiking.sk/dev/hikeplanner/loading.gif\" />"
                var url2 = urlb+"getresults.php?type=mini&"
            }
            
            var frmHp = document.getElementById('frm_hikeplanner')
            for (var i=0;i<frmHp.length;i++){
                if (frmHp.elements[i].value != "none"){
                    url2 += frmHp.elements[i].name + '=' + frmHp.elements[i].value + '&'
                }
            }
            
            url2 += "lang="+sLang
            /*alert(url2)*/
            xmlHttp = GetXmlHttpObject(getResultsHPmini)
            xmlHttp.open("GET",url2,true)
            xmlHttp.send(null)
            
            if (this.form.id == "frm_hikeplanner"){
                var url3 = urlb+"getrelated.php?lokalita="+selOblast.value
                xmlHttp2 = GetXmlHttpObject(getHPrelated)
                xmlHttp2.open("GET",url3,true)
                xmlHttp2.send(null)
            }
        }
    }
}

function getHPrelated(){
    if (xmlHttp2.readyState == 4 || xmlHttp2.readyState == "complete"){
        divHpRelated.innerHTML = xmlHttp2.responseText;
    }
}

function getResultsHPmini(){
    if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete"){
        divHpResults.innerHTML = xmlHttp.responseText;
        if (divHpStatus!=undefined){
            var strButtons = texts['map'];
            divHpStatus.innerHTML = strButtons; 
        }
    }
}

function togglePhotosHP(e) {
    var x = divHpResults.getElementsByTagName('div');
    for (var i=0;i<x.length;i++) {
		if (x[i].id == 'usek_photos_'+e) {
			photoElem = x[i];
			break;
		}
	}
    if (typeof photoElem != "undefined"){
        if (photoElem.style.display=="none"){
            if (photoElem.innerHTML==""){
                photoElem.innerHTML="hľadám fotografie ..."
                var gid = photoElem.className;
                var url4foto = urlb+"getphotos.php?gid="+gid+"&usek="+e+"&vzdialenost=150"
                
                xmlHttp = GetXmlHttpObject(function (){
                    if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete"){
                        photoElem.innerHTML = xmlHttp.responseText;
                    }
                }) 
                xmlHttp.open("GET", url4foto , true) 
                xmlHttp.send(null)
            }
            photoElem.style.display="block"
            photoElem.style.padding="5px"
        } else {
            photoElem.style.display="none"
            photoElem.style.padding="0px";
        }
    }
}


function switchDivHP(eHide,eShow) {
    var x = divHpResults.getElementsByTagName('div')
    for (var i=0;i<x.length;i++) {
		if (x[i].className == eHide) {
            if (typeof x[i].style.display != "undefined"){
                x[i].style.display="none"
            }
		}
		if (x[i].className == eShow) {
			if (typeof x[i].style.display != "undefined"){
                x[i].style.display="block"
            }
		}
	} 
}

function HpFnMenu(eShow){
    var x = divHpResults.getElementsByTagName('div')
    var arrMenu = new Array()
    arrMenu[0] = "hikeplanner_save_track"
    arrMenu[1] = "hikeplanner_my_tracks"
    arrMenu[2] = "hikeplanner_recent_tracks"
    
    for (var i=0;i<x.length;i++){
        for(var j=0;j<arrMenu.length;j++){
            if ((x[i].id == arrMenu[j]) && (x[i].id != eShow) && (typeof x[i].style.display != "undefined")) x[i].style.display = 'none'
        }   
        if ((x[i].id == eShow)){
            if (x[i].style.display == 'none'){
                x[i].style.display = 'block'
            } else {
                x[i].style.display = 'none'
            }
        }
    }
}    

function HpGetElem(eCont,tagName,eId){
    var x  = eCont.getElementsByTagName(tagName)
    for (var i=0;i<x.length;i++){
        if (x[i].id==eId) {
            return x[i]
        }
    }
    return false;
}

function HpFnTrkSave(){
    var desc = HpGetElem(divHpResults,'input','hp_save_track_desc')
    var gid  = HpGetElem(divHpResults,'input','hp_save_track_gid')
    var sid  = HpGetElem(divHpResults,'input','hp_save_track_sid')
    var pub  = HpGetElem(divHpResults,'input','hp_save_track_pub') 
    
    var url  = "http://hiking.sk/dev/hikeplanner/save_track.php?gid="+gid.value+"&sid="+sid.value+"&public="+pub.value+"&desc="+desc.value
    xmlHttp = GetXmlHttpObject(HpFnTrkSaveResponse)
    xmlHttp.open("GET",url,true)
    xmlHttp.send(null)
}

function HpFnTrkSaveResponse(){
    if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete"){
        var x = HpGetElem(divHpResults,'div','hikeplanner_save_track_result')
        var y = HpGetElem(divHpResults,'div','hikeplanner_save_track_form')
        x.innerHTML = xmlHttp.responseText
        y.style.display = 'none'
    } 
}

function HpFnHistDel(){
    var h    = HpGetElem(divHpResults,'div','hp_recent_tracks')
    var sid  = HpGetElem(divHpResults,'input','hp_save_track_sid')
    h.style.display = "none";
    xmlHttp = GetXmlHttpObject(HpFnHistDelResponse)
    xmlHttp.open("GET","http://hiking.sk/dev/hikeplanner/del_recent.php?del=1&sid="+sid.value,true)
    xmlHttp.send(null)
}

function HpFnHistDelResponse(){
    if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete"){
    }
}

function HpFnTrkDel(id){
    var h    = HpGetElem(divHpResults,'tr','tr_'+id)
    var sid  = HpGetElem(divHpResults,'input','hp_del_track_sid')
    h.style.display = "none";
    xmlHttp = GetXmlHttpObject(HpFnTrkDelResponse)
    xmlHttp.open("GET","http://hiking.sk/dev/hikeplanner/del_track.php?hash="+id+"&sid="+sid.value,true)
    xmlHttp.send(null)
}

function HpFnTrkDelResponse(){
    if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete"){
        /*alert(xmlHttp.responseText);*/
    }
}

function HpFnTrkShare(id){
    var h    = HpGetElem(divHpResults,'div','div'+id)
    if (h.style.display == "block"){
        h.style.display = "none";
    } else {
        h.style.display = "block";   
    }
}

function GetXmlHttpObject(handler){ 
    var objXmlHttp=null  
    
    if (navigator.userAgent.indexOf("MSIE")>=0) { 
        var strName="Msxml2.XMLHTTP"
        if (navigator.appVersion.indexOf("MSIE 5.5")>=0) {
            strName="Microsoft.XMLHTTP"
        } 
        try { 
            objXmlHttp=new ActiveXObject(strName)
            objXmlHttp.onreadystatechange=handler 
            return objXmlHttp
        } 
        catch(e) { 
            alert("Chyba, ActiveX scripting je pravdepodobne zakázaný.") 
            return false
        } 
    } 
    
    if (navigator.userAgent.indexOf("Mozilla")>=0 || navigator.userAgent.indexOf("Opera")>=0) {
        objXmlHttp=new XMLHttpRequest()
        objXmlHttp.onload=handler
        objXmlHttp.onerror=handler 
        return objXmlHttp
    }
} 

