﻿$(document).ready(function() {
    fnShowCriteria(true);
    $.historyInit(fnLoadSearch, $("#hidUrl").val());
});

function fnLoadSearch(sUrl){
    if(sUrl){
        fnShowSearching();
        fnGo(sUrl);
    }else{
        fnShowCriteria(true);
    }
    return false;
}

$(document).keypress(function (e) {
      if(e.which == 13 && !_TypeAheadIsRendered){
        fnOnSearchClick(1);
      }
    });

function fnOnSearchClick(iPage){
    fnShowSearching();
    
    iPage = (iPage)? iPage : 1;
    var sQStr = "mls=" + $("#" + $("#hidMLSID").val()).val();
        sQStr += "&zip=" + $("#" + $("#hidZipCodeID").val()).val();
        sQStr += "&beds=" + $("#" + $("#hidBedsID").val()).val();
        sQStr += "&baths=" + $("#" + $("#hidBathsID").val()).val();
        sQStr += "&price=" + $("#" + $("#hidPriceRangeID").val()).val();
        sQStr += "&size=" + $("#" + $("#hidSqftRangeID").val()).val();
        sQStr += "&featured=" + $("#" + $("#hidFeaturedID").val()).attr("checked");
        sQStr += "&bo=" + $("#" + $("#hidBankOwnedID").val()).attr("checked");
        sQStr += "&pool=" + $("#" + $("#hidPoolHomesID").val()).attr("checked");
        sQStr += "&fore=" + $("#" + $("#hidForeclosureID").val()).attr("checked");
        sQStr += "&city=" + $("#" + $("#hidCityID").val()).val();
        sQStr += "&lakeid=" + $("#" + $("#hidLakeID").val()).val();
        sQStr += "&ln=" + $("#" + $("#hidLakeNameID").val()).val();
        sQStr += "&lcid=" + $("#" + $("#hidLakeChainsID").val()).val();
        sQStr += "&rpp=" + $("#" + $("#hidRecordsPerPageID").val()).val();
        sQStr += "&page=" + iPage;
       
        $.historyLoad(sQStr); 
       
        fnGo(sQStr);
        
        return false;
}

function fnGo(sQStr){
    fnSetFieldsFromHistory(sQStr);

    var sUrl = "get-mls-search-results.aspx?" + sQStr;

    $.get(sUrl, function(data){            
        $("#div_results").html(data);
        $("#div_search_message").hide();
        $("#div_results").show();            
    });
    
    return false;
}

function fnSetFieldsFromHistory(sQStr){
    var arrNameValues = sQStr.split("&");
    for(var i = 0;i < arrNameValues.length;i++){
        var sPair = arrNameValues[i];
        var arrPair = sPair.split("=");
        var sName = arrPair[0];
        var sValue = arrPair[1];
        
        fnSetHiddenField(sName, sValue);
    }
}

// using this case statement in a pinch - I'll come up with something more elegant another time.
function fnSetHiddenField(sName, sValue){
    var sHidName = ""
    switch(sName)
    {
        case "mls":
          sHidName = "hidMLSID";
          break;
        case "zip":
          sHidName = "hidZipCodeID";
          break;
        case "beds":
          sHidName = "hidBedsID";
          break;
        case "baths":
          sHidName = "hidBathsID";
          break;
        case "price":
          sHidName = "hidPriceRangeID";
          break;
        case "size":
          sHidName = "hidSqftRangeID";
          break;
        case "featured":
          sHidName = "hidFeaturedID";
          break;
        case "bo":
          sHidName = "hidBankOwnedID";
          break;
        case "pool":
          sHidName = "hidPoolHomesID";
          break;
        case "fore":
          sHidName = "hidForeclosureID";
          break;
        case "city":
          sHidName = "hidCityID";
          break;
        case "lakeid":
          sHidName = "hidLakeID";
          break;
        case "ln":
          sHidName = "hidLakeNameID";
          break;
        case "lcid":
          sHidName = "hidLakeChainsID";
          break;
        case "rpp":
          sHidName = "hidRecordsPerPageID";
          break;
    }
    
    if(sHidName){
        $("#" + $("#" + sHidName).val()).val(sValue);
    }
}

function fnShowSearching(){
    $("#div_search_criteria").hide();
    $("#div_results").hide();
    $("#div_search_message").show();
}

function fnShowCriteria(blnHideResults){
    $("#div_search_message").hide();
    $("#div_search_criteria").show();
    $("#" + $("#hidNoResultID").val()).hide();
    if(blnHideResults)$("#div_results").hide();
    return false;
}



