﻿document.write("<script type='text/javascript' src='http://maps.google.com/maps/api/js?sensor=false'></script>");
//为了hack以前的代码，51ditu里的结构
LTMaps=function(){}
LTPoint=function(lng,lat){
	lng=parseFloat(lng);
	lat=parseFloat(lat);
	this.lng=lng;
	this.lat=lat;
}


$(function(){
    $.fn.extend({
    	Map:function(init_area,zoom,map_title,map_tip,is_rect_zoom,is_show){
			var top=this;
			var jq_top=$(this);
			
			this.id="";
			this.h_map=null;
			this.h_marker=null;
			this.h_infownd=null;
			this.map_tip=map_tip;
			this.map_title=map_title;
			this.lng=0;
			this.lat=0;
			this.marked=!(typeof(init_area)=="string");
			
			this.CreateMap=function(){
				
			    if(!jq_top.attr("id"))
				{
					jq_top.attr("id","my_map");
					top.id="my_map";
				}
				else top.id=jq_top.attr("id");
				
				if(typeof(google)!="object")
				{
					alert("google fail loaded");
					return false;
				}
				
				if(typeof(init_area)=="string") top.AreaShowMap(init_area);
				else
				{
					top.lng=parseFloat(init_area.lng);
					top.lat=parseFloat(init_area.lat);
					if(isNaN(top.lng)) top.lng=0;
					if(isNaN(top.lat)) top.lat=0;
					top.ShowMap();
				}
			}//end CreateMap
			
			this.AreaShowMap=function(area_name){
				if(!area_name) area_name="";
				var geoc=new google.maps.Geocoder();
				geoc.geocode(
				    {address:area_name},
					function(rtl,status){
					    if(status == google.maps.GeocoderStatus.OK)
						{
							top.lng=top.Normal2NTU(rtl[0].geometry.location.lng());
				            top.lat=top.Normal2NTU(rtl[0].geometry.location.lat());
						}
						top.ShowMap();
					}
				);
			}//end AreaShowMap
			
			this.ShowMap=function(){
				if(jq_top.size()<=0) return false;
				if(!top.h_map)
				{
					top.h_map=new google.maps.Map(
				        jq_top.get(0),
					    {
					        zoom:15,
						    center: new google.maps.LatLng(top.NTU2Normal(top.lat), top.NTU2Normal(top.lng)),
						    mapTypeId: google.maps.MapTypeId.ROADMAP
					    }
				    );
					google.maps.event.addListener(top.h_map,"click",function(e){
					    top.lat=top.Normal2NTU(e.latLng.lat());
						top.lng=top.Normal2NTU(e.latLng.lng());
						top.SetMarker();
					});//end addListener click
				    if(top.marked) top.SetMarker();
					
				}
			    else
				{
					top.h_map.setCenter(new google.maps.LatLng(top.NTU2Normal(top.lat), top.NTU2Normal(top.lng)));
				}
			}//end ShowMap
			
			this.SetMarker=function(){
			    if(!top.h_map) return false;
				if(!top.h_marker)
				{
					top.h_marker=new google.maps.Marker({
				        position:new google.maps.LatLng(top.NTU2Normal(top.lat), top.NTU2Normal(top.lng)),
					    map:top.h_map,
					    title:map_title,
						draggable:true
				    });
					google.maps.event.addListener(top.h_marker,"dragend",function(e){
					    top.lat=top.Normal2NTU(e.latLng.lat());
						top.lng=top.Normal2NTU(e.latLng.lng());
						top.SetMarker();
					});//end addListener dragend
				}
				else
				{
					top.h_marker.setPosition(new google.maps.LatLng(top.NTU2Normal(top.lat), top.NTU2Normal(top.lng)));
				}
				$("input[@name=lat]").val(top.lat);
				$("input[@name=lng]").val(top.lng);
				top.SetInfoWnd();
			}//end SetMarker
			
			this.SetInfoWnd=function(){
				if(!top.h_map)
				{
				    alert("ERROR：还没有创建地图");
					return;
				}
				if(!top.h_marker)
				{
				    alert("ERROR:还没有创建标记");
					return;
				}
				var map_content="<b>"+top.map_title+"</b><br />"+top.map_tip;
			    if(!top.h_infownd) top.h_infownd=new google.maps.InfoWindow({content:map_content});
				else top.h_infownd.setContent(map_content);
				
				top.h_infownd.open(top.h_map,top.h_marker);
			}//end SetInfoWnd
			
			this.NTU2Normal=function(num){
			    return num/100000;
			}//end NTU2Normal
			
			this.Normal2NTU=function(num){
			    return num*100000;
			}//end Normal2NTU
			
			
			this.CreateMap();
			$("input[@rel=view]").click(function(){
			    var map_title=$("input[@name=map_title]").val();
				var map_tip=$("input[@name=map_tip]").val();
				top.map_title=map_title;
				top.map_tip=map_tip;
				top.SetInfoWnd();
			});//end click
			$("select#province,select#city,select#county,select#county").change(function(){
			    var add_val=$(this).val();
				if(add_val.length<=0) return false;
				top.AreaShowMap(add_val);
			});//end change
		}
	});
});
