
var ie = (document.all) ? true : false;

var fcLokalizacja;
var fcTyp;
var fcPowierzchnia;
var fcPowierzchniaDomu;
var fcPowierzchniaDzialki;
var fcIloscPokoi;
var fcCena;

var zoomBG;
var zoomDIV;
var zoomIMG;
var zoomIndex;

window.onload = init;
window.onresize = redraw;

function redraw() {
    var layerHead = document.getElementById('LayerHead');
    var pageBody = document.getElementById('PageBody');

    if (layerHead && pageBody) {
        pageBody.style.height = null;
        var pageBodyHeight = Math.max(pageBody.scrollHeight, document.body.clientHeight - pageBody.offsetTop - 70);
        pageBody.style.height = pageBodyHeight + 'px';
        layerHead.style.height = pageBodyHeight + 320 + 70 + 'px';
    }
}

function init() {
    fcLokalizacja = document.getElementById('fcLokalizacja');
    fcTyp = document.getElementById('fcTyp');
    fcPowierzchnia = document.getElementById('fcPowierzchnia');
    fcPowierzchniaDomu = document.getElementById('fcPowierzchniaDomu');
    fcPowierzchniaDzialki = document.getElementById('fcPowierzchniaDzialki');
    fcIloscPokoi = document.getElementById('fcIloscPokoi');
    fcCena = document.getElementById('fcCena');

    initSearchForm(document.getElementById('SearchForm'));
    
    zoomBG = document.getElementById('ZoomBG');
    zoomDIV= document.getElementById('ZoomDIV');
    zoomIMG = document.getElementById('ZoomIMG');

    redraw();
}


function getSelectionValue(aSelection) {
    return aSelection.options[aSelection.selectedIndex].value;
}

function initSearchForm() {
    var f = document.SearchForm;
    
    switch (getSelectionValue(f.iTypNieruchomosci)) {
        case '0':
            if (fcTyp) fcTyp.style.display = 'none';
            fcPowierzchnia.style.display = 'block';
            fcPowierzchniaDomu.style.display = 'none';
            f.iPowierzchniaDomuOd.value = 'Od';
            f.iPowierzchniaDomuDo.value = 'Do';
            fcPowierzchniaDzialki.style.display = 'none';
            f.iPowierzchniaDzialkiOd.value = 'Od';
            f.iPowierzchniaDzialkiDo.value = 'Do';
            fcIloscPokoi.style.display = 'block';
            fcCena.style.display = 'block';
            break;
        case '1':
            if (fcTyp) fcTyp.style.display = 'none';
            fcPowierzchnia.style.display = 'none';
            f.iPowierzchniaOd.value = 'Od';
            f.iPowierzchniaDo.value = 'Do';
            fcPowierzchniaDomu.style.display = 'block';
            fcPowierzchniaDzialki.style.display = 'block';
            fcIloscPokoi.style.display = 'none';
            f.iIloscPokoiOd.value = 'Od';
            f.iIloscPokoiDo.value = 'Do';
            fcCena.style.display = 'block';
            break;
        case '2':
            if (fcTyp) fcTyp.style.display = 'block';
            fcPowierzchnia.style.display = 'block';
            fcPowierzchniaDomu.style.display = 'none';
            f.iPowierzchniaDomuOd.value = 'Od';
            f.iPowierzchniaDomuDo.value = 'Do';
            fcPowierzchniaDzialki.style.display = 'none';
            f.iPowierzchniaDzialkiOd.value = 'Od';
            f.iPowierzchniaDzialkiDo.value = 'Do';
            fcIloscPokoi.style.display = 'none';
            f.iIloscPokoiOd.value = 'Od';
            f.iIloscPokoiDo.value = 'Do';
            fcCena.style.display = 'block';
            break;
        case '3':
            if (fcTyp) fcTyp.style.display = 'block';
            fcPowierzchnia.style.display = 'block';
            fcPowierzchniaDomu.style.display = 'none';
            f.iPowierzchniaDomuOd.value = 'Od';
            f.iPowierzchniaDomuDo.value = 0;
            fcPowierzchniaDzialki.style.display = 'none';
            f.iPowierzchniaDzialkiOd.value = 'Od';
            f.iPowierzchniaDzialkiDo.value = 'Do';
            fcIloscPokoi.style.display = 'none';
            f.iIloscPokoiOd.value = 'Od';
            f.iIloscPokoiDo.value = 'Do';
            fcCena.style.display = 'block';
            break;
        default:
            alert('Niepoprawna wartość w polu "Typ nieruchomości".');
    }
}

