function distributorsLoad()
{
    var map = document.getElementById( "map" );
    
    map.map = new GMap2( map, { size : new GSize( 450, 230 ) } );
    map.map.setCenter( new GLatLng( -29.09457707751181, 145.78857421875 ), 13 );
    map.map.setZoom( 3 );
    map.map.setMapType( G_SATELLITE_TYPE );
    ajaxSend( "/ajax.aspx", "<request><command>Distributor Addresses</command></request>", function( response )
    {
        var loop = function( i )
        {
            if( i < response.getElementsByTagName( "address" ).length )
            {
                var addressValue = response.getElementsByTagName( "address" )[ i ].hasChildNodes() ? response.getElementsByTagName( "address" )[ i ].firstChild.nodeValue : "";
                
                new GClientGeocoder().getLatLng( addressValue, function( point )
                {                    
                    if( point != null )
                    {
                        map.map.addOverlay( new GMarker( point ) );
                        map.map.setMapType( G_SATELLITE_TYPE );
                    }
                    loop( i + 1 );
                } );
            }
        };
        loop( 0 );
    } );
}
function distributorOver( distributor )
{
    new Silk( distributor.getElementsByTagName( "div" )[ 0 ], "opacity", null, 1, null, 0.1, null );
}
function distributorOut( distributor )
{
    new Silk( distributor.getElementsByTagName( "div" )[ 0 ], "opacity", null, 0.4, null, 0.1, null );
}
function clear_()
{
    var results = document.getElementById( "results" );
    var suburb = document.getElementById( "suburb" );
    var state = document.getElementById( "state" );
    var postCode = document.getElementById( "post_code" );
    var country = document.getElementById( "country" );
    var map = document.getElementById( "map" );
    
    while( results.hasChildNodes() ) results.removeChild( results.firstChild );
    suburb.value = "";
    state.value = "";
    postCode.value = "";
    country.value = "";
}
function search()
{
    var results = document.getElementById( "results" );
    var suburb = document.getElementById( "suburb" );
    var state = document.getElementById( "state" );
    var postCode = document.getElementById( "post_code" );
    var country = document.getElementById( "country" );
    var map = document.getElementById( "map" );
    var distributorTemplate = document.getElementById( "distributor_template" );    

    while( results.hasChildNodes() ) results.removeChild( results.firstChild );
    loadingShow();
    ajaxSend( "/ajax.aspx", "<request><command>Distributor Search</command><suburb>" + xmlEncode( suburb.value ) + "</suburb><state>" + xmlEncode( state.value ) + "</state><post_code>" + xmlEncode( postCode.value ) + "</post_code><country>" + xmlEncode( country.value ) + "</country></request>", function( response )
    {
        while( results.hasChildNodes() ) results.removeChild( results.firstChild );
        loadingHide();
        for( var i = 0; i < response.getElementsByTagName( "distributor" ).length; i ++ )
        {
            var idValue = response.getElementsByTagName( "distributor" )[ i ].getAttribute( "id" );
            var nameValue = response.getElementsByTagName( "name" )[ i ].hasChildNodes() ? response.getElementsByTagName( "name" )[ i ].firstChild.nodeValue : "";
            var streetNoValue = response.getElementsByTagName( "street_no" )[ i ].hasChildNodes() ? response.getElementsByTagName( "street_no" )[ i ].firstChild.nodeValue : "";
            var streetNameValue = response.getElementsByTagName( "street_name" )[ i ].hasChildNodes() ? response.getElementsByTagName( "street_name" )[ i ].firstChild.nodeValue : "";
            var suburbValue = response.getElementsByTagName( "suburb" )[ i ].hasChildNodes() ? response.getElementsByTagName( "suburb" )[ i ].firstChild.nodeValue : "";
            var stateValue = response.getElementsByTagName( "state" )[ i ].hasChildNodes() ? response.getElementsByTagName( "state" )[ i ].firstChild.nodeValue : "";
            var countryValue = response.getElementsByTagName( "country" )[ i ].hasChildNodes() ? response.getElementsByTagName( "country" )[ i ].firstChild.nodeValue : "";
            var postCodeValue = response.getElementsByTagName( "post_code" )[ i ].hasChildNodes() ? response.getElementsByTagName( "post_code" )[ i ].firstChild.nodeValue : "";
            var phoneValue = response.getElementsByTagName( "phone" )[ i ].hasChildNodes() ? response.getElementsByTagName( "phone" )[ i ].firstChild.nodeValue : "";
            var faxValue = response.getElementsByTagName( "fax" )[ i ].hasChildNodes() ? response.getElementsByTagName( "fax" )[ i ].firstChild.nodeValue : "";
        
            var distributor = distributorTemplate.cloneNode( true );            
            results.appendChild( distributor );            
            distributor.getElementsByTagName( "td" )[ 1 ].appendChild( document.createTextNode( nameValue ) );
            distributor.getElementsByTagName( "td" )[ 3 ].appendChild( document.createTextNode( streetNoValue + " " + streetNameValue + " " + suburbValue + " " + stateValue + " " + countryValue + " " + postCodeValue ) );
            distributor.getElementsByTagName( "td" )[ 5 ].appendChild( document.createTextNode( phoneValue ) );
            distributor.getElementsByTagName( "td" )[ 7 ].appendChild( document.createTextNode( faxValue ) );
            distributor.getElementsByTagName( "tr" )[ 0 ].style.display = nameValue == "" ? "none" : ( document.all ? "block" : "table-row" );
            distributor.getElementsByTagName( "tr" )[ 1 ].style.display = streetNoValue + streetNameValue + suburbValue + stateValue + countryValue + postCodeValue == "" ? "none" : ( document.all ? "block" : "table-row" );
            distributor.getElementsByTagName( "tr" )[ 2 ].style.display = phoneValue == "" ? "none" : ( document.all ? "block" : "table-row" );
            distributor.getElementsByTagName( "tr" )[ 3 ].style.display = faxValue == "" ? "none" : ( document.all ? "block" : "table-row" );
            distributor.distributor = idValue;
            distributor.id = "";
        }
    } );
}