﻿// To Sync the fields for Quick Search and Advanced Search
var CrumbList = { "Flds": [ 
{"fldKey" : "5020_min", "section":"Basic", "fldName" : "PriceMin", "type" : "price"},
{ "fldKey": "5020_max", "section":"Basic", "fldName": "PriceMax", "type": "price" },
{ "fldKey": "2050_min", "section":"Basic", "fldName": "BedsMin", "type": "numeric" },
{ "fldKey": "2060_min", "section":"Basic", "fldName": "BathsMin", "type": "numeric" },
{ "fldKey": "2020_min", "section":"MoreOptions", "fldName": "YearBuiltMin", "type": "text" },
{ "fldKey": "2020_max", "section":"MoreOptions", "fldName": "YearBuiltMax", "type": "text" },
{ "fldKey": "2030_min", "section":"MoreOptions", "fldName": "SQFTMin", "type": "numeric" },
{ "fldKey": "2040_min", "section":"MoreOptions", "fldName": "AcreMin", "type": "numeric" },
{ "fldKey": "2041_min", "section":"MoreOptions", "fldName": "AcreMin", "type": "numeric" },
{ "fldKey": "2040_max", "section":"MoreOptions", "fldName": "AcreMax", "type": "numeric" },
{ "fldKey": "2041_max", "section":"MoreOptions", "fldName": "AcreMax", "type": "numeric" },
{ "fldKey": "3043_min", "section":"MoreOptions", "fldName": "GarageMin", "type": "numeric" },
{ "fldKey": "3022_min", "section":"MoreOptions", "fldName": "GarageMin", "type": "numeric" },
{ "fldKey": "3010_min", "section":"MoreOptions", "fldName": "GarageMin", "type": "numeric" },
{ "fldKey": "2115_min", "section":"MoreOptions", "fldName": "GarageMin", "type": "numeric" },
{ "fldKey": "1170_grp_999999", "section":"MoreOptions", "fldName": "Neighbrohood", "type": "enum" },
{ "fldKey": "1170_exc_grp_999999", "section":"MoreOptions", "fldName": "Neighbrohood", "type": "enum" },
{ "fldKey": "3270_grp_999922", "section":"MoreOptions", "fldName": "ElementarySchool", "type": "enum" },
{ "fldKey": "3280_grp_999922", "section":"MoreOptions", "fldName": "MiddleSchool", "type": "enum" },
{ "fldKey": "3290_grp_999922", "section":"MoreOptions", "fldName": "HighSchool", "type": "enum" },
{ "fldKey": "0030", "section":"Basic", "fldName": "County", "type": "enum" },
{ "fldKey": "0040_grp_999999", "section": "Basic", "fldName": "PropertyType", "type": "enum" },
{ "fldKey": "0041_grp_999999", "section": "Basic", "fldName": "PropertyType", "type": "enum" },
{ "fldKey": "0042_grp_999999", "section": "Basic", "fldName": "PropertyType", "type": "enum" },
{ "fldKey": "0300_grp_999999", "section": "Basic", "fldName": "PropertyType", "type": "enum" },
{ "fldKey": "0150_min", "section":"Basic", "fldName": "ShowOnly", "type": "enum" },
{ "fldKey": "0260_min", "section":"Basic", "fldName": "ShowOnly", "type": "enum" },
{ "fldKey": "0090", "section":"Basic", "fldName": "ShowOnly", "type": "enum" },
{ "fldKey": "3163", "section":"Basic", "fldName": "ShowOnly", "type": "enum" },
{ "fldKey": "0280_grp_feature", "section":"MoreOptions", "fldName": "MoreOptions", "type": "enum" },
{ "fldKey": "0290_grp_feature", "section":"MoreOptions", "fldName": "MoreOptions", "type": "enum" },
{ "fldKey": "radius_lat", "section": "MoreOptions", "fldName": "MoreOptions", "type": "text" },
{ "fldKey": "1055", "section": "MoreOptions", "fldName": "Street", "type": "text" }
]};


var querystring = location.href;
var QueryString = querystring.substring(querystring.indexOf("?"));
$(document).ready(function() {
    $("#divSearchCount > span > span[id!=count]").hide();
    $("#MoreOptionBox > span").hide();

    if (GetValueFromQueryString(QueryString, "city_zipValue") != "") {
        $("#txtLocation").html(GetValueFromQueryString(QueryString, "city_zipValue"));
        $("#CCLocation").show();
    } else {
        $("#txtLocation").html("");
        $("#CCLocation").hide();
    }

    ProcessQueryString();
});

