var LANG = 'svk';
function SetLang(newLang) {
    LANG = newLang;
}
function getObj(name) {
    if (document.getElementById) {
        this.obj = document.getElementById(name);
        this.style = document.getElementById(name).style;
    } else if (document.all) {
        this.obj = document.all[name];
        this.style = document.all[name].style;
    } else if (document.layers) {
        this.obj = document.layers[name];
        this.style = document.layers[name];
    }
}
function ShowHide(id) {
    obj = document.getElementsByTagName("div");
    if (obj[id].style.visibility == 'visible'){
        obj[id].style.display = 'none';
        obj[id].style.visibility = 'hidden';
    } else {
        obj[id].style.visibility = 'visible';
        obj[id].style.display = '';
    }
}
function hidestyle(whichid) {
    mainobject = new getObj(whichid);
    if (mainobject.style.display=='none') {
        mainobject.style.display='';
    } else {
        mainobject.style.display='none';
    }
}
function hidestyleON(whichid) {
    mainobject = new getObj(whichid);
    mainobject.style.display="none";
}
function hidestyleOFF(whichid) {
    mainobject = new getObj(whichid);
    mainobject.style.display='';
}
// skrati textbox na pocet pismen
function TextDlzka(box, dlzka) {
    var text = box.value;
    if(text.length > dlzka) {
        box.value = text.substring(0, dlzka);
    }
}
// ziska pocet vysledkov hladania
function ReturnPocetVysledkov() {
    var params = ""; //parametre ktore budu odoslane na server
    var lokalita = document.fQuickSearch.lokalita.value;
    var druh = document.fQuickSearch.druh.value;
    var cenaod = document.fQuickSearch.cenaod.value;
    var cenado = document.fQuickSearch.cenado.value;
    var fulltext = document.fQuickSearch.fulltext.value;
    if (fulltext == "im Text suchen" || fulltext == "H¾adanie v texte") {
        fulltext = "";
    }
    params = "lokalita="+lokalita+"&druh="+druh+"&cenaod="+cenaod+"&cenado="+cenado+"&fulltext="+fulltext+"&lang="+LANG;
    var ajaxRequest = testAjax();
    ajaxRequest.onreadystatechange = function() {
        if(ajaxRequest.readyState == 4){
            document.getElementById('submitQS').setAttribute('value', ajaxRequest.responseText);
        }
    }
    ajaxRequest.open("POST", "/_ajax/ajaxPocetVysledkov.php", true);
    ajaxRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    ajaxRequest.setRequestHeader("Content-length", params.length);
    ajaxRequest.setRequestHeader("Connection", "close");
    ajaxRequest.send(params);
}
// filtruje nazov ponuk
function FilterBox(box) {
    var text = box.value;
    for (var i = 0; i < filter_arr.length; i++) {
        var regex = eval("/" + filter_arr[i] + "/i");
        text = text.replace(regex, '');
    }
    box.value = text;
}
// nahradza skratky v nazve ponuky
function ReplaceNazov(box) {
    var text = box.value;
    for (var i = 0; i < replace_arr.length; i++) {
        var regex = eval("/" + replace_arr[i] + "/");
        text = text.replace(regex, replace_with[i]);
    }
    box.value = text;
}
// pre textbox ktory akceptuje iba cisla
function onlyNumbers(evt) {     
    var e = event || evt; // for trans-browser compatibility     
    var charCode = e.which || e.keyCode;     
    if (charCode > 31 && (charCode < 48 || charCode > 57)) {
        return false;     
    }
    return true; 
}
// nastavi textboxy s rozlohami pri novej ponuke
function SetRozlohy() {
    var selDruh = document.fNewItem.druh.selectedIndex;
    if (selDruh >= 4 && selDruh <= 10) {
        document.fNewItem.zastplocha.disabled = 'disabled';
        document.fNewItem.plochapozem.disabled = 'disabled';
        document.fNewItem.obytplocha.disabled = '';
    } else if (selDruh >= 18 && selDruh <= 23) {
        document.fNewItem.zastplocha.disabled = 'disabled';
        document.fNewItem.obytplocha.disabled = 'disabled';
        document.fNewItem.plochapozem.disabled = '';
    } else {
        document.fNewItem.zastplocha.disabled = '';
        document.fNewItem.obytplocha.disabled = '';
        document.fNewItem.plochapozem.disabled = '';
    }
}
// formatovanie meny
function FormatCena(cena, value) {
    var num = new NumberFormat();
    num.setInputDecimal('.');
    num.setNumber(cena); // obj.value is '10000'
    num.setPlaces('0', false);
    num.setCurrencyValue(value);
    num.setCurrency(true);
    num.setCurrencyPosition(num.RIGHT_INSIDE);
    num.setNegativeFormat(num.LEFT_DASH);
    num.setNegativeRed(false);
    num.setSeparators(true, '.', ',');
    return num.toFormatted();
}
// zmaze prvu polozku pola a vrati zvysok
function CutAddress(address) {
    var arr = address.split(', ');
    var newArray = arr.slice(1, arr.length);
    var newAddress = newArray[0];
    for(var i = 1; i < newArray.length; i++) {
        newAddress += ', '+newArray[i];    
    }
    return newAddress;
}
/******** MAPA V ITEM ********/
var itemmap = null;
function InitializeItemMap(myLat, myLng, mapDiv) {
    if (GBrowserIsCompatible()) {
        if (itemmap != null) {
            GUnload();
        }
        itemmap = new GMap2(document.getElementById(mapDiv));
        var center = new GLatLng(myLat, myLng);
        itemmap.setCenter(center, 7);    
        itemmap.addControl(new GLargeMapControl());
        itemmap.addControl(new GMapTypeControl());
        
        var marker = new GMarker(center, {draggable: true});
       
        GEvent.addListener(itemmap, "click", function(overlay, point) {
            if (point) {
                marker.setPoint(point);
                SetHiddenForms(marker);    
            }
        });

        GEvent.addListener(marker, "dragend", function() {
            SetHiddenForms(marker);
        });
        itemmap.addOverlay(marker);
    }    
}
function ShowAddressOnMap(formname) {
    if (formname == "newitem") {
        var ulica = document.fNewItem.ulice.value;
        var mesto = document.fNewItem.mesto.value;
        var okres = document.fNewItem.okreslokalita.options[document.fNewItem.okreslokalita.selectedIndex].text;
    } else if (formname == "profilRK") {
        var ulica = document.newitemform.ulice.value;
        var mesto = document.newitemform.mesto.value;
        var okres = document.newitemform.okreslokalita.options[document.newitemform.okreslokalita.selectedIndex].text;
    }
    
    var address = ulica + ', ' + mesto + ', ' + okres;
    SetItemMapCenter(address);
}
function SetItemMapCenter(address) {
    geocoder = new GClientGeocoder();
    if (geocoder) {
        geocoder.getLatLng(
            address,
            function(point) {
                if (!point) { 
                    // nebola najdena adresa, skratime ju
                    newAddress = CutAddress(address);
                    SetItemMapCenter(newAddress);
                } else {
                    itemmap.setCenter(point);
                    itemmap.setZoom(15);
                    itemmap.clearOverlays();
                    
                    var marker = new GMarker(point, {draggable: true});
                    SetHiddenForms(marker);
                    GEvent.addListener(marker, "dragend", function() {
                        SetHiddenForms(marker);
                    });
                    GEvent.clearListeners(itemmap, "click");
                    GEvent.addListener(itemmap, "click", function(overlay, point) {
                        if (point) {
                            marker.setPoint(point);
                            SetHiddenForms(marker);    
                        }
                    });
                    itemmap.addOverlay(marker);
                }
            }
        );
    }
}

