<!--// ecoAmerica.FindNature.js
//

var globallist = new Array();

Type.createNamespace('ecoAmerica.FindNature');

////////////////////////////////////////////////////////////////////////////////
// GoogleMapping

GoogleMapping = function GoogleMapping() {
    /// <field name="_userAddress" type="String" static="true">
    /// </field>
    /// <field name="_searches" type="Array" elementType="String" static="true">
    /// </field>
    /// <field name="_contentDivName" type="String" static="true">
    /// </field>
    /// <field name="_resultsDivName" type="String" static="true">
    /// </field>
    /// <field name="_fakeGoogleSearchBox" type="String" static="true">
    /// </field>
    /// <field name="_mapContainerHeight" type="String" static="true">
    /// </field>
    /// <field name="_mapContainerWidth" type="String" static="true">
    /// </field>
    /// <field name="_controlContainerWidth" type="String" static="true">
    /// </field>
    /// <field name="_zoomLevel" type="Number" integer="true" static="true">
    /// </field>
    /// <field name="_kMLFiles" type="Array" elementType="String" static="true">
    /// </field>
    /// <field name="_gmapResults" type="Array" elementType="Object" elementDomElement="true" static="true">
    /// </field>
    /// <field name="map" type="Object" domElement="true" static="true">
    /// </field>
    /// <field name="searcher" type="Object" domElement="true" static="true">
    /// </field>
    /// <field name="geoXml" type="Object" domElement="true" static="true">
    /// </field>
    /// <field name="searchControl" type="Object" domElement="true" static="true">
    /// </field>
    /// <field name="controlContainer" type="Object" domElement="true" static="true">
    /// </field>
    /// <field name="mapContainer" type="Object" domElement="true" static="true">
    /// </field>
    /// <field name="contentDiv" type="Object" domElement="true" static="true">
    /// </field>
}
GoogleMapping.get_userAddress = function GoogleMapping$get_userAddress() {
    /// <value type="String"></value>
    return GoogleMapping._userAddress;
}
GoogleMapping.set_userAddress = function GoogleMapping$set_userAddress(value) {
    /// <value type="String"></value>
    GoogleMapping._userAddress = value;
    return value;
}
GoogleMapping.get_searches = function GoogleMapping$get_searches() {
    /// <value type="Array" elementType="String"></value>
    return GoogleMapping._searches;
}
GoogleMapping.set_kmlEntries = function GoogleMapping$set_kmlEntries(value) {
    /// <value type="Array"></value>
    GoogleMapping._kmlEntries = value;
    return value;
}
GoogleMapping.get_kmlEntries = function GoogleMapping$get_kmlEntries() {
    /// <value type="Array" elementType="String"></value>
    return GoogleMapping._kmlEntries;
}
GoogleMapping.set_searches = function GoogleMapping$set_searches(value) {
    /// <value type="Array" elementType="String"></value>
    GoogleMapping._searches = value;
    return value;
}
GoogleMapping.get_contentDivName = function GoogleMapping$get_contentDivName() {
    /// <value type="String"></value>
    return GoogleMapping._contentDivName;
}
GoogleMapping.set_contentDivName = function GoogleMapping$set_contentDivName(value) {
    /// <value type="String"></value>
    GoogleMapping._contentDivName = value;
    return value;
}
GoogleMapping.get_resultsDivName = function GoogleMapping$get_resultsDivName() {
    /// <value type="String"></value>
    return GoogleMapping._resultsDivName;
}
GoogleMapping.set_resultsDivName = function GoogleMapping$set_resultsDivName(value) {
    /// <value type="String"></value>
    GoogleMapping._resultsDivName = value;
    return value;
}
GoogleMapping.get_fakeGoogleSearchBox = function GoogleMapping$get_fakeGoogleSearchBox() {
    /// <value type="String"></value>
    return GoogleMapping._fakeGoogleSearchBox;
}
GoogleMapping.set_fakeGoogleSearchBox = function GoogleMapping$set_fakeGoogleSearchBox(value) {
    /// <value type="String"></value>
    GoogleMapping._fakeGoogleSearchBox = value;
    return value;
}
GoogleMapping.get_mapContainerHeight = function GoogleMapping$get_mapContainerHeight() {
    /// <value type="String"></value>
    return GoogleMapping._mapContainerHeight;
}
GoogleMapping.set_mapContainerHeight = function GoogleMapping$set_mapContainerHeight(value) {
    /// <value type="String"></value>
    GoogleMapping._mapContainerHeight = value;
    return value;
}
GoogleMapping.get_mapContainerWidth = function GoogleMapping$get_mapContainerWidth() {
    /// <value type="String"></value>
    return GoogleMapping._mapContainerWidth;
}
GoogleMapping.set_mapContainerWidth = function GoogleMapping$set_mapContainerWidth(value) {
    /// <value type="String"></value>
    GoogleMapping._mapContainerWidth = value;
    return value;
}
GoogleMapping.get_controlContainerWidth = function GoogleMapping$get_controlContainerWidth() {
    /// <value type="String"></value>
    return GoogleMapping._controlContainerWidth;
}
GoogleMapping.set_controlContainerWidth = function GoogleMapping$set_controlContainerWidth(value) {
    /// <value type="String"></value>
    GoogleMapping._controlContainerWidth = value;
    return value;
}
GoogleMapping.get_zoomLevel = function GoogleMapping$get_zoomLevel() {
    /// <value type="Number" integer="true"></value>
    return GoogleMapping._zoomLevel;
}
GoogleMapping.set_zoomLevel = function GoogleMapping$set_zoomLevel(value) {
    /// <value type="Number" integer="true"></value>
    GoogleMapping._zoomLevel = value;
    return value;
}
GoogleMapping.get_kmlFiles = function GoogleMapping$get_kmlFiles() {
    /// <value type="Array" elementType="String"></value>
    return GoogleMapping._kMLFiles;
}
GoogleMapping.set_kmlFiles = function GoogleMapping$set_kmlFiles(value) {
    /// <value type="Array" elementType="String"></value>
    GoogleMapping._kMLFiles = value;
    return value;
}
GoogleMapping.get_gmapResults = function GoogleMapping$get_gmapResults() {
    /// <value type="Array" elementType="Object" elementDomElement="true"></value>
    return GoogleMapping._gmapResults;
}
GoogleMapping.set_gmapResults = function GoogleMapping$set_gmapResults(value) {
    /// <value type="Array" elementType="Object" elementDomElement="true"></value>
    GoogleMapping._gmapResults = value;
    return value;
}
GoogleMapping.styleInfoWindowContent = function GoogleMapping$styleInfoWindowContent(content, url, i) {
    /// <summary>
    /// Method which styles the results overlaid on the google map
    /// </summary>
    /// <param name="content" type="String">
    /// html content
    /// </param>
    /// <param name="url" type="String">
    /// result url
    /// </param>
    /// <returns type="String"></returns>    
    var myContent = new StringBuilder();
    var direction = getElementsByClass('gs-directions', content, 'a');
    for (var k = 0; k < direction.length; k++) {
        direction[k].setAttribute('href', 'javascript:closerLook(' + i + ', \'directions\')');
        direction[k].removeAttribute('target');
    }
    var title = getElementsByClass('gs-title', content, 'a');
    for (var k = 0; k < title.length; k++) {
        title[k].setAttribute('href', 'javascript:closerLook(' + i + ', \'none\')');
        title[k].setAttribute('style', 'color: #f89828; text-decoration: none; font-family: Arial, Verdana; font-size: 12px;');
        title[k].removeAttribute('target');
    }
    var html = getElementsByClass('gs-directions-to-from', content, 'div');
    for (var k = 0; k < html.length; k++) {
        html[k].innerHTML = '';
    }
    var cliped = getElementsByClass('gs-watermark', content, 'div');
    for (var k = 0; k < cliped.length; k++) {
        cliped[k].innerHTML = '';
    }
    var phone = getElementsByClass('gs-phone', content, 'div');
    for (var k = 0; k < phone.length; k++) {
        phone[k].setAttribute('style', 'color: #808083; font-size: 12px;');
    }
    globallist.push(content.innerHTML);
    myContent.append(content.innerHTML);
    myContent.append('<div class=\'gs-invite\'><a href=\'invite-friends.aspx?location=' + escape(url) + '\' target=\'_blank\'>');
    myContent.append('<img src=\'SiteAssets/Assets_04092009/Images/invitefriendsinfo.gif\' /></a>');
    myContent.append('</div><div class=\'gs-close\'><a onclick=\'GoogleMapping.map.closeInfoWindow();\'>close');
    myContent.append('<img src=\'SiteAssets/Assets_04092009/Images/closeinfo.gif\' /></a></div>\'');
    myContent.append('<div id="directions"></div>');
    return myContent.toString();
}
GoogleMapping.initializeMap = function GoogleMapping$initializeMap() {
    /// <summary>
    /// Method fired after the user submits a map request
    /// </summary>
    GoogleMapping.setDivContainerContent();
    GoogleMapping.loadGoogleLibraries();
}
GoogleMapping.setDivContainerContent = function GoogleMapping$setDivContainerContent() {
    /// <summary>
    /// Method which sets up the mapping controls
    /// </summary>
    try {
        GoogleMapping.contentDiv = document.getElementById(GoogleMapping._contentDivName);
        GoogleMapping.contentDiv.innerHTML = '';
        GoogleMapping.mapContainer = document.createElement('div');
        GoogleMapping.mapContainer.id = 'mapContainer';
        GoogleMapping.mapContainer.style.height = GoogleMapping._mapContainerHeight;
        GoogleMapping.mapContainer.style.width = GoogleMapping._mapContainerWidth;
        GoogleMapping.controlContainer = document.createElement('div');
        GoogleMapping.controlContainer.id = 'controlContainer';
        GoogleMapping.controlContainer.style.width = GoogleMapping._controlContainerWidth;
        GoogleMapping.contentDiv.appendChild(GoogleMapping.mapContainer);
        GoogleMapping.contentDiv.appendChild(GoogleMapping.controlContainer);
    }
    catch (err) {
        //alert('In setDivContainerContent ' + err.message);
    }
}
GoogleMapping.loadGoogleLibraries = function GoogleMapping$loadGoogleLibraries() {
    if (!isNullOrUndefined(google)) {
        google.load('maps', '2.x', { callback: this.onMapLoad });        
    }
    else {
        //alert('google is null');
    }
}
GoogleMapping.onMapLoad = function GoogleMapping$onMapLoad() {
    /// <summary>
    /// Method fired upon map libraries load
    /// </summary>
    google.load('search', '1', { callback: GoogleMapping.onSearchLoad });
    GoogleMapping.markersArray = new Array();
    GoogleMapping.hostedData = new Array();
    GoogleMapping.hostedDataHtml = new Array();
    GoogleMapping.hostedDataPoints = new Array();
    GoogleMapping.addedHosted = false;
}
GoogleMapping.onSearchLoad = function GoogleMapping$onSearchLoad() {
    /// <summary>
    /// Method fired upon search libraries load
    /// </summary>
    try {
        var mapContainers = document.getElementById('mapContainer');
        GoogleMapping.map = new google.maps.Map2(mapContainers);
        GoogleMapping.map.addControl(new google.maps.SmallMapControl());
        GoogleMapping.map.addControl(new google.maps.MapTypeControl());
        GoogleMapping.centerOnUserAddress();
        GEvent.addListener(GoogleMapping.map, 'infowindowbeforeclose', GoogleMapping.exitInfoWindowBeforeClose);
    }
    catch (err) {
        //alert('In onSearchLoad ' + err.message);
    }
}
GoogleMapping.exitInfoWindowBeforeClose = function GoogleMapping$exitInfoWindowBeforeClose() {
    try {        
        var clearDirections = document.getElementById('directions');
        if (clearDirections != 'undefined' && clearDirections != null) {
            clearDirections.innerHTML = '';            
        }
    }
    catch (err) {
        //alert("In Info Window Before Close " + err.message);
    }
}
GoogleMapping.centerOnUserAddress = function GoogleMapping$centerOnUserAddress() {
    /// <summary>
    /// Method to center the map on the user address
    /// </summary>
    var geocoder = new GClientGeocoder();
    if (!isUndefined(geocoder)) {
        geocoder.getLatLng(GoogleMapping._userAddress, GoogleMapping.onSetPoint);
    }
}
GoogleMapping.onSetPoint = function GoogleMapping$onSetPoint(point) {
    /// <summary>
    /// Method which is fired after google does the lat lng geocode of the user address
    /// </summary>
    /// <param name="point" type="Object">
    /// GLatLng
    /// </param>
    try {
        var pointT = point;
        if (isNullOrUndefined(point)) {
            alert(GoogleMapping.get_userAddress() + 'not found');
        }
        else {
            GoogleMapping.map.setCenter(pointT, GoogleMapping._zoomLevel);
            var markerIcon = new GIcon(G_DEFAULT_ICON);
            markerIcon.image = "http://maps.google.com/mapfiles/arrow.png";
            markerIcon.shadow = "http://www.google.com/intl/en_us/mapfiles/arrowshadow.png";
            markerIcon.iconSize = new GSize(39, 34);
            var markerOptions = { icon: markerIcon };
            var marker = new GMarker(pointT, markerOptions);
            GoogleMapping.map.addOverlay(marker);
            marker.openInfoWindowHtml(GoogleMapping._userAddress);
            GoogleMapping.addSearchControl();
        }
    }
    catch (err) {
        //alert('In onSetPoint ' + err.message);
    }
}
GoogleMapping.addSearchControl = function GoogleMapping$addSearchControl() {
    /// <summary>
    /// Method which adds the local search control to the canvas
    /// </summary>   
    GoogleMapping.infoWindowArray = new Array();
    GoogleMapping.gPoints = new Array();
    GoogleMapping.searchMarkers = new Array();    
    GoogleMapping.cluster = new ClusterMarker(GoogleMapping.map, { clusterMarkerTitle: 'Click to see info about %count locations', clusterMarkerClick: GoogleMapping.myClusterMarkerClick }); //Object of Cluster
    GoogleMapping.searchControl = new google.search.SearchControl();
    GoogleMapping.searcher = new google.search.LocalSearch();
    GoogleMapping.searcher.setRestriction(google.search.Search.RESTRICT_TYPE, google.search.LocalSearch.TYPE_BLENDED_RESULT);
    GoogleMapping.searcher.setAddressLookupMode(google.search.LocalSearch.ADDRESS_LOOKUP_DISABLED);
    var resultCanvas = document.getElementById(GoogleMapping._resultsDivName);
    var options = new google.search.SearcherOptions();
    options.setExpandMode(google.search.SearchControl.EXPAND_MODE_OPEN);
    //options.setRoot(resultCanvas);
    GoogleMapping.searcher.setCenterPoint(GoogleMapping.map);
    GoogleMapping.searchControl.addSearcher(GoogleMapping.searcher, options);
    GoogleMapping.searchControl.setSearchCompleteCallback(GoogleMapping.searcher, GoogleMapping.onSearchComplete);
    var drawOptions = new google.search.DrawOptions();
    var searchBox = document.getElementById(GoogleMapping._fakeGoogleSearchBox);
    drawOptions.setInput(searchBox);
    drawOptions.setDrawMode('google.search.SearchControl.DRAW_MODE_TABBED');
    GoogleMapping.searchControl.draw("aaa", drawOptions);
    GoogleMapping.searchControl.setResultSetSize('google.search.Search.LARGE_RESULTSET');
    for (var i = 0; i < GoogleMapping._searches.length; i++) {
        GoogleMapping.searchControl.execute(GoogleMapping._searches[i]);
    }
}
GoogleMapping.onSearchComplete = function GoogleMapping$onSearchComplete(searchControl, searcher) {
    /// <summary>
    /// Method fired after google local map search is performed
    /// </summary>
    /// <param name="searchControl" type="Object">
    /// local search control
    /// </param>
    /// <param name="searcher" type="Object">
    /// the google searcher
    /// </param>
    try {

        GoogleMapping.loadSearchResults(searchControl, searcher);
        GoogleMapping.loadKmlFiles();
        GoogleMapping.loadKmlEntries();
    }
    catch (err) {
        //alert('In onSearchComplete ' + err.message);
    }
}
GoogleMapping.loadSearchResults = function GoogleMapping$loadSearchResults(searchControl, searcher) {
    /// <summary>
    /// Method to plot local search results
    /// </summary>
    /// <param name="searchControl" type="Object">
    /// </param>
    /// <param name="searcher" type="Object">
    /// </param>
    var results = searcher.results;
    GoogleMapping.searchCount = 0;
    for (var i = 0; i < results.length; i++) {
        var result = results[i];
        var markerLatLng = new google.maps.LatLng(parseFloat(result.lat), parseFloat(result.lng));
        var title = result.title;
        title = title.replace(/<\/?[^>]+(>|$)/g, '');
        var marker = new google.maps.Marker(markerLatLng, { title: title });
        var myContent = GoogleMapping.styleInfoWindowContent(result.html, result.url, GoogleMapping.searchMarkers.length + i);        
        result.html.innerHTML = myContent;
        var GInfoWindowOptions = { maxWidth: 200 };
        marker.bindInfoWindow(result.html.cloneNode(true), GInfoWindowOptions);
        result.marker = marker;
        GoogleMapping.searchMarkers[GoogleMapping.searchMarkers.length + i] = marker;
        GoogleMapping.infoWindowArray[GoogleMapping.infoWindowArray.length + i] = result.html;
        GoogleMapping.gPoints[GoogleMapping.gPoints.length + i] = markerLatLng;
        GoogleMapping.markersArray.push(marker);
        // Create html - for first element (for testing put lng)
    }
    localResultSideBar(globallist, 1);    
}
GoogleMapping.loadKmlFiles = function GoogleMapping$loadKmlFiles() {
    /// <summary>
    /// Method to overlay kml files
    /// </summary>
    if (GoogleMapping._kMLFiles) {
        var $enum1 = GoogleMapping._kMLFiles.getEnumerator();
        while ($enum1.moveNext()) {
            var file = $enum1.get_current();
            GoogleMapping.geoXml = new GGeoXml(file);
            GoogleMapping.map.addOverlay(GoogleMapping.geoXml);
        }
    }
    else {
        //alert('No Kml Files');
    }
}


