﻿function displayAdvanceSearchPage() {
    displayHeader('start_search');
    displayNavigationMenu('advanced_menu');
    displayFooter();
    var str = ReadCookie('uSess');
    if (str == null || str == '') {
        document.getElementById('notsignin').style.display = "block";
        document.getElementById('alreadysignin').style.display = "none";
    } else {
        document.getElementById('notsignin').style.display = "none";
        document.getElementById('alreadysignin').style.display = "block";
        document.getElementById('usernamespan').innerHTML = ReadCookie('dName');
    }
    
    populateMonthlyRent('min_rent');
    populateMonthlyRent('max_rent');
    populateSquareFeet('minSqFt');
    populateSquareFeet('maxSqFt');

    getPropertyBasic();
}

function logout() {
    var str = ReadCookie('uSess');
    window.location = "../user/processLogOut.aspx?userSession=" + encodeURI(str);
}

function populateMonthlyRent(cbname) {
    var cb = document.getElementById(cbname);
    cb.options.length = 0;
    var snum = 400;
    var diffnum = 300;
    var maxNum = 22;
    for (var i = 0; i <= maxNum; i++) {
        cb.options[i] = new Option('$' + snum);
        cb.options[i].value = snum;

        snum = snum + diffnum;
    }

    cb.options[maxNum + 1] = new Option('$10000');
    cb.options[maxNum + 1].value = '10000';
    
    cb.options[maxNum + 2] = new Option('unlimited');
    cb.options[maxNum + 2].value = '-1';
    document.getElementById(cbname).value = '-1';
}

function populateSquareFeet(cbname) {
    var cb = document.getElementById(cbname);
    cb.options.length = 0;
    var snum = 100;
    var diffnum = 100;
    var maxNum = 27;
    for (var i = 0; i <= maxNum; i++) {
        cb.options[i] = new Option(snum);
        cb.options[i].value = snum;

        snum = snum + diffnum;
    }

    cb.options[maxNum + 1] = new Option('unlimited');
    cb.options[maxNum + 1].value = '-1';
    document.getElementById(cbname).value = '-1';
}

function getPropertyBasic() {
    var poststr = "method=advanceSearchPropertyBasic";
    makePOSTRequest('../listing/SearchListingHelper.aspx', poststr, displayPropertyBasic);
}

function displayPropertyBasic() {
    if (http_request.readyState == 4) {
        if (http_request.status == 200) {
            var xmlstring = http_request.responseText;
            //alert(xmlstring);
            var xmlobject;
            if (typeof (DOMParser) == 'undefined') {
                xmlobject = new ActiveXObject('MSXML.DomDocument');
                xmlobject.async = false;
                xmlobject.loadXML(xmlstring);
            } else {
                xmlobject = (new DOMParser()).parseFromString(xmlstring, 'text/xml');
            }

            var data = xmlobject.getElementsByTagName('total');
            var tListings = getNodeValue(data[0], 'totalListings');
            document.getElementById('totallistingsspan').innerHTML = "Total Listings: " + tListings;
            document.getElementById('hdTotalListings').value = tListings;

            setListingCityCountDetail('cities', xmlobject, 'listingcitiescountspan', 'city');
            setListingCountDetail('propertytypes', xmlobject, 'listingpropertytyescountspan', 'propertytype');
            setListingCountDetail('bedrooms', xmlobject, 'listingbedroomscountspan', 'bedroom');
            setListingCountDetail('petstatuses', xmlobject, 'listingpetcountspan', 'pet');
            setListingCountDetail('bathrooms', xmlobject, 'listingbathroomscountspan', 'bathroom');
            setListingCountDetail('smokingstatuses', xmlobject, 'listingsmokingcountspan', 'smoking');
            setListingCountDetail('utilities', xmlobject, 'listingutilitiescountspan', 'utility');
            setListingCountDetail('parkingstatuses', xmlobject, 'listingparkingcountspan', 'parking');

            getMoreOptions();

        } else {
            //alert('There was a problem with the request.');
        }
    }
}

function getMoreOptions() {
    var poststr = "method=advanceSearchMoreOptions";
    makePOSTRequest('../listing/SearchListingHelper.aspx', poststr, displayMoreOptions);
}

