var map, manager, batch;
var radOwn, radPrice, chkHouseTypes, scPriceMin, scPriceMax, scInterestRate, scDownPayment, scYearofloan, SearchOptions, scBedrooms, scBathrooms, scSQFT;
var scids, scid_models;
//Home Finder Location Navegator
function initialize() {
    iniNavigator();
    iniSearchCriteria();
    iniGMap();
    iniHomesearch();
    locationFilter();
    iniSavedSearchCriteria();
}

var oNavigator;

function iniNavigator()
{
    var divLocation = document.getElementById("divLocation");
    var odivSelect = document.getElementById("divSelect");
    //Get Selected Navigator Value
    oNavigator = document.getElementById("Navigator");
    var sNavigator = oNavigator.value.split("_");
    //Build Navigator String
    var strNavigator = "<span id='spanL0'><a href=\"javascript:resetNavigator()\" class=\"hfLocationLink\">" + _LevelDetail[0][3] + "</a>";
    for (i = 1; i < sNavigator.length; i++) {
        for (j = 0; j < _LevelDetail.length; j++) {
            if (i == _LevelDetail[j][0] && sNavigator[i] == _LevelDetail[j][1]) {
                strNavigator += "></span><span id='spanL" + i + "'><a href=\"javascript:showNavigatorSelector(" + i + "," + sNavigator[i - 1] + ")\" class=\"hfLocationLink\">" + _LevelDetail[j][3] + "</a>";
                if (i == sNavigator.length - 1) {
                    document.getElementById("ctl00_ContentPlaceHolder1_btnViewAll").innerHTML = "View all homes in " + _LevelDetail[j][3];
                }
            }
        }
    }
    if(sNavigator.length < _Level.length)
    {
        strNavigator += "></span><span id='spanL" + sNavigator.length + "'><a href=\"javascript:showNavigatorSelector(" + sNavigator.length + "," + sNavigator[sNavigator.length - 1] + ")\" class=\"hfLocationLink\">Select " + _Level[sNavigator.length] + "</a></span>";
    }
    divLocation.innerHTML = "<span id='spanNavigator'>" + strNavigator + "</span>";
    odivSelect.style.visibility = "hidden";
    if (map) locationFilter();
}
function resetNavigator() {
    document.getElementById('Navigator').value = 0;
    iniNavigator();
    document.getElementById("ctl00_ContentPlaceHolder1_btnViewAll").innerHTML = "View all homes";
//    document.getElementById("ctl00_ContentPlaceHolder1_btnViewAll").value = "View all homes" + _LevelDetail[0][3];
}
function iniSearchCriteria() {
    //Load from cookie
    
}

//Show Hide Navigator Selector Panel
function showNavigatorSelector(level, pItem) {
    var divLocation = document.getElementById("divLocation");
    var odivSelect = document.getElementById("divSelect");
    odivSelect.innerHTML = "";
    for (var i = 0; i < _LevelDetail.length; i++) {
        if (level == _LevelDetail[i][0] && pItem == _LevelDetail[i][2]) {
            odivSelect.innerHTML += "<a href=\"javascript:NavigatorSelected(" + level + "," + _LevelDetail[i][1] + ")\" class=\"hfLocationLink\">" + _LevelDetail[i][3] + "</a><br />";
        }
    }
    //Find Select div position
    var oNavigator = document.getElementById("Navigator");
    var sNavigator = oNavigator.value.split("_");
    var position = 0;
    for (var i = 0; i < level; i++) {
        position += document.getElementById("spanL" + i).offsetWidth;
    }
    odivSelect.style.left = position + 12; //Position + padding of the navigator
    odivSelect.style.visibility = (odivSelect.style.visibility == "visible") ? "hidden" : "visible";
}
//Select from Navigator dropdown
function NavigatorSelected(level, item) {
    var oNavigator = document.getElementById("Navigator");
    var tmp = oNavigator.value.split("_");
    tmp[level] = item;
    var tmp2 = "";
    for (var i = 0; i <= level; i++) {
        if ("" != tmp2) tmp2 += "_";
        tmp2 += tmp[i];
    }
    oNavigator.value = tmp2;
    iniNavigator();
}

