﻿var map;
var netoract;
var Markers = new Array();
var sname='…'
var geocoder;
var cLast;
var rLast;
function DW(map,nn) { 
	this.set('map', map);   
	this.set('position', map.getCenter());	
	var cenm=new google.maps.MarkerImage('http://sms.netor.com/mode/jimap/cross2.gif',new google.maps.Size(23,23),null,new google.maps.Point(11,11));
	var marker = new google.maps.Marker({icon:cenm,draggable: true,title:'中心点'});
	marker.bindTo('map', this);
	marker.bindTo('position', this); } 
DW.prototype = new google.maps.MVCObject();
function toXML(strxml){
	try
	{xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
	xmlDoc.loadXML(strxml);}
	catch(e){
	var oParser=new DOMParser();
	xmlDoc=oParser.parseFromString(strxml,"text/xml");}
	return xmlDoc;
}
function markerData(){};
markerData.prototype={id:'',m:'',info:'',jx:'',jy:''}
function findMarker2(id){
	for(i in Markers){
		if(Markers[i].id==id){
		document.getElementById('clife').style.visibility='hidden';
		var mLatLng =new google.maps.LatLng(Markers[i].jx,Markers[i].jy);
		map.setCenter(mLatLng);
		map.setZoom(7);
		var netorx=Markbuild(0,0,0);
		var newmark =new google.maps.Marker({
        position: mLatLng,map: map,icon:netorx,
        title: '人生轨迹',zIndex:20});
		var newinfo=new google.maps.InfoWindow({maxWidth:270,
        content: Markers[i].info});
		newinfo.open(map,newmark);
		return true;
		}
	}
	alert("没有找到地图标记!");
}
function load(ntx,nty,ntz,bid,actid,maptag)
	{if (ntx==0||ntx==null)
	{ntx=31;nty=111;}
	var mapOptions={zoom: ntz,center: new google.maps.LatLng(ntx,nty),mapTypeId:google.maps.MapTypeId.ROADMAP,scaleControl: true};
	map=new google.maps.Map(document.getElementById(maptag),mapOptions);
	netoract=actid;
	var dW = new DW(map);	
	google.maps.event.addListener(dW, 'position_changed', function() {cc(dW);});
	google.maps.event.addListener(map,'idle', function() {var kk=map.getCenter(); dW.set("position",kk);	
	});
	
	mapq(actid,1233,ntx,nty,bid);
	
	if (actid==757||actid==609)
	{}
	else
	{geocoder = new google.maps.Geocoder();
		sE();
		cCc();
	}
}
function mapq(tb,jx,mx,my,bid)
{var body,nimg,ny,topic,ntype,cx
 var pic,wen,allname
 var stb,simg
	var	qdata="action=list"+tb+"&mx="+mx+"&my="+my;
	qdata+="&divtag=mqq&netorxml="+jx;
	qdata+="&bid="+bid;
	//alert(qdata);
	var xmlhttp=jb();
	xmlhttp.onreadystatechange=function(){
		if (4==xmlhttp.readyState){
		if (200==xmlhttp.status){
		var str=toXML(xmlhttp.responseText);
		var xh=str.getElementsByTagName("marker").length
		if (xh==0)
		{
			//alert("数据暂缺");
		}
		else
		//alert("数据载入中");
		{var marks = str.documentElement.getElementsByTagName("marker");
		if (tb==278||tb==279||tb==791||tb==898)
			{stb=13}
		else
		{if (tb==275||tb==792||tb==794)
			{stb=14}
			else			
			{stb=15}
		}
	switch (stb)
	{case 10:
		for (var i=0;i<marks.length;i++) {
		body=marks[i].getElementsByTagName("body")[0].text;		
		nimg=marks[i].getElementsByTagName("nimg")[0].text;
		allname=marks[i].getElementsByTagName("allname")[0].text;
		simg=4;
		if (tb==417||tb==901||tb==903)
			{if (tb==901||tb==903)
			{simg=9;}
			else
			{simg=3;}
			};
		if (body==0)
		{}
		else
		{mx=marks[i].getAttribute("mx");
		my=marks[i].getAttribute("my");
		var html=Htmlbuild(1,"bbid"+i,body);
		var netora=[[allname,mx,my,5,html]]
		var netorm=Markbuild(simg,nimg,allname)
		setMarkers(netorm,map,netora);}
		}
		break;	
	case 15:
		for (var i=0;i<marks.length;i++) {
		body=marks[i].getElementsByTagName("body")[0].text;		
		nimg=marks[i].getElementsByTagName("nimg")[0].text;
		allname=marks[i].getElementsByTagName("allname")[0].text;
		id=marks[i].getElementsByTagName("id")[0].text;
		simg=4;
		try
		{simg=marks[i].getElementsByTagName("simg")[0].text;}
		catch (e)
		{}
		mx=marks[i].getAttribute("mx");
		my=marks[i].getAttribute("my");		
		simg=parseInt(simg);
		var html=Htmlbuild(1,id,body);
		var netora=[[allname,mx,my,5,html]]
		var netorm=Markbuild(simg,allname,nimg);	
		setMarkers(netorm,map,netora);				
		if (tb==909||tb==910)
		{var MyMarker=new markerData();
			MyMarker.id=id;
			MyMarker.info=html;
			MyMarker.jx=mx;
			MyMarker.jy=my;		
		Markers.push(MyMarker);}
		}
		break;
	case 13:
		for (var i=0;i<marks.length;i++) {
		var body=marks[i].getElementsByTagName("body")[0].text;
		var html='<div id="mqq" class=mapwindow>'+body+'</div>'
		if (tb==898)
		{
		var netorm=Markbuild(8,0,0);		
		}
		else
		{
		var netorm=Markbuild(1,0,0);
		//var netorm='k';
		}		
		var netora=[['地理信息',mx,my,6,html]];
		
		setMarkers(netorm,map,netora);
		}
		break;
	case 14:
		for (var i = 0; i < marks.length; i++) {
		if (tb==275)
		{var sw=new google.maps.LatLng(parseFloat(marks[i].getElementsByTagName("s")[0].text),parseFloat(marks[i].getElementsByTagName("w")[0].text));
		var nw=new google.maps.LatLng(parseFloat(marks[i].getElementsByTagName("n")[0].text),parseFloat(marks[i].getElementsByTagName("w")[0].text));
		var en=new google.maps.LatLng(parseFloat(marks[i].getElementsByTagName("n")[0].text),parseFloat(marks[i].getElementsByTagName("e")[0].text));
		var se=new google.maps.LatLng(parseFloat(marks[i].getElementsByTagName("s")[0].text),parseFloat(marks[i].getElementsByTagName("e")[0].text));
		nimg=[sw,nw,en,se];
	  var wen = new google.maps.Polygon({
		paths: nimg,strokeColor: "#FF0000",strokeOpacity: 0.4,strokeWeight: 1,
		fillColor: "#FFFFCC",fillOpacity: 0.1});
		wen.setMap(map);
		}
	if (tb==792||tb==794)
	{
	ntx=marks[i].getElementsByTagName("mx")[0].text;
	nty=marks[i].getElementsByTagName("my")[0].text;
	}
	else
	{ntx=parseFloat(marks[i].getElementsByTagName("s")[0].text)+(parseFloat(marks[i].getElementsByTagName("n")[0].text)-parseFloat(marks[i].getElementsByTagName("s")[0].text))/2;
	nty=parseFloat(marks[i].getElementsByTagName("w")[0].text)+(parseFloat(marks[i].getElementsByTagName("e")[0].text)-parseFloat(marks[i].getElementsByTagName("w")[0].text))/2;}
	cx=marks[i].getElementsByTagName("rid")[0].text;
	allname=marks[i].getElementsByTagName("nareaname")[0].text;
	pic=marks[i].getElementsByTagName("num")[0].text;
	var html='<div id="mqq'+cx+'" class=mapwindow></div>'
	var netorm
	if (tb==794||tb==792)
	{
		//alert("a");
		netorm=Markbuild(7,'home|bbbr|'+allname+'·'+pic+'|FFFFCC|330000',0);		
		var ccen=new google.maps.LatLng(ntx,nty);
		if (tb==792)
		{var wen2 = new google.maps.Circle({map:map,center: ccen,fillColor: "#3300FF",fillOpacity:0.1,strokeColor:"#FFFFCC",strokeWeight:1,radius:10000,zIndex:10});
		}
		else
		{
		var wen2 = new google.maps.Circle({map:map,center: ccen,fillColor: "#3300FF",fillOpacity:0.2,strokeColor:"#3300FF",strokeWeight:1,radius:10000,zIndex:10});
		}
		wen2.setMap(map);
	};
	else
		{
		netorm=Markbuild(7,'home|bbbr|'+allname+'·'+pic+'|FFFFCC|330000',0);
		};
	var netora=[[allname+'·'+pic,ntx,nty,6,html]];
	setMark(netorm,map,netora,i,tb,cx,cx);
		};
		break;
		}}}}}
	var url=escape(document.domain);
	xmlhttp.open("post","http://"+url+"/allcgi/jng.asp",true);
	xmlhttp.setRequestHeader("Content-Type","text/xml");
	xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded;");
	xmlhttp.setRequestHeader("Content-Type","UTF-8");
	xmlhttp.send(qdata);
}
function Htmlbuild(textype,id,context)
{var ht	
	ht='<div id="'+id+'" class="mapwindow">'+context+'</div>'	
	return ht
}
function Markbuild(imgtype,img1,img2){
	var image
	switch (imgtype){
	default:
		image=new google.maps.MarkerImage('http://sms.netor.com/netorcgi/icon2/blue3.png',new google.maps.Size(26,43),new google.maps.Point(0,0),new google.maps.Point(0,0));
		break;
	case 0:
		image = new google.maps.MarkerImage('http://sms.netor.com/mode/jimap/cross.gif',new google.maps.Size(19,19));
		break;
	case 1:
		//image=''
		image = new google.maps.MarkerImage('http://sms.netor.com/netorcgi/icon2/blue3.png',new google.maps.Size(26,43));
		break;
	case 2:
		if (img2==0)
		{
		img2='http://chart.apis.google.com/chart?chst=d_bubble_icon_text_small&chld='+img1;	
		image = new google.maps.MarkerImage(img2,new google.maps.Size(250,50),new google.maps.Point(0,0),google.maps.Point(0,0));		
		};
		else
		{image = new google.maps.MarkerImage(img2,new google.maps.Size(40,40));}
		break;
	case 3:
		image = new google.maps.MarkerImage(img2,new google.maps.Size(10,10));
		break;
	case 4:
		if (img2==0)
		{img2='http://sms.netor.com/mode/jimap/tag3.gif'};
		else
		{img2='http://chart.apis.google.com/chart?chst=d_simple_text_icon_above&chld='+img2+'|10|CC0000|cemetery-tomb|24|33CC00|FFF'};
		image = new google.maps.MarkerImage(img2,new google.maps.Size(40,50));
		break;
	case 5:
		img2='http://chart.apis.google.com/chart?chst=d_simple_text_icon_above&chld='+img1
		image = new google.maps.MarkerImage(img2,new google.maps.Size(60,40));
		break;
	case 6:
		img2='http://chart.apis.google.com/chart?chst=d_text_outline&chld='+img1;
		image = new google.maps.MarkerImage(img2,new google.maps.Size(50,14));
		break;
	case 7:
		img2='http://chart.apis.google.com/chart?chst=d_bubble_icon_text_big&chld='+img1;	
		image = new google.maps.MarkerImage(img2,new google.maps.Size(250,50),new google.maps.Point(0,0),google.maps.Point(0,0));
		break;
	case 8:
		image = new google.maps.MarkerImage('http://sms.netor.com/allcgi/32s/win32.png',new google.maps.Size(32,32));		
		break;
	case 9:
		image = new google.maps.MarkerImage(img2,new google.maps.Size(32,32));
		break;
	case 11:
		if (img2==0)
		{
		img2='http://chart.apis.google.com/chart?chst=d_bubble_icon_text_small&chld=glyphish_clock|bbbr|'+img1+'|F9F7CE|996600';	
		image = new google.maps.MarkerImage(img2,new google.maps.Size(250,50),new google.maps.Point(0,0),google.maps.Point(0,0));		
		};
		else
		{image = new google.maps.MarkerImage(img2,new google.maps.Size(40,40),new google.maps.Point(0,0),google.maps.Point(0,0));}
		break;
	}
	return image;
}
function setMarkers(imgm,map,local) {
   for (var i=0; i<local.length; i++) {
    var bb = local[i];
    var myLatLng = new google.maps.LatLng(bb[1], bb[2]);
    var marker = new google.maps.Marker({
        position: myLatLng,map: map,icon:imgm,
        title: bb[0],zIndex: bb[3]});
	//alert("s");
	var infowindow = new google.maps.InfoWindow({maxWidth:270,content: bb[4]});
	google.maps.event.addListener(marker, 'click', function() {		
		infowindow.open(map,marker);		
		});
		//map.setCenter(myLatLng);
  }
}
function setMark(imgm,map,local,ck,act,bid,ctag) {
   for (var i=0; i<local.length; i++) {
    var bb = local[i];var bbx=bb[1];var bby=bb[2];
	var myLatLng = new google.maps.LatLng(bbx,bby);
    var marker = new google.maps.Marker({
        position: myLatLng,map: map,icon:imgm,
        title: bb[0],zIndex: bb[3]});
	var infowindow = new google.maps.InfoWindow({
        maxWidth:270,content: bb[4]});
		google.maps.event.addListener(marker, 'click', function() {
		map.setCenter(marker.getPosition());
		if (act==792||act==275||act==794)
		if (act==792)
		{load(bbx,bby,8,bid,794,'map_canvas');
		qdata(bid,'list793',"area");		
		};
		else
		{var ddiv='mqq'+ctag;
		if (act==794)
		{			
		load(bbx,bby,10,bid,'278','map_canvas');
		}
		else
		{ load(bbx,bby,8,bid,794,'map_canvas');
		 qdata(bid,'list791',"area");
		}}
	else
		{infowindow.open(map,marker);}
	});
	//if (ck==0)
	//{infowindow.open(map,marker);}
	//map.setCenter(myLatLng);
	//if (act==279)
	//{infowindow.open(map,marker);};
  }
}
function cCc() {
  cLast = new Date();
  try
	{document.getElementById("nx").value =map.getCenter().lat();
	document.getElementById("ny").value =map.getCenter().lng();
	document.getElementById("maddr").value =sname;	
	}
		catch (e)
	{}
	try
	{
	document.getElementById("mx").value =map.getCenter().lat();
	document.getElementById("my").value =map.getCenter().lng();
	
	}
		catch (e)
	{}
}
function cc(myc) {
	//cLast = new Date();
	var latlng = myc.get('position');   
	map.setCenter(latlng); 
	cCc();
	//sE();
}
function geocode() {
   var address =document.getElementById("address").value;
   geocoder.geocode({'address': address,
      'partialmatch': true},
	function (results,status){
    if (status == 'OK' && results.length > 0) {
      map.fitBounds(results[0].geometry.viewport);
    } else {
      alert("地理解析未成功");
    }});
}
function addMarkerAtCenter(bid,actid) {
    var marker = new google.maps.Marker({
        position: map.getCenter(),
        map: map});
	if (actid=="254")
		{qdata(bid,'10160&boardid='+bid,'life')}
	try
	{document.getElementById("nareaname").value =sname;}
	catch (e)
	{}
}
function geo() {
	rLast = new Date();
	geocoder.geocode({'latLng': map.getCenter()}, function(results, status) {
	if (status == 'OK' && results.length > 0) 
		{sname=results[0].formatted_address;
		try{
		document.getElementById("maddr").value =sname;
		document.getElementById("nareaname").value =sname;
		document.getElementById("mz").value =map.getZoom();
		}
		catch (e)
		{}	
	}        
	});
	
	if (map.getZoom()>6){
		mapq(417,1233,map.getCenter().lat(),map.getCenter().lng(),0);
	}
}

function sE() {
    rLast = new Date();
    cLast = new Date();
    setInterval(function() {
      if((new Date()).getSeconds() - cLast.getSeconds() > 1) 
	  {
        if(rLast.getTime() < cLast.getTime())
          geo();		  
      }
    }, 1000);   
}