//This method is fired when the Cluster marker is Clicked
GoogleMapping.myClusterMarkerClick = function GoogleMapping$myClusterMarkerClick(args) {
    try {
        GoogleMapping.cluster.defaultClickAction = function() {
            GoogleMapping.map.setCenter(args.clusterMarker.getLatLng(), GoogleMapping.map.getBoundsZoomLevel(args.clusterMarker.clusterGroupBounds));
            delete GoogleMapping.map.closeInfoWindow();
        }
        var html = '<div style="width:250px"><table cellpadding=0 cellspacing=0 width=100%><tr><td align=left width=80%><font class="whitecontainertitle"> <h4>' + args.clusteredMarkers.length + ' Locations:</h4></td></font>';
        html += '<td align=right><a onclick="GoogleMapping.map.closeInfoWindow();"><font style="color: #B9D300; cursor: pointer; width:80px; text-decoration:none;">close</font></a>';
        html += '</td><td align=right><a class="hostedClose" onclick="GoogleMapping.map.closeInfoWindow();"><img src="SiteAssets/Assets_04092009/Images/closeinfo.gif"/></a></td></tr></table>';
        html += '<div style="height:60px; overflow:auto; width:250px">';
        for (var i = 0; i < args.clusteredMarkers.length; i++) {
            html += '<a style="color: #f89828; font-family: Arial, Verdana; font-size: 12px; text-decoration:none;" href="javascript:GoogleMapping.cluster.triggerClick(' + args.clusteredMarkers[i].index + ')"><font>' + args.clusteredMarkers[i].getTitle() + '</a><br/>';
        }
        html += '</div><br /><a style="color: #B9D300;font-size: 12px;" href="javascript:void(0)" onclick="GoogleMapping.cluster.defaultClickAction()">Click to Zoom</a> in to show these locations';
        GoogleMapping.map.openInfoWindowHtml(args.clusterMarker.getLatLng(), html);
    }
    catch (err) {
        //alert('Custom Cluster Marker Click' + err.message);
    }
}

