(function($) {
    var map = null;
    var geocoder = null;
    

    // $(initiLocatorForm);

    function setupMap() {
        
        
    	if($('#map_canvas').length>0){
    	       
            map = new GMap2($('#map_canvas')[0]);
            map.addControl(new GMapTypeControl());
            map.addControl(new GLargeMapControl());
            map.addControl(new GScaleControl());
            
             // map.enableScrollWheelZoom();
             // map.setUIToDefault();
            
            
            if ($('.result-address').length>0 && GBrowserIsCompatible()) {
				  geocoder = new GClientGeocoder();
				
				 bounds = new GLatLngBounds();
					var icon = new GIcon(G_DEFAULT_ICON);
					options = {
						icon: icon
					};
				$('.result-address').each(function() {
					if ($(this).children().size() == 2) {
						var title = $(this).find(":nth-child(1)").html();
						var address=$(this).find(":nth-child(2)").html();
					   
					   geocoder.getLatLng(
							address,
							function(point) {
								if (!point) {
									alert("wrong address");
								} else {
									var marker = new GMarker(point, options);
									map.addOverlay(marker);
									
									marker.bindInfoWindowHtml("<h4>" + title + "</h4><p>" + address + "</p>"
										+ "<div id=\"directions\" >"
										+ "<p><strong>Directions:</strong> <a onclick=\"return setDirectionForm(this);\" href=\"#daddr\">To here</a>&nbsp;-&nbsp;<a onclick=\"return setDirectionForm(this);\" href=\"#saddr\">From here</a></p>"
										+ "<form class=\"dn\" id=\"direction-form\" action=\"http://maps.google.com/maps\" method=\"get\" target=\"_blank\">"
										+ "<input id=\"hiddenAddr\" value=\"" + address + "\" type=\"hidden\" />"
										+ "<dl><dt><label id=\"direction-text\" for=\"saddr\">From: </label></dt>"
										+ "<dd><input type=\"text\" class=\"text\" id=\"inputAddr\" value=\"\" /></dd>"
										+ "<dd><input type=\"submit\" value=\"Go\" /></dd></dl>"
										+ "</form>"
										+ "</div>");
			
			
									/* GEvent.addListener(marker, "click", function() {
										map.openInfoWindowHtml(point,  htmlWindow[cnt]+ point );
									});*/
			
									bounds.extend(marker.getLatLng());
			
									//  map.fitBounds(bounds);
								}
								map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds)>12? 12 : map.getBoundsZoomLevel(bounds)-1);
							}
						);
					}
				});
            }else{
                map.setCenter(new GLatLng(37.2818, -95.0019), 4);
             }
				
        }
        
    }
    
    function setupShareLocation(){
    	$("#send-location-link a").click(function(){
        	  $('input:hidden[name="type"]', $("#send-to-phone-form")).val($(this).attr('id'));
   	    });
        $("#send-location-link a").overlay({
      // some mask tweaks suitable for modal dialogs
          mask: {
            color: '#ebecff',
            loadSpeed: 200,
            opacity: 0.9
          },

          onBeforeLoad:function() {
             $(".share-section .overlay").fadeTo(400,0.8);
            },
          onBeforeClose:function() {
        	  $(".share-section .overlay").fadeOut();
        	  $("form", $("#send-location")).each(function(){$(this)[0].reset();});
              if($(".result-message").length>0){
                  $(".result-message").html('&#xA0;')
                  $(".result-message").removeClass('error');
              }
            }
        });
        
        $(".share-section .overlay").click( function() {
        	$("#send-location-link a").each(function(){$(this).overlay().close()});
        });

      }
        
      $(setupMap);
      $(setupShareLocation);
})(jQuery);

function setDirectionForm(lnk) {
    document.getElementById("direction-form").className = "";
    var href = lnk.hash.slice(1);
    document.getElementById('hiddenAddr').name = href;
    document.getElementById('inputAddr').name = (href == "daddr") ? "saddr": "daddr";
    document.getElementById('direction-text').firstChild.nodeValue = (href == "daddr") ? "From:": "To:";
    return false;
}

