function getOs(){
	if(navigator.userAgent.indexOf("MSIE")>0)return "IE"; 
	else if(navigator.userAgent.indexOf("Firefox")>0)return "Firefox"; 
	else if(navigator.userAgent.indexOf("Safari")>0)return "Safari"; 
	else if(navigator.userAgent.indexOf("Camino")>0)return "Camino"; 
	else if(navigator.userAgent.indexOf("Gecko/")>0)return "Gecko"; 
	return 'Other';
}
function getPos(el) {
	var r={ x: el.offsetLeft, y: el.offsetTop };
	if (el.offsetParent) {
		var tmp=getPos(el.offsetParent);
		r.x += tmp.x;
		r.y += tmp.y;
	}
	return r;
}
boxMove={
	_isDown:0,
	_ex:0,
	_ey:0,
	obj:"",
	ini:function(_obj,_pobj){
		this.obj=_obj;
		_pobj.onmousedown=function(){boxMove.moveInit()};
		_pobj.onmousemove=function(){boxMove.Move()};
		_pobj.onmouseup=function(){boxMove.stopMove()};
		_pobj.onmouseout=function(){boxMove.stopMove()};
	},
	moveInit:function(evt){
		if(getOs() == "Other") return;
		boxMove._isDown=1;
		if(getOs() == "Firefox"){
			boxMove._ex = evt.pageX - parseInt(boxMove.obj.style.left);
			boxMove._ey = evt.pageY - parseInt(boxMove.obj.style.top);
		}else if(getOs()=="IE"){
			boxMove._ex = event.x - parseInt(boxMove.obj.style.left);
			boxMove._ey = event.y - parseInt(boxMove.obj.style.top);
		}
	},
	Move:function(evt){
		if(boxMove._isDown == 0)return;
		if(getOs()=="Firefox"){
			boxMove.obj.style.left = evt.pageX - boxMove._ex;
			boxMove.obj.style.top = evt.pageY - boxMove._ey;
		}else if(getOs()=="IE"){
			boxMove.obj.style.left = event.x - boxMove._ex;
			boxMove.obj.style.top = event.y - boxMove._ey;
		}
	},
	stopMove:function(evt){
		boxMove._isDown = 0;
	}
}
var addess = "";
var marker="";
var map="";
var redCircleIcon = new GIcon();
redCircleIcon.image = "images/map_store.gif";
redCircleIcon.iconSize = new GSize(29, 30);
redCircleIcon.iconAnchor = new GPoint(3, 3);
redCircleIcon.infoWindowAnchor = new GPoint(3, 3);