function ProcessQueryString() {
    var rtype = GetValueFromQueryString(QueryString, "RecordType");
    var QueryStringNameVal = querystring.substring(QueryString.indexOf("?")).split("&");
    for (var i = 0; i < CrumbList.Flds.length; i++) {
        var QSValue = GetValueFromQueryString(QueryString, CrumbList.Flds[i].fldKey);
        if (QSValue != "") {
            var FieldKey = CrumbList.Flds[i].fldKey;
            var FieldName = CrumbList.Flds[i].fldName;
            var FieldType = CrumbList.Flds[i].type;
            var FieldSection = CrumbList.Flds[i].section;
            $("#CC" + FieldName).show();
            if (FieldType == "price") {
                QSValue = "$" + commafyValue(QSValue);
            } else if (FieldType == "numeric") {
                QSValue = commafyValue(QSValue);
            } else if (FieldType == "text") {
                QSValue = QSValue;
            } else if (FieldType == "enum") {
                //QSValue = "..";

                if ((rtype == "120") && (FieldKey == "0042_grp_999999") && (QSValue == "1")) {
                    QSValue = "Single Family";
                }
                if ((rtype == "120") && (FieldKey == "0042_grp_999999") && (QSValue == "2")) {
                    QSValue = "Multi-Family";
                }
                if ((rtype == "120") && (FieldKey == "0042_grp_999999") && (QSValue == "3")) {
                    QSValue = "Commercial";
                }
                if ((rtype == "120") && (FieldKey == "0042_grp_999999") && (QSValue == "4")) {
                    QSValue = "Lots/Acres/Farms";
                }
                if ((rtype == "120") && (FieldKey == "0042_grp_999999") && (QSValue == "6")) {
                    QSValue = "Condo/Townhouse";
                }

                if ((rtype == "140") && (FieldKey == "0040_grp_999999") && (QSValue == "1")) {
                    QSValue = "Residential";
                }
                if ((rtype == "140") && (FieldKey == "0040_grp_999999") && (QSValue == "2")) {
                    QSValue = "Multi-Family";
                }
                if ((rtype == "140") && (FieldKey == "0040_grp_999999") && (QSValue == "3")) {
                    QSValue = "Vacant Land";
                }
                if ((rtype == "140") && (FieldKey == "0040_grp_999999") && (QSValue == "4")) {
                    QSValue = "Rentals (exclude)";
                }
                if ((rtype == "140") && (FieldKey == "0040_grp_999999") && (QSValue == "6")) {
                    QSValue = "Commercial - Improved";
                }
                if ((rtype == "140") && (FieldKey == "0300_grp_999999") && (QSValue == "1")) {
                    QSValue = "Condo/Townhouse";
                }

                if ((rtype == "160") && (FieldKey == "0040_grp_999999") && (QSValue == "1")) {
                    QSValue = "Residential";
                }
                if ((rtype == "160") && (FieldKey == "0040_grp_999999") && (QSValue == "2")) {
                    QSValue = "Commercial";
                }
                if ((rtype == "160") && (FieldKey == "0040_grp_999999") && (QSValue == "3")) {
                    QSValue = "Land";
                }

                if ((rtype == "180") && (FieldKey == "0041_grp_999999") && (QSValue == "1")) {
                    QSValue = "Residential";
                }
                if ((rtype == "180") && (FieldKey == "0041_grp_999999") && (QSValue == "2")) {
                    QSValue = "Multi Family";
                }
                if ((rtype == "180") && (FieldKey == "0041_grp_999999") && (QSValue == "3")) {
                    QSValue = "Commercial Improved";
                }
                if ((rtype == "180") && (FieldKey == "0041_grp_999999") && (QSValue == "4")) {
                    QSValue = "Land";
                }
                if ((rtype == "180") && (FieldKey == "0041_grp_999999") && (QSValue == "6")) {
                    QSValue = "Commercial Unimproved";
                }
                if ((rtype == "180") && (FieldKey == "0300_grp_999999") && (QSValue == "1")) {
                    QSValue = "Condo/Townhouse";
                }
                
                QSValue = QSValue;
            }
            if (FieldSection == "MoreOptions") {
                $("#CCMoreOptions").show();
            }
            $("#txt" + FieldName).html(QSValue);
        }
    }
}