//Show Hide More Options Panel
function showMoreOptions() {
    var odivB = document.getElementById("divOptionB");
    var odiv1 = document.getElementById("divCoreSearch");
    var odiv2 = document.getElementById("divOption");
    var oimgSearchoption = document.getElementById("imgSearchoption");
    var oimgMoreoption = document.getElementById("imgMoreoption");
    odivB.style.visibility = (odivB.style.visibility == "visible") ? "hidden" : "visible";
    if (odiv1.style.top == "22px")
    {
        odiv1.style.top="330px";
        odiv2.style.top="426px"; 
        oimgSearchoption.src="images/min.gif";
        oimgMoreoption.src="images/min.gif";
    }
    else
    {
        odiv1.style.top="22px";
        odiv2.style.top="120px"; 
        oimgSearchoption.src="images/max.gif";
        oimgMoreoption.src="images/max.gif";
    }
}

function showSalesCenter(id, show) {
    var dv = document.getElementById("divSalesCenter_" + id);
    if (!show) {
        dv.parentElement.parentElement.style.display = "none";
        return true;
    }
    else {
        if (!searchOptionFilter(dv)) {
            dv.parentElement.parentElement.style.display = "none";
            return false;
        }
        else {
            dv.parentElement.parentElement.style.display = "";
            return true;
        }
    }
}

//Hide More Options Panel
function showModelsList(id) {
    var dv = document.getElementById("divModels_" + id);
    var img = document.getElementById("imgSection_" + id);
    
    if (dv.style.visibility == "visible") {
        dv.style.visibility = "hidden";
        dv.style.height = "0px";
        img.src = "images/min.gif";
    }
    else {
        dv.style.visibility = "visible";
        dv.style.height = "";
        img.src = "images/max.gif";
    }
}

function ExpandCollapse(id) {
    var dv = document.getElementById("divDetails_" + id);
    var img = document.getElementById("imgSection_" + id);
    
    if (dv.style.visibility == "visible") {
        dv.style.visibility = "hidden";
        dv.style.height = "0px";
        img.src = "images/min.gif";
    }
    else {
        dv.style.visibility = "visible";
        dv.style.height = "";
        img.src = "images/max.gif";
    }
}

function largerMap()
{
    var MapBack = document.getElementById("divMapBack");
    var gMap = document.getElementById("gMap");
    MapBack.className = "hfdivMapBackFull";
    gMap.className = "hfdivMapFull";
    document.getElementById("imgLarger").style.display = "none";
    document.getElementById("imgSmaller").style.display = "";
    map.checkResize();
}

function smallerMap()
{
    var MapBack = document.getElementById("divMapBack");
    var gMap = document.getElementById("gMap");
    MapBack.className = "hfdivMapBack";
    gMap.className = "hfdivMap";
    document.getElementById("imgLarger").style.display = "";
    document.getElementById("imgSmaller").style.display = "none";
    map.checkResize();
}

//Open URL from Javascript
function openURL(URL) {
    self.location = URL;
}
//Open List All page
function ShowModels() {
    openURL('ShowModels.aspx?scids=' + scids);
}

//Open Availability page
function Availability(scid) {
    var chks = document.getElementById("divSalesCenter_" + scid).getElementsByTagName('input');
    var strscid_models = "";
    var strID;
    for (var i = 0; i < chks.length; i++) {
        if (chks[i].parentElement.parentElement.style.display == "") {
            if ("" != strscid_models) strscid_models += ",";
            strID = chks[i].id.split('_');
            strscid_models += (strID[1] + '_' + strID[2]);
        }
    }
    openURL('Availability.aspx?ModelIDs=' + strscid_models);
}

//Open Compare page
function Compare() {
    var models = getModels(document.forms[0], 'chkCompare');
    if ("" != models) {
        openURL('Compare.aspx?scid=' + document.getElementById("SCID").value + '&Sales_CenterIDs=' + getModels(document.forms[0], 'chkCompare'));
    }
}

//Open Save page
function SaveTo247(dataType, dataValue) {
    set_cookie("saveSearch", dataValue, 999999);
    var URL = document.getElementById("247URL").value;
    var oifrm = document.getElementById("ifrmSave");
    var sURL = document.location.href.split('/');
    sURL.length = 3;
    var domain = sURL.join('/');
    oifrm.src = URL + '/Marketing/SaveTo247.aspx?domain=' + domain + '&dataType=' + dataType + '&dataValue=' + dataValue;
    //oifrm.src = 'http://localhost:1000/247/Marketing/SaveTo247.aspx?dataType=' + dataType + '&dataValue=' + dataValue;
    oifrm.style.display = "";
//    setTimeout("checkSaveTo247Statue()", 2000);
}