function focusRange(aElement, aValue) {
    if (aElement.value == aValue)
        aElement.value = '';
}

function blurRange(aElement, aValue) {
    if (aElement.value == '')
        aElement.value = aValue;
}

function changeTypNieruchomosci() {
    var f = document.SearchForm;
    
    initSearchForm();
    f.iOrderCol.value = 0;
    f.iOrderDir.value = 0;
    f.iFirstRow.value = 0;
    f.iLengthPage.value = 10;
    f.submit();
}

function changeRodzajOferty() {
    var f = document.SearchForm;
    
    f.iFirstRow.value = 0;
    f.submit();
}

function changeTyp() {
    var f = document.SearchForm;
    
    f.iFirstRow.value = 0;
    f.submit();
}

function changeLokalizacja() {
    var f = document.SearchForm;
    
    f.iFirstRow.value = 0;
    f.submit();
}

function search() {
    var f = document.SearchForm;
    
    f.action = 'wyniki.php';
    f.submit();
}

function findPos(aObj) {
    var curleft = curtop = 0;
    
    if (aObj.offsetParent) {
        do {
            curleft += aObj.offsetLeft;
            curtop += aObj.offsetTop;
        } while (aObj = aObj.offsetParent);

        return [curleft, curtop];
    }
}
       
function openOffer(aTR, aEvent, aType, aID) {
    var x;
    
    if (ie)
        x = aEvent.x;
    else
        x = aEvent.pageX - findPos(aTR)[0];
    if (x < 95 || 155 < x)
        window.location = 'oferta.php?T=' + aType + '&cID=' + aID;
}

function pictures() {
    var f = document.SearchForm;

    if (f.iPictures.value == 0)
        f.iPictures.value = 1;
    else
        f.iPictures.value = 0;
    f.submit();
}

function panoramas() {
    var f = document.SearchForm;

    if (f.iPanoramas.value == 0)
        f.iPanoramas.value = 1;
    else
        f.iPanoramas.value = 0;
    f.submit();
}

function sort(aKey) {
    var f = document.SearchForm;

    if (f.iOrderCol.value == aKey) {
        if (f.iOrderDir.value == 0)
            f.iOrderDir.value = 1;
        else
            f.iOrderDir.value = 0;
    } else {
        f.iOrderDir.value = 0;
    }
    f.iOrderCol.value = aKey;
    f.submit();
}

function page(aPage) {
    var f = document.SearchForm;

    f.iFirstRow.value = aPage * f.iLengthPage.value;
    f.submit();
}

function newsletter() {
    var f = document.SearchForm;
    
    f.action = 'newsletter.php';
    f.submit();
}

function setOpacity(element, opacity) {
    element.style.opacity = (opacity / 100);
    element.style.MozOpacity = (opacity / 100);
    element.style.KhtmlOpacity = (opacity / 100);
    element.style.filter = "alpha(opacity=" + opacity + ")";
}

function zoom(aImg, aIndex) {
    if (zoomBG) {
        if (ie)
            zoomBG.style.top = document.body.scrollTop + 'px';
        else
            zoomBG.style.top = '0px';
        zoomBG.style.left = '0px';
        zoomBG.style.width = document.documentElement.scrollWidth + 'px';
        zoomBG.style.height = document.documentElement.scrollHeight + 'px';
        
        zoomBG.style.cursor = 'wait';

        zoomIMG.onload = zoomFinish;
        zoomIMG.src = aImg.src.replace(/\/thm-/, '/img-');
        
        setOpacity(zoomBG, 90);
        zoomBG.style.visibility = 'visible';
        
        zoomSelect(aIndex);
    }
}