var geocoder = new GClientGeocoder();
function showAddress(address) { 
	geocoder.getLatLng(address,function(point){
						if(!point){
							alert("无法解析:" + address);
						}else{
							map.setCenter(point, 13);
							var marker = new GMarker(point);
							map.addOverlay(marker);
							var txt=tagsInfo();
							if(txt=="")txt=address;
							marker.openInfoWindowHtml(txt);
							GEvent.addListener(marker,"click",function(){marker.openInfoWindowHtml(txt);});
							var trafficOptions = {incidents:true};
							trafficInfo = new GTrafficOverlay(trafficOptions);
							map.addOverlay(trafficInfo);
						}
					});
}
function getAddress(overlay, latlng) {
	if (latlng != null) { 
		address = latlng; 
		geocoder.getLocations(latlng, showAddress); 
	}
}
function initialize(adds,id,Control){
	if(GBrowserIsCompatible()){
		map = new GMap2($(id));
		if(!Control){
			map.addControl(new GLargeMapControl());
			map.addControl(new GMapTypeControl());
			map.addControl(new GScaleControl());
		}
		if(!empty(Rs['lat'])&&!empty(Rs['lng'])){
			point=new GLatLng(Rs['lat'],Rs['lng']);
			map.setCenter(point, 13);
			var marker = new GMarker(point);
			map.addOverlay(marker);
			var txt=tagsInfo();
			if(txt=="")txt=adds;
			marker.openInfoWindowHtml(txt);
			GEvent.addListener(marker,"click",function(){marker.openInfoWindowHtml(txt);});
			var trafficOptions = {incidents:true};
			trafficInfo = new GTrafficOverlay(trafficOptions);
			map.addOverlay(trafficInfo);
		}else{
			showAddress(adds);
			addess=adds;
		}
	}
}
pobj="";
function showTag(obj,p,adds){
	if(pobj==obj)return;
	obj.className='spanb';
	if(pobj!="")pobj.className='spana';
	pobj=obj;
	if(p=='to'){
		$('fmn_title').innerHTML='開始地址';
		$('fmn_btn').onclick=function(){
			if($('fmn_q').value==""){
				alert("請輸入開始地址!");
				return false;
			}
			directions = new GDirections(map);
			directions.load("from: "+$('fmn_q').value+", to: "+adds,{travelMode:G_TRAVEL_MODE_DRIVING});
		}
	}else{
		$('fmn_title').innerHTML='結束地址';
		$('fmn_btn').onclick=function(){
			if($('fmn_q').value==""){
				alert("請輸入結束地址!");
				return false;
			}
			directions = new GDirections(map);
			directions.load("from: "+adds+", to: "+$('fmn_q').value,{travelMode:G_TRAVEL_MODE_DRIVING});
		}
	}
	$('fmn').style.display='';
	map.updateInfoWindow(0);
}
function hiddenTag(){
	pobj.className='spana';
	$('fmn').style.display='none';
	pobj="";
	map.updateInfoWindow(0);
}
function showMap(obj,adds,id){
	if(adds=="")return;
	tt=getPos(obj);
	$('pmap').style.left=tt.x+25;
	$('pmap').style.top=(tt.y-300)<50?50:tt.y-300;
	$('pmap').style.display="block";
	Rs=iRs[id];
	initialize(adds,'map_info');
	boxMove.ini($('pmap'),$("map_title"));
}
function tagsInfo(){
	var tmp=[];
	tmp.push('<div id="popinfo" style="width:240px;padding:4px;">');
	tmp.push('<div style="width:240px;text-align:center;margin-left:auto; margin-right:auto;">');
	tmp.push(Rs.img);
	tmp.push('</div>');
	tmp.push('<div style="width:240px;"><b>店名：</b>'+Rs.name+'</div>');
	tmp.push('<div style="width:240px;"><b>電話：</b>'+Rs.tel+'</div>');
	tmp.push('<div style="width:240px;"><b>地址：</b>'+Rs.adds+'</div>');
	tmp.push('<div style="width:240px;"><b>網址: </b><a href="'+Rs.url+'" target="_blank">訪問網站</a></div>');
	tmp.push('<div style="width:240px;"><b>介紹: </b>'+Rs.info+'</div>');
	tmp.push('<div style="width:240px;"><DIV style="font-weight:bold;color:#06C;">服務功能:&nbsp;&nbsp&nbsp;&nbsp;</DIV>');
	tmp.push('<DIV> <SPAN onClick="showTag(this,\'to\',\''+Rs.adds+'\')" class="spana">到這裡</SPAN> - <SPAN onClick="showTag(this,\'from\',\''+Rs.adds+'\')" class="spana">從這裡</SPAN> -'); 
	tmp.push('<SPAN onClick="zoomIn()" class="spana">放大地圖</SPAN> - <SPAN onClick="zoomOut()" class="spana">縮小地圖</SPAN>');
	tmp.push('<DIV id="fmn" style="display:none;"> <DIV id="fmn_title"></DIV>');
	tmp.push('<INPUT name="fmn_q" id="fmn_q" type="text" size="20" /><INPUT id="fmn_btn" type="button" value="開始">');
	tmp.push('<DIV onClick="hiddenTag()"><A href="javascript:void(0)">«返回</A></DIV>');
	tmp.push('</DIV> </DIV> </div></div>');
	return tmp.join("");
}
function zoomIn() {
	map.zoomIn();
}      
function zoomOut() {
	map.zoomOut();
}
win.add(window,'unload',function(){GUnload();});