//function checkSaveTo247Statue() {
//    var oifrm = document.getElementById("ifrmSave");
//    alert(oifrm.document.body.scrollWidth);
//    if (oifrm.style.display == "") {
//        if (window.frames["ifrmSave"].document.getElementsByTagName("body")[0].innerHTML.indexOf('Save succeed') >-1)
//            oifrm.style.display = "none";
//        else
//            setTimeout("checkSaveTo247Statue()", 10000);
//    }
//}

function SaveSearchCriteria() {
    findSearchControls();
    var dataValue = "&Location=";
    dataValue += document.getElementById("Navigator").value;
    dataValue += "&OwnRent=";
    if (radOwn.checked)
        dataValue += "Own";
    else
        dataValue += "Rent";
    dataValue += "&HouseType=";
    var strTemp = "";
    for (var i = 0; i < chkHouseTypes.length; i++) {
        if (chkHouseTypes[i].checked) {
            if (strTemp != "") strTemp += ",";
            strTemp += chkHouseTypes[i].id.split('_')[3];
        }
    }
    dataValue += strTemp;
    dataValue += "&Bedroom=";
    dataValue += scBedrooms.value;
    dataValue += "&Bathroom=";
    dataValue += scBathrooms.value;
    dataValue += "&SQFT=";
    dataValue += scSQFT.value;
    if (radPrice.checked) {
        dataValue += "&PriceMinimal=";
        dataValue += scPriceMin.value;
        dataValue += "&PriceMaximal=";
        dataValue += scPriceMax.value;
    }
    else {
        dataValue += "&MonthlyMinimal=";
        dataValue += scMonthlyMin.value;
        dataValue += "&MonthlyMaximal=";
        dataValue += scMonthlyMax.value;
        dataValue += "&InterestRate=";
        dataValue += scInterestRate.value > 0 ? scInterestRate.value : 0;
        dataValue += "&DownPayment=";
        dataValue += scDownPayment.value > 0 ? scDownPayment.value : 0;
        dataValue += "&Yearofloan=";
        dataValue += scYearofloan.value > 0 ? scYearofloan.value : 0;
    }
    dataValue += "&SearchOptions=";
    strTemp = "";
    for (var i = 0; i < SearchOptions.length; i++) {
        if (SearchOptions[i].checked) {
            if (strTemp != "") strTemp += ",";
            strTemp += SearchOptions[i].id.split('_')[3];
        }
    }
    dataValue += strTemp;
    SaveTo247("SearchCriteria", dataValue);
}

function openLogin(modelid, RURL) {
    openURL('Login.aspx?modelid=' + modelid + '&RURL=' + RURL);
}

//get selected models 
function getModels(formobj, ControlNameStartWith) {
    var strModels = "";
    for (var i = 0; i < formobj.elements.length; i++) {
        var e = formobj.elements[i];
        if ((e.type == 'checkbox' && e.id.indexOf(ControlNameStartWith) > -1 && e.checked)) {
            if ("" != strModels) strModels += ",";
            strModels += e.id.substring(ControlNameStartWith.length + 1);
        }
    }
    return strModels;
}

function showCommunity(id) {
    window.location = "CommunityDetails.aspx?scid=" + document.getElementById("SCID").value +"&sid=" + id;
}

function showDirection(to) {
    window.open('http://maps.google.ca/?q=from:+' + document.getElementById('txtFrom').value + '+to:+' + to,'Direction');
}

