﻿// JScript File

//Filter Operation Type Class
function FilterOperationType()
{
    //Nothing in contructor.
}

//Set Properties
FilterOperationType.Equals = 0;
FilterOperationType.NotEqualTo = 1;
FilterOperationType.Contains = 2;
FilterOperationType.DoesNotContain = 3;
FilterOperationType.LessThan = 4;
FilterOperationType.GreaterThan = 5;
FilterOperationType.LessOrEqual = 6;
FilterOperationType.GreaterOrEqual = 7;
FilterOperationType.Includes = 8;
FilterOperationType.Excludes = 9;

//End of Filter Operation Type

//Sort Operation Type
function SortOperationType()
{
    //Nothing in contructor.
}

//Set Properties
SortOperationType.Ascending = 0;
SortOperationType.Descending = 1;

//Search Methods
function getSearchQuery() 
{
    var quickSearchType = getSelectedValuesString($get("quickSearchType"));
    var minPrice = getSelectedValuesString($get("minPrice"));
    var maxPrice = getSelectedValuesString($get("maxPrice"));
    var beds = getSelectedValuesString($get("beds"));
    var baths = getSelectedValuesString($get("baths"));
    var sqFeet = getSelectedValuesString($get("sqft"));
    var ageOfHome = getSelectedValuesString($get("ageOfHome"));
    var bonusRoom = getSelectedValuesString($get("bonusRoom"));
    var parking = getSelectedValuesString($get("parking"));
    var masterBedroom = getSelectedValuesString($get("masterBedroom"));
    var propertyDesign = getSelectedValuesString($get("propertyDesign"));
    var propertyType = getSelectedValuesString($get("propertyType"));
    var acres = getSelectedValuesString($get("acres"));
    var style = getSelectedValuesString($get("propertyStyle"));
    var basement = getSelectedValuesString($get("basement"));
    var amenities = getSelectedValuesString($get("amenities"));
    var school = $get("school").value;
    var sort1 = getSelectedValuesString($get("sort1"));
    var sort2 = getSelectedValuesString($get("sort2"));
    var query = new NetByDesign.IDXPlus.Facade.SearchProxy();
    query.GeoArea = new Object();
    query.GeoArea.Point1 = new Object();
    query.GeoArea.Point2 = new Object();
    
    //Build Filter
    query.QuickSearchType = quickSearchType;
    query.QuickSearch = $get("quickSearchInput").value;
    query.MinPrice = minPrice;
    query.MaxPrice = maxPrice;
    query.BedRooms = beds;
    query.Baths = baths;
    query.SqrFootage = sqFeet;       
    query.AgeOfHome = ageOfHome
    query.BonusRoom = bonusRoom;
    query.Locations = getLocations();
    query.Parking = parking;
    query.MasterBedroom = masterBedroom;
    query.PropertyDesign = propertyDesign;
    query.PropertyType = propertyType;
    query.Style = style;   
    query.Acres = acres;
    query.Basement = basement;
    query.Amenities = amenities;
    query.School = school;
    query.PageSize = getSelectedValuesString($get("resultsPerPage"));
    query.PageIndex = 1;
    //Sorty By
    query.SortBy = new Array();
    if (sort1 != "")
    {
        query.SortBy.push(sort1);
    }

    if (sort2 != "")
    {
        query.SortBy.push(sort2);
    }
       
    return query;    
}


//Search Methods
function getTestSearchQuery() 
{

    
    var query = new NetByDesign.IDXPlus.Facade.SearchProxy();
    query.GeoArea = new Object();
    query.GeoArea.Point1 = new Object();
    query.GeoArea.Point2 = new Object();
    
    //Build Filter
    query.MinPrice = "";
    query.MaxPrice = "";
    query.BedRooms = "";
    query.Baths = "";
    query.SqrFootage = "";       
    query.AgeOfHome = ""
    query.BonusRoom = "";
    query.Locations = ['005','010'];
    query.Parking = "";
    query.MasterBedroom = "";
    query.PropertyDesign = "";
    query.PropertyType = "";
    query.Style = "";   
    query.Acres = "";
    query.Basement = "";
    query.Amenities = "";
    query.PageSize = 15;
    query.PageIndex = 1;
    //Sorty By
    query.SortBy = new Array();

       
    return query;    
}


function getSortBy(value)
{
    var result = null;
    switch(value)
    {
        case "Price_Ascending":
            result = {FieldName:"ListPrice",SortDirection:SortOperationType.Ascending};
            break;
        case "Price_Descending":
            result = {FieldName:"ListPrice",SortDirection:SortOperationType.Descending};
            break;
        case "City_Ascending":
            result = {FieldName:"City",SortDirection:SortOperationType.Ascending};
            break;
        case "City_Descending":
            result = {FieldName:"City",SortDirection:SortOperationType.Descending};
            break;
        default:
            result = null;
            break;
    }
    
    return result;
}

function getLocations()
{
    var nodes = document.getElementsByName("location");
    var checked = 0;
    var locations = new Array();
    if (nodes.length > 0)
    {
        for(var i=0;i < nodes.length;i++)
        {
            if (nodes[i].checked)
            {
                locations.push(nodes[i].value);
            }            
        }
    }
    
    if (locations.length > 0)
    {
        return locations;
    }
    else
    {
        return null;
    }
}

function setLocation(value)
{
    var nodes = document.getElementsByName("location");
    var checked = 0;
    var locations = new Array();
    if (nodes.length > 0)
    {
        for(var i=0;i < nodes.length;i++)
        {
            if(nodes[i].value == value)
            {
                nodes[i].checked = true;
            }            
        }
    }
}


// Notify ScriptManager that this is the end of the script.
if (typeof(Sys) !== 'undefined') Sys.Application.notifyScriptLoaded();