(function($){
	$.fn.tipText = function (opts) {
			var __ele = $(this);
			opts = $.extend({
				tipAttr: 'tipText',
				tipColor: '#cccccc',
				defaultColor: '#000000',
				form:null
			}, opts || {});
			
			$(opts.form).submit(function(){
				if($(__ele).val() == $(__ele).attr(opts.tipAttr)){
					$(__ele).val('');
				}
			});
	
			$(__ele).blur(function () {
				if ($.trim($(this).val()).length == 0 || $(this).val() == $(this).attr(opts.tipAttr)) {
					with ($(this)) {
						css('color', opts.tipColor);
						val(attr(opts.tipAttr));
					}
				} else {
					$(this).css('color', opts.defaultColor);
				}
			});
	
			$(__ele).focus(function () {
				$(this).css('color', opts.defaultColor);
				if ($.trim($(this).val()).length == 0 || $(this).val() == $(this).attr(opts.tipAttr)) {
					$(this).val('');
				}
			});
	
			$(__ele).blur();
	};
	
	$.fn.popup = function (opts) {
			var __ele = $(this);
			opts = $.extend({
				closeBtn: '.close'
			}, opts || {});
	
			$(opts.closeBtn).click(function () {
				close();            
				return false;
			});
	
			var _mask = $('<div></div>');
			$(_mask).css("background", "#000000")
					   .css("filter", "alpha(opacity=0.5)")
					   .css("opacity", "0.5")
					   .css("width", "100%")
					   .css("height", $(document).height() + "px")
					   .css("position", "absolute")
					   .css("left", "0px")
					   .css("top", "0px")
					   .css("z-index", "9998");
			$('body').append(_mask);
			
			$(__ele).css("display", "block");
	
			function redraw() {
				var dw = $("body").width();
				var dh = $(document).height();
				var wh=$(window).height();
				var st=$('body')[0].scrollTop;
				var w = $(__ele).width();
				var h = $(__ele).height();
				$(__ele).css("left", (dw - w) / 2 + "px")
						.css("top", (wh - h) / 2+st + "px")
						.css("position", "absolute")
						.css("z-index", "9999");
	
				$(_mask).css("width", "100%")
						.css("z-index", "9998")
						.css("height", $(document).height() + "px")
			}
	
			function close() {
				$(_mask).remove();
				$(__ele).css("display", "none");
			}
			$(window).resize(function () {
				redraw();
			});
			redraw();
	};
})(jQuery);

function googleMap(container,directorys,homeUrl) {  
    var __bounds= new GLatLngBounds();  
     if (GBrowserIsCompatible()) {  

     /*var map = new GMap2(container);  
     map.addControl(new GSmallMapControl());
     map.addControl(new GScaleControl());*/
	var copyright = new GCopyright(1, new GLatLngBounds(new GLatLng(-90, -180), new GLatLng(90, 180)), 1, "&copy;2010 Levis Commons");
	var copyrightCollection = new GCopyrightCollection('Directory');
	
	var tileLayers = [new GTileLayer(copyrightCollection, 4)];
	tileLayers[0].getTileUrl = function (point, zoom) { return homeUrl+"tiles/Zoom"+zoom+"/"+point.x+"_"+point.y+"_"+(zoom)+".gif"; };
	
	var custommap = new GMapType(tileLayers, new GMercatorProjection(5), "Directory", {errorMessage:"Tile Not Found", minResolution: 1, maxResolution: 4, radius: 3183} ); //about 1 pixel to the meter for calculations
	
	var map = new GMap2(container, {mapTypes:[custommap]});	
	map.setCenter(new GLatLng(0, 0), 3, custommap);	
	map.addControl(new GLargeMapControl());
	
	var baseIcon = new GIcon();
	baseIcon.shadow = homeUrl+"markerShadow.png";	
	baseIcon.iconSize = new GSize(20, 20);
	baseIcon.shadowSize = new GSize(20, 20);
	baseIcon.iconAnchor = new GPoint(10, 10);
	baseIcon.infoWindowAnchor = new GPoint(10, 10);
  
    function createMarker(point,directory) { 
        __bounds.extend(point); 
        var letteredIcon = new GIcon(baseIcon);  
        letteredIcon.image = "http://clients.toledo.com/levismap/drawMarker.php?n="+((directory.number && directory.number!='0')?directory.number:'a')+"&f=1t=.png"; 

        var markerOptions = { icon:letteredIcon };  

        var marker = new GMarker(point, markerOptions);  
        marker.record=directory;
  
        GEvent.addListener(marker, "click", function() {  
        	marker.openInfoWindowHtml(GetWindowHtml(marker.record));  
        });  

        try {
            //map.setZoom(map.getBoundsZoomLevel(__bounds));
            map.setCenter(new GLatLng(0, 95),3,custommap);  
        } catch (e) {
            map.setCenter(point, 3,custommap);
        }

        return marker;  
    }  

      
    function GetPoint(directory){  
			if(!directory.point_x)directory.point_x=0;
			if(!directory.point_y)directory.point_y=0;
			directory.point_x=parseFloat(directory.point_x);
			directory.point_y=parseFloat(directory.point_y);
			if(directory.point_x==0 || directory.point_y==0){
				var geocoder = new GClientGeocoder();  
				if (geocoder)   
				{  
					geocoder.getLatLng(directory.address,function(point){  
						if (!point)   
						{  
						  //alert("not found:"+address);  
						}   
						else   
						{  
							//标记地址 显示图片  
							var marker=createMarker(point,directory);
							map.addOverlay(marker); 
							if(directorys){
								if(directorys.length==1){
									marker.openInfoWindow(GetWindowHtml(marker.record));
								}
							}
						}  
					});  
				}
			}else{
				var marker=createMarker(new GLatLng(directory.point_x, directory.point_y),directory);
				map.addOverlay(marker); 
				if(directorys){
					if(directorys.length==1){
						marker.openInfoWindow(GetWindowHtml(marker.record));
					}
				}
			}
         }  

    function GetWindowHtml(directory){
        var s="<b>"+directory.name+"</b><div>"+directory.address+"</div><div>"+directory.phone+"</div>";
        return s;
    }
        
    var bounds = map.getBounds();  
	
   
	if(directorys!=null && directorys.length>0){
		for(var s=0;s<directorys.length;s++){  
			GetPoint(directorys[s]);  
		}  
	}
      
   }  
}  

function showAllDirectory(homeUrl){
	//'http://localhost/LevisCommons/'
	jQuery.get(homeUrl,{directoryjson:'true',t:(new Date()).toString()},function(data){
		googleMap(jQuery('#fullMapContainer').get(0),data,homeUrl);
	},'json');
}