function zoomFinish() {
    if (zoomBG && zoomDIV && zoomIMG) {
        zoomDIV.style.width = zoomIMG.clientWidth + 24 + 'px';
        zoomDIV.style.height = zoomIMG.clientHeight + 84 + 'px';
        if (ie) {
            zoomDIV.style.top = document.body.parentNode.scrollTop + (document.body.clientHeight - zoomDIV.clientHeight) / 2 + 'px';
            zoomDIV.style.left = (document.body.clientWidth - zoomDIV.clientWidth) / 2 + 'px';
        } else {
            zoomDIV.style.top = window.scrollY + (window.innerHeight - zoomDIV.clientHeight) / 2 + 'px';
            zoomDIV.style.left = (window.innerWidth - zoomDIV.clientWidth) / 2 + 'px';
        }
        zoomBG.style.cursor = 'default';
        zoomDIV.style.visibility = 'visible';
    }
}

function zoomSelect(aIndex) {
    if (zoomList) {
        if (0 <= zoomIndex) {
            var e = document.getElementById('ZoomRef' + zoomIndex);
            e.className = e.className.replace(/Selected/, 'Unselected');
        }
        zoomIndex = aIndex;
        if (zoomList[aIndex] < 10)
            str = '0' + zoomList[aIndex];
        else
            str = zoomList[aIndex];
        zoomIMG.src = zoomIMG.src.replace(/-\d\d\.jpg/, '-' + str + '.jpg');
        var e = document.getElementById('ZoomRef' + aIndex);        
        e.className = e.className.replace(/Unselected/, 'Selected');
    }
}

function zoomFirst() {
    zoomSelect(0);
}

function zoomPrev() {
    if (zoomList && 0 < zoomIndex) {
        zoomSelect(zoomIndex - 1);
    }
}

function zoomNext() {
    if (zoomList && zoomIndex < zoomList.length - 1) {
        zoomSelect(zoomIndex + 1);
    }
}

function zoomLast() {
    if (zoomList) {
        zoomSelect(zoomList.length - 1);
    }
}

function zoomClose() {
    if (zoomBG && zoomDIV) {
        zoomBG.style.visibility = 'hidden';
        zoomDIV.style.visibility = 'hidden';
    }
}

function zoomPanorama(aSubdir, aID) {
    if (zoomBG) {
        if (ie)
            zoomBG.style.top = document.body.scrollTop + 'px';
        else
            zoomBG.style.top = '0px';
        zoomBG.style.left = '0px';
        zoomBG.style.width = document.documentElement.scrollWidth + 'px';
        zoomBG.style.height = document.documentElement.scrollHeight + 'px';
        
        zoomBG.style.cursor = 'wait';

        zoomDiv.innerHTML = '<object><embed type="application/x-shockwave-flash" width="520" height="390" src="./media/' + aSubdir + '/' + aID + '/start.swf" base="./media/' + aSubdir + '/' + aID + '"></embed></object>';7
        zoomDiv.style.width = '540px';
        zoomDiv.style.height = '430px';
        if (ie) {
            zoomDiv.style.top = document.body.parentNode.scrollTop + (document.body.clientHeight - zoomDiv.clientHeight) / 2 + 'px';
            zoomDiv.style.left = (document.body.clientWidth - zoomDiv.clientWidth) / 2 + 'px';
        } else {
            
            zoomDiv.style.top = window.scrollY + (window.innerHeight - zoomDiv.clientHeight) / 2 + 'px';
            zoomDiv.style.left = (window.innerWidth - zoomDiv.clientWidth) / 2 + 'px';
        }
        
        zoomBG.style.cursor = 'pointer';
        zoomDiv.style.visibility = 'visible';
        
        setOpacity(zoomBG, 90);
        zoomBG.style.visibility = 'visible';
    }
}

function openPanorama(aPanorama) {
    window.open(aPanorama, '_blank');
}
