var bathrooms = "";
var bathroomsContent = "";
var bedrooms = "";
var bedroomsContent = "";
var levels = "";
var levelsContent = "";
var marketId = 0;
var matchesFound = "";
var maxPrice = "";
var maxPriceContent = "";
var minPrice = "";
var minPriceContent = "";
var quickSearchUrl = "/find-your-new-home/search.html";
var sortColumn = "City";
var squareFeet = "";
var sqFtContent = "";
var searchType = 1; //default to Inventory Search

$(function() {
    $.bindFilters();
    $.bindEvents();
    if ($("select[@id$=AreaFilter]")[0].selectedIndex < 1) {
        $("#quickSearch").find("div:gt(1)").hide();
        $("#quickSearchLink").hide();
    }
    else {
        $("#quickSearch").find("div:gt(1)").hide();
        $("#quickSearchLink").hide();
        $("select[@id$=AreaFilter]").trigger("change");
    }
});

jQuery.bindEvents = function() {
    $("#minPrice").bind("change", function() {
        $.setFilters();
        $("#updateProgress").show();
        $.get("/handlers/findyournewhome/searchhandler.ashx", { searchtype: searchType, marketid: marketId, baths: bathrooms, beds: bedrooms, lvls: levels, min: minPrice, max: maxPrice, sqft: squareFeet, sortCol: sortColumn }, function(data) {
            $.loadSearchResults(data);
            $("#updateProgress").hide();
            $.resetFilters();
        });
    });
    $("#maxPrice").bind("change", function() {
        $.setFilters();
        $("#updateProgress").show();
        $.get("/handlers/findyournewhome/searchhandler.ashx", { searchtype: searchType, marketid: marketId, baths: bathrooms, beds: bedrooms, lvls: levels, min: minPrice, max: maxPrice, sqft: squareFeet, sortCol: sortColumn }, function(data) {
            $.loadSearchResults(data);
            $("#updateProgress").hide();
            $.resetFilters();
        });
    });
    $("#bedrooms").bind("change", function() {
        $.setFilters();
        $("#updateProgress").show();
        $.get("/handlers/findyournewhome/searchhandler.ashx", { searchtype: searchType, marketid: marketId, baths: bathrooms, beds: bedrooms, lvls: levels, min: minPrice, max: maxPrice, sqft: squareFeet, sortCol: sortColumn }, function(data) {
            $.loadSearchResults(data);
            $("#updateProgress").hide();
            $.resetFilters();
        });
    });
    $("#bathrooms").bind("change", function() {
        $.setFilters();
        $("#updateProgress").show();
        $.get("/handlers/findyournewhome/searchhandler.ashx", { searchtype: searchType, marketid: marketId, baths: bathrooms, beds: bedrooms, lvls: levels, min: minPrice, max: maxPrice, sqft: squareFeet, sortCol: sortColumn }, function(data) {
            $.loadSearchResults(data);
            $("#updateProgress").hide();
            $.resetFilters();
        });
    });
    $("#levels").bind("change", function() {
        $.setFilters();
        $("#updateProgress").show();
        $.get("/handlers/findyournewhome/searchhandler.ashx", { searchtype: searchType, marketid: marketId, baths: bathrooms, beds: bedrooms, lvls: levels, min: minPrice, max: maxPrice, sqft: squareFeet, sortCol: sortColumn }, function(data) {
            $.loadSearchResults(data);
            $("#updateProgress").hide();
            $.resetFilters();
        });
    });
    $("#sqft").bind("change", function() {
        $.setFilters();
        $("#updateProgress").show();
        $.get("/handlers/findyournewhome/searchhandler.ashx", { searchtype: searchType, marketid: marketId, baths: bathrooms, beds: bedrooms, lvls: levels, min: minPrice, max: maxPrice, sqft: squareFeet, sortCol: sortColumn }, function(data) {
            $.loadSearchResults(data);
            $("#updateProgress").hide();
            $.resetFilters();
        });
    });
};

jQuery.bindFilters = function() {
    $("select[@id$=AreaFilter]").bind("change", function() {
        if ($(this)[0].selectedIndex > 0) {
            $.setFilters();
            $("#updateProgress").show();
            $.get("/handlers/findyournewhome/searchhandler.ashx", { searchtype: searchType, marketid: marketId }, function(data) {
                $.loadSearchResults(data);
                quickSearchUrl += "?marketid=" + marketId + "&mode=" + searchType + "&sortCol=City&baths=" + bathrooms + "&beds=" + bedrooms + "&min=" + minPrice + "&max=" + maxPrice + "&lvls=" + levels + "&sqft=" + squareFeet;
                $("#updateProgress").hide();
                $.resetFilters();
                $("#quickSearchLink").attr("href", quickSearchUrl);
            });
        }
        else {
            $("#quickSearch").find("div:gt(1)").hide();
            $("#quickSearchLink").hide();
        }
    });
};

jQuery.loadSearchResults = function(data) {
    if (typeof (data) !== "undefined") {
        if (data.indexOf("Error") < 0) {
            bathroomsContent = data.split("||")[2];
            bedroomsContent = data.split("||")[3];
            levelsContent = data.split("||")[4];
            maxPriceContent = data.split("||")[5];
            minPriceContent = data.split("||")[6];
            sqFtContent = data.split("||")[7];
            matchesFound = data.split("||")[11];
        }
        else {
            alert("An error has occurred while performing your search.  Please try again later.");
            return;
        }
    }
    var bathsLabel = $("#bathroomsWrapper>label");
    bathsLabel.siblings().remove();
    bathsLabel.after(bathroomsContent);

    var bedsLabel = $("#bedroomsWrapper>label");
    bedsLabel.siblings().remove();
    bedsLabel.after(bedroomsContent);

    var levelsLabel = $("#levelsWrapper>label");
    levelsLabel.siblings().remove();
    levelsLabel.after(levelsContent);

    var maxPriceLabel = $("#maxPriceWrapper>label");
    maxPriceLabel.siblings().remove();
    maxPriceLabel.after(maxPriceContent);

    var minPriceLabel = $("#minPriceWrapper>label");
    minPriceLabel.siblings().remove();
    minPriceLabel.after(minPriceContent);

    var sqftLabel = $("#sqftWrapper>label");
    sqftLabel.siblings().remove();
    sqftLabel.after(sqFtContent);

    $("#quickSearchLink").text(matchesFound);

    $.bindEvents();
    $.bindFilters();
    $("#quickSearch").find("div:gt(1)").show();
    $("#quickSearchLink").show();
};

jQuery.resetFilters = function() {
    bathrooms = "";
    bedrooms = "";
    levels = "";
    maxPrice = "";
    minPrice = "";
    squareFeet = "";
    marketId = 0;
    sortColumn = "";
};

jQuery.setFilters = function() {
    if ($("#maxPriceWrapper").children("select").length != 0) {
        if ($("#bathrooms")[0].selectedIndex > 0) { bathrooms = escape($("#bathrooms").val()) };
        if ($("#bedrooms")[0].selectedIndex > 0) { bedrooms = escape($("#bedrooms").val()) };
        if ($("#levels")[0].selectedIndex > 0) { levels = $("#levels").val() };
        if ($("#maxPrice")[0].selectedIndex > 0) { maxPrice = $("#maxPrice").val() };
        if ($("#minPrice")[0].selectedIndex >= 0) { minPrice = $("#minPrice").val() };
        if ($("#sqft")[0].selectedIndex > 0) { squareFeet = escape($("#sqft").val()) };
    }

    marketId = $("select[@id$=AreaFilter]").val();
};