function SetItemMapCenterEdit(_lat, _lng) {
    var point = new GLatLng(_lat, _lng);
    itemmap.setCenter(point);
    itemmap.setZoom(15);
    itemmap.clearOverlays();
    
    var marker = new GMarker(point, {draggable: true});
    SetHiddenForms(marker);
    GEvent.addListener(marker, "dragend", function() {
        SetHiddenForms(marker);
    });
    GEvent.clearListeners(itemmap, "click");
    GEvent.addListener(itemmap, "click", function(overlay, point) {
        if (point) {
            marker.setPoint(point);
            SetHiddenForms(marker);    
        }
    });
    itemmap.addOverlay(marker);
}

function SetHiddenForms(marker) {
    try {
        document.kontaktinfo.itemGLat.value = marker.getLatLng().lat();
        document.kontaktinfo.itemGLng.value = marker.getLatLng().lng();
    } catch (err) {
    }                
    try {
        document.fNewItem.itemGLat.value = marker.getLatLng().lat();
        document.fNewItem.itemGLng.value = marker.getLatLng().lng();
    } catch (err) {
    }
}
 /*****************************/
 function testAjax() {
    var ajaxRequest = false;  // The variable that makes Ajax possible!
    try{
        ajaxRequest = new XMLHttpRequest();
    } catch (e){
        try{
            ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try{
                ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e){
                alert("Your browser does not support AJAX!");
                return false;
            }
        }
    }
    return ajaxRequest;
}
// nastavi cookies pre export
function SetExportCookies(id_zakazky) {
    var ajaxRequest;
    ajaxRequest = testAjax();
    var queryString = "?id=" + id_zakazky;
    ajaxRequest.open("GET", "/_ajax/ajaxExportCookie.php" + queryString, true);
    ajaxRequest.send(null);
}