//Functions of Search option-------------------------------------------------------------------------
function OwnRent(OR) {
    chkHouseTypes = document.getElementById("ctl00_ContentPlaceHolder1_chkHouseType").getElementsByTagName('input');
    if ("Own" == OR) 
    {
        document.getElementById("ctl00_ContentPlaceHolder1_radPrice").disabled = "";
        document.getElementById("ctl00_ContentPlaceHolder1_radMonthly").disabled = "";
        document.getElementById("ctl00_ContentPlaceHolder1_radPrice").checked = true;
        document.getElementById("ctl00_ContentPlaceHolder1_divPrice").style.display = "";
        document.getElementById("ctl00_ContentPlaceHolder1_divMonthly").style.display = "none";
    }
    else
    {
        document.getElementById("ctl00_ContentPlaceHolder1_radMonthly").checked = true;
        document.getElementById("ctl00_ContentPlaceHolder1_radPrice").disabled = "disabled";
        document.getElementById("ctl00_ContentPlaceHolder1_radMonthly").disabled = "disabled";
        document.getElementById("ctl00_ContentPlaceHolder1_divPrice").style.display = "none";
        document.getElementById("ctl00_ContentPlaceHolder1_divMonthly").style.display = "";
        document.getElementById("ctl00_ContentPlaceHolder1_divInterestRate").style.display = "none";
//        for (var i = 1; i < chkHouseTypes.length; i++) {
//            chkHouseTypes[i].checked = false;
//        }
    }
    for (var i = 0; i < chkHouseTypes.length; i++) {
        chkHouseTypes[i].checked = true;
    }
    locationFilter();
}
function PriceMonthly(M) {
    if ("Price" == M) {
        document.getElementById("ctl00_ContentPlaceHolder1_divPrice").style.display = "";
        document.getElementById("ctl00_ContentPlaceHolder1_divMonthly").style.display = "none";
        document.getElementById("ctl00_ContentPlaceHolder1_divInterestRate").style.display = "none";
    }
    else {
        document.getElementById("ctl00_ContentPlaceHolder1_divPrice").style.display = "none";
        document.getElementById("ctl00_ContentPlaceHolder1_divMonthly").style.display = "";
        document.getElementById("ctl00_ContentPlaceHolder1_divInterestRate").style.display = "";
    }
}
function clearInput(me, text) {
    if (me.value == text) me.value = "";
}
function restoreInput(me, text) {
    if (me.value == "") {
        me.value = text;
    }
    else {
        radPrice = document.getElementById("ctl00_ContentPlaceHolder1_radPrice");
        if (radPrice.checked) {
            locationFilter();
        }
        else
        {
            scInterestRate.value = document.getElementById("ctl00_ContentPlaceHolder1_txtInterestRate").value;
            scDownPayment.value = document.getElementById("ctl00_ContentPlaceHolder1_txtDownPayment").value;
            scYearofloan.value = document.getElementById("ctl00_ContentPlaceHolder1_txtYearofloan").value;
            if (scInterestRate.value >= 0 && scDownPayment.value >= 0 && scYearofloan.value >= 0) {
                locationFilter();
            }
        
        }
    }
}
//---------------------------------------------------------------------------------------------------------


//Map Functions--------------------------------------------------------------------------------------------

function createMarkerClickHandler(marker, text, link) {
    return function() {
        openInfoWindow(marker.labelText_);
        return false;
    };
}

function openInfoWindow(id) {
    for (var i = 0; i < batch.length; i++) {
        if (batch[i].labelText_ == id) {
            batch[i].openInfoWindowHtml(batch[i].labelHTML_);
        }
    }
}
function createMarker(pointData) {
    var latlng = new GLatLng(pointData.latitude, pointData.longitude);

    var iconOptions = {};
    iconOptions.primaryColor = "#3CE415FF";
    iconOptions.cornerColor = "#D2F2D1FF";
    iconOptions.strokeColor = "#0C4F02FF";
    var icon = MapIconMaker.createMarkerIcon(iconOptions);
    icon.image = '../images/chart.png';
    icon.iconSize = new GSize(32, 32);
    icon.iconAnchor = new GPoint(18, 18);
    icon.infoWindowAnchor = new GPoint(20, 3);
    var HTML = '<span class="hfLabelBold">' + pointData.name + '</span><br /><span class="hfLabel">' + pointData.address + '</span><br /><input id="txtFrom" type="text" value="From address or Zip code" class="hfTxtInput" onclick="clearInput(this,\'From address or Zip code\')" onblur="restoreInput(this,\'From address or Zip code\')" style="width:140px;"><input type="submit" value="To here" onclick="showDirection(' + pointData.zip + '); return false;" class="hfButton" style="position:relative; top:-3px; left:2px;" />';
    opts = {
        "icon": icon,
        "clickable": true,
        "labelText": pointData.abbr,
        "labelHTML": HTML,
        "labelOffset": new GSize(-6, -16)
    };

    var marker = new LabeledMarker(latlng, opts);
    var handler = createMarkerClickHandler(marker, pointData.name, pointData.wp);
    GEvent.addListener(marker, "click", handler);
    return marker;
}