function displayMoreOptions() {
    if (http_request.readyState == 4) {
        if (http_request.status == 200) {
            var xmlstring = http_request.responseText;
            //alert(xmlstring);
            var xmlobject;
            if (typeof (DOMParser) == 'undefined') {
                xmlobject = new ActiveXObject('MSXML.DomDocument');
                xmlobject.async = false;
                xmlobject.loadXML(xmlstring);
            } else {
                xmlobject = (new DOMParser()).parseFromString(xmlstring, 'text/xml');
            }

            setListingCountDetail('furnish', xmlobject, 'listingfurnishscountspan', 'furnish');
            setListingCountDetail('underage', xmlobject, 'listingunderagescountspan', 'underage');
            setListingCountDetail('homefeature', xmlobject, 'listinghomefeaturescountspan', 'homefeature');
            setListingCountDetail('buildingfeature', xmlobject, 'listingbuildingfeaturescountspan', 'buildingfeature');
            setListingCountDetail('communityfeature', xmlobject, 'listingcommunityfeaturescountspan', 'communityfeature');

            getCommunities();

        } else {
            //alert('There was a problem with the request.');
        }
    }
}

function setListingCountDetail(categoryName, xmlobject, listingspanname, prefixName) {
    var data = xmlobject.getElementsByTagName(categoryName);
    var dc = "";
    for (var i = 0; i < data.length; i++) {
        var n = getNodeValue(data[i], 'name');
        var c = getNodeValue(data[i], 'count');
        if (c == undefined) {
            c = "0";
        }

        dc = dc + "&nbsp;&nbsp;<input type=\"checkbox\" name=\"" + prefixName + getNodeValue(data[i], 'id') + "\" /> &nbsp;" +
             n + " (" + c + ") <br/>";
    }
    document.getElementById(listingspanname).innerHTML = dc;
    //alert(dc);
}

function setListingCityCountDetail(categoryName, xmlobject, listingspanname, prefixName) {
    var data = xmlobject.getElementsByTagName(categoryName);
    var num = data.length;
    if (data.length > 15) {
        num = 15;
    }

    var dc = "<div class=\"formcolumn\" style=\"border: none;\"><div class=\"hrow\"><strong>City's</strong> &nbsp;<span><a href=\"#\" rel=\"htmltooltip\"><img src=\"images/query.gif\" alt=\"\" title=\"\" /></a></span></div><div class=\"hrow\">";
    for (var i = 0; i < num; i++) {
        var n = getNodeValue(data[i], 'name');
        var c = getNodeValue(data[i], 'count');
        if (c == undefined) {
            c = "0";
        }

        dc = dc + "&nbsp;&nbsp;<input type=\"checkbox\" name=\"" + prefixName + getNodeValue(data[i], 'id') + "\" /> &nbsp;" +
             n + " (" + c + ") <br/>";
    }
    dc = dc + "</div></div>";

    if (data.length > 15) {
        dc = dc + "<div class=\"formcolumn\"><div class=\"hrow\">";
        for (var i = 15; i < data.length; i++) {
            var n = getNodeValue(data[i], 'name');
            var c = getNodeValue(data[i], 'count');
            if (c == undefined) {
                c = "0";
            }

            dc = dc + "&nbsp;&nbsp;<input type=\"checkbox\" name=\"" + prefixName + getNodeValue(data[i], 'id') + "\" /> &nbsp;" +
             n + " (" + c + ") <br/>";
        }
        dc = dc + "</div></div>";
    }

    document.getElementById(listingspanname).innerHTML = dc;
}

function getCommunities() {
    var poststr = "method=advanceSearchCommunities";
    makePOSTRequest('../listing/SearchListingHelper.aspx', poststr, displayCommunities);
}

function displayCommunities() {
    if (http_request.readyState == 4) {
        if (http_request.status == 200) {
            var xmlstring = http_request.responseText;
            //alert(xmlstring);
            var xmlobject;
            if (typeof (DOMParser) == 'undefined') {
                xmlobject = new ActiveXObject('MSXML.DomDocument');
                xmlobject.async = false;
                xmlobject.loadXML(xmlstring);
            } else {
                xmlobject = (new DOMParser()).parseFromString(xmlstring, 'text/xml');
            }

            var data = xmlobject.getElementsByTagName('community');
            var dc = "";
            if (data.length > 0) {
                dc = "<div class=\"formcolumn\" style=\"border: none;\"><div class=\"hrow\"><strong>Vancouver Districts & Neighbourhood</strong></div>" +
                         "<div class=\"hrow\">";
                for (var i = 0; i < data.length; i++) {
                    dc = dc + "&nbsp;&nbsp;<input type=\"checkbox\" name=\"community" + getNodeValue(data[i], 'id') +
                         "\" />&nbsp;" + getNodeValue(data[i], 'name') + " (" + getNodeValue(data[i], 'count') + ") <br />";
                }

                dc = dc + "</div></div>";
            }
            document.getElementById('listingcommunitiesspan').innerHTML = dc;
            

        } else {
            //alert('There was a problem with the request.');
        }
    }
}

function viewAllResults() {
    window.location = "../advancedSearchResults.aspx?hdTotalListings=" + document.getElementById('hdTotalListings').value;
}