
function FilterBy(txtFilterId) {
    var query = PageCache.QueryString;

    if (PageCache.TotalRecords == 0) {
        if (trim(PageCache.LastQueryString) != "") {
            query = PageCache.LastQueryString;
        }
    }
    var UGquery = new UrlGen(query);
    UGquery.RemoveParam("sid");
    var strURL = WebRoot + "controls/ajaxcalls/filterby.aspx?query=" + escape(UGquery.ToString());

    var FilterName = gE("filter_" + txtFilterId + "_name").value;
    var FilterInfo = txtFilterId.split("_");
    // NOTE: no other current implementations 
    if (FilterInfo[0] == "range") 
    {
        var Min = gE("filter_" + txtFilterId + "_min").value;
        var Max = gE("filter_" + txtFilterId + "_max").value;

        Min = Min.replace(/[$,]+/g, '');
        Max = Max.replace(/[$,]+/g, '');

        if (isNaN(Min) || isNaN(Max)) {
            window.alert("Please provide a minimum and maximum numeric value for your filter");
            return;
        }
        if (parseInt(Max, 10) <= parseInt(Min, 10)) {
            window.alert("The upper range of your filter must be greater than the lower range");
            return;
        }
        strURL += String.format("&type=range&name={0}&min={1}&max={2}", FilterName, Min, Max);
    }
    else {
        window.alert("This filter is not supported");
        return;
    }

    //alert(strURL);

    $AJAX.GetForDelegate(function(AjaxResponse) {
        //alert(AjaxResponse);
        RefinementQuery(AjaxResponse);
    }, strURL);
}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//  RequeryByLocation(EndecaId)
//  Called when clicking on Toggle Map Funcitons "In Location"
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function RequeryByLocation(EndecaId) {
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    //  UrlGen
    //  Function in Global.js used for managing Querystrings easily.
    //  Modelled after the class of the same name from Endeca
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    var UGen = new UrlGen(PageCache.QueryString);

    if (PageCache.TotalRecords == 0) {
        if (trim(PageCache.LastQueryString) != "") {
            UGen = new UrlGen(PageCache.LastQueryString);
        }
    }

    var strNf = "";
    strNf = UGen.GetParam("Nf");
    var PriceNf = "";
    if ((strNf != undefined) && (strNf.length > 0)) {
        if (strNf.indexOf("Price") > -1) {
            arrNf = strNf.split("||")
            PriceNf = arrNf[0];
        }
    }
    var NewN = UGen.GetParam("N");
    if (NewN != undefined) {
        arrNewN = NewN.split('+');
        var _tempN = new Array();
        for (var i = 0; i < arrNewN.length; i++) {
            if (arrNewN[i] != PageCache.Location) {
                _tempN.push(arrNewN[i]);
            }
        }

        _tempN.push(EndecaId);

        if (UGen.GetParam("Ntk").indexOf("CodeListingType") > -1) {
            UGen.RemoveParam("Ntt");
            UGen.RemoveParam("Ntk");
            UGen.AddParam("Ntk", "CodeListingType");
            UGen.AddParam("Ntt", "F");
        }
        else {
            UGen.RemoveParam("Ntt");
            UGen.RemoveParam("Ntk");
        }
        UGen.RemoveParam("Ntx");
        UGen.RemoveParam("N");
        UGen.AddParam("N", _tempN.join('+'));

        UGen.RemoveParams(["Nf", "No", "Ne"]);
        if (PriceNf.length > 0) {
            UGen.AddParam("Nf", PriceNf);
        }

    }

    UGen.RemoveParam("Z");
    Recenter = true;
    ReloadMapOnly = false;
    // Map History is currently disabled
    AddToHistory = false; 

    //alert(UGen.ToString());
    RunQuery(UGen.ToString(), Recenter, ReloadMapOnly, AddToHistory);
}


//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//  RequeryOnBounds(Recenter, AddZoom, AddToHistory)
//  Taking the boundaries of the map, and the contents of the 
//  current query, generates a new query and refreshes data.
//
//  Recenter     bool    true = recenter when done loading
//  AddZoom      bool    true = add current zoom level to Query
//  AddToHistory bool    true = Add to map history ( Obsolete )
//                       History not currently being used
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function RequeryOnBounds(Recenter, AddZoom, AddToHistory) {
    //    if (AddToHistory == undefined)
    //    {
    //        AddToHistory = true;
    //    }

    AddToHistory = false;

    if (Recenter == undefined) {
        Recenter = false;
    }
    if (AddZoom == undefined) {
        AddZoom = true;
    }
    var CurrentBounds = map.getBounds();
    var SW = CurrentBounds.getSouthWest();
    var NE = CurrentBounds.getNorthEast();
    var LngMin = SW.lng();
    var LngMax = NE.lng();
    var LatMin = SW.lat();
    var LatMax = NE.lat();
    var searchBounds = String.format('Latitude|BTWN+{0}+{1}||Longitude|BTWN+{2}+{3}', LatMin, LatMax, LngMin, LngMax);

    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    //  UrlGen
    //  Function in Global.js used for managing Querystrings easily.
    //  Modelled after the class of the same name from Endeca
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    var UGen = new UrlGen(PageCache.QueryString);

    if (PageCache.TotalRecords == 0) {
        if (trim(PageCache.LastQueryString) != "") {
            UGen = new UrlGen(PageCache.LastQueryString);
        }
    }

    var strNf = "";
    strNf = UGen.GetParam("Nf");
    var PriceNf = "";
    if ((strNf != undefined) && (strNf.length > 0)) {
        if (strNf.indexOf("Price") > -1) {
            arrNf = strNf.split("||")
            PriceNf = arrNf[0];
        }
    }
    var NewN = UGen.GetParam("N");
    if (NewN != undefined) {
        arrNewN = NewN.split('+');
        var _tempN = new Array();

        //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        //  Remove location from Query
        //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        for (var i = 0; i < arrNewN.length; i++) {
            if (arrNewN[i] != PageCache.Location) {
                _tempN.push(arrNewN[i]);
            }
        }
        //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        //  Add it back if it's an in-location search
        //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        if (!DoReloadResults()) {
            _tempN.push(PageCache.Location);
        }

        if (UGen.GetParam("Ntk").indexOf("CodeListingType") > -1) {
            UGen.RemoveParam("Ntt");
            UGen.RemoveParam("Ntk");
            UGen.AddParam("Ntk", "CodeListingType");
            UGen.AddParam("Ntt", "F");
        }