GoogleMapping.loadKmlEntries = function GoogleMapping$loadKmlEntries() {
    if (json != 'undefined' || json != null) {
        for (var i = 0; i < json.length; i++) {
            var markerIcon = new GIcon(G_DEFAULT_ICON);
            markerIcon.image = json[i].IconUrl;
            markerIcon.shadow = "";
            markerIcon.iconSize = new GSize(30, 34);
            var markerLocation = new GLatLng(json[i].Latitude, json[i].Longitude);
            var marker = new GMarker(markerLocation, { icon: markerIcon, title: json[i].Name });
            var content = GoogleMapping.styleKmlInfoWindow(json[i], i);
            var infoWindow = document.createElement('div');
            infoWindow.innerHTML = content;
            marker.html = infoWindow;
            marker.bindInfoWindow(infoWindow);
            var hostedInfo = new Object();
            hostedInfo.title = json[i].Name;
            hostedInfo.type = json[i].Type;
            hostedInfo.address = json[i].Address;
            hostedInfo.html = infoWindow;
            if (GoogleMapping.addedHosted != true) {
                GoogleMapping.markersArray.push(marker);
                GoogleMapping.hostedData.push(marker);
                GoogleMapping.hostedDataHtml.push(hostedInfo);
                GoogleMapping.hostedDataPoints.push(markerLocation);
            }
        }
        GoogleMapping.addedHosted = true;
        if (json.length != 0) {
            hostedDataSidebar(1);
        }
        try {
            GoogleMapping.cluster.removeMarkers(); //Clear Clustered Markers
            GoogleMapping.cluster.addMarkers(GoogleMapping.markersArray); //Add the arrays of marker for Clustering
            GoogleMapping.cluster.refresh(true); //Refresh all the Clustered Markers
        }
        catch (err) {
           // alert("Error Clustering " + err.message);
        }
    }
}