function iniGMap() {

    map = new GMap2(document.getElementById("gMap"));
    map.addControl(new GSmallMapControl());
    map.addMapType(G_PHYSICAL_MAP);
    map.setMapType(G_PHYSICAL_MAP);    
    map.setCenter(new GLatLng(centerLatitude, centerLongitude), startZoom);
    map.addControl(new GMapTypeControl());
    manager = new MarkerManager(map);

    // This is a sorting trick, don't worry too much about it.
    //markers.sort(function(a, b) { return (a.abbr > b.abbr) ? +1 : -1; });

    batch = [];
    for (id in markers) {
        batch.push(createMarker(markers[id]));
    }
    manager.addMarkers(batch, 1);
    manager.refresh();
}

function locationFilter() {
    document.getElementById("divProgress").style.display = "";
    var sID = [_LevelDetail.length];
    var sNavigator = oNavigator.value.split("_");
    var pid;
    //Generate Parent ID array and SalesCenterID array
    for (var i = 0; i < _LevelDetail.length; i++) {
        sID[i] = (_LevelDetail[i][0] == _Level.length - 1) ? _LevelDetail[i][1] : 0;
    }
    //Filter id
    for (var i = 0; i < _LevelDetail.length; i++) {
        if (sID[i] != 0) {
            pid = sID[i];
            for (j = _Level.length - 1; j >= sNavigator.length; j--) {
                for (k = 0; k < _LevelDetail.length; k++) {
                    if (j == _LevelDetail[k][0] && pid == _LevelDetail[k][1]) {
                        pid = _LevelDetail[k][2];
                        k = _LevelDetail.length;
                    }
                }
            }
            if (pid != sNavigator[sNavigator.length - 1]) sID[i] = 0;
        }
    }
    findSearchControls();
    scids = "";
    scid_models = [batch.length];
    var show;
    for (var i = 0; i < batch.length; i++) {
        show = false;
        for (j = 0; j < sID.length; j++) {
            if (batch[i].labelText_ == sID[j]) show=true;
        }
        if (show) {
            if (showSalesCenter(batch[i].labelText_, true)) {
                batch[i].show();
                //Salescenter List
                if ("" != scids) scids += ",";
                scids += batch[i].labelText_;
            }
            else
                batch[i].hide();
        }
        else {
            batch[i].hide();
            showSalesCenter(batch[i].labelText_, false);
        }
    }
    document.getElementById("divProgress").style.display = "none";
}

function findSearchControls() {
    radOwn = document.getElementById("ctl00_ContentPlaceHolder1_radOwn");
    radPrice = document.getElementById("ctl00_ContentPlaceHolder1_radPrice");
    chkHouseTypes = document.getElementById("ctl00_ContentPlaceHolder1_chkHouseType").getElementsByTagName('input');
    scBedrooms = document.getElementById("ctl00_ContentPlaceHolder1_ddlBedroom");
    scBathrooms = document.getElementById("ctl00_ContentPlaceHolder1_ddlBathroom");
    scSQFT = document.getElementById("ctl00_ContentPlaceHolder1_ddlSQFT");
    scPriceMin = document.getElementById("ctl00_ContentPlaceHolder1_ddlPricemin");
    scPriceMax = document.getElementById("ctl00_ContentPlaceHolder1_ddlPricemax");
    scMonthlyMin = document.getElementById("ctl00_ContentPlaceHolder1_ddlMonthlymin");
    scMonthlyMax = document.getElementById("ctl00_ContentPlaceHolder1_ddlMonthlymax");
    scInterestRate = document.getElementById("ctl00_ContentPlaceHolder1_txtInterestRate");
    scDownPayment = document.getElementById("ctl00_ContentPlaceHolder1_txtDownPayment");
    scYearofloan = document.getElementById("ctl00_ContentPlaceHolder1_txtYearofloan");
    SearchOptions = document.getElementById("ctl00_ContentPlaceHolder1_panSearchOption").getElementsByTagName('input');
}