//        else {
//            UGen.RemoveParam("Ntt");
//            UGen.RemoveParam("Ntk");
//        }
        UGen.RemoveParam("Ntx");
        UGen.RemoveParam("N");
        UGen.AddParam("N", _tempN.join('+'));

        UGen.RemoveParams(["Nf", "No", "Ne"]);
        if (PriceNf.length > 0) {
            searchBounds = PriceNf + "||" + searchBounds;
        }
        UGen.AddParam("Nf", searchBounds);

    }

    if (AddZoom) {
        UGen.RemoveParam("Z");
        UGen.AddParam("Z", map.getZoom());
    }

    ReloadMapOnly = false;
    if (!DoReloadResults()) {
        Recenter = false;
        ReloadMapOnly = true;
    }
    RunQuery(UGen.ToString(), Recenter, ReloadMapOnly, AddToHistory);
    ReloadFrameAds();
    OmEvent(gE("map"), 6, "map_event");
}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//  RefinementQuery(Query)
//  Special case for Refinements, we need to scroll to the page top
//  if the results are out of view
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function RefinementQuery(Query) {
//    OverlayCache.RemoveOverlayTypes(["Neighborhood", "PrimeNeighborhood"]);
//    OverlayCache.RemoveCacheTypes(["Neighborhood", "PrimeNeighborhood"]);
    //console.trace();
    //console.log(Query);
    RunQuery(Query, true, false);

    var WrapTop = RecurseOffset(gE("results")).offsetTop;
    if (document.documentElement) {
        var scrollTop = document.documentElement.scrollTop;
    }
    else {
        var scrollTop = document.body.scrollTop;
    }
    if (scrollTop > WrapTop) {
        window.scrollTo(0, WrapTop);
    }
}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//  PagingQuery(Query)
//  When clicking a page link [1,2,3], should jump to above the fold
//  only if map is out of view
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function PagingQuery(Query) {
    loading(true);
    OverlayCache.RemoveOverlayTypes(["Neighborhood", "PrimeNeighborhood"]);
    OverlayCache.RemoveCacheTypes(["Neighborhood", "PrimeNeighborhood"]);

    RunQuery(Query, true, false);
    loading(false);
    toogle_map_view(false);
    // see Global.js
    var WindowBounds = new GetWindowBunds(); 
    var Target = (RecurseOffset(gE("map")).offsetTop - 15);
    if (WindowBounds.VisibleTop > Target) {
        window.scrollTo(0, 0);
    }
    paginationWidth();
    var resultsH = gE('results').style.height;
    //alert("results " + resultsH);
    //alert("left " + gE('global_content_left').style.height());
    if (gE('results').style.height < gE('global_content_left')) {
        pagH -= 19;
        var conH = $('#global_content_left').height();
        //alert("left content height: " + conH);
        gE('right_rail').style.height = conH + 'px';
    } else {
        var conH = $('#results').height();
        gE('right_rail').style.height = conH + 'px';
        //alert("results height: " + conH);
    }

}
//================================================================
//  LocationQuery
//  Special case when clicking a location 
//  on the Nearby Cities / Neighborhoods
//================================================================
var Locationclicked = new Object();
function LocationStatus(location) {
    Locationclicked.status = location;
}
//================================================================
//  LocationQuery
//  Special case when clicking a location on either the map or 
//  on the Nearby Cities / Neighborhoods
//  Ensures that all neighborhoods are initially removed from
//  the map
//================================================================
function LocationQuery(Query, Recenter, ReloadMapOnly, AddToHistory) {
    loading(true);
//    OverlayCache.RemoveOverlayTypes(["Neighborhood", "PrimeNeighborhood"]);
//    OverlayCache.RemoveCacheTypes(["Neighborhood", "PrimeNeighborhood"]);
    RunQuery(Query, Recenter, ReloadMapOnly, AddToHistory);
    paginationWidth();
    loading(false);
    toogle_map_view(false);
}

//################################################################
//================================================================
//  Sarissa
//================================================================
//################################################################

var XSLProcessors = new Object();
XSLProcessors.listings = null;
XSLProcessors.paging = null;
XSLProcessors.toppaging = null;
XSLProcessors.bottompaging = null;
XSLProcessors.status = null;
XSLProcessors.sortoptions = null;
XSLProcessors.navrefinements = null;
//XSLProcessors.breadcrumbs = null;
XSLProcessors.rss = null;
XSLProcessors.results = null;
XSLProcessors.header = null;
XSLProcessors.propertytypes = null;
XSLProcessors.amenities = null;
XSLProcessors.listinginfobubble = null;
XSLProcessors.nearestneighborhoods = null;
XSLProcessors.seoblurb = null;
XSLProcessors.openhouses = null;
XSLProcessors.virtualtours = null;

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//  XSLProcessors.featuredrealtor = null;
//  XSLProcessors.featuredlisting = null;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