function showAddress(lat, lng) {
    var targetDiv = 'mapakontakt';
    var textControl = false;
    if (!document.getElementById('mapakontakt')) {
        CreateMapaPopup();
        targetDiv = 'mapa';
        textControl = true;
    }
    var map = new GMap2(document.getElementById(targetDiv));
    map.setCenter(new GLatLng(lat, lng), 15);
    map.addControl(new GMapTypeControl());
    if (!textControl) {
        map.addControl(new GSmallMapControl());
    } else {
        map.addControl(new TextualZoomControl());
        map.addControl(new GLargeMapControl());
    }
    var marker = new GMarker(new GLatLng(lat, lng));
    map.addOverlay(marker);
}
function TextualZoomControl() {}
TextualZoomControl.prototype = new GControl();

TextualZoomControl.prototype.initialize = function(map) {
    var container = document.createElement("div");
    var closeDiv = document.createElement("div");
    this.setButtonStyle_(closeDiv);
    container.appendChild(closeDiv);
    closeDiv.appendChild(document.createTextNode("ZAVRIE\u0164 MAPU"));
    
    GEvent.addDomListener(closeDiv, "click", function() {
        GUnload();
        removeElement('mapa');
    });

    map.getContainer().appendChild(container);
    return container;
}

TextualZoomControl.prototype.getDefaultPosition = function() {
    return new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(20, 40));
}

TextualZoomControl.prototype.setButtonStyle_ = function(button) {
    button.style.textDecoration = "none";
    button.style.color = "#fff";
    button.style.backgroundColor = "red";
    button.style.font = "small Arial";
    button.style.border = "3px solid black";
    button.style.padding = "2px";
    button.style.marginBottom = "3px";
    button.style.textAlign = "center";
    button.style.width = "9em";
    button.style.cursor = "pointer";
}