GoogleMapping.styleKmlInfoWindow = function GoogleMapping$styleKmlInfoWindow(json,i) {
    try {
        var content = new StringBuilder();
        content.append('<div style="font-family: Arial,sans-serif; font-size: small;">');
        content.append('<div style="font-weight: bold; font-size: medium; margin-bottom: 0em; color:#9C9C9C">' + json.Name + '</div></div>');
        content.append('<table width=300 border=0><tr><td width=300 valign="top"><font color=#000000>' + json.Description + '</font><br/>');
        content.append('<a href="' + json.Url + '" target=blank>Read More</a><br/><br/>');
        content.append('<font color=#000000>' + json.Phone + '</font><br/>');
        content.append('<table align=left cellpadding=0 cellspacing=0><tr><td><a style="color: #B9D300; cursor: pointer; width:80px; text-decoration:none;" onclick="GoogleMapping.map.closeInfoWindow();">close</a>');
        content.append('</td><td><a class="hostedClose" onclick="GoogleMapping.map.closeInfoWindow();"><img src="SiteAssets/Assets_04092009/Images/closeinfo.gif"/></a></td></tr></table>');
        content.append('<table><tr><td colspan=2><div id="directions"></td></tr></table></div></td>');
        content.append('<td></td><td width=80 align=left valign=top><table width=100% border=0 cellpadding=0 cellspacing=2>');
        content.append('<tr><th align=left bgcolor=#99CC66>More Links</th></tr><tr><td><a href=""></a></td></tr>');
        content.append('<tr><td><a href="javascript:closerHosted(' + i + ', \'directions\')">Directions</a></td></tr>');
        content.append('<tr><td><a href="http://forecast.weather.gov/MapClick.php?textField1=' + json.Latitude + '&textField2=' + json.Longitude + '&e=1" target=blank>Local Weather</a></td></tr>');
        content.append('<tr><td><a href="http://www.naturerocks.org/invite-friends.aspx?location=' + json.Name + '">');
        content.append('<img src="http://www.naturerocks.org/SiteAssets/Assets_04092009/Images/invitefriendsinfo.gif" border=0></a></td></tr></table>');
        content.append('<p align=left><img src="' + json.LogoUrl + '" width=80/></p></td></tr></table>');
        return content.toString();
    }
    catch (err) {
       // alert('In styleKmlInfoWindow' + err.message);
    }
}