XSLProcessors.loaded = false;
XSLProcessors.load = function(XSLPath) {
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    // create an instance of XSLTProcessor   
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    var processor = new XSLTProcessor();

    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    // create a DOM Document containing an XSLT stylesheet   
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    var xslDoc = Sarissa.getDomDocument();
    xslDoc.async = false;
    var xmlhttp = new XMLHttpRequest();
    xmlhttp.open('GET', AbsoluteWebRoot + XSLPath, false);
    xmlhttp.send('');
    xslDoc = xmlhttp.responseXML;
    //console.log(AbsoluteWebRoot + XSLPath);
    processor.importStylesheet(xslDoc);
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    //  Debug: alert(new XMLSerializer().serializeToString(xslDoc));
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    return processor;
};

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//  Load all XML into client side cache on initial page load.
//  Each XSL is pulled from Cache after that for speed.
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
XSLProcessors.loadAll = function() {
    //alert("in load");
    //alert("start Results_Listings");
    XSLProcessors.listings = XSLProcessors.load("Includes/XSL/Results_Listings.xsl");
    XSLProcessors.listings.setParameter('', "BypassGlobalProxy", typeof (bypassGlobalImgProxy) == undefined ? true : bypassGlobalImgProxy);
    XSLProcessors.listings.setParameter('', "ImageProxyHostname", typeof (imgProxyHostname) == undefined ? "" : imgProxyHostname);
    XSLProcessors.listings.setParameter('', "LogoImageProxyHostname", typeof (logoImgProxyHostname) == undefined ? "" : logoImgProxyHostname);
    XSLProcessors.listings.setParameter('', "StaticImageHostname", typeof (staticImgHostname) == undefined ? "" : staticImgHostname);
    XSLProcessors.listings.setParameter('', "ResourceVersion", typeof (resourceVersion) == undefined ? "" : resourceVersion);
    XSLProcessors.paging = XSLProcessors.load("Includes/XSL/Results_Pagination.xsl");
    XSLProcessors.paging.setParameter('', "IsSeoUrl", 'true');
    XSLProcessors.toppaging = XSLProcessors.load("Includes/XSL/Results_Pagination.xsl");
    XSLProcessors.toppaging.setParameter('', "IsSeoUrl", 'false');
    XSLProcessors.toppaging.setParameter('', "Pagination", 'top');
    XSLProcessors.bottompaging = XSLProcessors.load("Includes/XSL/Results_Pagination.xsl");
    XSLProcessors.bottompaging.setParameter('', "IsSeoUrl", 'false');
    XSLProcessors.bottompaging.setParameter('', "Pagination", 'bottom');
    XSLProcessors.status = XSLProcessors.load("Includes/XSL/Results_Status.xsl");
    //alert("start Results_SortOptions");
    XSLProcessors.sortoptions = XSLProcessors.load("Includes/XSL/Results_SortOptions.xsl");
    //alert("start Results_NavRefinements");
    XSLProcessors.navrefinements = XSLProcessors.load("Includes/XSL/Results_NavRefinements.xsl");
    //alert("start Results_NavSelections");
    XSLProcessors.navselections = XSLProcessors.load("Includes/XSL/Results_NavSelections.xsl");
    //alert("start Results_RSS");
    XSLProcessors.rss = XSLProcessors.load("Includes/XSL/Results_RSS.xsl");
    //alert("start Results_PropertyType");
    XSLProcessors.propertytypes = XSLProcessors.load("Includes/XSL/Results_PropertyType.xsl");
    XSLProcessors.amenities = XSLProcessors.load("Includes/XSL/Results_Amenities.xsl");
   
    //alert("start Results_ListingInfoBubble");
    XSLProcessors.listinginfobubble = XSLProcessors.load("Includes/XSL/Results_ListingInfoBubble.xsl");
    XSLProcessors.listinginfobubble.setParameter('', "BypassGlobalProxy", typeof (bypassGlobalImgProxy) == undefined ? true : bypassGlobalImgProxy);
    XSLProcessors.listinginfobubble.setParameter('', "ImageProxyHostname", typeof (imgProxyHostname) == undefined ? "" : imgProxyHostname);
    XSLProcessors.listinginfobubble.setParameter('', "StaticImageHostname", typeof (staticImgHostname) == undefined ? "" : staticImgHostname);
    XSLProcessors.listinginfobubble.setParameter('', "ResourceVersion", typeof (resourceVersion) == undefined ? "" : resourceVersion);
    //alert("infobubble:\n" + XSLProcessors.listinginfobubble);
    //alert("start Results_NearestCities");
//    XSLProcessors.nearestcities = XSLProcessors.load("Includes/XSL/Results_NearestCities.xsl");
    //alert("start Results_Results");
    XSLProcessors.results = XSLProcessors.load("Includes/XSL/Results_Results.xsl");
    //alert("start Results_Header");
    XSLProcessors.header = XSLProcessors.load("Includes/XSL/Results_Header.xsl");
    //alert("start Results_NearestNeighborhoods");
//    XSLProcessors.nearestneighborhoods = XSLProcessors.load("Includes/XSL/Results_NearestNeighborhoods.xsl");
    //alert("start Results_SEOBlurb");
    XSLProcessors.seoblurb = XSLProcessors.load("Includes/XSL/Results_SEOBlurb.xsl");
    //XSLProcessors.breadcrumbs           = XSLProcessors.load("Includes/XSL/Results_LocationBreadcrumbs.xsl");
    //alert("start Results_Pagination");
    XSLProcessors.paging = XSLProcessors.load("Includes/XSL/Results_Pagination.xsl");
    //alert("start Results_MapStatus");
    XSLProcessors.mapstatus = XSLProcessors.load("Includes/XSL/Results_MapStatus.xsl");
    //alert("start results_openhouses");
    XSLProcessors.openhouses = XSLProcessors.load("Includes/XSL/results_openhouses.xsl");
    //alert("start Results_VirtualTours");
    XSLProcessors.virtualtours = XSLProcessors.load("Includes/XSL/Results_VirtualTours.xsl");
    XSLProcessors.beds = XSLProcessors.load("Includes/XSL/results_beds.xsl");
    XSLProcessors.baths = XSLProcessors.load("Includes/XSL/results_baths.xsl");

    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    //  XSLProcessors.featuredrealtor = XSLProcessors.load("Includes/XSL/Featured_Realtor.xsl");
    //  XSLProcessors.featuredlisting = XSLProcessors.load("Includes/XSL/Featured_Listing.xsl");
    //  remove following line comment to cache all XSL client side
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    XSLProcessors.loaded = true;
    //alert("XSLProcessors.loaded = true;");
};