function searchOptionFilter(dv) {
    var totalAvailability = 0;
    var totalFloorPlans = 0;
    var spanTotalAvailability = null;
    var spanTotalFloorPlans = null;
    var show = true;
    var PriceMin = 0;
    var PriceMax = 0;
    
    //Get Div ID
    var dvid = dv.id;
    var spans = dv.getElementsByTagName('span');
    
    //Filter By Search Criteria
    for (var i = 0; i < spans.length; i++) {
        if (spans[i].id == "Availability") spanTotalAvailability = spans[i];
        if (spans[i].id == "FloorPlans") spanTotalFloorPlans = spans[i];
        //Own Rent (SalesCenter Level)
        if (spans[i].id == "Building_Use") {
            if (radOwn.checked) {
                if (spans[i].innerHTML.indexOf('S') == -1) show = false;
            }
            else {
                if (spans[i].innerHTML.indexOf('R') == -1) show = false;
            }
        }
        //More Option (SalesCenter Level)
        if (spans[i].id == "SearchCriteria") {
            for (var j = 0; j < SearchOptions.length; j++) {
                if (SearchOptions[j].checked) {
                    var checkID = SearchOptions[j].id.split('_')[SearchOptions[j].id.split('_').length - 1];
                    if (spans[i].innerHTML.indexOf(checkID) == -1) show = false;
                }
            }
        }
        //Loop through Models 
        if (spans[i].id.indexOf("lblModelName") > -1) {
            var showModel = true;
            //get Model values
            var id = spans[i].id;
            id = id.replace(id.split('_')[id.split('_').length - 1], '');

            //----------------------------------------------------------------------------- Todo performance improve
            var spanModelType = document.getElementById(id + "lblModelType");
            var spanStartingPrice = document.getElementById(id + "lblStartingPrice");
            var spanBedrooms = document.getElementById(id + "lblBedrooms_No");
            var spanBaths = document.getElementById(id + "lblBaths_No");
            var spanSqft = document.getElementById(id + "lblSqft");
            var spanAvailability = document.getElementById(id + "lblAvailability");
            //-----------------------------------------------------------------------------
            
            //Filter House type (Model Level)
            for (var j = 0; j < chkHouseTypes.length; j++) {
                if (!chkHouseTypes[j].checked) {
                    var checkID = chkHouseTypes[j].id.split('_')[chkHouseTypes[j].id.split('_').length - 1];
                    if (spanModelType.innerHTML == checkID) {
                        showModel = false;
                    }
                }
            }
            //Filter Price (Model Level)
            if (radPrice.checked) {
                PriceMin = scPriceMin.value;
                PriceMax = scPriceMax.value;
            }
            else {
                if (radOwn.checked) {
                    if (scInterestRate.value >= 0 && scDownPayment.value >= 0 && scYearofloan.value >= 0) {
                        //US Calculate
                        var monthlyinterest = scInterestRate.value / 12 / 100.0;
                        var monthsofloan = scYearofloan.value * 12;
                        PriceMin = scDownPayment.value * 1.0 + scMonthlyMin.value * (1 - Math.pow(1 + monthlyinterest, -1 * monthsofloan)) / monthlyinterest;
                        PriceMax = scDownPayment.value * 1.0 + scMonthlyMax.value * (1 - Math.pow(1 + monthlyinterest, -1 * monthsofloan)) / monthlyinterest;
                    }
                }
                else {
                    PriceMin = scMonthlyMin.value;
                    PriceMax = scMonthlyMax.value;
                }
            }
            if (parseFloat(spanStartingPrice.innerHTML) < parseFloat(PriceMin) || parseFloat(spanStartingPrice.innerHTML) >= parseFloat(PriceMax)) showModel = false;
            //Filter Home Type Bedroom Bathroom SQFT (Model Level)
            if (scBedrooms.value >= 0 && spanBedrooms.innerHTML != scBedrooms.value) showModel = false;
            if (scBathrooms.value >= 0 && spanBaths.innerHTML != scBathrooms.value) showModel = false;
            var scSQFTsplit = scSQFT.value.split('-');
            if (scSQFTsplit.length == 2) {
                if (parseFloat(spanSqft.innerHTML) < parseFloat(scSQFTsplit[0]) || parseFloat(spanSqft.innerHTML) >= parseFloat(scSQFTsplit[1])) showModel = false;
            }
            //Show Hide Models & Recount
            if (showModel) {
                spans[i].parentElement.parentElement.style.display = "";
                totalAvailability += spanAvailability.innerHTML * 1;
                totalFloorPlans++ ;
            }
            else {
                spans[i].parentElement.parentElement.style.display = "none";
            }
        }
    }
    if (0 == totalFloorPlans) {
        show = false;
    }
    else {
        spanTotalAvailability.innerHTML = totalAvailability;
        spanTotalFloorPlans.innerHTML = totalFloorPlans;
    }
    return show;
}
//----------------------------------------------------------------------------------------------------------
function iniSiteNavigate(label, rURL) {
    //Read Cookie
    var cLabel = new Array();
    var cURL = new Array();
    var i = 0;
    do {
        if (fetch_cookie('L' + i + 'Label')) {
            cLabel[i] = fetch_cookie('L' + i + 'Label');
            cURL[i] = fetch_cookie('L' + i + 'URL');
            delete_cookie('L' + i + 'Label');
            delete_cookie('L' + i + 'URL');
            i++;
        }
        else {
            i = -1;
        }
        
    }
    while (i>0)
    //Generate Site Navigate
    var strSiteNavigate = '';
    var Navigate = document.getElementById("divNavigatorBar");
    var page = rURL.split('?')[0];
    i = 0;
    while (i < cLabel.length && page != cURL[i].split('?')[0] && label != "HOME SEARCH") {
        strSiteNavigate += '<a href="' + cURL[i] + '" class="hfNavigatorButton">' + cLabel[i] + '</a><img src="images/navbar_arrow.gif" />';
        set_cookie('L' + i + 'Label', cLabel[i]);
        set_cookie('L' + i + 'URL', cURL[i]);
        i++;
    }
    strSiteNavigate += '<a href="' + rURL + '" class="hfNavigatorButton">' + label + '</a><img src="images/navbar_arrow.gif" />';
    set_cookie('L' + i + 'Label', label);
    set_cookie('L' + i + 'URL', rURL);
    Navigate.innerHTML = strSiteNavigate;
}