// pomocna funkcia, workaround pre setAttribute() pre IE
function rzCC(s) {
    for(var exp=/-([a-z])/; 
        exp.test(s); 
        s=s.replace(exp,RegExp.$1.toUpperCase()));
    return s;
}
// pomocna funkcia, workaround pre setAttribute() pre IE
function _setStyle(element, declaration) {
    if (declaration.charAt(declaration.length-1)==';') {
        declaration = declaration.slice(0, -1);
    }
    var k, v;
    var splitted = declaration.split(';');
    for (var i=0, len=splitted.length; i<len; i++) {
        k = rzCC(splitted[i].split(':')[0]);
        v = splitted[i].split(':')[1];
        eval("element.style."+k+"='"+v+"'");
    }
}
// vrati suradnice kliku
function GetClickCoords(e) {
    var posx = 0;
    var posy = 0;
    if (!e) { var e = window.event; }
    if (e.pageX || e.pageY) {
        posx = e.pageX;
        posy = e.pageY;
    } else if (e.clientX || e.clientY) {
        posx = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
        posy = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
    }
    var Coor = new Array(posx, posy);
    return Coor;
}
// vytvori popup s mapou
function CreateMapaPopup() {
    var newdiv = document.createElement('div');
    newdiv.setAttribute('id', 'mapa');
    document.body.appendChild(newdiv);
}
// vytvori popup okno pre odoslanie sledovanych ponuk
function CreatePopupSledovane(e) {
    if (document.getElementById('detailPopup')) {
        return;
    }
    var Coor = GetClickCoords(e);
    var newdiv = document.createElement('div');
    newdiv.setAttribute('id', 'detailPopup');
    _setStyle(newdiv, 'width: 270px; height: 75px; top: '+Coor[1]+'px; left: '+(Coor[0]-100)+'px;');        
    var ajaxRequest = testAjax();
    ajaxRequest.onreadystatechange = function() {
        if(ajaxRequest.readyState == 4){
            document.getElementById('detailPopup').innerHTML = ajaxRequest.responseText;
        }
    }
    ajaxRequest.open("GET", "/_ajax/ajaxSetDetailForm.php?type=sledovane&lang="+LANG, true);
    ajaxRequest.send(null);
    document.body.appendChild(newdiv);
}
// otvori popup pre dohodnutie prehliadky
function CreatePrehliadkaPopup(e) {
    if (document.getElementById('detailPopup')) {
        return;
    }
    var coor = GetClickCoords(e);
    var newdiv = document.createElement('div');
    newdiv.setAttribute('id', 'detailPopup');
    _setStyle(newdiv, 'top: '+(coor[1]-100)+'px; left: '+(coor[0]-400)+'px');
    var ajaxRequest = testAjax();
    ajaxRequest.onreadystatechange = function() {
        if(ajaxRequest.readyState == 4){
            document.getElementById('detailPopup').innerHTML = ajaxRequest.responseText;
        }
    }
    ajaxRequest.open("GET", "/_ajax/ajaxSetDetailForm.php?type=prehliadka&lang="+LANG, true);
    ajaxRequest.send(null);
    document.body.appendChild(newdiv);
    
} 
// otvori popup pre zadanie mailu
function CreateMailPopup(e) {
    if (document.getElementById('detailPopup')) {
        return;
    }
    var Coor = GetClickCoords(e);
    var newdiv = document.createElement('div');
    newdiv.setAttribute('id', 'detailPopup');
    _setStyle(newdiv, 'width: 270px; height: 75px; top: '+Coor[1]+'px; left: '+(Coor[0]-100)+'px;');        
    var ajaxRequest = testAjax();
    ajaxRequest.onreadystatechange = function() {
        if(ajaxRequest.readyState == 4){
            document.getElementById('detailPopup').innerHTML = ajaxRequest.responseText;
        }
    }
    ajaxRequest.open("GET", "/_ajax/ajaxSetDetailForm.php?type=mail&lang="+LANG, true);
    ajaxRequest.send(null);
    document.body.appendChild(newdiv);
}
// vytvori popup pre odoslanie spravy
function CreateMessagePopup(e) {
    if (document.getElementById('detailPopup')) {
        return;
    }
    var Coor = GetClickCoords(e);
    var newdiv = document.createElement('div');
    newdiv.setAttribute('id', 'detailPopup');
    _setStyle(newdiv, 'width: 450px; height: 420px; top: '+Coor[1]+'px; left: '+(Coor[0]-200)+'px;');
    var ajaxRequest = testAjax();
    ajaxRequest.onreadystatechange = function() {
        if(ajaxRequest.readyState == 4){
            document.getElementById('detailPopup').innerHTML = ajaxRequest.responseText;
        }
    }
    ajaxRequest.open("GET", "/_ajax/ajaxSetDetailForm.php?type=msg&lang="+LANG, true);
    ajaxRequest.send(null);
    document.body.appendChild(newdiv);
}
// odstrani element
function removeElement(divId) {
    var olddiv = document.getElementById(divId);
    document.body.removeChild(olddiv);
}
function Ajax() {
    var transport;
    if(window.XMLHttpRequest) {
        transport = new XMLHttpRequest();
    } else {
        try{ transport = new ActiveXObject("MSXML2.XMLHTTP.6.0"); }catch(e){}
        try{ transport = new ActiveXObject("MSXML2.XMLHTTP"); }catch(e){}
    }
    if(!transport) return;
    this.transport = transport;
    return this.transport;
}