//================================================================
//  RunQuery(Query, Recenter, AddToHistory)
//  Calls XML through Sarissa and reloads elements of the page
//  with the data parsed from the XML
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//  Query           String  The Endeca Query to execute
//  Recenter        Bool    Whether to recenter after results
//  ReloadMapOnly   Bool    sic
//  AddToHistory    Bool    Whether to add Query to History
//                          ( Not currently implemented )
//================================================================
function RunQuery(Query, Recenter, ReloadMapOnly, AddToHistory) {

    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    //   See SetDefault in Global.js
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    //   AddToHistory = SetDefault(AddToHistory, true);
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    AddToHistory = false;
    Recenter = SetDefault(Recenter, true);
    ReloadMapOnly = SetDefault(ReloadMapOnly, false);
    
    $("#nearestcities #result_wrapper").html("&nbsp;");
    $("#nearestneighborhoods #result_wrapper").html("&nbsp;");
    jsQueryString = Query;
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    //  isMapSearch
    //  Defines whether the search being conducted contains Lat/Lng
    //  information, sent when the user pans the map
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    //  Revised
    //  isMapSearch is now dependent on the radio toggle on the map, if the 
    //  user is not doing an "in location search" then it's logically
    //  a map search
    //  New variable and value is isMapPanSearch
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    var isMapSearch = false;
    var isMapPanSearch = false;

    // if we're here we got called by a refinement or pagination query, so it's not the first results page.
    // send some metadata for spiders.

    var meta;
    if (document.createElement && (meta = document.createElement('meta'))) {
        var pos = Query.indexOf("&No=")
        if (pos >= 0) {
            meta.name = "robots";
            meta.content = "noindex";
            document.getElementsByTagName('head').item(0).appendChild(meta);
        }
    }

    if (!DoReloadResults()) {
        isMapSearch = true;
    }

    if (unescape(Query).toLowerCase().indexOf("latitude|btwn") > -1 &&
        unescape(Query).toLowerCase().indexOf("longitude|btwn") > -1) {
        isMapPanSearch = true;
    }

    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    //  UrlGen
    //  Function in Global.js used for managing Querystrings easily.
    //  Modelled after the class of the same name from Endeca
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    var QGen = new UrlGen(Query);


    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    //  isZipSearch
    //  Check to see if user searched by Zip Code
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    var isZipSearch = false;
    //if (QGen.GetParam("Ntk").toLowerCase() == "addrzip")
    if (QGen.GetParam("Ntk").indexOf("AddrZip") > -1) {
        isZipSearch = true;
    }



//    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
//    //  Switch the Search Bar to Small Sales search
//    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
//    SwitchSearch('sales', 'small', Query);

    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    //  History not currently implemented
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    /*
    if (isMapSearch == false)
    {
    if (AddToHistory)
    {
    MCO.AddQuery(Query, Recenter);
    }
    }
    */

    //----------------------------------------------------------------
    //  For Non-Sarissa Compliant Browsers
    //----------------------------------------------------------------
    if ((!window.XSLTProcessor) && (!window.ActiveXObject)) {
        //alert("Non-Sarissa Compliant Browsers");
        var QGen = new UrlGen(Query);
        QGen.RemoveParams(["sb", "ms"]);
        QGen.AddParam("sb", sb);
        QGen.AddParam("ms", MapState.Current);
        window.location.href = window.location.href.substr(0, indexOf('?')) + QGen.ToString();
        return;
    }

    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    //  stop trying to load images
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    try { LdImgs.Dispose(); } catch (ex) { }

    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    //  Load XSL into memory
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    if (XSLProcessors.loaded == false) {
        //alert("XSLProcessors.loaded=false");
        XSLProcessors.loadAll();
    }
    //alert("afetr XSLProcessors.loadAll()");
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    //  Fetch the XML using Sarissa
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    //  This routine uses the XK value for Authorization secutiry
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    var xmlDocPath = "";
    xmlDocPath = "Results_XML.aspx?" + Query;
    //console.log(Query);
    var XMLDoc = Sarissa.getDomDocument();
    XMLDoc.async = false;
    var xmlhttp = new XMLHttpRequest();
    xmlhttp.open("GET", AbsoluteWebRoot + xmlDocPath, false);
    try {
        xmlhttp.setRequestHeader("Authorization", XKp);
    }
    //alert("in ajax exception");
    catch (ex) {
    }

    xmlhttp.send('');
    XMLDoc = xmlhttp.responseXML;
    
    if (PageCache == null) PageCache = new Object();

    // Add XML to PAge Cache
    PageCache.XML = XMLDoc; 

    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    //  Debug - uncomment following line to see Raw XML
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    // alert(new XMLSerializer().serializeToString(XMLDoc));
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 

    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    //  We don't need to change the Status message unless new data is loaded.
    //  Uncomment following line to re-instate this logic.
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    //  gE("status").innerHTML = "<span class=\"loading\">Loading</span>";  
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 

    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    //  GetSingleNodeContent
    //  Function is in Sarissa.Global.js
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    //alert("getting content"); 
    var NoResults = GetSingleNodeContent(XMLDoc, '/results/breadcrumbs/noresults');
    var ListingPoints = GetSingleNodeContent(XMLDoc, '/results/listings/mappedlistingsjs');
    var RegionPoints = GetSingleNodeContent(XMLDoc, "/results/regions");
    var viewstate = GetSingleNodeContent(XMLDoc, "/results/viewstate");
    //var suggestfull = GetSingleNodeContent(XMLDoc, "/results/suggestfull");
    var locationmoduletext = GetSingleNodeContent(XMLDoc, "/results/locationmoduletext");
    FDS.locationfield = locationmoduletext;
    PageCache.ShowListingsOnMap = GetSingleNodeContent(XMLDoc, "/results/showlistingsonmap");
    PageCache.MapBestFit = GetSingleNodeContent(XMLDoc, "/results/mapbestfit");

    var SELECTED = "";
    if (DoReloadResults()) {
        SELECTED = "checked=checked";
    }

    if (gE("map_function_toggle") != null) {
        gE("map_function_toggle").innerHTML = String.format("<div><input type='checkbox' id='mlo' name='mlo' onclick='ToggleMapLoadOption(this);' {0}> <label for='mlo'>update the results below while I navigate the map</label></div>", SELECTED);
    }

    if (gE("testingQuery") != null) {
        gE("testingQuery").value = Query;
        gE("viewstate").value = viewstate;
    }
    //gE("txtAboutPageSearch").value  = suggestfull;

    NbMg.NextLoad("closed", "closed");
    Sarissa.updateContentFromNode(XMLDoc, gE("resultsrss"), XSLProcessors.rss);
    //================================================================
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    //  if ReloadMapOnly == true, Stop Processing Here
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    //````````````````````````````````````````````````````````````````
    if (ReloadMapOnly) {
        map.clearOverlays();
        OverlayCache.RemoveCacheType("Region");
        eval(RegionPoints);
        OverlayCache.RenderOverlayTypes(["Listing", "Region", "PrimeNeighborhood"]);
//        Sarissa.updateContentFromNode(XMLDoc, gE("nearestcities"), XSLProcessors.nearestcities);
//        UnescapeCommonInnerHTML(gE("nearestcities"));
//        Sarissa.updateContentFromNode(XMLDoc, gE("nearestneighborhoods"), XSLProcessors.nearestneighborhoods);
//        UnescapeCommonInnerHTML(gE("nearestneighborhoods"));

        //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        //  Call NearbyManager (NbMg) for Accordian effect
        //  NbMg.NextLoad(statusCity, statusNeighborhood);
        //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//        if (gE("nearestneighborhoods").innerHTML.length < 25) {
//            NbMg.NextLoad("open", "none");
//        }
//        else {
//            NbMg.NextLoad("closed", "open");
//        }
        return;
    }
    //````````````````````````````````````````````````````````````````
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    //================================================================

    PageCache.CenterOnRegions = eval(GetSingleNodeContent(XMLDoc, "/results/centeronregions"));

    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    //  NextLoad
    //  Redraws listing and region points on the map
    //  Only reload the listing points if it's not an inlocation search
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    NextLoad(ListingPoints, RegionPoints, Recenter);

    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    //  SEOPath
    //  Search engine friendly path back to this search page result
    //  Append to the end of the current window.location.href after anchor
    //  The page reloading is handled in Global.js regarding this
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    PageCache.SEOPath = GetSingleNodeContent(XMLDoc, '/results/seopath');
    window.location.href = "#" + PageCache.SEOPath;
    //window.location.href = PageCache.SEOPath;

    var RefinementMetaText = GetSingleNodeContent(XMLDoc, '/results/refinementmetatext');
    if(RefinementMetaText == undefined)
    {
       RefinementMetaText = "";
    }

    var newTitle = GetSingleNodeContent(XMLDoc, "/results/addrcitydisplay") + " Real Estate & Homes for Sale in " + GetSingleNodeContent(XMLDoc, "/results/centerregionname") + " : " + WebsiteName;
    
    if(RefinementMetaText.indexOf("Foreclosed") > -1)
    {
        newTitle = GetSingleNodeContent(XMLDoc, "/results/addrcitydisplay") + " Real Estate Foreclosure Listings in " + GetSingleNodeContent(XMLDoc, "/results/centerregionname") + " : " + WebsiteName;
    }
    else if(RefinementMetaText.indexOf("New Homes") > -1)
    {
        newTitle = GetSingleNodeContent(XMLDoc, "/results/addrcitydisplay") + " Real Estate New Home Listings in " + GetSingleNodeContent(XMLDoc, "/results/centerregionname") + " : " + WebsiteName;
    }
    else if(RefinementMetaText != "")
    {
        newTitle = RefinementMetaText + " for Sale in " + GetSingleNodeContent(XMLDoc, "/results/centerregionname") + " : " + WebsiteName;
    }
    else
    {
        newTitle = GetSingleNodeContent(XMLDoc, "/results/addrcitydisplay") + " Real Estate & Homes for Sale in " + GetSingleNodeContent(XMLDoc, "/results/centerregionname") + " : " + WebsiteName;
    }
  
    document.title = newTitle;

    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    //  Not currently doing anyting different if there's no listings
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    /*
    if (NoResults == "True")
    {
    //------
    }
    */

    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    //  UnescapeCommonInnerHTML
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    //  Sarissa has a bad habit of ignoring the XSL
    //  disable-output-escaping directive.
    //  This does this unescaping in a simple way. 
    //  UnescapeCommonInnerHTML is in Sarissa.Global.js
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    var hasNeighborhoods = false;
    var hasCities = false;

    //gE("nearestcities").style.display = "block";
    //gE("nearestneighborhoods").style.display = "block";

//    Sarissa.updateContentFromNode(XMLDoc, gE("nearestcities"), XSLProcessors.nearestcities);
//    UnescapeCommonInnerHTML(gE("nearestcities"));

//    if (gE("nearestcities").innerHTML.length > 10) {
//        hasCities = true;
//    }

//    Sarissa.updateContentFromNode(XMLDoc, gE("nearestneighborhoods"), XSLProcessors.nearestneighborhoods);
//    UnescapeCommonInnerHTML(gE("nearestneighborhoods"));

//    if (gE("nearestneighborhoods").innerHTML.length > 10) {
//        hasNeighborhoods = true;
//    }

//    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//    //  Call NearbyManager (NbMg) for Accordian effect
//    //  NbMg.NextLoad(statusCity, statusNeighborhood);
//    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//    if (gE("nearestneighborhoods").innerHTML.length < 25) {
//        NbMg.NextLoad("closed", "none");
//    }
//    else {
//        NbMg.NextLoad("closed", "closed");
//    }

//    if (Locationclicked.status != null) {
//        if ((Locationclicked.status == 'city' && hasCities) || (Locationclicked.status == 'neig' && hasNeighborhoods))
//            NbMg.Control(Locationclicked.status);
//    }

    Sarissa.updateContentFromNode(XMLDoc, gE("results_term"), XSLProcessors.results);
    UnescapeCommonInnerHTML(gE("results_term"));
    Sarissa.updateContentFromNode(XMLDoc, gE("results_text"), XSLProcessors.header);
    UnescapeCommonInnerHTML(gE("results_text"));

    //gE("nearestcities").innerHTML = '<div id="breadcrumbs1" style="border-bottom: 1px dashed #ccc;padding-bottom:2px;margin-bottom:4px;"></DIV>' + gE("nearestcities").innerHTML;

    //Sarissa.updateContentFromNode(XMLDoc, gE("breadcrumbs"), XSLProcessors.breadcrumbs);

    //gE("nearestneighborhoods").innerHTML = '<div id="breadcrumbs2" style="border-bottom: 1px dashed #ccc;padding-bottom:2px;margin-bottom:4px;"></DIV>' + gE("nearestneighborhoods").innerHTML;
    //Sarissa.updateContentFromNode(XMLDoc, gE("breadcrumbs2"), XSLProcessors.breadcrumbs);

    //HandleNearbyTabs(hasCities, hasNeighborhoods);

    //~~~~~~~~~~~~~~~~~~~~~~ Foreclosure Checkbox Updates ~~~~~~~~~~~~~~~~~~~~~~
    fc_query = unescapeAmp(GetSingleNodeContent(XMLDoc, '/results/foreclosurequery'));
    ap_query = unescapeAmp(GetSingleNodeContent(XMLDoc, '/results/allpropertiesquery'));
    nh_query = unescapeAmp(GetSingleNodeContent(XMLDoc, '/results/newhomesquery'));

    PageCache.TotalRecords = parseInt(GetSingleNodeContent(XMLDoc, '/results/pagination/pages/totalrecords'), 10);

    if (isNaN(PageCache.TotalRecords)) {
        PageCache.TotalRecords = 0;
    }

    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    //  Use Sarissa to update page contents and PageCache
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    //Sarissa.updateContentFromNode(XMLDoc, gE("paging"), XSLProcessors.paging);
    Sarissa.updateContentFromNode(XMLDoc, gE("pagingtop"), XSLProcessors.toppaging);
    Sarissa.updateContentFromNode(XMLDoc, gE("pagingbottom"), XSLProcessors.bottompaging);
    Sarissa.updateContentFromNode(XMLDoc, gE("sortoptions"), XSLProcessors.sortoptions);
    //Sarissa.updateContentFromNode(XMLDoc, gE("navrefinements"), XSLProcessors.navrefinements);
    //Sarissa.updateContentFromNode(XMLDoc, gE("navselections"), XSLProcessors.navselections);
    //Sarissa.updateContentFromNode(XMLDoc, gE("rss"), XSLProcessors.rss);
    Sarissa.updateContentFromNode(XMLDoc, gE("status"), XSLProcessors.status);
    Sarissa.updateContentFromNode(XMLDoc, gE("map_status"), XSLProcessors.mapstatus);
    Sarissa.updateContentFromNode(XMLDoc, gE("results_listings"), XSLProcessors.listings);
    Sarissa.updateContentFromNode(XMLDoc, gE("what_is"), XSLProcessors.seoblurb);
    Sarissa.updateContentFromNode(XMLDoc, gE("propertytype_drop_div"), XSLProcessors.propertytypes);
    Sarissa.updateContentFromNode(XMLDoc, gE("amenities_drop_div"), XSLProcessors.amenities);
    Sarissa.updateContentFromNode(XMLDoc, gE("openhouses"), XSLProcessors.openhouses);
    Sarissa.updateContentFromNode(XMLDoc, gE("virtualtours"), XSLProcessors.virtualtours);
    Sarissa.updateContentFromNode(XMLDoc, gE("bedrooms_drop_div"), XSLProcessors.beds);
    Sarissa.updateContentFromNode(XMLDoc, gE("bathrooms_drop_div"), XSLProcessors.baths);
//    if (gE("propertytypes").innerHTML.indexOf('li') > -1) {
//        gE("ptype").style.display = "block";
//    }
//    else {
//        gE("ptype").style.display = "none";
//    }

//    if (gE("amenities").innerHTML.indexOf('li') > -1) {
//        gE("atype").style.display = "block";
//    }
//    else {
//        gE("atype").style.display = "none";
//    }


//    if (gE("results_All-Properties") != null) {
//        gE("results_All-Properties").checked = true;
        //MA: To find the N Parama and then the N value.
        var UGQuery = new UrlGen(Query);
        var FilterQuery = UGQuery.GetParam("N").split("+");

        for (i = 0; i < FilterQuery.length; i++) {
            var Query1 = FilterQuery[i];
            //alert('Query1:-' + Query1);
            if (Query1 == "19" && gE("results_Single-family") != null) { gE("results_Single-family").checked = true; $('#results_Single-family').parent().addClass('selected');   }
            if (Query1 == "21" && gE("results_Multi-family") != null) { gE("results_Multi-family").checked = true; $('#results_Multi-family').parent().addClass('selected'); }
            if (Query1 == "26" && gE("results_Land") != null) { gE("results_Land").checked = true; $('#results_Land').parent().addClass('selected');  }
            if (Query1 == "878100" && gE("results_Townhouse") != null) { gE("results_Townhouse").checked = true; $('#results_Townhouse').parent().addClass('selected'); }
            if (Query1 == "829171" && gE("results_Other") != null) { gE("results_Other").checked = true; $('#results_Other').parent().addClass('selected'); }
            if (Query1 == "829180" && gE("results_Condo") != null) { gE("results_Condo").checked = true; $('#results_Condo').parent().addClass('selected'); }
            if (Query1 == "1305609" && gE("results_55-community") != null) { gE("results_55-community").checked = true; $('#results_55-Community').parent().addClass('selected'); }
            if (Query1 == "1305610" && gE("results_Apartment") != null) { gE("results_Apartment").checked = true; $('#results_Apartment').parent().addClass('selected'); }
            if (Query1 == "1305611" && gE("results_Duplex") != null) { gE("results_Duplex").checked = true; $('#results_Duplex').parent().addClass('selected'); }
            if (Query1 == "1305612" && gE("results_Loft") != null) { gE("results_Loft").checked = true; $('#results_Loft').parent().addClass('selected'); }
            if (Query1 == "1305613" && gE("results_New-Construction") != null) { gE("results_New-Construction").checked = true; $('#results_New-Construction').parent().addClass('selected'); }
            
            
            if (Query1 == "878103" && gE("results_a-c") != null) { gE("results_a-c").checked = true; $('#results_a-c').parent().addClass('selected');  }
            if (Query1 == "878105" && gE("results_fireplace") != null) { gE("results_fireplace").checked = true; $('#results_fireplace').parent().addClass('selected'); }
            if (Query1 == "878102" && gE("results_garage") != null) { gE("results_garage").checked = true; $('#results_garage').parent().addClass('selected');  }
            if (Query1 == "975577" && gE("results_golf-course") != null) { gE("results_golf-course").checked = true; $('#results_golf-course').parent().addClass('selected'); }
            if (Query1 == "878106" && gE("results_patio-deck") != null) { gE("results_patio-deck").checked = true; $('#results_patio-deck').parent().addClass('selected'); }
            if (Query1 == "878104" && gE("results_pool") != null) { gE("results_pool").checked = true; $('#results_pool').parent().addClass('selected'); }
            if (Query1 == "1015760" && gE("results_retirement") != null) { gE("results_retirement").checked = true; $('#results_retirement').parent().addClass('selected'); }
            if (Query1 == "878107" && gE("results_waterfront") != null) { gE("results_waterfront").checked = true; $('#results_waterfront').parent().addClass('selected'); }            
            if (Query1 == "1305619" && gE("results_central-air-conditioning") != null) { gE("results_central-air-conditioning").checked = true; $('#results_central-air-conditioning').parent().addClass('selected'); }
            if (Query1 == "1305620" && gE("results_dishwasher") != null) { gE("results_dishwasher").checked = true; $('#results_dishwasher').parent().addClass('selected'); }
            if (Query1 == "1305621" && gE("results_doorman") != null) { gE("results_doorman").checked = true; $('#results_doorman').parent().addClass('selected'); }
            if (Query1 == "1305622" && gE("results_washer-dryer-hookups") != null) { gE("results_washer-dryer-hookups").checked = true; $('#results_washer-dryer-hookups').parent().addClass('selected'); }
            if (Query1 == "1305623" && gE("results_washer-dryer-in-bldg") != null) { gE("results_washer-dryer-in-bldg").checked = true; $('#results_washer-dryer-in-bldg').parent().addClass('selected'); }
            if (Query1 == "1305624" && gE("results_washer-dryer-in-unit") != null) { gE("results_washer-dryer-in-unit").checked = true; $('#results_washer-dryer-in-unit').parent().addClass('selected'); }
            if (Query1 == "1305625" && gE("results_waterfront-beach") != null) { gE("results_waterfront-beach").checked = true; $('#results_waterfront-beach').parent().addClass('selected'); }
            if (Query1 == "1305626" && gE("results_waterfront-river") != null) { gE("results_waterfront-river").checked = true; $('#results_waterfront-river').parent().addClass('selected'); }
            if (Query1 == "1305627" && gE("results_waterfront-lake") != null) { gE("results_waterfront-lake").checked = true; $('#results_waterfront-lake').parent().addClass('selected'); }
            if (Query1 == "1305628" && gE("results_waterfront-bay") != null) { gE("results_waterfront-bay").checked = true; $('#results_waterfront-bay').parent().addClass('selected'); }
            if (Query1 == "1305629" && gE("results_mountain-view") != null) { gE("results_mountain-view").checked = true; $('#results_mountain-view').parent().addClass('selected'); }
            if (Query1 == "1305630" && gE("results_yard") != null) { gE("results_yard").checked = true; $('#results_yard').parent().addClass('selected'); }
            if (Query1 == "1305631" && gE("results_senior-community") != null) { gE("results_senior-community").checked = true; $('#results_senior-community').parent().addClass('selected'); }
            
            
        }
//    }

    if (gE("results_All-Dates") != null) {
        //if (PageCache.SEOPath.indexOf("openhouses") > -1) {gE("results_All-Dates").checked = true;}
        if (Query.indexOf("+1118487") > 0 && gE("results_All-Dates") != null) { gE("results_All-Dates").checked = true; }
        if (Query.indexOf("+1118483") > 0 && gE("results_Today") != null) { gE("results_Today").checked = true; gE("results_All-Dates").checked = false; }
        if (Query.indexOf("+1118484") > 0 && gE("results_Tomorrow") != null) { gE("results_Tomorrow").checked = true; gE("results_All-Dates").checked = false; }
        if (Query.indexOf("+1118485") > 0 && gE("results_This-weekend") != null) { gE("results_This-weekend").checked = true; gE("results_All-Dates").checked = false; }
        if (Query.indexOf("+1118486") > 0 && gE("results_Next-weekend") != null) { gE("results_Next-weekend").checked = true; gE("results_All-Dates").checked = false; }
    }
    
    if(gE("results_With_virtualtours") != null)
    {
        if(Query.indexOf("+878065") > 0 )
        {
            gE("results_With_virtualtours").checked = true;
        }
        
             $('#results_With_virtualtours').change(function() {
                console.trace();
                alert('Handler for .change() called.');
            });

    }
    
    var filterGen = new UrlGen(Query);

    if (filterGen.GetParam("Nf").indexOf('OpenHouse1Date') > -1) {
        if (gE("CustomDateRange") != null) {
            gE("CustomDateRange").checked = true;
            showOHcustomdates(gE("CustomDateRange"));
            startpos = filterGen.GetParam("Nf").indexOf('+');
            endpos = filterGen.GetParam("Nf").lastIndexOf('+');

            if (startpos > -1 && endpos > -1) {
                if (gE("ohstart") != null) { gE("ohstart").value = FormatDate(filterGen.GetParam("Nf").substr(startpos + 1, endpos - startpos - 1)); }
                if (gE("ohend") != null) { gE("ohend").value = FormatDate(filterGen.GetParam("Nf").substr(endpos + 1)); }
            }
        }
    }

    $("#ohstart").datepicker({
        minDate: 0,
        monthNames: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
        dayNamesMin: ['Su', 'M', 'Tu', 'W', 'Th', 'F', 'Sa'],
        duration: 0,
        onClose: function() { LeftNavBusy = 'false'; }
    });

    $("#ohend").datepicker({
        minDate: 0,
        monthNames: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
        dayNamesMin: ['Su', 'M', 'Tu', 'W', 'Th', 'F', 'Sa'],
        duration: 0,
        onClose: function() { LeftNavBusy = 'false'; RFQuery(LeftNavBusy); }
    });

    /*gE("openhouseheader").style.display = "block";
    if (gE("openhouse_count")!= null)
    {
    if (trim(gE("openhouse_count").innerHTML).toString().toLowerCase() == "no open houses are available")
    {
    gE("openhouseheader").style.display = "none";
    }                
    }*/
    UnescapeCommonInnerHTML(gE("results_listings"));

    MapState.Render(true);

    if (gE("featuredListingsCarousel") && MapState.Current == 'map_hidden') {
        showNewResults(Query);
    }

    PageCache.ListingIds = GetSingleNodeContent(XMLDoc, "/results/listingids");
//    PageCache.Channel = GetSingleNodeContent(XMLDoc, '/results/breadcrumbs/defaults/channel');
//    PageCache.Location = GetSingleNodeContent(XMLDoc, '/results/breadcrumbs/defaults/location');

    // Personalization 
    SearchCriteria = GetSingleNodeContent(XMLDoc, '/results/centerregionname');
    var TmpSearchCriteria = GetSingleNodeContent(XMLDoc, "/results/searchcriteria");
    if (GetSingleNodeContent(XMLDoc, '/results/centerregionname') != "" && TmpSearchCriteria != "" && TmpSearchCriteria != undefined) {
        SearchCriteria += ", ";
    }
    if(TmpSearchCriteria != undefined)
    {
        SearchCriteria += GetSingleNodeContent(XMLDoc, "/results/searchcriteria");
    }
    if (SearchCriteria.length > 50) {
        SearchCriteria = SearchCriteria.substr(0, 47) + "...";
    }
    // End of Personalization
    PageCache.QueryString = Query;

    //set new value for current search state in cookie
    SetCookieState("CurrentSearch", "Result", escape(Query));

    //alert(PageCache.TotalRecords);

    if (PageCache.TotalRecords > 0) {
        //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        //  Cache the QueryString for a return
        //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        // Cache querystring for return
        PageCache.LastQueryString = Query; 
    }

    var lcount = unescapeAmp(GetSingleNodeContent(XMLDoc, '/results/listings/ListingCount'));
      
    if (parseInt(lcount) > 0)
    {
        MapState.Render(true);
    }
    else 
    {
        if (gE("map_border")) 
        {
            gE("map_border").style.display = "none";
        }
    }

    gE("txtAboutPageSearch").value = locationmoduletext;
    
    if(typeof BookmarkModuleRequery == 'function' && gE("properties-drop-box")) { 
        BookmarkModuleRequery("", "results-module", "results-module");
    }
    
    ChangeResultUserAction(PageCache.ListingIds);
}


