function RemovePriceMin() { QueryString = ReplaceQueryString(QueryString, '5020_min', ''); }
function RemovePriceMax() {QueryString = ReplaceQueryString(QueryString, '5020_max', '');}
function RemoveBedsMin() { QueryString = ReplaceQueryString(QueryString, '2050_min', ''); }
function RemoveBathsMin() { QueryString = ReplaceQueryString(QueryString, '2060_min', ''); }
function RemovePropertyType() { QueryString = ReplaceQueryString(QueryString, '0040_grp_999999', ''); QueryString = ReplaceQueryString(QueryString, '0041_grp_999999', ''); QueryString = ReplaceQueryString(QueryString, '0042_grp_999999', ''); QueryString = ReplaceQueryString(QueryString, '0300_grp_999999', ''); }
function RemoveStatus() { QueryString = ReplaceQueryString(QueryString, '0090', ''); QueryString = ReplaceQueryString(QueryString, '3163', ''); }
function RemoveFeature() { QueryString = ReplaceQueryString(QueryString, '0280_grp_feature', ''); QueryString = ReplaceQueryString(QueryString, '0290_grp_feature', ''); }
function RemoveMLSArea() {
    var querystringArr = QueryString.split("&");
    for (var i = 0; i < querystringArr.length; i++)
    {
        var QSParameterArr = querystringArr[i].split("=");
        var QSName = QSParameterArr[0];
        if (QSName.substring(0,4)=="0020")
            ReplaceQueryString(QueryString, QSName, '');
    }
}
function RemoveStreet() { QueryString = ReplaceQueryString(QueryString, '1055', ''); }
function RemoveRadiusSearch() { QueryString = ReplaceQueryString(QueryString, 'radius_lat', ''); QueryString = ReplaceQueryString(QueryString, 'radius_lon', ''); }
function RemoveYearBuiltMin() { QueryString = ReplaceQueryString(QueryString, '2020_min', ''); }
function RemoveYearBuiltMax() { QueryString = ReplaceQueryString(QueryString, '2020_max', ''); }
function RemoveSQFTMin() { QueryString = ReplaceQueryString(QueryString, '2030_min', ''); }
function RemoveAcreMin() { QueryString = ReplaceQueryString(QueryString, '2040_min', ''); QueryString = ReplaceQueryString(QueryString, '2041_min', ''); }
function RemoveAcreMax() { QueryString = ReplaceQueryString(QueryString, '2040_max', ''); QueryString = ReplaceQueryString(QueryString, '2041_max', ''); }
function RemoveGarageMin() { QueryString = ReplaceQueryString(QueryString, '3043_min', ''); QueryString = ReplaceQueryString(QueryString, '3022_min', ''); QueryString = ReplaceQueryString(QueryString, '3010_min', ''); QueryString = ReplaceQueryString(QueryString, '2115_min', ''); }
function RemoveNeighborhood() { QueryString = ReplaceQueryString(QueryString, '1170_grp_999999', ''); QueryString = ReplaceQueryString(QueryString, '1170_exc_grp_999999', ''); }
function RemoveElementarySchool() { QueryString = ReplaceQueryString(QueryString, '3270_grp_999992', ''); }
function RemoveMiddleSchool() { QueryString = ReplaceQueryString(QueryString, '3280_grp_999992', ''); }
function RemoveHighSchool() { QueryString = ReplaceQueryString(QueryString, '3290_grp_999992', ''); }
function RemoveCounty() { QueryString = ReplaceQueryString(QueryString, '0030', ''); }
function ShowUpTo(Section) {
    switch (Section) {
        case 'Location': RemovePriceMin();
        case 'PriceMin': RemovePriceMax();
        case 'PriceMax': RemoveBedsMin();
        case 'BedsMin': RemoveBathsMin();
        case 'BathsMin': RemovePropertyType();
        case 'PropertyType': RemoveStatus();
        case 'ShowOnly': RemoveAllMoreOptions();
    }
    window.location = "/ResultPageNew.aspx?"+QueryString;
}
function RemoveAllMoreOptions() {
    RemoveFeature();
    RemoveMLSArea();
    RemoveStreet();
    RemoveRadiusSearch();
    RemoveYearBuiltMin();
    RemoveYearBuiltMax();
    RemoveSQFTMin();
    RemoveAcreMin();
    RemoveAcreMax();
    RemoveGarageMin();
    RemoveNeighborhood();
    RemoveElementarySchool();
    RemoveMiddleSchool();
    RemoveHighSchool();
    RemoveCounty();
}


function ReplaceQueryString(queryString, key, value) {
    if (queryString == "" || queryString == null || queryString == "undefined") return "";

    key = key.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
    var regex = new RegExp("[\\?&]" + key + "=([^&#]*)");
    var qs = regex.exec(queryString);
    if (qs == null) {
        if (value != "") return queryString + "&" + key + "=" + value; else return queryString;
    }
    else {
        if (value != "" || value > -1) {
            return queryString.replace(key + "=" + qs[1], key + "=" + value);
        }
        else {
            queryString = queryString.replace(key + "=" + qs[1], "");
            if (queryString.substr(queryString.length - 1, 1) == "&") queryString = queryString.substr(0, queryString.length - 1);
            queryString = queryString.replace("&&", "&");
            queryString = queryString.replace("?&", "?");

            return queryString.replace(key + "=" + qs[1], "");
        }
    }
}

function GetValueFromQueryString(queryString, key) {
    key = key.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
    var regex = new RegExp("[\\?&]" + key + "=([^&#]*)");
    var qs = regex.exec(queryString);
    if (qs == null) {
        return "";
    }
    else {
        return qs[1];
    }
}

function commafyValue(nStr) {
    nStr += '';
    x = nStr.split('.');
    x1 = x[0];
    x2 = x.length > 1 ? '.' + x[1] : '';
    var rgx = /(\d+)(\d{3})/;
    while (rgx.test(x1)) {
        x1 = x1.replace(rgx, '$1' + ',' + '$2');
    }
    return x1 + x2;
}