function iniHomesearch() 
{
    iniSiteNavigate("HOME SEARCH", "HomeSearch.aspx");
//    var Navigate = document.getElementById("divNavigatorBar");
//    Navigate.innerHTML += '<img src="images/navbar_separator.gif" style="position:absolute; left:685px;"/><span class="hfNavigatorButton" style="position:absolute; left:685px; top:5px;" onclick="clearSearchResault()">CLEAR SEARCH RESULTS</span>'
}

function clearSearchResault() {
    findSearchControls();
    radOwn.click();
    radPrice.click();
    scBedrooms.selectedIndex = 0;
    scBathrooms.selectedIndex = 0;
    scSQFT.selectedIndex = 0;
    scPriceMin.selectedIndex = 0;
    scPriceMax.selectedIndex = 0;
    scMonthlyMin.selectedIndex = 0;
    scMonthlyMax.selectedIndex = 0;
    scInterestRate.value = "Interest Rate";
    scDownPayment.value = "Down Payment";
    scYearofloan.value = "Year of loan";
    for (var i = 0; i < chkHouseTypes.length; i++) {
        chkHouseTypes[i].checked=true;
    }
    for (var i = 0; i < SearchOptions.length; i++) {
        SearchOptions[i].checked = false;
    }
    resetNavigator();
}

function addremoveFavorite(param) {
    
//    if (prop == "value") {
//        if (document.getElementById("btnFavorites_" + param).value == "Add to Favorites") {
//            SaveTo247('AddFavorites', "&modelid=" + param);
//            document.getElementById("btnFavorites_" + param).value = "Remove from Favotires"
//        }
//        else {
//            SaveTo247('RemoveFavorites', "&modelid=" + param);
//            document.getElementById("btnFavorites_" + param).value = "Add to Favorites";
//        }
//    }
//    else {
        if (document.getElementById("btnFavorites_" + param).checked == true) {
            SaveTo247('AddFavorites', "&modelid=" + param);
            //document.getElementById("lblFavorites_" + param).innerText = "Remove from Favotires";
            //document.getElementById("btnFavorites_" + param).checked = "true";
        }
        else {
            SaveTo247('RemoveFavorites', "&modelid=" + param);
            //document.getElementById("lblFavorites_" + param).innerText = "Add to Favorites";
            //document.getElementById("btnFavorites_" + param).src = "images/uncheck.gif";
        }
//    }

}
function iniSavedSearchCriteria() {
    if (document.getElementById("ctl00_ContentPlaceHolder1_radRent").checked) {
        OwnRent("Rent");
    }
    if (document.getElementById("ctl00_ContentPlaceHolder1_radMonthly").checked) {
        PriceMonthly("Monthly");
    }
}
