function load()
{
    search();
}
function search( pageMovement )
{
    var category = document.getElementById( "category" );
    var state = document.getElementById( "state" );
    var bedrooms = document.getElementById( "bedrooms" );
    var priceRangeMinimum = document.getElementById( "price_range_minimum" );
    var priceRangeMaximum = document.getElementById( "price_range_maximum" );
    var sortBy = document.getElementById( "sort_by" );
    var page = document.getElementById( "page" );
    var listingTemplate = document.getElementById( "listing_template" );
    var searchResultsContainer = document.getElementById( "search_results_container" );
    var pageControls = document.getElementById( "page_controls" );
    var devType = document.getElementById( "dev_type" );
    var currentPast = document.getElementById( "current_past" );
    
    startLoad();
    ajaxSend( "/ajax.aspx", "<response><command>Search</command>" + ( pageMovement != null ? "<page_movement>" + pageMovement + "</page_movement>" : "" ) + "<category>" + xmlEncode( category.value ) + "</category><state>" + xmlEncode( state.value ) + "</state><bedrooms>" + xmlEncode( bedrooms.value ) + "</bedrooms><price_range_minimum>" + xmlEncode( priceRangeMinimum.value ) + "</price_range_minimum><price_range_maximum>" + xmlEncode( priceRangeMaximum.value ) + "</price_range_maximum><sort_by>" + xmlEncode( sortBy.value ) + "</sort_by><current>" + xmlEncode( currentPast.value ) + "</current><type>" + xmlEncode( devType.value ) + "</type></response>", function( response )
    {
        var pageValue = response.getElementsByTagName( "page" )[ 0 ].firstChild.nodeValue;
    
        endLoad();
        while( page.hasChildNodes() ) page.removeChild( page.firstChild );
        while( searchResultsContainer.getElementsByTagName( "div" ).length > 0 ) searchResultsContainer.removeChild( searchResultsContainer.firstChild );
        page.appendChild( document.createTextNode( pageValue ) );
        pageControls.style.display = "block";
        for( var i = 0; i < response.getElementsByTagName( "listing" ).length; i ++ )
        {
            var idValue = response.getElementsByTagName( "listing" )[ i ].getAttribute( "id" );
            var categoryValue = response.getElementsByTagName( "listing" )[ i ].getElementsByTagName( "category" )[ 0 ].firstChild.nodeValue;
            var priceValue = response.getElementsByTagName( "listing" )[ i ].getElementsByTagName( "price" )[ 0 ].hasChildNodes() ? response.getElementsByTagName( "listing" )[ i ].getElementsByTagName( "price" )[ 0 ].firstChild.nodeValue : null;
            var bedroomsValue = response.getElementsByTagName( "listing" )[ i ].getElementsByTagName( "bedrooms" )[ 0 ].firstChild.nodeValue;
            var bathroomsValue = response.getElementsByTagName( "listing" )[ i ].getElementsByTagName( "bathrooms" )[ 0 ].firstChild.nodeValue;
            if(response.getElementsByTagName( "listing" )[ i ].getElementsByTagName( "street_no" )[ 0 ].firstChild){
            	var streetNoValue = response.getElementsByTagName( "listing" )[ i ].getElementsByTagName( "street_no" )[ 0 ].firstChild.nodeValue;
            }
            else{
            	var streetNoValue = "";
            }
            var streetNameValue = response.getElementsByTagName( "listing" )[ i ].getElementsByTagName( "street_name" )[ 0 ].firstChild.nodeValue;
            var suburbValue = response.getElementsByTagName( "listing" )[ i ].getElementsByTagName( "suburb" )[ 0 ].firstChild.nodeValue;
            var stateValue = response.getElementsByTagName( "listing" )[ i ].getElementsByTagName( "state" )[ 0 ].firstChild.nodeValue;
            var primaryImageValue = response.getElementsByTagName( "listing" )[ i ].getElementsByTagName( "primary_image" )[ 0 ].hasChildNodes() ? response.getElementsByTagName( "listing" )[ i ].getElementsByTagName( "primary_image" )[ 0 ].firstChild.nodeValue : "";
            var descriptionValue = response.getElementsByTagName( "listing" )[ i ].getElementsByTagName( "description" )[ 0 ].hasChildNodes() ? response.getElementsByTagName( "listing" )[ i ].getElementsByTagName( "description" )[ 0 ].firstChild.nodeValue : "";
            
            var listing = listingTemplate.cloneNode( true );
            searchResultsContainer.appendChild( listing );
            listing.listing = idValue;            
            listing.getElementsByTagName( "img" )[ 0 ].src = "/resources/uploads/s_images/" + primaryImageValue;
            listing.getElementsByTagName( "h2" )[ 0 ].appendChild( document.createTextNode( streetNoValue + " " + streetNameValue + " " + suburbValue + " " + stateValue ) );
            listing.getElementsByTagName( "td" )[ 1 ].appendChild( document.createTextNode( categoryValue ) );
            listing.getElementsByTagName( "td" )[ 3 ].appendChild( document.createTextNode( bedroomsValue ) );
            listing.getElementsByTagName( "td" )[ 5 ].appendChild( document.createTextNode( bathroomsValue ) );
            listing.getElementsByTagName( "div" )[ 0 ].appendChild( document.createTextNode( priceValue ) );
            listing.getElementsByTagName( "div" )[ 1 ].appendChild( document.createTextNode( descriptionValue ) );
            listing.id = "";
        }
    } );
}
function clear_()
{
    var category = document.getElementById( "category" );
    var state = document.getElementById( "state" );
    var bedrooms = document.getElementById( "bedrooms" );
    var priceRangeMinimum = document.getElementById( "price_range_minimum" );
    var priceRangeMaximum = document.getElementById( "price_range_maximum" );
    var sortBy = document.getElementById( "sort_by" );
    var page = document.getElementById( "page" );
    var searchResultsContainer = document.getElementById( "search_results_container" );
    var pageControls = document.getElementById( "page_controls" );
    var devType = document.getElementById( "dev_type" );
    var currentPast = document.getElementById( "current_past" );

    category.value = "";
    state.value = "";
    bedrooms.value = "";
    priceRangeMinimum.value = "";
    priceRangeMaximum.value = "";
    sortBy.value = "";
    devType.value = "0";
    currentPast.value = "Current";
    while( page.hasChildNodes() ) page.removeChild( page.firstChild );
    while( searchResultsContainer.getElementsByTagName( "div" ).length > 0 ) searchResultsContainer.removeChild( searchResultsContainer.firstChild );
    pageControls.style.display = "none";
}
function listingSelect( listing )
{
    location.href = "/Inspection?Listing=" + listing.listing;
}