function getElementsByClass(searchClass, node, tag) {
    var classElements = new Array();
    if (node == null)
        node = document;
    if (tag == null)
        tag = '*';
    var els = node.getElementsByTagName(tag);
    var elsLen = els.length;
    var pattern = new RegExp("(^|\\s)" + searchClass + "(\\s|$)");
    for (i = 0, j = 0; i < elsLen; i++) {
        if (pattern.test(els[i].className)) {
            classElements[j] = els[i];
            j++;
        }
    }
    return classElements;
}
function closerLook(i, mode) {
    try {
        var html = GoogleMapping.infoWindowArray[i].cloneNode(true);
        if (mode == 'directions') {
            var dirctionContent = new StringBuilder();
            dirctionContent.append('<br/><font class="whitecontainertitle"><h4>Start address:</h4></font><form action="javascript:getDirections()">');
            dirctionContent.append('<input type="text" SIZE=30 MAXLENGTH=40 name="saddr" id="saddr" value="" /><br/><div style="height:5px"></div>');
            dirctionContent.append('<INPUT value="Get Directions" TYPE="SUBMIT">');
            dirctionContent.append('<input type="hidden" id="daddr" value="' + GoogleMapping.searchMarkers[i].title + "@" + GoogleMapping.gPoints[i].lat() + ',' + GoogleMapping.gPoints[i].lng() + '"/>');
            var div = html.getElementsByTagName('div');
            for (var k = 0; k < div.length; k++) {
                if (div[k].id == 'directions') {
                    div[k].innerHTML = dirctionContent.toString();                    
                    break;
                }
            }
        }
        GoogleMapping.map.setCenter(GoogleMapping.gPoints[i], 17);
        //GEvent.clearListeners(markersArray[i], "click");
        GoogleMapping.map.closeInfoWindow();
        GEvent.addListener(GoogleMapping.searchMarkers[i], "click", function() {
            GoogleMapping.searchMarkers[i].openInfoWindowHtml(html);
        });
        GEvent.trigger(GoogleMapping.searchMarkers[i], "click");
    }
    catch (err) {
        //alert('In Closer Look' + err.message);
    }
}
function closerHosted(i, mode) {
    try {
        var html = GoogleMapping.hostedDataHtml[i].html.cloneNode(true);
        if (mode == 'directions') {
            var dirctionContent = new StringBuilder();
            dirctionContent.append('<br/><font class="whitecontainertitle"><h4>Start address:</h4></font><form action="javascript:getDirections()">');
            dirctionContent.append('<input type="text" SIZE=30 MAXLENGTH=40 name="saddr" id="saddr" value="" /><br/><div style="height:5px"></div>');
            dirctionContent.append('<INPUT value="Get Directions" TYPE="SUBMIT">');
            dirctionContent.append('<input type="hidden" id="daddr" value="' + GoogleMapping.hostedDataHtml[i].title + "@" + GoogleMapping.hostedDataPoints[i].lat() + ',' + GoogleMapping.hostedDataPoints[i].lng() + '"/>');
            var div = html.getElementsByTagName('div');
            for (var k = 0; k < div.length; k++) {
                if (div[k].id == 'directions') {
                    div[k].innerHTML = dirctionContent.toString();
                    break;
                }
            }
        }
        GoogleMapping.map.setCenter(GoogleMapping.hostedDataPoints[i], 17);       
        GoogleMapping.map.closeInfoWindow();
        GEvent.addListener(GoogleMapping.hostedData[i], "click", function() {
        GoogleMapping.hostedData[i].openInfoWindowHtml(html);
        });
        GEvent.trigger(GoogleMapping.hostedData[i], "click");
    }
    catch (err) {
        //alert("In Closer Hosted " + err.message);
    }
}
function getDirections() {
    try {
        var reason;
        var reasons = [];
        reasons[G_GEO_SUCCESS] = "Success";
        reasons[G_GEO_UNKNOWN_ADDRESS] = "We're sorry.  No corresponding geographic location could be found for the specified address.";
        reasons[G_GEO_MISSING_QUERY] = "No query was specified in the input.";
        reasons[G_GEO_UNKNOWN_DIRECTIONS] = "Please enter a valid address and try again.";
        var gdir = new GDirections(GoogleMapping.map);
        GEvent.addListener(gdir, "error", function() {
            var code = gdir.getStatus().code;
            var reason = "Code " + code;
            if (reasons[code]) {
                reason = reasons[code]
            }
            alert(reason)
        });        
        var saddr = document.getElementById("saddr").value
        var daddr = document.getElementById("daddr").value
        gdir.load("from: " + saddr + " to: " + daddr);
        GoogleMapping.map.closeInfoWindow();
    }
    catch (err) {
        //alert('In Get Direction ' + err.message);
    }
}

GoogleMapping.createClass('GoogleMapping');
GoogleMapping._userAddress = null;
GoogleMapping._searches = null;
GoogleMapping._contentDivName = null;
GoogleMapping._resultsDivName = null;
GoogleMapping._fakeGoogleSearchBox = null;
GoogleMapping._mapContainerHeight = null;
GoogleMapping._mapContainerWidth = null;
GoogleMapping._controlContainerWidth = null;
GoogleMapping._zoomLevel = 0;
GoogleMapping._kMLFiles = null;
GoogleMapping._kmlEntries = null;
GoogleMapping._gmapResults = null;
GoogleMapping.map = null;
GoogleMapping.searcher = null;
GoogleMapping.geoXml = null;
GoogleMapping.searchControl = null;
GoogleMapping.controlContainer = null;
GoogleMapping.mapContainer = null;
GoogleMapping.contentDiv = null;

// ---- Do not remove this footer ----
// Generated using Script# v0.5.1.0 (http://projects.nikhilk.net)
// -----------------------------------
-->
