var g_callback_array = new Array(); function MakeNewAJAXCall(in_url, in_simple_callback, in_method, in_complex_callback, in_param, in_param2, in_timeout_callback, in_timeout_delay ){ if(!in_method){ in_method = "GET"; } if(!in_timeout_delay){ in_timeout_delay = 90; } var callback_index = 1; while(g_callback_array[callback_index]!=undefined){callback_index++}; g_callback_array[callback_index] = new Array(); g_callback_array[callback_index]['request_callback'] = in_simple_callback; g_callback_array[callback_index]['request_method'] = in_method; g_callback_array[callback_index]['request_complex_callback'] = in_complex_callback; g_callback_array[callback_index]['request_param'] = in_param; g_callback_array[callback_index]['request_param2'] = in_param2; g_callback_array[callback_index]['timeoutcallback'] = in_timeout_callback; var funcbody = 'var index='+callback_index+';'; funcbody += 'var stage=g_callback_array[index]["request_object"].readyState;'; funcbody += 'var resp="";'; funcbody += 'if((navigator.appName!="Microsoft Internet Explorer") || (stage==4)){resp=g_callback_array[index]["request_object"].responseText};'; funcbody += 'if(g_callback_array[index]["request_complex_callback"]){g_callback_array[index]["request_complex_callback"](stage, resp, g_callback_array[index]["request_param"], g_callback_array[index]["request_param2"], index)};'; funcbody += 'if((stage==4) && g_callback_array[index]["request_callback"]){g_callback_array[index]["request_callback"](resp, g_callback_array[index]["request_param"], g_callback_array[index]["request_param2"])};'; funcbody += 'if(stage==4){'; funcbody += 'if(g_callback_array[index]["timeout_t"]){clearTimeout(g_callback_array[index]["timeout_t"])};'; funcbody += 'g_callback_array[index]["request_object"]=null;'; funcbody += 'g_callback_array[index]["request_callback"]=null;'; funcbody += 'g_callback_array[index]["request_method"]=null;'; funcbody += 'g_callback_array[index]["request_complex_callback"]=null;'; funcbody += 'g_callback_array[index]["request_param"]=null;'; funcbody += 'g_callback_array[index]["callback"]=null;'; funcbody += 'g_callback_array[index]["timeoutcallback"]=null;'; funcbody += 'g_callback_array[index]=null;'; funcbody += "}"; var funcbodytimeout = 'if(g_callback_array['+callback_index+']["request_object"]){g_callback_array['+callback_index+']["request_object"].onreadystatechange=null;g_callback_array['+callback_index+']["request_object"].abort()};'; funcbodytimeout += 'if(g_callback_array['+callback_index+']["timeoutcallback"]){g_callback_array['+callback_index+']["timeoutcallback"](g_callback_array['+callback_index+']["request_param"], g_callback_array['+callback_index+']["request_param2"],'+callback_index+')};'; funcbodytimeout += 'g_callback_array['+callback_index+']["request_object"]=null;'; funcbodytimeout += 'g_callback_array['+callback_index+']["request_callback"]=null;'; funcbodytimeout += 'g_callback_array['+callback_index+']["request_method"]=null;'; funcbodytimeout += 'g_callback_array['+callback_index+']["request_complex_callback"]=null;'; funcbodytimeout += 'g_callback_array['+callback_index+']["request_param"]=null;'; funcbodytimeout += 'g_callback_array['+callback_index+']["callback"]=null;'; funcbodytimeout += 'g_callback_array['+callback_index+']["timeoutcallback"]=null;'; funcbodytimeout += 'g_callback_array['+callback_index+']=null;'; g_callback_array[callback_index]['callback'] = new Function (funcbody); g_callback_array[callback_index]['timeout_t'] = setTimeout(new Function (funcbodytimeout),(in_timeout_delay * 1000)); var ret = null; if(CallXMLHTTPObject ( in_url, in_method, g_callback_array[callback_index]['callback'], callback_index )){ ret = callback_index; } return ret;};function CallXMLHTTPObject ( in_url, in_method, in_callback, in_index ) { try { var sVars = null; if ( in_method == "POST" ) { var rmatch = /^([^\?]*)\?(.*)$/.exec ( in_url ); in_url = rmatch[1]; sVars = unescape ( rmatch[2] ); } g_callback_array[in_index]['request_object'] = MakeNewRequestObject(); g_callback_array[in_index]['request_object'].open(in_method, in_url, true); if ( in_method == "POST" ) { g_callback_array[in_index]['request_object'].setRequestHeader("Method", "POST "+in_url+" HTTP/1.1"); g_callback_array[in_index]['request_object'].setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); } g_callback_array[in_index]['request_object'].onreadystatechange = in_callback; g_callback_array[in_index]['request_object'].send(sVars); return true; } catch ( z ) { } return false;};function MakeNewRequestObject() { var ret; if ( !ret && (typeof XMLHttpRequest != 'undefined') ) { ret = new XMLHttpRequest(); } if (window.XMLHttpRequest) { ret = new XMLHttpRequest(); } else if (window.ActiveXObject) { if (dm_xmlhttprequest_type) { ret = new ActiveXObject(dm_xmlhttprequest_type); } else { var versions = ["Msxml2.XMLHTTP.7.0", "Msxml2.XMLHTTP.6.0", "Msxml2.XMLHTTP.5.0", "Msxml2.XMLHTTP.4.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP"]; for (var i = 0; i < versions.length ; i++) { try { ret = new ActiveXObject(versions[i]); if (ret) { dm_xmlhttprequest_type = versions[i]; break; } } catch (objException) { }; }; } } return ret;};if (typeof SupportsAjax == 'undefined'){ function SupportsAjax ( ) { var test_obj = MakeNewRequestObject(); if ( test_obj ) { test_obj = null; return true; } test_obj = null; return false; };}if ( typeof SimpleAJAXCall == 'undefined' ){ function SimpleAJAXCall ( in_uri, in_callback, in_method, in_param ) { if ( (typeof in_method == 'undefined') || ((in_method != 'GET')&&(in_method != 'POST')) ) { in_method = 'GET'; } in_method = in_method.toUpperCase(); if ( SupportsAjax() && (typeof in_uri != 'undefined') && in_uri && (typeof in_callback == 'function') ) { return MakeNewAJAXCall ( in_uri, in_callback, in_method, null, in_param ); } else { return false; } }}var g_geocoder_browser = null;function st_trim ( in_string ) { if ( typeof(in_string) == 'string' ) { return in_string.replace(/^\s+|\s+$/g,""); } else { return ''; } };function c_geocoder_browser ( in_geocoder_browser_div, in_lat, in_lng, in_directory_root ) { if ( g_geocoder_browser ) g_geocoder_browser = null; g_geocoder_browser = this; if ( in_geocoder_browser_div && GBrowserIsCompatible() ) { if ( !in_lat ) in_lat = 40.77432623809074; if ( !in_lng ) in_lng = -73.9708399772644; if ( in_directory_root ) g_geocoder_browser.directory_root = in_directory_root; g_geocoder_browser.point = new GLatLng ( in_lat, in_lng ); g_geocoder_browser.geocoder = new GClientGeocoder; g_geocoder_browser.root_div = document.getElementById ( in_geocoder_browser_div ); if ( g_geocoder_browser.root_div ) { g_geocoder_browser.root_div.innerHTML = '<div id="goo_map_workplace_container" class="goo_map_workplace_container_div"> <noscript><h1>This Requires JavaScript To Work.</h1></noscript> <div id="goo_map_workplace" class="map_work_div"> <div id="map" class="map_square"></div> <form id="interactive_address" class="address_form" action="#" onsubmit="g_geocoder_browser.LookupAddress();return false" method="get"> <div class="form_container_div"> <div id="main_link_enclosing_div" class="centered separator_div"> <div id="main_link_div" class="main_link_div_class"> <div id="html_display" class="html_display_div"></div> <div class="clear_all"></div> </div> </div> <div id="desc_container" class="desc_container"> <div id="main_desc_div" class="separator_div"> <label id="desc_label" for="description_text">Description:</label> <input type="text" title="Enter a basic textual description here." id="description_text" class="address_input description_text" onkeyup="g_geocoder_browser.DescChanged()" onchange="g_geocoder_browser.DescChanged()" onpaste="g_geocoder_browser.DescChanged()" /> </div> <div class="clear_all"></div> </div> <div id="long_lat_container" class="long_lat_div"> <div class="separator_div"> <label id="long_text_label" for="long_text">Longitude: </label><input type="text" id="long_text" value="" onchange="g_geocoder_browser.LongLatChanged()" /> </div> <div class="separator_div"> <label id="lat_text_label" for="lat_text">Latitude: </label><input type="text" id="lat_text" value="" onchange="g_geocoder_browser.LongLatChanged()" /> </div> <div class="clear_all"></div> </div> <div id="main_addr_div" class="main_addr_div"> <label id="addr_label" for="addr">Enter Address:</label> <input type="text" title="Enter the entire address in one line here." id="addr" class="address_input whole_address" onkeyup="g_geocoder_browser.DescChanged()" onchange="g_geocoder_browser.DescChanged()" onpaste="g_geocoder_browser.DescChanged()" /> <div id="goo_map_button_2_container" class="inline_button_right goo_map_button_2_div"> <input type="submit" title="Set the map location to the address that you entered." class="inline_button" id="goo_map_button_2" value="Lookup" /> </div> <div class="clear_all"></div> </div> <div id="rev_geocode_div" class="rev_geocode_div"> <input type="checkbox" onchange="g_geocoder_browser.RevCheckChanged(this)" id="rev_geocode_check_input" name="rev_geocode_check_input" /> <label for="rev_geocode_check_input">Use Reverse Geocode</label> <div class="clear_all"></div> </div> <div id="discrete_addr_div" class="outlined_div separator_div" style="display: none"> <div class="result_header">Lookup Results <input type="button" title="Copy the Address to the Text Entry and the Link." class="link_to_fill inline_button" id="copy_button" onclick="document.getElementById(\'addr\').value=document.getElementById(\'full_addr\').innerHTML;g_geocoder_browser.DescChanged()" value="Copy to Address" /> </div> <div id="address_result" class="address_result_container"> <div id="full_addr_label" class="discrete_label full_label">Full Address:</div> <div id="full_addr" class="discrete_value full_address"></div> <div id="addr_label" class="discrete_label street_label">Street Address:</div> <div id="street_addr" class="discrete_value street_address"></div> <div id="town_label" class="discrete_label town_label">Town:</div> <div id="town_addr" class="discrete_value town_address"></div> <div id="county_label" class="discrete_label county_label">County:</div> <div id="county_addr" class="discrete_value county_address"></div> <div id="state_label" class="discrete_label state_label">State:</div> <div id="state_addr" class="discrete_value state_address"></div> <div id="zip_label" class="discrete_label zip_label">Zip Code:</div> <div id="zip_addr" class="discrete_value zip_address"></div> <div id="country_label" class="discrete_label country_label">Country:</div> <div id="country_addr" class="discrete_value country_address"></div> <div class="clear_all"></div> </div> </div> <div id="button_div" class="goo_map_button_div"> <div id="goo_map_button_1_container" class="inline_button_left"> <input type="button" title="Re-center the map to the marker\'s location." class="inline_button" id="goo_map_button_1" onclick="g_geocoder_browser.FindMarker()" value="Find Marker" /> </div> <div id="goo_map_button_3_container" class="inline_button_right"> <input type="button" title="Download a Universal CSV-format file for GPS units." class="inline_centered inline_button" id="goo_map_button_3" onclick="g_geocoder_browser.GetGPSFile();return false" value="Get GPS File" /> </div> <div class="clear_all"></div> </div> </div> </form> <div id="attributions" class="attributions"> <dl class="attr_list_dl"> <dt>This tool uses resources and services from the following places:</dt> <dd> <ul class="attr_list_ul"> <li><a href="http://code.google.com/apis/maps/">Google Maps API</a></li> <li><a href="http://www.geonames.org/">GeoNames Project</a></li> <li><a href="http://andrewdavidson.com/articles/spinning-wait-icons/">Spinning Wait Icons</a></li> <li><a href="http://nicogoeminne.googlepages.com/">Nico Goeminne\'s Reverse Google GeoCode</a> (Click <a href="?alt">here</a> to use this reverse gecoder.)</li> <li><a href="http://cmarshall.com/MySoftware/ajax/Threads/">AJAX Threads</a></li> </ul> </dd> <dd>This code is also available as an open source SVN project <a href="http://sourceforge.net/projects/google-mapworks">here</a>.</dd> </dl> </div> </div> </div>'; g_geocoder_browser.buttons = new Array(document.getElementById('goo_map_button_1'),document.getElementById('goo_map_button_2')); g_geocoder_browser.SetButtonThrobber ( 2 ); g_geocoder_browser.map = new GMap2(document.getElementById("map"), {draggableCursor: "crosshair"}); if ( g_geocoder_browser.map ) { g_geocoder_browser.map.addControl(new GLargeMapControl()); g_geocoder_browser.map.addControl(new GScaleControl()); g_geocoder_browser.map.addControl(new GMapTypeControl()); g_geocoder_browser.map.setCenter(g_geocoder_browser.point, 12); g_geocoder_browser.marker = new GMarker(g_geocoder_browser.point, {draggable: true, title: "Drag to a New Location."}); GEvent.addListener(g_geocoder_browser.marker, "dragend", g_geocoder_browser.Dragend ); GEvent.addListener(g_geocoder_browser.marker, "dragstart", g_geocoder_browser.Dragstart ); GEvent.addListener(g_geocoder_browser.map, "click", g_geocoder_browser.MapClickCallback ); GEvent.addListener(g_geocoder_browser.map, "moveend", g_geocoder_browser.MapChangedCallback ); GEvent.addListener(g_geocoder_browser.map, "zoomend", g_geocoder_browser.MapChangedCallback ); GEvent.addListener(g_geocoder_browser.map, "maptypechanged", g_geocoder_browser.MapChangedCallback ); g_geocoder_browser.map.addOverlay(g_geocoder_browser.marker); if ( typeof ( GReverseGeocoder ) != 'undefined' ) { g_geocoder_browser.reversegeocoder = new GReverseGeocoder( g_geocoder_browser.map ); if ( g_geocoder_browser.reversegeocoder ) { GEvent.addListener(g_geocoder_browser.reversegeocoder, "load", g_geocoder_browser.ReverseGeocoderCallback ); GEvent.addListener(g_geocoder_browser.reversegeocoder, "error", g_geocoder_browser.ReverseGeocoderErrorCallback ); g_geocoder_browser.reversegeocoder.setExperimentalHouseNumber(true); } } g_geocoder_browser.Dragend (); } } }};c_geocoder_browser.prototype.directory_root = ''; c_geocoder_browser.prototype.root_div = null; c_geocoder_browser.prototype.point = null; c_geocoder_browser.prototype.map = null; c_geocoder_browser.prototype.marker = null; c_geocoder_browser.prototype.geocoder = null; c_geocoder_browser.prototype.reversegeocoder = null; c_geocoder_browser.prototype.buttons = null; c_geocoder_browser.prototype.addr = null; c_geocoder_browser.prototype.desc = null; c_geocoder_browser.prototype.in_failed = false; c_geocoder_browser.prototype.TimeoutHandler = function ( ) { g_geocoder_browser.FailedAddressLookup ( "Request Timed Out" );};c_geocoder_browser.prototype.SetButtonThrobber = function ( in_button, in_off ) { if ( !in_button || in_off ) { if ( in_button ) { if ( g_geocoder_browser.buttons[in_button-1].throbber ) { document.getElementById(g_geocoder_browser.buttons[in_button-1].id+'_container').removeChild(g_geocoder_browser.buttons[in_button-1].throbber); } document.getElementById(g_geocoder_browser.buttons[in_button-1].id+'_container').appendChild(g_geocoder_browser.buttons[in_button-1]); g_geocoder_browser.buttons[in_button-1].className = "inline_button"; g_geocoder_browser.buttons[in_button-1].throbber = null; } else { g_geocoder_browser.SetButtonThrobber ( 2, true ); } } else { if ( g_geocoder_browser.buttons[in_button-1].throbber ) { g_geocoder_browser.SetButtonThrobber ( in_button, true ); } else { g_geocoder_browser.buttons[in_button-1].throbber = new Image; g_geocoder_browser.buttons[in_button-1].throbber.src = 'images/wait30.gif'; document.getElementById(g_geocoder_browser.buttons[in_button-1].id+'_container').removeChild(g_geocoder_browser.buttons[in_button-1]); document.getElementById(g_geocoder_browser.buttons[in_button-1].id+'_container').appendChild(g_geocoder_browser.buttons[in_button-1].throbber); } }};c_geocoder_browser.prototype.AJAXCallback = function ( in_string, in_param ) { g_geocoder_browser.SetButtonThrobber(); if ( in_string ) { eval ( 'var geo='+in_string+';' ); if ( geo && geo.address ) { address = ''; address = st_trim ( geo.address.streetNumber+' '+geo.address.street ); if ( address ) address += ', '; address += geo.address.placename; if ( address ) address += ', '; address += (geo.address.adminCode1+(parseInt ( geo.address.postalcode ) ? ' '+geo.address.postalcode : '') ); if ( address ) address += ', '; address += geo.address.countryCode; g_geocoder_browser.desc = st_trim ( document.getElementById("description_text").value ); var desc = g_geocoder_browser.desc; if ( g_geocoder_browser.desc ) desc += ', '; if ( !g_geocoder_browser.addr ) g_geocoder_browser.addr = address; if ( !st_trim ( document.getElementById("addr").value ) ) document.getElementById("addr").value = address; g_geocoder_browser.SetAddr_Full ( address ); g_geocoder_browser.SetAddr_Street (st_trim ( geo.address.streetNumber+' '+geo.address.street )); g_geocoder_browser.SetAddr_Town (st_trim ( geo.address.placename )); g_geocoder_browser.SetAddr_County (st_trim ( geo.address.adminName2 )); g_geocoder_browser.SetAddr_State (st_trim ( geo.address.adminCode1 )); g_geocoder_browser.SetAddr_Zip ((parseInt ( geo.address.postalcode ) ? st_trim ( geo.address.postalcode ) : '')); g_geocoder_browser.SetAddr_Country (st_trim ( geo.address.countryCode )); g_geocoder_browser.BuildHTML ( g_geocoder_browser.BuildURI ( desc+g_geocoder_browser.addr ), desc+g_geocoder_browser.addr ); } else { g_geocoder_browser.FailedAddressLookup (); } } else { g_geocoder_browser.FailedAddressLookup (); }};c_geocoder_browser.prototype.ReverseGeocoderCallback = function ( in_placemark ) { if ( in_placemark && in_placemark.address && in_placemark.AddressDetails.Country.AdministrativeArea ) { address = ''; if ( in_placemark.address ) address = in_placemark.address; var state = ''; if ( in_placemark.AddressDetails.Country.AdministrativeArea.AdministrativeAreaName ) { state = in_placemark.AddressDetails.Country.AdministrativeArea.AdministrativeAreaName; } var county = ''; if ( in_placemark.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea && in_placemark.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.SubAdministrativeAreaName ) { county = in_placemark.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.SubAdministrativeAreaName; } var town = ''; if ( in_placemark.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea && in_placemark.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality && in_placemark.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.LocalityName ) { town = in_placemark.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.LocalityName; } var zip = ''; if ( in_placemark.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea && in_placemark.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality && in_placemark.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.PostalCode && in_placemark.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.PostalCode.PostalCodeNumber ) { zip = in_placemark.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.PostalCode.PostalCodeNumber; } var road = ''; if ( in_placemark.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea && in_placemark.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality && in_placemark.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.Thoroughfare && in_placemark.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.Thoroughfare.ThoroughfareName ) { road = in_placemark.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.Thoroughfare.ThoroughfareName; } var country = ''; if ( in_placemark.AddressDetails.Country && in_placemark.AddressDetails.Country.CountryNameCode ) { country = in_placemark.AddressDetails.Country.CountryNameCode; } if ( !g_geocoder_browser.addr ) { if ( in_placemark.address ) { g_geocoder_browser.addr = in_placemark.address; } else { if ( road ) { g_geocoder_browser.addr = road; } if ( town ) { if ( g_geocoder_browser.addr ) g_geocoder_browser.addr += ', '; g_geocoder_browser.addr += town; } if ( state || zip ) { if ( g_geocoder_browser.addr ) g_geocoder_browser.addr += ', '; g_geocoder_browser.addr += (state+( zip ? ' '+zip : '') ); } if ( country ) { if ( g_geocoder_browser.addr ) g_geocoder_browser.addr += ', '; g_geocoder_browser.addr += country; } } } g_geocoder_browser.desc = st_trim ( document.getElementById("description_text").value ); var desc = g_geocoder_browser.desc; if ( g_geocoder_browser.desc ) desc += ', '; if ( !g_geocoder_browser.addr ) g_geocoder_browser.addr = address; if ( !st_trim ( document.getElementById("addr").value ) ) document.getElementById("addr").value = address; g_geocoder_browser.SetAddr_Full (address); g_geocoder_browser.SetAddr_Street (road); g_geocoder_browser.SetAddr_Town (town); g_geocoder_browser.SetAddr_County (county); g_geocoder_browser.SetAddr_State (state); g_geocoder_browser.SetAddr_Zip (zip); g_geocoder_browser.SetAddr_Country (country); g_geocoder_browser.BuildHTML ( g_geocoder_browser.BuildURI ( desc+g_geocoder_browser.addr ), desc+g_geocoder_browser.addr ); } else { g_geocoder_browser.FailedAddressLookup (); }};c_geocoder_browser.prototype.ReverseGeocoderErrorCallback = function () { var err_code = g_geocoder_browser.reversegeocoder.getStatus().code; var err_req = g_geocoder_browser.reversegeocoder.getStatus().request; var err = "RGeocode Error Code: "+err_code; if ( !err_code || (err_code == 200) ) err = null; g_geocoder_browser.FailedAddressLookup ( err );};c_geocoder_browser.prototype.Dragstart = function ( ) { document.getElementById("html_display").innerHTML = 'Looking Up...'; g_geocoder_browser.SetButtonThrobber ( ); g_geocoder_browser.SetAddr_Full (); g_geocoder_browser.SetAddr_Street (); g_geocoder_browser.SetAddr_Town (); g_geocoder_browser.SetAddr_County (); g_geocoder_browser.SetAddr_State (); g_geocoder_browser.SetAddr_Zip (); g_geocoder_browser.SetAddr_Country (); g_geocoder_browser.SetButtonThrobber ( 2 );};c_geocoder_browser.prototype.DragCont = function ( ) { var ln = document.getElementById('long_text'); var la = document.getElementById('lat_text'); ln.value = g_geocoder_browser.point.lng(); la.value = g_geocoder_browser.point.lat();};c_geocoder_browser.prototype.Dragend = function ( ) { g_geocoder_browser.SetButtonThrobber ( ); g_geocoder_browser.point = g_geocoder_browser.marker.getLatLng(); g_geocoder_browser.in_failed = false; if ( g_geocoder_browser.UseRev() ) { if ( g_geocoder_browser.reversegeocoder ) { g_geocoder_browser.reversegeocoder.reverseGeocode ( new GLatLng ( g_geocoder_browser.point.lat(), g_geocoder_browser.point.lng() ) ); } else { g_geocoder_browser.CallAJAX ( g_geocoder_browser.point.lat(), g_geocoder_browser.point.lng(), g_geocoder_browser.AJAXCallback ); } } g_geocoder_browser.DragCont();};c_geocoder_browser.prototype.CallAJAX = function ( in_lat, in_lng, in_callback ) { g_geocoder_browser.SetButtonThrobber ( ); var r_geocode_uri = 'http://ws.geonames.org/findNearestAddressJSON?lat='+in_lat+'&lng='+in_lng; g_geocoder_browser.SetButtonThrobber ( 2 ); MakeNewAJAXCall (g_geocoder_browser.directory_root+'ajax_handler.php?r_geocode_uri='+escape( r_geocode_uri ), in_callback, 'GET', null, null, null, g_geocoder_browser.TimeoutHandler, 30 );};c_geocoder_browser.prototype.SetAddr_Full = function ( in_text ) { document.getElementById("full_addr").innerHTML = st_trim ( in_text );};c_geocoder_browser.prototype.SetAddr_Street = function ( in_text ) { document.getElementById("street_addr").innerHTML = st_trim ( in_text );};c_geocoder_browser.prototype.SetAddr_Town = function ( in_text ) { document.getElementById("town_addr").innerHTML = st_trim ( in_text );};c_geocoder_browser.prototype.SetAddr_County = function ( in_text ) { document.getElementById("county_addr").innerHTML = st_trim ( in_text );};c_geocoder_browser.prototype.SetAddr_State = function ( in_text ) { document.getElementById("state_addr").innerHTML = st_trim ( in_text );};c_geocoder_browser.prototype.SetAddr_Zip = function ( in_text ) { document.getElementById("zip_addr").innerHTML = st_trim ( in_text );};c_geocoder_browser.prototype.SetAddr_Country = function ( in_text ) { document.getElementById("country_addr").innerHTML = st_trim ( in_text );};c_geocoder_browser.prototype.FailedAddressLookup = function ( in_note ) { g_geocoder_browser.SetButtonThrobber ( ); if ( in_note && (typeof ( in_note ) != 'undefined') && st_trim ( in_note ) ){ in_note = ' ('+st_trim ( in_note )+')'} else { in_note = '' }; g_geocoder_browser.SetAddr_Full (); g_geocoder_browser.SetAddr_Street (); g_geocoder_browser.SetAddr_Town (); g_geocoder_browser.SetAddr_County (); g_geocoder_browser.SetAddr_State (); g_geocoder_browser.SetAddr_Zip (); g_geocoder_browser.in_failed = true; document.getElementById("html_display").innerHTML = '<span class="error_return">Can\'t Find Address!'+in_note+'</span>';};c_geocoder_browser.prototype.LongLatChanged = function () { g_geocoder_browser.Dragstart(); var in_lng = document.getElementById('long_text').value; var in_lat = document.getElementById('lat_text').value; g_geocoder_browser.point = new GLatLng ( in_lat, in_lng ); g_geocoder_browser.map.panTo ( g_geocoder_browser.point ); g_geocoder_browser.marker.setPoint ( g_geocoder_browser.point ); g_geocoder_browser.CallAJAX ( g_geocoder_browser.point.lat(), g_geocoder_browser.point.lng(), g_geocoder_browser.AJAXCallback ); g_geocoder_browser.in_failed = false; g_geocoder_browser.Dragend();};c_geocoder_browser.prototype.MapClickCallback = function ( in_overlay, in_point ) { g_geocoder_browser.Dragstart(); g_geocoder_browser.marker.setLatLng (in_point ); g_geocoder_browser.Dragend();};c_geocoder_browser.prototype.MapChangedCallback = function ( ) { var desc = g_geocoder_browser.desc; if ( g_geocoder_browser.desc ) desc += ', '; g_geocoder_browser.BuildHTML ( g_geocoder_browser.BuildURI ( desc+g_geocoder_browser.addr ), desc+g_geocoder_browser.addr );};c_geocoder_browser.prototype.GeocoderCallback = function ( in_point ) { if ( in_point ) { g_geocoder_browser.point = in_point; g_geocoder_browser.map.panTo ( g_geocoder_browser.point ); g_geocoder_browser.marker.setPoint ( g_geocoder_browser.point ); g_geocoder_browser.DragCont(); g_geocoder_browser.CallAJAX ( g_geocoder_browser.point.lat(), g_geocoder_browser.point.lng(), g_geocoder_browser.AJAXCallback ); g_geocoder_browser.in_failed = false; } else { g_geocoder_browser.FailedAddressLookup (); }};c_geocoder_browser.prototype.LookupAddress = function () { if ( g_geocoder_browser.geocoder ) { g_geocoder_browser.Dragstart(); g_geocoder_browser.addr = document.getElementById("addr").value; g_geocoder_browser.geocoder.getLatLng ( g_geocoder_browser.addr, g_geocoder_browser.GeocoderCallback ); }};c_geocoder_browser.prototype.DescChanged = function () { g_geocoder_browser.desc = st_trim ( document.getElementById("description_text").value ); g_geocoder_browser.addr = document.getElementById("addr").value; g_geocoder_browser.MapChangedCallback();};c_geocoder_browser.prototype.BuildURI = function ( in_address ) { var z = g_geocoder_browser.map.getZoom(); var ll = g_geocoder_browser.map.getCenter(); var t = g_geocoder_browser.map.getCurrentMapType(); return 'http://maps.google.com/maps?q='+g_geocoder_browser.point.lat()+','+g_geocoder_browser.point.lng()+'+('+escape(in_address)+')&ll='+ll.lat()+','+ll.lng()+'&z='+z+'&t='+t.getUrlArg();};c_geocoder_browser.prototype.BuildHTML = function ( in_uri, in_text ) { if ( !g_geocoder_browser.in_failed ) { var html_disp = '<a title="Go to this location in Google Maps." href="'+in_uri.replace('&', '&amp;')+'">'+in_text+'</a>'; document.getElementById("html_display").innerHTML = html_disp; }};c_geocoder_browser.prototype.FindMarker = function ( ) { g_geocoder_browser.map.panTo ( g_geocoder_browser.point ); g_geocoder_browser.MapChangedCallback();};c_geocoder_browser.prototype.GetGPSFile = function () { var desc = g_geocoder_browser.desc; if ( g_geocoder_browser.desc ) desc += ', '; var gps_uri = g_geocoder_browser.directory_root+'downloadgps.php?lat='+g_geocoder_browser.point.lat()+'&lng='+g_geocoder_browser.point.lng()+'&name='+escape(desc)+'&desc='+escape(g_geocoder_browser.addr); window.location.href = gps_uri;};c_geocoder_browser.prototype.UseRev = function() { var rev_box = document.getElementById('rev_geocode_check_input'); return rev_box.checked;};c_geocoder_browser.prototype.RevCheckChanged = function(in_check) { var rev_box = document.getElementById('discrete_addr_div'); if ( in_check.checked ) { rev_box.style.display = 'block'; } else { rev_box.style.display = 'none'; }};