String.prototype.trim = function() { return this.replace(/^[\s]+/g,'').replace(/[\s]+$/g,''); }
//YAHOO.ext.EventManager.onDocumentReady(uiInit, window, true);
U.addEvent(window, 'load', uiInit);
YAHOO.ext.UpdateManager.defaults.indicatorText = '<img src="js/yui-ext/images/grid/loading.gif>';
//yAHOO.ext.UpdateManager.defaults.disableCaching = true;
//yAHOO.ext.UpdateManager.defaults.loadScripts = true;

var alm;
var map;// = new UMap(document.getElementById('mapDiv'));
//var uext;
var map2;
var Utarget;
var Ustart;
var Uend;
var Upin;
var UbusStationIcon;
var UbusSolutionNum;
var UbusStations = new Array();
var UroutePath;
var UcontextMenuLatLng;
var UpositionType;
var UpoiTree;
var UpoiSource;
var UpoiType;
var Upois = new Array();
var isPoiConfirmed = false;
var UEventPois = new Array();
var UpoiThread = 0;
var UactivePoi;
var UdisplayedActiveAd = new Object();
var UIconImagePath = 'http://apam.urmap.com/apam/';
var UgeoObjects = new Array();
var UpmsPois = new Array();
var UpmsIcon;
var getBookingUrl = '/channel/booking/getBI.jsp';
var _Utabpane;
var UadIcon;
var UadObject;
var myMenu;
var screenHeight = screen.height;
var poiOverlayManager;
var pmsPoiOverlayManager;
var sapuzData = {};
var UAd;
var winResizeTimer = null;
var Ubreadcrumb;

function uiInit() {
  //loadingDiv.show();
  initMenu();
  alm = new AutoLayoutManager('layout.new.xml?ts=20090826');
  alm.getLayout('mainLayout').on('layout', refreshMap);
  
  //console.log(alm.getLayout('mainLayout').getRegion('east').collapse());
  
  //alm.getPanel('headerDiv').getUpdateManager().update({ url:'/pms/include/newmapHeader.jsp', scripts:true});
  //alert(document.getElementById('headerTemplete'));
  //document.getElementById('headerDiv').appendChild(document.getElementById('headerTemplete'));
  alm.getPanel('toolbarDiv').getUpdateManager().update({ url:'/pms/include/toolbar.jsp', scripts:true, callback:function(){
	Ubreadcrumb = new UBREADCRUMB(map);
  }});
  alm.getPanel('footerDiv').getUpdateManager().update('include/footer.html');
  map = new UMap(document.getElementById('mapDiv'));
  //map = new UMap(document.getElementById('mapDiv'));
  //setTimeout(loadingDiv.hide, 0);
  map.addControl(U_FULLZOOM_CONTROL);
  map.addControl(U_TYPE_CONTROL);
  map.addControl(U_SCALE_CONTROL);

  //map.gotoCookieLocation();
  poiOverlayManager = new UOverlayManager(map, {
								minLevel: 0,
								maxLevel: 11,
								autoMergeMarker: true
  });
  pmsPoiOverlayManager = new UOverlayManager(map, {
								minLevel: 2,
								maxLevel: 11,
								autoMergeMarker: true
  });
  iconInit();
  eventInit();
  poiDivInit();
  // init tab in poiDiv
  
	_Utabpane = new TabPane(U.gi('tabDiv'), '#88f', null, 'url(/img/toolbar_bg.jpg)');
	_Utabpane.addTab('my_menu', '分類地標', 'my_menu', 0);
  _Utabpane.addTab('cp_menu', '廠商地標', 'cp_menu', 1);
  _Utabpane.selectTab('my_menu');
  
  DWRUtil.useLoadingMessage();
  //map.centerAndZoom(new ULatLng(25.0573, 121.546), 9);
  if(pmsInit)
    pmsInit();
  checkOpenUserTab();
  checkOpenPoiTab();
  setEvent();
  setPoiEvent();
  
  //TempRoutingDivBanner.setBannerDiv(document.getElementById('routingBannerDiv'));
  
  //setTimeout(loadYAd, 0);
  //setTimeout(load_umapExt, 0);
  //uext = new UMapExt(map);
  map.enableWheelZoom();
  setTimeout(loadAutoCompleteJS, 0);
  //setTimeout(loadYState, 0);

  locateTrafficContent();
  locateMotorContent();
  setTimeout(function(){
  	overviewInit2();
  	  if(U.gi('loadingDiv'))
  	U.gi('loadingDiv').style.display = 'none';
  }, 0);
 
  //地標廣告
  setTimeout(function(){
	UAd = new UAD(map);
	UAd.importData();
  }, 1000);
  map.ulog();
  map.findWithin();
  initRSH();
  initASPPOI();
  // 莫拉克颱風
  //initMorakotEvent();
  // Sapuz活動頁面連結
  openSapuz();
	// Tab Search => sType: 地點, 分享地標, 玩家
	if(QS) {
		U.gi('queryString').value = QS;
		refreshHeader('sType=' + document.getElementById('mapHeader.sType').getAttribute('value'));
		doSearch();
	} else if(ENC_LINK) {
		_decodeMap(ENC_LINK);
	} 
	//for fix FF iframe cache
	if(navigator.userAgent.toLowerCase().search('firefox')>-1){
		var iframes = document.getElementsByTagName('iframe');
		for(var i=0; i<iframes.length; i++){
			iframes[i].src = iframes[i].src;
		}
	}
	
	if(map && map.addWeatherIcon){/* 2010.07.02 add weather*/
       	map.addWeatherIcon();
	}

}
function openSapuz() {
	var params = window.location.search;
	if (params.length > 0) {
		params = params.split('&');
		for (var i=0; i<params.length; i++) {
			if (params[i].search('sapuz=') > 0) {
				params = params[i].split('=')[1];
				//alm.getLayout('mainLayout').showPanel('detailDiv');
				if (params == 'content') {
					sapuz('台北車站');
				} else if (params == 'help') {
					sapuz();
				}
			}
		}
	}
}
function initMenu(){
	myMenu = new SDMenu("my_menu");
	myMenu.oneSmOnly = true; 
	myMenu.init();
	selectCategory('food');
	selectCategory('hotel');
	selectCategory('transport');
	selectCategory('entertainment');
	selectCategory('life');
	selectCategory('education');
	/*
	selectCategory('food');
	selectCategory('tour');
	selectCategory('transportation');
	selectCategory('bureau');
	selectCategory('life');
	*/
}
/* 莫拉克颱風 Start */
function initMorakotEvent() {
	var eventSideTabWrapperDiv = document.getElementById('eventSideTabMenu');
	var overlay = new UDom(eventSideTabWrapperDiv);
	map.addStaticOverlay(overlay, URightTop, new UPoint(0, 65));
	eventSideTabWrapperDiv.style.display = 'block';
}
/* 莫拉克颱風 End */

function loadScripts(src, callback){
	var jscript = document.createElement('script');
	jscript.src = src;
	if(callback)
		U.addEvent(jscript, 'load', callback);
		//jscript.onload = callback;
	document.getElementsByTagName('head')[0].appendChild(jscript);
}
function loadYState(){
	document.body.parentNode.parentNode.appendChild(document.createElement('script')).src = 'http://tw.js.webmaster.yahoo.com/24458/ystat.js';

	//loadScripts('');
}
function load_umapExt(){
	loadScripts('/js/urmapExtZoom.js');
	/*setTimeout(function(){
		if(!uext)
			
	},1000);*/
}
function loadYAd(){
	/*var chkDomain = (function(){
		//var domaincheck = "urmap.com";
		var domaincheck = "211.21.21.84";
		var CurrentDomain = window.location.host;
		var rCurrentDomain="";
		var chk = false;
		if(CurrentDomain!=domaincheck){
			CurrentDomain= CurrentDomain.split(".");
			for (var i=1; i<5; i++) {
				if(CurrentDomain[i]!=undefined){
					if(i==1){
						rCurrentDomain=CurrentDomain[i];
					}else{
						rCurrentDomain=rCurrentDomain + "." + CurrentDomain[i];
					}
				}
			}
		}

		if(CurrentDomain==domaincheck || rCurrentDomain == domaincheck)
			chk = true;
		return chk;
	})();
	if(!chkDomain) return;
	var css = document.createElement('link');
	css.type = 'text/css';
	css.rel = 'stylesheet';
	css.href = '/js/yad/sample06_utf8_test.css';
	document.getElementsByTagName('head')[0].appendChild(css);*/
	/*var classParam = [{id:"tw_weblisher_interest_leisure", partner:"tw_syndication_weblisher_cm_test"},
		{id:"tw_weblisher_cooking_food", partner:"tw_syndication_weblisher_cm_test"},
		{id:"tw_weblisher_auto_motor", partner:"tw_syndication_weblisher_cm_test"},
		{id:"tw_weblisher_shopping_auction", partner:"tw_syndication_weblisher_cm_test"}];
	var clasParamIdx = 1;*/
	/*loadScripts('/js/yad/sample06_utf8_test.js', function(){
		loadAdsByIdx(2);
	});
	var ysm_html = "<button onclick='loadAdsByIdx()'>test AJAX YAD</button>";
	ysm_html = ysm_html +
		'<div id="ysm_hybrid" class="type2" style="display:none">' +
		'<table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#E5E6EB">' +
		'<tr>' +
		'<td align="center" bgcolor="#E5E6EB" height="20"><table width="100%" border="0" cellspacing="0" cellpadding="0" style="background:#D7E6EB;"><tr><td width="50%"><span style="letter-spacing:0.1em;color:#333;padding:4px 0 0 10px;">市場快訊</span></td><td align="right" width="50%"><a href="http://tw.emarketing.yahoo.com/ysm/contactus/index.html?o=TW0076&cmp=TW0076" target="_blank">Ads by Yahoo!</a></td></tr></table></td>' +
		'</tr>' +
		'<tr>' +
		'<td bgcolor="#F5F5F0" style="padding:5px 5px 0 5px;">' +
		'<div id="ysm_listing">' +
		'</div>' +
		'</td>' +
		'</tr>' +
		'</table>' +
		'</div>';
	document.getElementById('YahooAd').innerHTML = ysm_html;*/
	//setTimeout(, 0);
}
function loadAdsByIdx(classParamIdx){
	if(typeof classParamIdx != 'number')
		classParamIdx = Math.floor(Math.random()*4); 
	var classParam = [{id:"tw_weblisher_interest_leisure", partner:"tw_syndication_weblisher_cm_test"},
		{id:"tw_weblisher_cooking_food", partner:"tw_syndication_weblisher_cm_test"},
		{id:"tw_weblisher_auto_motor", partner:"tw_syndication_weblisher_cm_test"},
		{id:"tw_weblisher_shopping_auction", partner:"tw_syndication_weblisher_cm_test"}];
	//var clasParamIdx = 3;
		try{
		GetYAdResults(classParam[classParamIdx].id
					, classParam[classParamIdx].partner
					, 'utf8', '3');
		}catch(e){
			//
		}
}
function loadAutoCompleteJS() {
	if(document.getElementById('queryString')){
//		loadScripts('/js/auto2-min.js');
		var css = document.createElement('link');
		css.type = 'text/css';
		css.rel = 'stylesheet';
		css.href = 'img/yahooac.css';
		document.body.appendChild(css);
	}
	else{
//		setTimeout(loadAutoCompleteJS, 2000);
	}
}
function checkOpenUserTab(){
	if(CURRENT_USERNAME && CURRENT_USERNAME!=''){
		openUserTab(CURRENT_USERNAME);
	}else {
		openUserTab();
	}
}

function checkOpenPoiTab(){
	if(OPEN_POI_ID && OPEN_POI_ID!=''){
		addNewTab('poi-detail-'+OPEN_POI_ID,'地標-'+OPEN_POI_NAME,'/pms/loadPoiAction.do?id='+OPEN_POI_ID+'&mode=detail&forward=detail');
	}
}


function refreshMap() {
  map.checkResize();
}

function gotoCookieLocation() {
  var str = document.cookie;
  if(!str) {
    map.centerAndZoom(new ULatLng(25.0573, 121.546), 9);
    return;
  }
  try {
    str = unescape(str)+';';
    var idx = str.indexOf('lastLocation=');
    if(idx<0) {
      map.centerAndZoom(new ULatLng(25.035405, 121.530255), 9);
      return;
    }
    str = str.substring(idx+13, str.indexOf(';', idx));
    var xyz = str.split(',');
    var lat = parseFloat(xyz[0]);
    var lng = parseFloat(xyz[1]);
    var lv = parseInt(xyz[2]);
    if(isNaN(lat) || isNaN(lng) || isNaN(lv)){
      map.centerAndZoom(new ULatLng(25.035405, 121.530255), 9);
    }else
      map.centerAndZoom(new ULatLng(lat, lng), lv);
  } catch(ex) {
    map.centerAndZoom(new ULatLng(25.0573, 121.546), 9);
  }
}

function writeCookieLocation() {
  document.cookie = 'lastLocation='+escape(map.getCenter().lat()+','+map.getCenter().lng()+','+map.getZoomLevel())+';expires=Wed, 01 Jan 2020 00:00:00 GMT';
}
function writeOverviewCookie() {
  document.cookie = 'overview='+(U.gi('overviewDiv').style.display=='none'?'0':'1')+';expires=Wed, 01 Jan 2020 00:00:00 GMT';
}


function overviewInit2() {
	var UOverviewControl = new UOverviewMapControl(150, 150);
	UOverviewControl.id = 'UOverviewControl';
	map.addControl(UOverviewControl, ULeftBottom, new UPoint(0, 0));//UCenterCenter || ULeftBottom || URightBottom

}

function overviewInit() {
  var mapMoved = false;
  var map2Moved = false;
  function mapMoveendListener(ev) {
    if(!map2Moved) {
      mapMoved = true;
      map2.centerMap(map.getCenter());
    } else {
      map2Moved = false;
    }
    writeCookieLocation();
		//alert(Upois.length);
  }
  function map2MoveendListener(ev) {
    if(!mapMoved) {
      map2Moved = true;
      map.centerMap(map2.getCenter());
    } else {
      mapMoved = false;
    }
  }
  function mapZoomListener(oldZ, newZ) {
    /*
    var zoom = newZ-4;
    if(zoom<0)
      zoom = 0;
      */
    var zoom = newZ-4;
    if(newZ>5)
      zoom = 5;
    else if(newZ<5)
      zoom = 0;
    map2.zoomMap(zoom);
    changeBBoxInOverview(newZ-zoom);
  }
  function changeBBoxInOverview(zoom) {
    var bbox = U.gi('bbox');
    var mapDiv = U.gi('mapDiv');
    //bbox.style.width = (mapDiv.clientWidth/Math.pow(2, zoom<4?zoom:4))+'px';
    //bbox.style.height = (mapDiv.clientHeight/Math.pow(2, zoom<4?zoom:4))+'px';
    bbox.style.width = (mapDiv.clientWidth/Math.pow(2, zoom))+'px';
    bbox.style.height = (mapDiv.clientHeight/Math.pow(2, zoom))+'px';
    var overview = U.gi('overviewDiv');
    bbox.style.left = ((overview.clientWidth-bbox.offsetWidth)/2)+'px';
    bbox.style.top = ((overview.clientHeight-bbox.offsetHeight)/2)+'px';
  }
  map.addListener('moveend', mapMoveendListener);
  map.addListener('zoom', mapZoomListener);
  map2 = new UMap(U.gi('overviewDiv'));
  map2.addListener('moveend', map2MoveendListener);
  if(document.cookie.indexOf('overview=0')>=0)
    U.gi('overviewDiv').style.display = 'none';
  U.gi('closeOverviewLink').onclick = function() { U.gi('overviewDiv').style.display = 'none';writeOverviewCookie(); };
  U.gi('openOverviewLink').onclick = function() {
    U.gi('overviewDiv').style.display = 'block';
    map2.centerMap(map.getCenter());
    changeBBoxInOverview(map.getZoomLevel());
    writeOverviewCookie();
  };
}

function iconInit() {
  var icon = new UIcon();
  icon.image = 'img/walkman.gif';
  icon.iconWidth = 24;
  icon.iconHeight = 24;
  icon.iconAnchor = new UPoint(12, 12);
  icon.infoWindowAnchor = new UPoint(12, 0);
  Utarget = new UMarker(new ULatLng(0, 0), icon, null, null, 99);
  map.addOverlay(Utarget);
  icon = new UIcon();
  icon.image = 'img/s.gif';
  icon.iconWidth = 26;
  icon.iconHeight = 30;
  icon.iconAnchor = new UPoint(13, 30);
  icon.infoWindowAnchor = new UPoint(13, 0);
  Ustart = new UMarker(new ULatLng(0, 0), icon, null, null, 100);
  map.addOverlay(Ustart);
  	  Ustart.addListener('dragend', startRouting);
	  Ustart.addListener('click', function(){
		openRoutingInfoWindow(Ustart);
	  });
  icon = new UIcon(icon);
  icon.image = 'img/e.gif';
  Uend = new UMarker(new ULatLng(0, 0), icon, null, null, 100);
  map.addOverlay(Uend);
  	  Uend.addListener('dragend', startRouting);
	  Uend.addListener('click', function(){
		openRoutingInfoWindow(Uend);
	  });
  icon = new UIcon();
  icon.image = 'img/pinmark.gif';
  icon.iconWidth = 16;
  icon.iconHeight = 20;
  icon.iconAnchor = new UPoint(5, 20);
  icon.infoWindowAnchor = new UPoint(5, 0);
  Upin = new UMarker(new ULatLng(0, 0), icon, null, null, 98);
  map.addOverlay(Upin);
  UbusStationIcon = new UIcon();
  UbusStationIcon.image = 'img/busStation.gif';
  UbusStationIcon.iconWidth = 16;
  UbusStationIcon.iconHeight = 30;
  UbusStationIcon.iconAnchor = new UPoint(8, 30);
  UbusStationIcon.infoWindowAnchor = new UPoint(8, 0);
  UpmsIcon = new UIcon();
  UpmsIcon.image = '/img/pmsPoi.gif';
  UpmsIcon.iconWidth = 20;
  UpmsIcon.iconHeight = 20;
  UpmsIcon.iconAnchor = new UPoint(10, 20);
  UpmsIcon.infoWindowAnchor = new UPoint(10, 0);
	
	
	/*==========地圖日記start==========*/
  UadIcon = new UIcon();
  UadIcon.image = "http://www.atlaspost.com/designnew/images/mapicon/iconoff.gif";
  UadIcon.iconWidth = 20;
  UadIcon.iconHeight = 20;
  UadIcon.iconAnchor = new UPoint(10, 10);
  UadIcon.infoWindowAnchor = new UPoint(10, 1);
  /*==========end==========*/
	
}

function eventInit() {
  map.addListener('click', mapMarkerClick);
  //map.addListener('click', asppoiClick);
  map.addListener('click', pmsPoiClick);
  map.addListener('click', hideContextMenu);
  U.addEvent(U.gi('mapDiv'), 'contextmenu', showContextMenu);
  //U.addEvent(U.gi('mapDiv'), 'mousewheel', mapMouseWheelControl);
  U.gi('viewStartLink').onclick = viewStart;
  U.gi('viewEndLink').onclick = viewEnd;
  U.gi('startRoutingLink').onclick = checkRouting;
  U.gi('switchSELink').onclick = switchStartEnd;
  U.gi('resetRoutingLink').onclick = resetRoutingSetting;
  U.gi('setStartMenuItem').onclick = function(ev) {
    U.cancelDefault(ev);
    setRoutingStartLocation(UcontextMenuLatLng, '圖面自訂點');
  };
  U.gi('setEndMenuItem').onclick = function(ev) {
    U.cancelDefault(ev);
    setRoutingEndLocation(UcontextMenuLatLng, '圖面自訂點');
  };
  if(U.gi('getPinCoordsMenuItem'))
    U.gi('getPinCoordsMenuItem').onclick = getPinCoords;
  if(U.gi('closeMenuItem'))
    U.gi('closeMenuItem').onclick = hideContextMenu;
  if(U.gi('addPmsPoiMenuItem'))
    U.gi('addPmsPoiMenuItem').onclick = function(ev) { hideContextMenu(ev);showDialog('新增地標', '/pms/loadPoiAction.do?mode=insert&forward=insert&lat='+UcontextMenuLatLng.lat()+'&lng='+UcontextMenuLatLng.lng());return false; }
  if(U.gi('setCustomPoiMenuItem'))
    U.gi('setCustomPoiMenuItem').onclick = function(ev) { hideContextMenu(ev);showDialog('設定個人地點', '/pms/user/setLocation.jsp?lat='+UcontextMenuLatLng.lat()+'&lng='+UcontextMenuLatLng.lng());return false; }
  
  // --- Start of Edward add 
  U.gi('stloc0').onclick = getUserLocation;  
  U.gi('stloc1').onclick = getUserLocation;  
  U.gi('stloc2').onclick = getUserLocation;  
  U.gi('stloc3').onclick = getUserLocation;  
  U.gi('destloc0').onclick = getUserLocation;  
  U.gi('destloc1').onclick = getUserLocation;  
  U.gi('destloc2').onclick = getUserLocation;  
  U.gi('destloc3').onclick = getUserLocation;  
  
  if(U.gi('feedbackAddressMenuItem'))
    U.gi('feedbackAddressMenuItem').onclick = feedbackAddress;
  
  
  DWREngine.setVerb("GET");
    
  // --- End of Edward add 
}

function showContextMenu(ev) {
  U.cancelDefault(ev);
  U.stopPropagation(ev);
  var menu = U.gi('contextMenu');
  menu.style.display = 'block';
  menu.style.left = (ev.clientX+2)+'px';;
  menu.style.top = ev.clientY+'px';
  UcontextMenuLatLng = map.transformContainerCoordinatesToLatLng(new UPoint(ev.clientX-U.findPosX(U.gi('mapDiv')), ev.clientY-U.findPosY(U.gi('mapDiv'))));
  Upin.setPoint(UcontextMenuLatLng);
  Upin.setMouseonInfo('圖釘點', '經度: '+Math.round(UcontextMenuLatLng.lng()*1000000)/1000000+'<br>緯度: '+Math.round(UcontextMenuLatLng.lat()*1000000)/1000000);
  //map.addOverlay(Upin);
}

function hideContextMenu(ev) {
  //U.cancelDefault(ev);
  U.gi('contextMenu').style.display = 'none';
  //Upin.setPoint(new ULatLng(0,0));
}
var wheelSetTime = 0;
function mapMouseWheelControl(ev) {
	if(!wheelSetTime)
		wheelSetTime = setTimeout(function(){wheelSetTime = 0}, 800);
	else
		return;
	//alert(wheelSetTime);
  if(wheelSetTime && U.wheelDelta(ev)>=120)
    map.zoomOut();
  else if(wheelSetTime && U.wheelDelta(ev)<=-120)
    map.zoomIn();
}

function getPinCoords() {
  hideContextMenu();
  alert('經度: '+Upin.getPoint().lng()+'\n緯度: '+Upin.getPoint().lat()+'\n經度: '+degreeToDMS(Upin.getPoint().lng())+'\n緯度: '+degreeToDMS(Upin.getPoint().lat()));
}

function degreeToDMS(degree) {
  var d = Math.floor(degree);
  var m = Math.floor((degree-d)*60);
  var s = Math.round((degree*60-d*60-m)*60*10)/10;
  var str = d+'°';
  str += m+'\'';
  str += s+'"';
  return str
}

function smartQuery(queryString) {
  //var queryString = document.getElementById('queryText').value.trim();
  if(queryString.length==0)
    return false;
	UCounter.addCount('UrMap首頁_function_搜尋');
  var coords = queryString.split(',');
  if(coords.length==2 && !isNaN(coords[0]) && !isNaN(coords[1])) { // 輸入經緯度查詢
    var label = '目標點';
    if(typeof initTargetName!='undefined' && initTargetName!=null) {
      label = initTargetName;
      initTargetName = null;
    }
    setMapTarget(new ULatLng(parseFloat(coords[1]), parseFloat(coords[0])), label, '經度:'+coords[0]+'<br>緯度:'+coords[1], 0);
    return false;
  }
  SearchBean.search(queryString, '0', smartQueryCallback);
  return false;
}

function smartQueryCallback(result) {
  if(result.length==0) {
    alert('很抱歉我們查不到您所輸入的地點');
    return;
  }
  var locations = result.split(';');
  if(locations.length==1) { // 輸入地址查詢
    var data = locations[0].split(',');
    if(data.length<8) {
      alert(result);
      return;
    }
    var positionType = (data[3]!='1' || data[7]=='準確' || data[7]=='模糊')?1:2;
    setMapTarget(new ULatLng(parseFloat(data[5]), parseFloat(data[4]), U_TM2_COORDSYS), data[1], data[2], positionType);
  } else { // 輸入關鍵字查詢
    var dataTypes = ['', '', '道路', '交叉路口', '縣市', '鄉鎮市區', '村里', '基礎地標','','','','','地標'];
    var resultList = new Object();
    for(var i=0; i<dataTypes.length; i++) {
      resultList[dataTypes[i]] = new Object();
      resultList[dataTypes[i]].count = 0;
    }
    for(var i=0; i<locations.length; i++) {
      var data = locations[i].split(',');
      if(data.length!=8)
        continue;
      if(!resultList[dataTypes[parseInt(data[3])]][data[0]])
        resultList[dataTypes[parseInt(data[3])]][data[0]] = new Array();
      resultList[dataTypes[parseInt(data[3])]][data[0]].push(data[1]+';'+data[5]+';'+data[4]);
      resultList[dataTypes[parseInt(data[3])]].count++;
    }
    U.gi('listDiv').innerHTML = '<div><iframe width="150" height="20" style="float:left;" src="http://banner.urmap.com/getad.php?bannerId=iQ9" frameborder="0" marginheight="0" marginwidth="0" scrolling="no"></iframe><iframe width="150" height="20" style="float:left;" src="http://banner.urmap.com/getad.php?bannerId=yY5" frameborder="0" marginheight="0" marginwidth="0" scrolling="no"></iframe><div style="clear:both;"></div></div>';
    var resultTree = new treelist(U.gi('listDiv'), searchResultClick, false);
    var pickOne = false;
    for(var i=0; i<dataTypes.length; i++) {
      if(resultList[dataTypes[i]].count==0)
        continue;
      var typeNode = new treenode(dataTypes[i]+'('+resultList[dataTypes[i]].count+')', resultTree, true);
      for(city in resultList[dataTypes[i]]) {
        if(city=='count')
          continue;
        var results = resultList[dataTypes[i]][city];
        var cityNode = new treenode(city+'('+results.length+')', typeNode, false);
        for(var j=0; j<results.length; j++) {
          new treenode(results[j].split(';')[0], cityNode, false, results[j]);
          if(!pickOne) {
            var data = results[j].split(';');
            setMapTarget(new ULatLng(parseFloat(data[1]), parseFloat(data[2]), U_TM2_COORDSYS), data[0], null, 3);
            pickOne = true;
          }
        }
      }
    }
    alm.getLayout('mainLayout').showPanel('listDiv');
		UCounter.addCount('UrMap首頁_function_搜尋結果show');
  }
}

function setMapTarget(latlng, label, desc, positionType) {
	if(!Utarget){
		var args = arguments;
		var t = this;
		setTimeout(function(){
			args.callee.apply(t, args);
		}, 300);
		return;
	}
  UpositionType = positionType;
  switch(positionType) {
    case 1:
      Utarget.setMouseonInfo(label);
      break;
    case 2:
      Utarget.setMouseonInfo(desc);
      break;
    default:
      Utarget.setMouseonInfo(label, desc);
  }
  Utarget.setPoint(latlng);
  map.centerMap(latlng);
  Utarget.label = label;
  Utarget.desc = desc;
  mapMarkerClick(Utarget);
}

function mapMarkerClick(overlay, latlng, isRightBtn) {
  if(overlay==Utarget) {
    var html;
    switch(UpositionType) {
      case 0:
        html = '我所在的位置是：<br>'+(Utarget.label=='目標點'?'':'<b style="color:blue;">'+Utarget.label+'</b><br>')+'經度 '+Utarget.getPoint().lng()+'<br>緯度 '+Utarget.getPoint().lat();
        break;
      case 1:
        html = '我所在的位置是：<br><b>'+Utarget.label+'</b>';
		html += '<a href="javascript:void(0);" onclick="sapuz(\'' + Utarget.label + '\',{qname:\'' + Utarget.label + '\', lat:' + Utarget.getPoint().lat() + ', lng:' + Utarget.getPoint().lng() + '})"><img src="sapuz/img/sapuz_link02.gif" /></a><a onclick="sapuz()" href="javascript:void(0)"><img src="sapuz/img/help.gif" /></a>';
        break;
      case 2:
        html = '很抱歉，本系統無此地址資料：<br>'+Utarget.label+'<br><br>目前所在位置是：<br><b style="color:blue;">'+Utarget.desc+'</b>';
        break;
      case 3:
        html = '我所在的位置是：<br><b style="color:blue;">'+Utarget.label+'</b>';
		html += '<a href="javascript:void(0);" onclick="sapuz(\'' + Utarget.label + '\',{qname:\'' + Utarget.label + '\', lat:' + Utarget.getPoint().lat() + ', lng:' + Utarget.getPoint().lng() + '})"><img src="sapuz/img/sapuz_link02.gif" /></a><a onclick="sapuz()" href="javascript:void(0)"><img src="sapuz/img/help.gif" /></a>';
		html += '<p>如果這不是你要找的地點，其他的相關地點都列在右邊的搜尋結果中</p>';
        break;
      case 4:
        html = '我所在的位置是：<b>'+Utarget.label+'</b><br><b style="color:blue;">'+Utarget.desc+'</b>';
        break;		
    }
    html += '<p><a href="javascript:void(0);" id="setStartLink">設為起點</a> | <a href="javascript:void(0);" id="setEndLink">設為終點</a>';
    if(UpositionType==1)
      html += ' | <a href="#" id="addPmsPoiLink">在此處新增地標點</a>';
		if(UpositionType==1)
      html+='<br><br><a href="javascript:void(0);" onclick="preFeedbackOneAddress(\''+Utarget.label+'\');">此地址位置不正確，我要回報</a>';
			
    html += '</p>';
		html += '<br>';
		// 加上廣告
		html += addSearchResultAd();	
    Utarget.openInfoWindow(html);
    
	U.gi('setStartLink').onclick = function() {setRoutingStartLocation(overlay.getPoint(), overlay.label);};
	U.gi('setEndLink').onclick = function() {setRoutingEndLocation(overlay.getPoint(), overlay.label);};
	
	if(UpositionType==1)
		U.gi('addPmsPoiLink').onclick = function() { showDialog('新增地標', '/pms/loadPoiAction.do?mode=insert&forward=insert&lat='+overlay.getPoint().lat()+'&lng='+overlay.getPoint().lng()+'&addr='+encodeURI(overlay.label));return false; };
	
  } else if(overlay==Ustart || overlay==Uend) {
    /*var desc = overlay==Ustart?'導航起點':'導航終點';
    overlay.openInfoWindow(desc+'<br><b style="color:blue;">'+overlay.label+'</b><p><a href="javascript:void(0);" id="removeRoutingNodeLink">移除這個點</a> | <a href="javascript:void(0);" id="switchStartEndLink">起終點對調</a></p>');
    setTimeout(function(){
    U.gi('removeRoutingNodeLink').onclick = function() {removeRoutingNode(overlay);};
    U.gi('switchStartEndLink').onclick = switchStartEnd;
    }, 0);*/
  }
}

function asppoiClick(overlay, latlng) {
  if(overlay) {
    if(!overlay.isPoi)
      return ;
    switch(overlay.passiveAction) {
      case '1':
        var reg = /\s+/;
        if(overlay.extLink && overlay.extLink!='' && reg.test(overlay.extLink))
          window.open(overlay.extLink.indexOf('http')==0?overlay.extLink:'http://'+overlay.extLink);
        break;
      case '2':
        UactivePoi = overlay;
        if(overlay.contentId=='0')
          SearchBean.getAsppoiContent(overlay.pid, showPopupContent);
        else
          //SearchBean.getAdvert(overlay.contentId, showPopupContent);
        break;
      case '3':
        if(overlay.contentId=='0')
          SearchBean.getAsppoiContent(overlay.pid, showDetailContent);
        else
          //SearchBean.getAdvert(overlay.contentId, showDetailContent);
        break;
			case 'imvlog':
        overlay.openInfoWindow(overlay.desc+'<br>'+(overlay.image?'<img src="'+overlay.image+'">':''), 200,150);
        break;
	}
		var title = '';
		var infowindowOptions = new UInfoWindowOptions();
		infowindowOptions.width = 300;
		if (overlay.qtype && overlay.qcode) { // for sapuz openinfowindow
			title = overlay.title;
			var labelParams = '{qname:\'' + title + '\', lat:' + overlay.getPoint().lat() + ', lng:' + overlay.getPoint().lng() + ', qtype:' + overlay.qtype + ', qcode:' + overlay.qcode + ', qadd:\'' + overlay.add + '\'}';
			var label = '<b>' + title + '</b><a href="javascript:void(0)" onclick="sapuz(null,' + labelParams + ');return false;"><img src="sapuz/img/sapuz_link02.gif" /></a><a href="javascript:;" onclick="sapuz()"><img src="sapuz/img/help.gif" /></a><br />';
			var descParams = '{qname:\'' + title + '\', lat:' + overlay.getPoint().lat() + ', lng:' + overlay.getPoint().lng() + ', qadd:\'' + overlay.add + '\'}';
			var desc = overlay.add + '<a href="javascript:void(0)" onclick="sapuz(null,' + descParams + ');return false;"><img src="sapuz/img/sapuz_link02.gif" /></a>';
			infowindowOptions.title = title;
			infowindowOptions.content = '店名: '+label+'地址: '+desc+'<br />電話: '+overlay.tel+'<p><a href="javascript:void(0);" id="setStartLink">設為起點</a> | <a href="javascript:void(0);" id="setEndLink">設為終點</a></p>';
			//infowindowOptions.themeStyle = 'orange';
		} else {
			title = overlay.label;
			var description = overlay.desc.split('<BR>');
			infowindowOptions.title = title;
			infowindowOptions.content = '店名: '+title+'<br />地址: '+description[0]+'<br />電話: '+description[1]+'<p><a href="javascript:void(0);" id="setStartLink">設為起點</a> | <a href="javascript:void(0);" id="setEndLink">設為終點</a></p>';
		}
		infowindowOptions.onOpenFn = function(){
			U.gi('setStartLink').onclick = function() {setRoutingStartLocation(overlay.getPoint(), title);};
			U.gi('setEndLink').onclick = function() {setRoutingEndLocation(overlay.getPoint(), title);};
		}
		overlay.openInfoWindow(infowindowOptions);
  }
}

function showPopupContent(result) {
  if(!result || result=='')
    return;
  UactivePoi.openInfoWindow(result);
}

function showDetailContent(result) {
  if(!result || result=='')
    return;
  U.gi('detailDiv').innerHTML = result;
  alm.getLayout('mainLayout').showPanel('detailDiv');
}

function searchResultClick(node) {
  var data = node.data.split(';');
  setMapTarget(new ULatLng(parseFloat(data[1]), parseFloat(data[2]), U_TM2_COORDSYS), data[0], null, 3);
  node.select(true);
}

function setPoiAd() {
	document.getElementById('poiBannerDiv').innerHTML = '<iframe width="300" height="252" src="http://banner.urmap.com/getad.php?bannerId=I" frameborder="0" marginheight="0" marginwidth="0" scrolling="no"></iframe>';
}

// Click Tab地標
function setPoiEvent() {
	var poiPanel = alm.getLayout('mainLayout').findPanel('poiDiv');
	poiPanel.events.activate.subscribe(function(){
		setPoiAd();
	});
}
function closePoiBtnClicked(){
    UpoiTree.selectAll(false);
    getPoi();
    clearGeoObject();
	clearEventPoi();
	clearGasStations();
	sapuzData = {};
	clearPoi();
	isPoiConfirmed = false;
}

// 2009春節疏運計畫
// 外部連結
function locateTrafficContent() {
	var parameters = window.location.hash.split('#')[1];
	if (parameters == '2009traffic')
		showTrafficContent();
}

// Resize 春節疏運計畫iframe
function resizeTrafficContent(iframe) {
	/*var IS_IE6 = !window.opera && navigator.userAgent.toLowerCase().indexOf('msie 6')>=0;
	var iframeHeight = IS_IE6?380:345 + (screenHeight - 768);
	if (!IS_IE6)
		iframe.style.height = iframeHeight + 'px';*/
	var iframeHeight = document.getElementById('mapDiv').clientHeight - 15;
	iframe.style.height = iframeHeight + 'px';
}

// 2009春節疏運計畫
// Load iFrame
function showTrafficContent() {
	var iframeHtml = '<iframe id="trafficFrame" name="trafficIFrame" src="../traffic/list.html" style="width:100%;height:100%;" frameborder="0" marginwidth="0" marginheight="0" onload="resizeTrafficContent(this)"></iframe>';
	U.gi('detailDiv').innerHTML = iframeHtml;
	alm.getLayout('mainLayout').showPanel('detailDiv');
	var detailPanel = alm.getLayout('mainLayout').findPanel('detailDiv');
	detailPanel.events.deactivate.subscribe(function(){
		if (typeof document.getElementById('trafficFrame').contentWindow.removeAllPolylines == 'function')
			document.getElementById('trafficFrame').contentWindow.removeAllPolylines();
	});
}

// generate an iframe based on the src parameter
function generateIframe(src) {
	if (!src) return;
	var id = 'theIframe_' + new Date().getTime();
	var iframeHtml = '<iframe id="' + id + '" name="' + id + '" src="' + src + '" style="width:100%;height:100%;" frameborder="0" marginwidth="0" marginheight="0" onload="resizeIframe(this)"></iframe>';
	U.gi('detailDiv').innerHTML = iframeHtml;
	alm.getLayout('mainLayout').showPanel('detailDiv');
	UCounter.addCount('UrMap首頁_function_商圈廣告'+src);
}

function poiDivInit() {
  UpoiTree = new treelist(U.gi('cp_menu'), poiTypeClick, false, '/tree/by_cp.xml?update=20100615');
  //map.addListener('moveend', mapChange);
  map.addDelayListener(mapChange, 1500, 'moveend', true);
  map.addListener('zoom', mapChange);
  U.gi('closePoiBtn').onclick = closePoiBtnClicked;
  setPoiAd();
  // 國道替代道路
  //U.gi('trafficAnchor').onclick = showTrafficContent;
}
  function poiTypeClick(node) {alert('poiTypeClick');
    if(node.isSelected()) {
      if(!node.data) {
        node.select(false);
        return;
      }
      var datas = node.data.split(':');
      for(var i=0; i<datas.length; i++) {
        var data = datas[i].split(';');
        if(data[0]=='geo')
          getGeoObject(data[1]);
        else {
          getPoi(data[0], data[1]);
        }
      }
			UCounter.addCount('UrMap首頁_tree_'+node.parentNode.label+'/'+node.label);
			//console.log('UrMap首頁_tree_'+node.parentNode.label+'/'+node.label);
    } else {
      UpoiType = null;
      clearPoi();
      clearGeoObject();
    }
  }
  
  var starttime;
  
  function getPoi(poiSource, poiType) {
  starttime = new Date().getTime();
    if (isPoiConfirmed && UpoiType != poiType)
		isPoiConfirmed = false;
	UpoiSource = poiSource;
    UpoiType = poiType;
    if(!UpoiType) {
      //clearPoi();
      return;
    }
	clearPoi();
    UpoiType = UpoiType.trim();
    map.closeInfoWindow();
    var center = map.getCenter();
    var bounds = map.getBounds();
    if(UpoiSource=='asp') { // 分類地標, 教會, iPeen愛評網, 英卓美食網, 素易(全球素食), 民宿王, 網路消費協會, 基礎地標, 台灣區花店協會, 台灣區花卉輸出業同業公會, CTIN台灣旅盟, 中時汽車網, 台中無線上網AP點, 台灣摩鐵, 英坦士360度景點實景
      SearchBean.findAspPoi(center.x(), center.y(), bounds.getWidth(U_TM2_COORDSYS), bounds.getHeight(U_TM2_COORDSYS), UpoiType, false, getAspPoiCallback);
    } else if(UpoiSource=='1111') { // 1111人力銀行工作機會
      SearchBean.find1111JobInArea(center.x(), center.y(), bounds.getWidth(U_TM2_COORDSYS), bounds.getHeight(U_TM2_COORDSYS), UpoiType, '1', getJob1111Callback);
    } else if(UpoiSource=='surehigh') { // ezhotel台灣飯店訂房網
      getSurehighHotel(UpoiType);
    } else if(UpoiSource=='nhg') {
      SearchBean.findNHG(center.x(), center.y(), bounds.getWidth(U_TM2_COORDSYS), bounds.getHeight(U_TM2_COORDSYS), UpoiType, getNhgCallback);
    } else if(UpoiSource=='nhg_sell') { // 台灣房屋
		SearchBean.findNHG(center.x(), center.y(), bounds.getWidth(U_TM2_COORDSYS), bounds.getHeight(U_TM2_COORDSYS), UpoiType, getNhgCallback);
	} else if(UpoiSource=='nhg_deal') {
		SearchBean.findNHG_Dealed(center.x(), center.y(), bounds.getWidth(U_TM2_COORDSYS), bounds.getHeight(U_TM2_COORDSYS), UpoiType, getNhgCallback);
	} else if(UpoiSource=='hotel') {
		getHotel(UpoiType);
	} else if(UpoiSource=='imvlog') { // im.tv影音
		getImVlog(UpoiType);
    } else if (UpoiSource=='objecttype' || UpoiSource=='bidprice' || UpoiSource=='bidcount' || UpoiSource=='arearange') { // 104法拍屋搜尋引擎
		bid104Search(UpoiSource+':'+UpoiType);
	} else if (UpoiSource=='atlas') { // 地圖日記
		adSearch(UpoiType);
	}
  }
  
  // for sapuz mouseon
  function addMouseOverEvent(overlay) {
	var marker = overlay;
	var descArr = marker.desc.split('<BR>');
	var add = descArr[0];
	var tel = descArr[1];
	marker.title = marker.label;
	marker.add = add;
	marker.tel = tel;
	var labelParams = '{qname:\'' + marker.label + '\', lat:' + marker.getPoint().lat() + ', lng:' + marker.getPoint().lng() + ', qtype:' + marker.qtype + ', qcode:' + marker.qcode + ', qadd:\'' + add + '\'}';
	var descParams = '{qname:\'' + add + '\', lat:' + marker.getPoint().lat() + ', lng:' + marker.getPoint().lng() + ', qadd:\'' + add + '\'}';
	var label = marker.label + '<a href="javascript:void(0);" onclick="sapuz(null,' + labelParams + ');return false;"><img src="sapuz/img/sapuz_link02.gif" /></a>';
	var desc = add + '<a href="javascript:void(0);" onclick="sapuz(null,' + descParams + ');return false;"><img src="sapuz/img/sapuz_link02.gif" /></a>';
	if (tel)
		desc += tel;
	marker.setMouseonInfo(label, desc);
  }
  
  function openAspPoiInfoWindow(event, overlay, latlng) {
	//U.stopPropagation(event);
	asppoiClick(overlay, latlng);
	/*var title = '';
	var infowindowOptions = new UInfoWindowOptions();
	infowindowOptions.width = 300;
	if (overlay.qtype && overlay.qcode) { // for sapuz openinfowindow
		title = overlay.title;
		var labelParams = '{qname:\'' + title + '\', lat:' + overlay.getPoint().lat() + ', lng:' + overlay.getPoint().lng() + ', qtype:\'' + overlay.qtype + '\', qcode:\'' + overlay.qcode + '\', qadd:\'' + overlay.add + '\'}';
		var label = '<b>' + title + '</b><a href="javascript:void(0)" onclick="sapuz(null,' + labelParams + ');return false;"><img src="sapuz/img/sapuz_link02.gif" /></a><a href="javascript:;" onclick="sapuz()"><img src="sapuz/img/help.gif" /></a><br />';
		var descParams = '{qname:\'' + overlay.add + '\', lat:' + overlay.getPoint().lat() + ', lng:' + overlay.getPoint().lng() + ', qadd:\'' + overlay.add + '\'}';
		var desc = overlay.add + '<a href="javascript:void(0)" onclick="sapuz(null,' + descParams + ');return false;"><img src="sapuz/img/sapuz_link02.gif" /></a>';
		infowindowOptions.title = title;
		infowindowOptions.content = '店名: '+label+'地址: '+desc+'<br />電話: '+overlay.tel+'<p><a href="javascript:void(0);" id="setStartLink">設為起點</a> | <a href="javascript:void(0);" id="setEndLink">設為終點</a></p>';
		infowindowOptions.themeStyle = 'orange';
	} else {
		title = overlay.label;
		var description = overlay.desc.split('<BR>');
		infowindowOptions.title = title;
		infowindowOptions.content = '店名: '+title+'<br />地址: '+description[0]+'<br />電話: '+description[1]+'<p><a href="javascript:void(0);" id="setStartLink">設為起點</a> | <a href="javascript:void(0);" id="setEndLink">設為終點</a></p>';
	}
	infowindowOptions.onOpenFn = function(){
		U.gi('setStartLink').onclick = function() {setRoutingStartLocation(overlay.getPoint(), title);};
		U.gi('setEndLink').onclick = function() {setRoutingEndLocation(overlay.getPoint(), title);};
	}
	overlay.openInfoWindow(infowindowOptions);*/
	
  }
  
	function getAspPoiCallback(result) {
		if(!result){
		  //alert('目前的地圖範圍內無任何符合條件的資訊，請變更您的條件或地圖範圍');
		  if (!isPoiConfirmed) {
			  if(!confirm('目前的地圖範圍內無任何符合條件的資訊，您是否繼續搜索？'))
				  closePoiBtnClicked();
			  else
				isPoiConfirmed = true;
		  }
		  return;
		}
		var pois = new Array();
		var da = result.split(';');
		var len = da.length;
		if (len > 0) {
			if (len > 600) len = 600;
			for(i=0; i<len; i++) {
			  var at = da[i].split(',');//console.log(at);
			  if(at.length<13)
				continue;
			  var icon = new UIcon();
			  icon.image = UIconImagePath+at[3];
			  icon.iconWidth = parseInt(at[11]);
			  icon.iconHeight = parseInt(at[12]);
			  icon.iconAnchor = new UPoint(Math.round(icon.iconWidth/2), Math.round(icon.iconHeight/2));
			  icon.infoWindowAnchor = new UPoint(Math.round(icon.iconWidth/2), 0);
			  var coords = new ULatLng(parseInt(at[2]), parseInt(at[1]), U_TM2_COORDSYS);
			  var txt = at[5];
			  if(at[10]!='6')
				txt += '<p><a href="#" onclick="collectAspPoi(\''+at[0]+'\',\''+at[4]+'\',\''+at[5]+'\','+coords.lat()+','+coords.lng()+');return false;">收藏此地標</a><img src="img/new.gif"></p>';
			  var poi = new UMarker(coords, icon, at[4], txt);
			  poi.pid = at[0];
			  poi.label = at[4];
			  poi.desc = at[5];
			  poi.isPoi = true;
			  poi.passiveAction = at[6];
			  poi.extLink = at[7];
			  poi.activeAction = at[8];
			  poi.contentId = at[9];
			  // for sapuz
			  if (sapuzData.qtype && sapuzData.qcode) {
				poi.qtype = sapuzData.qtype;
				poi.qcode = sapuzData.qcode;
				addMouseOverEvent(poi);
			  }
			  poi.addListener('click', openAspPoiInfoWindow);
			  pois.push(poi);
			  if(poi.activeAction!='0' && !UdisplayedActiveAd[poi.contentId]) {
				UactivePoi = poi;
				UdisplayedActiveAd[poi.contentId] = 'displayed';
				if(poi.contentId=='0') {
				  SearchBean.getAsppoiContent(poi.pid, showPopupContent);
				} else {
				  //SearchBean.getAdvert(poi.contentId, showPopupContent);
				}
			  }
			}
		}
		_setPoi(pois);
	}
	
	function bid104Search(key) {  
  var bounds = map.getBounds();
  var url = '/asp/104bid/adSearch.jsp?type_id='+key+'&maxLat='+bounds.getNorthEast().lat()+'&minLat='+bounds.getSouthWest().lat()
            +'&maxLon='+bounds.getNorthEast().lng()+'&minLon='+bounds.getSouthWest().lng();  
  U.loadByAjax(url, bid104SearchCallback);
}

function bid104SearchCallback(xmlhttp) {
  var pois = new Array();
  var doc = xmlhttp.responseXML;
  var ads = U.gt(doc, 'item');
  var bounds = map.getBounds();
  var UadIconR = new UIcon();
  UadIconR.image = '/asp/104bid/bid_r.gif';
  UadIconR.iconWidth = 16;
  UadIconR.iconHeight = 16;
  UadIconR.iconAnchor = new UPoint(8, 8);
  UadIconR.infoWindowAnchor = new UPoint(8, 1);
  var UadIconB = new UIcon(UadIconR);
  UadIconB.image = '/asp/104bid/bid_b.gif';
  UadIconB.iconWidth = 16;
  UadIconB.iconHeight = 16;
  UadIconB.iconAnchor = new UPoint(8, 8);
  UadIconB.infoWindowAnchor = new UPoint(8, 1);
  var UadIconG = new UIcon(UadIconR);
  UadIconG.image = '/asp/104bid/bid_g.gif';
  UadIconG.iconWidth = 16;
  UadIconG.iconHeight = 16;
  UadIconG.iconAnchor = new UPoint(8, 8);
  UadIconG.infoWindowAnchor = new UPoint(8, 1);
  for(var i=0; i<ads.length; i++) {
    var theId = U.getTagValue(ads[i], 'Id');
    var titleName = U.getTagValue(ads[i], 'Name'); 
    var linkUrl = U.getTagValue(ads[i], 'Link');
    var orginDesc = U.getTagValue(ads[i], 'desc');
    var desc = U.getTagValue(ads[i], 'desc')
               +"<br><a href='#' onclick='javascript:window.open(\""+linkUrl+"\")'>詳細資料</a>";
    var latitude = parseFloat(U.getTagValue(ads[i], 'latitude'));
    var longitude = parseFloat(U.getTagValue(ads[i], 'longitude'));
    var theIcon;  
    if(orginDesc.indexOf("拍定") >= 0)  {
    	theIcon = UadIconR;
    }  else if(orginDesc.indexOf("待拍") >= 0 || orginDesc.indexOf("其他") >= 0)  {
    	theIcon = UadIconB;
    }  else  {
    	theIcon = UadIconG;
    }
    var latlng = new ULatLng(latitude, longitude);
    if(bounds.contains(latlng)) {
      var ad = new UMarker(latlng, theIcon, titleName, desc);
      ad.isPoi = true;
      ad.label = '104法拍屋: '+titleName;
      ad.desc = " 案號: "+theId+"<br>"
                +"內容: "+orginDesc+"<br><a href='#' onclick='javascript:window.open(\""+linkUrl+"\")'>詳細資料</a>" ;
      pois.push(ad);
    }
  }
  _setPoi(pois);
}
	
  function getNhgCallback(result) {
    var doc = U.stringToDom(result);
	var objs = U.gt(doc, 'RECORD');
	var pois = new Array();
	var icon = new UIcon();
	icon.image = '/asp/nhg/nh.gif'
	icon.iconWidth = 15;
	icon.iconHeight = 20;
	icon.iconAnchor = new UPoint(8,0);
	icon.infoWindowAnchor = new UPoint(8, 0);
    for (var i=0; i<objs.length; i++) {
		var objtype = U.getTagValue(objs[i],'OBJ_TYPE');
		var branch = U.getTagValue(objs[i],'BRANCH');
		var descr = U.getTagValue(objs[i], 'DESC');
		var eyptalk = U.getTagValue(objs[i], 'EYPTALK');
		//eyptalk = 'http://www.eyp.com.tw/interactive/index.php?act=talk&lang=zh-tw&userid=98750';
		if(objtype=='1' && eyptalk !='' && eyptalk !='null' && eyptalk !=null) {// 待售
			//descr+='<br><a href="#" onClick="window.open(\''+eyptalk+'\',\'0800\',\'width=240,height=350,scrollbars=no,status=no,menubar=no,location=no\');return false;" ><img src="/symbol/phone_btn2.gif"></a>';
			descr+='<br><a href="'+eyptalk+'"  target="_blank"><img src="/symbol/phone_btn2.gif"></a>';
			//descr+='<br><a href="#"  onClick="return genEypTalk(\''+eyptalk+'\');" ><img src="/symbol/phone_btn2.gif"></a>';
		}
		var poi = new UMarker(new ULatLng(parseInt(U.getTagValue(objs[i], 'Y')), parseInt(U.getTagValue(objs[i], 'X')), U_TM2_COORDSYS), icon, U.getTagValue(objs[i], 'LABEL'), descr);

		poi.label = U.getTagValue(objs[i], 'LABEL');
		poi.desc = U.getTagValue(objs[i], 'DESC');
		poi.isPoi = true;
		if(objtype=='1'){  //是待售物件才這樣子做
			poi.passiveAction = '1';
			poi.extLink = 'http://www.twhg.com.tw/buy/buy01.asp?no='+U.getTagValue(objs[i], 'ID');
		}
		else if(objtype=='2') {//成交物件
			var deal_price = U.getTagValue(objs[i],'DEAL_PRICE');
			if(deal_price=='' || deal_price == '0')
				continue;
		}
		pois.push(poi);
	}
	_setPoi(pois);
  }
	
  function getSurehighHotel(bookingType) {
    var sa = bookingType.split(',');
    var bounds = map.getBounds();
    var lb = bounds.getSouthWest();
    var rt = bounds.getNorthEast();
    var lt = new ULatLng(rt.lat(),lb.lng());
    var rb = new ULatLng(lb.lat(),rt.lng());
    for(var i=0;i<sa.length;i++){
    	var sUrl = getBookingUrl+'?ltlng='+lt.lng()+'&ltlat='+lt.lat()+'&rblng='+rb.lng()+'&rblat='+rb.lat()+'&btype='+sa[i]+'&vendor=surehigh'
      var transaction = YAHOO.util.Connect.asyncRequest('GET', sUrl , biCallback, null); 
  	}
  }
  
  function getHotel(bookingType) {
  	
    var sa = bookingType.split(',');
    var bounds = map.getBounds();
    var lb = bounds.getSouthWest();
    var rt = bounds.getNorthEast();
    var lt = new ULatLng(rt.lat(),lb.lng());
    var rb = new ULatLng(lb.lat(),rt.lng());
    for(var i=0;i<sa.length;i++){
    	var sUrl = getBookingUrl+'?ltlng='+lt.lng()+'&ltlat='+lt.lat()+'&rblng='+rb.lng()+'&rblat='+rb.lat()+'&btype='+sa[i]+'&vendor=ALL'
    	var transaction = YAHOO.util.Connect.asyncRequest('GET', sUrl , biCallback, null); 
  	}
  }
  var biCallback = { 
    success: function(o) {
    	var pois = new Array();
    	var xml = o.responseXML;
    	var bis = xml.getElementsByTagName('HOTEL');
    	for(var i=0;i<bis.length;i++){
    		var node = bis[i];
    		var id = node.getAttribute('ID');
    		var address = node.getAttribute('ADDRESS');
    		var cpid = node.getAttribute('CPID');
    		var lat = node.getAttribute('LATITUDE');
    		var link = node.getAttribute('LINK');
    		var lng = node.getAttribute('LONGITUDE');
    		var name = node.getAttribute('NAME');
    		var photo = node.getAttribute('PHOTO');
    		var source = node.getAttribute('SOURCE');
    		var type = node.getAttribute('TYPE');
    		var iconStr = node.getAttribute('ICON');
    		var iconWidth = node.getAttribute('ICON_WIDTH');
    		var iconHeight = node.getAttribute('ICON_HEIGHT');
    		var icon = new UIcon();
      	icon.image = UIconImagePath+iconStr;
      	icon.iconWidth = parseInt(iconWidth);
      	icon.iconHeight = parseInt(iconHeight);
      	icon.iconAnchor = new UPoint(Math.round(icon.iconWidth/2), Math.round(icon.iconHeight/2));
      	icon.infoWindowAnchor = new UPoint(Math.round(icon.iconWidth/2), 0);
      	var poi = new UMarker( new ULatLng(parseFloat(lat), parseFloat(lng)), icon, name, address);
      	poi.linkUrl = link;
      	var cn = node.firstChild;
      	if(cn!=null){
      		poi.descr = cn.nodeValue;
      	}
      	else
      		poi.descr = '';
      	poi.isPoi = true;
      	poi.extLink = link;
      	poi.passiveAction = '1' ;
    		pois.push(poi);
    	}
    	_setPoi(pois);
    }, 
    failure: function(o) {
    	alert('無法取得飯店/景點資料！');
    }, 
    argument: ['']  
  }

function getGeoObject(geoObjectType) {
  U.loadByAjax('/api/getgeo.jsp?type='+geoObjectType, getGeoObjectCallback);
}

function getGeoObjectCallback(xmlhttp) {
  clearGeoObject();
  var xml = xmlhttp.responseXML;
  var geos = U.gt(xml, 'geoobject');
  for(var i=0; i<geos.length; i++) {
    var geoStyle = U.getTagValue(geos[i], 'style');
    var coords = U.getTagValue(geos[i], 'coords');
    var obj;
    if(geoStyle=='1' || geoStyle=='2') {
      var coord = coords.split(';');
      var latlngs = new Array();
      for(var j=0; j<coord.length; j++) {
        var latlng = coord[j].split(',');
        if(latlng.length==2) {
          var pt = new ULatLng(parseFloat(latlng[0]), parseFloat(latlng[1]));
          if(pt.x()>0 && pt.y()>0)
            latlngs.push(pt);
        }
      }
      obj = new UPolyline(latlngs, geoStyle=='2'?'red':null);
    } else {
      continue;
    }
    UgeoObjects.push(obj);
    map.addOverlay(obj);
    //map.centerMap(obj.getVertex(0));
  }
}

  function clearGeoObject() {
    while(UgeoObjects.length>0)
      map.removeOverlay(UgeoObjects.pop());
  }
  function mapChange() {
		if(map.getZoomLevel()<7 )
      clearPoi();
    else {
      getPoi(UpoiSource, UpoiType);
    }
  }
  
function getImVlog(poiType) {  
  var bounds = map.getBounds();
  var url = '/asp/imvlog/search.jsp?type_id='+poiType+'&maxLat='+bounds.getNorthEast().lat()+'&minLat='+bounds.getSouthWest().lat()+'&maxLon='+bounds.getNorthEast().lng()+'&minLon='+bounds.getSouthWest().lng();
  U.loadByAjax(url, getImVlogCallback);
}

function getImVlogCallback(xmlhttp) {
  var pois = new Array();
  var doc = xmlhttp.responseXML;
  var ads = U.gt(doc, 'video');
  var adIcon = new UIcon();
  adIcon.image = '/asp/imvlog/uriconfilm.gif';
  adIcon.iconWidth = 20;
  adIcon.iconHeight = 20;
  adIcon.iconAnchor = new UPoint(10, 10);
  adIcon.infoWindowAnchor = new UPoint(10, 1);
  for(var i=0; i<ads.length; i++) {  	
    var titleName = U.getTagValue(ads[i], 'title'); 
    var addr = U.getTagValue(ads[i], 'address');
    var linkUrl = U.getTagValue(ads[i], 'url');
    var desc = "";
    if(addr != "N")
      desc = addr+"<br>";
    desc += "<a href='#' onclick='javascript:window.open(\""+linkUrl+"\");return false;'>詳細資料</a>";
    var latitude = parseFloat(U.getTagValue(ads[i], 'lat'));
    var longitude = parseFloat(U.getTagValue(ads[i], 'lng'));
    var picUrl = U.getTagValue(ads[i], 'picURL');
    var latlng = new ULatLng(latitude, longitude);
    var ad = new UMarker(latlng, adIcon, titleName, desc);
    ad.isPoi = true;
    ad.passiveAction = 'imvlog';
    ad.desc = "<center> <a href='#' onclick='javascript:window.open(\""+linkUrl+"\")'> <b> "+titleName+" </b> </a> <br>";
    ad.desc += "<img src=\""+picUrl+"\" onload=\"Wa_SetImgAutoSize(this);\" onclick='javascript:window.open(\""+linkUrl+"\")' >"+"</center>";     
    pois.push(ad);
  }
  _setPoi(pois);
}
	
function Wa_SetImgAutoSize(img) {
  var MaxWidth=160;//设置图片宽度界限
  var MaxHeight=120;//设置图片高度界限
  var HeightWidth=img.offsetHeight/img.offsetWidth;//设置高宽比
  var WidthHeight=img.offsetWidth/img.offsetHeight;//设置宽高比
  if(img.offsetWidth>MaxWidth){
    img.width=MaxWidth;
    img.height=MaxWidth*HeightWidth;
  }
  if(img.offsetHeight>MaxHeight){
    img.height=MaxHeight;
    img.width=MaxHeight*WidthHeight;
  }
}
	

function _setPoi(pois) {
  //clearPoi();
  Upois = pois;
  poiOverlayManager.add(Upois);
  poiOverlayManager.refresh();
}
function clearPoi() {
	if (poiOverlayManager) {
		poiOverlayManager.remove();
		
		while(Upois.length>0)
			Upois.pop();
	}
}

function collectAspPoi(id, name, desc, lat, lng) {
  showDialog('收藏地標', '/pms/poi/collect.jsp?asppoiId='+id+'&poiName='+encodeURI(name)+'&poiAddress='+encodeURI(desc)+'&poiPhone=&poiLongitude='+lng+'&poiLatitude='+lat+'&mode=insert');
}

/* routing related function */
function removeRoutingNode(node) {
  setRoutingNode(new ULatLng(0, 0), ' ', node);
  map.closeInfoWindow();
}

function openRoutingInfoWindow(overlay) {
	var html = overlay.desc+'<br><b style="color:blue;">'+overlay.label+'</b><p><a href="javascript:void(0);" id="removeRoutingNodeLink">移除這個點</a> | <a href="javascript:void(0);" id="switchStartEndLink">起終點對調</a></p>';
	overlay.openInfoWindow(html);
	setTimeout(function(){
		U.gi('removeRoutingNodeLink').onclick = function() {
			removeRoutingNode(overlay);
		};
		U.gi('switchStartEndLink').onclick = switchStartEnd;
    }, 500);
}

function setRoutingNode(latlng, label, node) {
  var desc = node==Ustart?'導航起點<br/>(拖拉改變起點)':'導航終點<br/>(拖拉改變終點)';
  node.setPoint(latlng);
  node.setMouseonInfo(label, desc);
  node.label = label;
  if(node==Ustart) {
	  Ustart.setMouseonInfo(label, desc);
  	  Ustart.enableDragging({enableAnamation:1});
    U.gi('viewStartLink').innerHTML = label;
    U.blinkElement(U.gi('viewStartLink').parentNode, '#fbb');
  } else {
      Uend.setMouseonInfo(label, desc);
  	  Uend.enableDragging({enableAnamation:1});
    U.gi('viewEndLink').innerHTML = label;
    U.blinkElement(U.gi('viewEndLink').parentNode, '#fbb');
  }
  alm.getLayout('mainLayout').showPanel('routingDiv');
}

function viewStart() {
  if(Ustart.getPoint().lat()!=0)
    map.centerAndZoom(Ustart.getPoint(), 9);
  return false;
}

function viewEnd() {
  if(Uend.getPoint().lat()!=0)
    map.centerAndZoom(Uend.getPoint(), 9);
  return false;
}

function switchStartEnd() {
  var point = new ULatLng(Ustart.getPoint().lat(), Ustart.getPoint().lng());
  var label = Ustart.label;
  setRoutingNode(Uend.getPoint(), Uend.label, Ustart);
  setRoutingNode(point, label, Uend);
  map.closeInfoWindow();
  consistRoutingLocationRadio();
	UCounter.addCount('UrMap首頁_function_起終點對調');
}

function resetRoutingSetting() {
  removeRoutingNode(Ustart);
  removeRoutingNode(Uend);
  while(UbusStations.length>0)
    map.removeOverlay(UbusStations.pop());
  UbusSolutionNum = null;
  U.gi('routingResultDiv').style.display = 'none';
  if(UroutePath)
    map.removeOverlay(UroutePath);
  
  clearRoutingLocationRadio();
	UCounter.addCount('UrMap首頁_function_全部清除');
}

function checkRouting() {
	if (Ustart.getPoint().lat()==0 || Uend.getPoint().lat()==0) {
		alert('請先設定好起終點!');
		return ;
	}
	startRouting();
}

function startRouting() {
	map.closeInfoWindow();
	if(Ustart.getPoint().lat()==0 || Uend.getPoint().lat()==0) {
    //alert('請先設定好起終點!');
    return ;
  }
  if(U.gi('carRouting').checked==true) {
    SearchBean.getRoute(Math.round(Ustart.getPoint().x()), Math.round(Ustart.getPoint().y()), Math.round(Uend.getPoint().x()), Math.round(Uend.getPoint().y()), startCarRoutingCallback);
    UCounter.addCount('UrMap首頁_function_開車導航');
  } else if(U.gi('busRouting').checked==true) {
    //SearchBean.getPTRouting(Math.round(Ustart.getPoint().x()), Math.round(Ustart.getPoint().y()), Math.round(Uend.getPoint().x()), Math.round(Uend.getPoint().y()),  startBusRoutingCallback);
	ajaxCall(['quickLink?item=busRoutingTest&slng=',Ustart.getPoint().lng(),'&slat=',Ustart.getPoint().lat(),'&elng=',Uend.getPoint().lng(),'&elat=',Uend.getPoint().lat()].join('')
		, function(xhr){
			startBusRoutingCallback(xhr.responseText.replace(/gc use time:\d+?<br>/gi,'').replace(/<a href="#" style="padding-left: 10px;">觀看起點、轉乘及終點站牌位置<\/a>/gi,''));
	},true);
	UCounter.addCount('UrMap首頁_function_大眾運輸導航');
  }
  // 機車導航
  else if(U.gi('motorRouting').checked==true){
	//if (CURRENT_USERNAME && CURRENT_USERNAME != '') {
  	  UCounter.addCount('UrMap首頁_function_機車導航很機車');
  	  SearchBean.getMotorBikeRoute(Math.round(Ustart.getPoint().x()), Math.round(Ustart.getPoint().y()), Math.round(Uend.getPoint().x()), Math.round(Uend.getPoint().y()), startMotorRoutingCallback);
	//} else {
		//removeRoutingNode(Ustart);
		//removeRoutingNode(Uend);
		//getLoginFromRouting();
		//showDialog('登入','/pms/login.jsp', {width:428,height:305,center:{autoScroll:false}});
	//}
  }
}
function startMotorRoutingCallback(result){
	startCarRoutingCallback(result, 'motor');
}
function startCarRoutingCallback(result, isMotor) {
  if(result=='' || result.split(':').length!=4) {
    alert('很抱歉，你輸入的起迄點資料無法規劃出適當路徑，請變更起迄點位置以後再試一次。');
    return;
  }
  var distance = parseFloat(result.split(':')[1]);
  var pts = result.split(':')[2].split(';');
  var pathXY = result.split(':')[3].split(',');
  var html = '<table cellspacing="0"><tr><td class="num">全長</td><td class="value">'+distance+' 公尺</td></tr>';
  var box = new UBounds();
  for(var i=0; i<pts.length; i++) {
    var nxy = pts[i].split(',');
	if (nxy[0] == 'start') nxy[0] = '起點';
	if (nxy[0] == 'destination') nxy[0] = '終點';
    html+='<tr><td class="num">'+(i+1)+'</td><td class="value"><a href="javascript:void(0);" xcoor="'+nxy[1]+'" ycoor="'+nxy[2]+'">&nbsp;'+nxy[0]+'</a></td></tr>';
    box.extend(new ULatLng(parseFloat(nxy[2]), parseFloat(nxy[1]), U_TM2_COORDSYS));
  }
  html+='</table>';
  
  //var searchHotel = '<a onclick="map.centerAndZoom(new ULatLng('+Uend.getPoint().lat()+','+Uend.getPoint().lng()+'), map.getZoomLevel()<7?7:map.getZoomLevel());clickPoiTag(this);UCounter.addCount(\'UrMap首頁_導航終點_線上訂飯店\');return false;" data="asp;141,28,9,10" href="#">搜尋附近旅遊住宿</a>';

  //html += searchHotel;
  box.extend(Ustart.getPoint());
  box.extend(Uend.getPoint());
  U.gi('routingResultDiv').innerHTML = html;
  U.gi('routingResultDiv').style.display = 'block';
  var links = U.gt(U.gi('routingResultDiv'), 'a');
  for(var i=0; i<links.length; i++)
    links[i].onclick = routingVertexLinkClick;
  var viewFullRouteLink = document.createElement('a');
  viewFullRouteLink.href = 'javascript:void(0);';
  viewFullRouteLink.setAttribute('data' ,"asp;141,28,9,10");
  viewFullRouteLink.innerHTML = '觀看全程路線地圖';
  viewFullRouteLink.onclick = function() {
    map.centerAndZoom(box.getCenter(), map.getBoundsZoomLevel(box));
    return false;
  };
  U.gi('routingResultDiv').insertBefore(viewFullRouteLink, U.gi('routingResultDiv').firstChild);
  var searchHotelLink = document.createElement('a');
  searchHotelLink.href = 'javascript:void(0);';
  searchHotelLink.setAttribute('data', 'asp,141,28,9,10');
  searchHotelLink.innerHTML = '搜尋終點附近旅遊住宿';
  //searchHotelLink.id = 'search_nearHotel';
  searchHotelLink.onfocus = function(){this.blur()};
  searchHotelLink.onclick = function() {
    map.centerAndZoom(Uend.getPoint(), map.getZoomLevel()<7?7:map.getZoomLevel());
    getPoi('hotel','0');
    UCounter.addCount('UrMap首頁_導航終點_線上訂飯店');
    return false;
  };
  var searchHotelDiv = document.createElement('div');
  searchHotelDiv.id = 'search_nearHotel';
  searchHotelDiv.appendChild(searchHotelLink);
  U.gi('routingResultDiv').appendChild(searchHotelDiv);
  map.centerAndZoom(box.getCenter(), map.getBoundsZoomLevel(box));
  while(UbusStations.length>0)
    map.removeOverlay(UbusStations.pop());
  if(UroutePath)
    map.removeOverlay(UroutePath);
  var path = new Array();
  for(var i=0; i<pathXY.length/2; i++)
    path.push(new ULatLng(parseFloat(pathXY[2*i+1]), parseFloat(pathXY[2*i]), U_TM2_COORDSYS));
  var opts = {
		points:path,
		color:isMotor?'#296e00':'',
		weight:8,
		opacity:0.5
	}
  UroutePath = new UPolyline(opts);
  map.addOverlay(UroutePath);
}

function routingVertexLinkClick(ev) {
  var vertex = U.findTarget(ev, 'a');
  if(vertex.getAttribute('xcoor'))
    map.centerAndZoom(new ULatLng(parseFloat(vertex.getAttribute('ycoor')), parseFloat(vertex.getAttribute('xcoor')), U_TM2_COORDSYS), 9);
  return false;
}

function startBusRoutingCallback(result) {
  if(UroutePath)
    map.removeOverlay(UroutePath);
  U.gi('routingResultDiv').innerHTML = result;
  U.gi('routingResultDiv').style.display = 'block';
  var links = U.gt(U.gi('routingResultDiv'), 'a');
  for(var i=0; i<links.length; i++) {
    links[i].onclick = busStationLinkClick;
    links[i].href = '#';
  }
  var solutions = U.gt(U.gi('routingResultDiv'), 'td');
  for(var i=0; i<solutions.length; i++) {
    solutions[i].solutionNum = i;
    var viewSolutionLink = document.createElement('a');
    viewSolutionLink.href = '#';
    viewSolutionLink.style.paddingLeft = '10px';
    viewSolutionLink.innerHTML = '觀看此方案所有站牌位置';
    viewSolutionLink.onclick = busSolutionLinkClick;
    solutions[i].appendChild(viewSolutionLink);
  }
  var firstViewSolutionLinks = U.gt(solutions[0], 'a');
  if (firstViewSolutionLinks)
	UEvent.fireEvent(firstViewSolutionLinks[firstViewSolutionLinks.length-1], 'click');
  UbusSolutionNum = null;
}

function setBusStations(solutionNum) {
  if(UbusSolutionNum==solutionNum)
    return;
  UbusSolutionNum = solutionNum;
  while(UbusStations.length>0)
    map.removeOverlay(UbusStations.pop());
  var stLinks = U.gt(U.gt(U.gi('routingResultDiv'), 'td')[solutionNum], 'a');
  for(var i=0; i<stLinks.length; i++) {
    if(stLinks[i].getAttribute('xcoor')) {
      var station = new UMarker(new ULatLng(parseFloat(stLinks[i].getAttribute('ycoor')), parseFloat(stLinks[i].getAttribute('xcoor')), U_TM2_COORDSYS), UbusStationIcon, stLinks[i].innerHTML, null, 98);
      UbusStations.push(station);
      map.addOverlay(station);
    }
  }
}

function busStationLinkClick(ev) {
  var station = U.findTarget(ev, 'a');
  if(station.getAttribute('xcoor')) {
    setBusStations(station.parentNode.solutionNum);
    map.centerAndZoom(new ULatLng(parseFloat(station.getAttribute('ycoor')), parseFloat(station.getAttribute('xcoor')), U_TM2_COORDSYS), 9);
  }
  return false;
}

function busSolutionLinkClick(ev) {
  var solution = U.findTarget(ev, 'td');
  setBusStations(solution.solutionNum);
  var box = new UBounds();
  for(var i=0; i<UbusStations.length; i++)
    box.extend(UbusStations[i].getPoint());
  box.extend(Ustart.getPoint());
  box.extend(Uend.getPoint());
  map.centerAndZoom(box.getCenter(), map.getBoundsZoomLevel(box));
  return false;
}

function setRoutingStartLocation(latlng, label) {
  setRoutingNode(latlng, label, Ustart);
  map.closeInfoWindow();
  hideContextMenu();
}

function setRoutingEndLocation(latlng, label) {
  setRoutingNode(latlng, label, Uend);
  map.closeInfoWindow();
  hideContextMenu();
}


var pmsPOIArray = new Array();
function markPmsPoi(str) {
  clearPmsPoi();
  var poiStr = str.split(';;;');
  for(var i=0; i<poiStr.length; i++) {
    if(poiStr[i].trim()=='')
      continue;
    var da = poiStr[i].split('@@@');
    var uicon = new UIcon();
    var type = da[5];
    if (type=='0') {
      uicon.image = '/pms/img/publicPOIIcon.gif';
    }
    else if (type=='1') {
      uicon.image = '/pms/img/publicPOIIcon.gif';
    }
    else if (type=='2') {
      uicon.image = '/pms/img/privatePOIIcon.gif';
    }
    else if (type=='3') {
      uicon.image = '/pms/img/colPOIIcon.gif';
    }
    uicon.iconWidth = 21;
    uicon.iconHeight = 21;
    uicon.iconAnchor = new UPoint(10, 20);
    uicon.infoWindowAnchor = new UPoint(10, 0);
    //var poi = new UMarker(new ULatLng(parseFloat(da[4]), parseFloat(da[3])), UpmsIcon, da[1], da[2]);
    var poi = new UMarker(new ULatLng(parseFloat(da[4]), parseFloat(da[3])), uicon, da[1], da[2]);
    poi.id = da[0];
    poi.name = da[1];
    poi.isPms = true;
    poi.pmsType = type;
    var chkObj = document.getElementById('poiType' + type);
    if (chkObj.checked == true) map.addOverlay(poi);
    UpmsPois.push(poi);
    if (!pmsPOIArray[type]) { pmsPOIArray[type] = new Array();
    }
    pmsPOIArray[type].push(poi);
  }
}

function clearPmsPoi() {
	while(UpmsPois.length>0){
    map.removeOverlay(UpmsPois.pop());
  }
  pmsPOIArray = new Array();
}

function removePOIType(type) {
  if (pmsPOIArray[type]) {
    for (i=0;i<pmsPOIArray[type].length; i++) {
      map.removeOverlay(pmsPOIArray[type][i]);
    }
  }
}

function remarkPOIType(type) {
  if (pmsPOIArray[type]) {
    for (i=0;i<pmsPOIArray[type].length; i++) {
      map.addOverlay(pmsPOIArray[type][i]);
    }
  }
}

function pmsPoiClick(overlay, latlng) {
  if(!overlay || !overlay.isPms)
    return;
  addNewTab('poi-detail-'+overlay.id,'地標-'+overlay.name,'/pms/loadPoiAction.do?id='+overlay.id+'&mode=detail&forward=detail&nomove=true');
}

function addFirefoxSearchEngine() {
  if((typeof window.sidebar == "object") && (typeof window.sidebar.addSearchEngine == "function")) {
    window.sidebar.addSearchEngine(
      "http://www.urmap.com/firefox/urmap.src",
      "http://www.urmap.com/firefox/urmap.gif",
      "UrMap電子地圖搜尋引擎",
      "General");
  } else {
    alert("此搜尋列僅支援 Firefox 或 Mozilla 瀏覽器");
  }
}


//--Start of add by Edwrad


function getUserLocation( ev ){
	var fid = this.id;
	var fvalue = this.value;
	//alert(this.id);
	//alert(this.value);
	var ptType = fid.substring(0,2);
	
	var ulUrl = '/pms/getUserLocations.jsp?locType='+fvalue+'&ptType='+ptType;
	var transaction = YAHOO.util.Connect.asyncRequest('GET', ulUrl , ulCallback, null); 
}

var ulCallback = { 
    success: function(o) {
    	var text = o.responseText;
    	var sa = text.split(';');
    	if(sa[0].trim()=='success'){
    		var ss = sa[1].split(',');
    		var latlng = new ULatLng(parseFloat(ss[1]),parseFloat(ss[0]));
    		if(ss[3].trim()=='st'){ // 設定起點
    			map.centerMap(latlng);
    			setRoutingStartLocation(latlng, ss[2]);
    			
    		}
    		else{
    			map.centerMap(latlng);
    			setRoutingEndLocation(latlng, ss[2]);
    		}
    			
    	}
    	else if(sa[0]=='failure'){
    		//alert(sa[1].trim()+'!');
    	}
    	else{
    		//alert('Unexpected return header!');
    	}
    	
    	
    }, 
    failure: function(o) {
    	alert(o.statusText);
    	//alert('系統發生錯誤！');
    }, 
    argument: ['']  
  }
  
var allUserPmsPois = new Array();
function getAllUserPmsPoi( str ){
	clearAllUserPmsPoi();
  var poiStr = str.split(';;;');
  for(var i=0; i<poiStr.length; i++) {
    if(poiStr[i].trim()=='')
      continue;
    var da = poiStr[i].split('@@@');
    var uicon = new UIcon();
    var type = da[5];
    if (type=='0') {
      uicon.image = '/pms/img/publicPOIIcon.gif';
    }
    else
    	continue;
    
    uicon.iconWidth = 21;
    uicon.iconHeight = 21;
    uicon.iconAnchor = new UPoint(10, 20);
    uicon.infoWindowAnchor = new UPoint(10, 0);
    var poi = new UMarker(new ULatLng(parseFloat(da[4]), parseFloat(da[3])), uicon, da[1], da[2]);
    poi.id = da[0];
    poi.name = da[1];
    poi.isPms = true;
    poi.pmsType = type;
    allUserPmsPois.push(poi);
  }	
  var chkObj = document.getElementById('openPmsPoi');
  if (chkObj.checked == true) remarkAllUserPmsPOI();
}
function clearAllUserPmsPoi(){
  pmsPoiOverlayManager.remove();
  while (allUserPmsPois.length>0)
	allUserPmsPois.pop();
  allUserPmsPois = new Array();
}

function removeAllUserPmsPOI() {
  for (i=0;i<allUserPmsPois.length; i++) {
    map.removeOverlay(allUserPmsPois[i]);
  }
}

function remarkAllUserPmsPOI() {
	pmsPoiOverlayManager.add(allUserPmsPois);
	pmsPoiOverlayManager.refresh();
}

function clearRoutingLocationRadio(){
	U.gi('stloc0').checked = false;  
  U.gi('stloc1').checked = false;  
  U.gi('stloc2').checked = false;  
  U.gi('stloc3').checked = false;  
  U.gi('destloc0').checked = false;  
  U.gi('destloc1').checked = false;  
  U.gi('destloc2').checked = false;  
  U.gi('destloc3').checked = false;  
}

function consistRoutingLocationRadio(){
	clearRoutingLocationRadio();
	if(Ustart.label == '住家'){
		U.gi('stloc0').checked = true;  
	}
	else if(Ustart.label == '公司'){
		U.gi('stloc1').checked = true;  
	}
	else if(Ustart.label == '學校'){
		U.gi('stloc2').checked = true;  
	}
	else if(Ustart.label == '個人地點'){
		U.gi('stloc3').checked = true;  
	}
	
	if(Uend.label == '住家'){
		U.gi('destloc0').checked = true;  
	}
	else if(Uend.label == '公司'){
		U.gi('destloc1').checked = true;  
	}
	else if(Uend.label == '學校'){
		U.gi('destloc2').checked = true;  
	}
	else if(Uend.label == '個人地點'){
		U.gi('destloc3').checked = true;  
	}
}

//--End of add by Edward

var TempHeadBanner = {
  headBanner: null,
  headBannerContent: new Array(
	  '<a href="http://ad.pccenter.com.tw/activity/International04/index.asp?selectENT=1&AD_website=W00040&AD_location=1" target="_blank"><img src="/banner/468x60_1211.gif"></a>',
    '<a href="/urphone/edm/" target="_blank"><img src="/banner/roll_pic03.gif"></a>',
		'<a href="http://ad.pccenter.com.tw/activity/International04/index.asp?selectENT=1&AD_website=W00040&AD_location=1" target="_blank"><img src="/banner/468x60_1211.gif"></a>',
    '<a href="/YahooMessenger/doc/YM_account.html" target="_blank"><img src="/banner/roll_pic01.gif"></a>',
		'<a href="http://ad.pccenter.com.tw/activity/International04/index.asp?selectENT=1&AD_website=W00040&AD_location=1" target="_blank"><img src="/banner/468x60_1211.gif"></a>',
    '<a href="/urphone/edm/" target="_blank"><img src="/banner/roll_pic03.gif"></a>',
		'<a href="http://ad.pccenter.com.tw/activity/International04/index.asp?selectENT=1&AD_website=W00040&AD_location=1" target="_blank"><img src="/banner/468x60_1211.gif"></a>',
    '<a href="/msn/doc/" target="_blank"><img src="/banner/roll_pic02.gif"></a>'
  ),
  headBannerIdx: 1,
  setBannerDiv: function(div) {
	  TempHeadBanner.headBanner = div;
    TempHeadBanner.headBanner.innerHTML = TempHeadBanner.headBannerContent[0];
    setInterval('TempHeadBanner.headBanner.innerHTML = TempHeadBanner.headBannerContent[(TempHeadBanner.headBannerIdx++)%TempHeadBanner.headBannerContent.length];', 8000);
  }
};

var TempRoutingDivBanner = {
	headBanner: null,
  headBannerContent: new Array(
	'<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" width="250" height="250"><param name="movie" value="/banner/250_250-1218-1.swf"><param name="quality" value="high"><embed src="/banner/250_250-1218-1.swf" quality=high pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="250" height="250"></embed></object>'    
  ),
  headBannerIdx: 1,
  setBannerDiv: function(div) {
    TempRoutingDivBanner.headBanner = div;
    TempRoutingDivBanner.headBanner.innerHTML = TempRoutingDivBanner.headBannerContent[0];
    setInterval('TempRoutingDivBanner.headBanner.innerHTML = TempRoutingDivBanner.headBannerContent[(TempRoutingDivBanner.headBannerIdx++)%TempRoutingDivBanner.headBannerContent.length];', 8000);
  }
};

function _decodeMap(enc) {
  SearchBean.decode(enc, decodeMapCallback);
}

function decodeMapCallback(result) {
  
  var data = result.split('@');
  var latlng;
  if(data[1].length>0) {
    var targetdata = data[1].split(';');
    if(targetdata.length==4) /* old 67 link */
      latlng = new ULatLng(parseFloat(targetdata[3])-200, parseFloat(targetdata[2])+826, U_TM2_COORDSYS);
    else {
      latlng = new ULatLng(parseFloat(targetdata[3]), parseFloat(targetdata[2]));
    }
    setMapTarget(latlng, targetdata[0], targetdata[1], 1);
  }
  var xyz = data[0].split(';');
  if(xyz.length==4)
    latlng = new ULatLng(parseFloat(xyz[1])-200, parseFloat(xyz[0])+826, U_TM2_COORDSYS);
  else {
    latlng = new ULatLng(parseFloat(xyz[1]), parseFloat(xyz[0]));
  }
  map.centerAndZoom(latlng, parseInt(xyz[2]));
  var mode = xyz[3]=='0'?U_MAP_TYPE:(xyz[3]=='1'?U_SATELLITE_TYPE:U_HYBRID_TYPE);
  map.setMapType(mode);
}

// 打開contextmenu
function feedbackAddress() {
  hideContextMenu();
  var content = '<div style="background:#fdd; padding:4px; height:95%; border:1px solid gray;">我要回報此處的地址門牌(樓層不用輸入)<hr><select id="fbadrCity" onchange="fbadrChangeCity();"><option value="">縣市</option><option value="基隆市">基隆市</option><option value="台北市">台北市</option><option value="台北縣">台北縣</option><option value="桃園縣">桃園縣</option><option value="新竹市">新竹市</option><option value="新竹縣">新竹縣</option><option value="苗栗縣">苗栗縣</option><option value="台中市">台中市</option><option value="台中縣">台中縣</option><option value="彰化縣">彰化縣</option><option value="南投縣">南投縣</option><option value="雲林縣">雲林縣</option><option value="嘉義市">嘉義市</option><option value="嘉義縣">嘉義縣</option><option value="台南市">台南市</option><option value="台南縣">台南縣</option><option value="高雄市">高雄市</option><option value="高雄縣">高雄縣</option><option value="屏東縣">屏東縣</option><option value="宜蘭縣">宜蘭縣</option><option value="花蓮縣">花蓮縣</option><option value="台東縣">台東縣</option><option value="澎湖縣">澎湖縣</option></select><select id="fbadrTown" onchange="fbadrChange();"></select>鄉鎮市區<input type="text" id="fbadrVillage" size="4" onkeyup="fbadrChange();"><select id="fbadrVillageType" onchange="fbadrChange();"><option value="村">村</option><option value="里">里</option><option value="名">名</option></select><br><input type="text" id="fbadrRoad" size="10" onkeyup="fbadrChange();"><select id="fbadrRoadType" onchange="fbadrChange();"><option value="路">路</option><option value="街">街</option><option value="大道">大道</option></select><input type="text" id="fbadrSection" size="3" onkeyup="fbadrChange();">段<br><input type="text" id="fbadrLane" size="3" onkeyup="fbadrChange();">巷<input type="text" id="fbadrAlley" size="3" onkeyup="fbadrChange();">弄<input type="text" id="fbadrNo" size="3" onkeyup="fbadrChange();">號之<input type="text" id="fbadrNo2" size="2" onkeyup="fbadrChange();"><hr>請確認您所要回報的完整地址如下：<br><span style="color:red" id="fbadrAddress"></span><br>請輸入您的 email，以便我們通知您處理結果<br><input type="text" id="fbadrMail"><div style="margin:0 15px 17px 0;position:absolute;right:0px;bottom:0px;"><span id="fbadrLoading"></span><input type="button" value="送出" onclick="feedbackAddressSubmit();"><input type="button" value="取消" onclick="map.closeInfoWindow();"></div></div>';
  Upin.openInfoWindow(content, 300, 200);
}

// onchange city
function fbadrChangeCity() {
  var city = U.gi('fbadrCity').value;
  var towns;
  if(city=='基隆市')
    towns = new Array('','七堵區','中山區','中正區','仁愛區','安樂區','信義區','暖暖區');
  else if(city=='台北市')
    towns = new Array('','士林區','大同區','大安區','中山區','中正區','內湖區','文山區','北投區','松山區','信義區','南港區','萬華區');
  else if(city=='台北縣')
    towns = new Array('','八里鄉','三芝鄉','三重市','三峽鎮','土城市','中和市','五股鄉','平溪鄉','永和市','石門鄉','石碇鄉','汐止市','坪林鄉','林口鄉','板橋市','金山鄉','泰山鄉','烏來鄉','貢寮鄉','淡水鎮','深坑鄉','新店市','新莊市','瑞芳鎮','萬里鄉','樹林市','雙溪鄉','蘆洲市','鶯歌鎮');
  else if(city=='桃園縣')
    towns = new Array('','八德市','大園鄉','大溪鎮','中壢市','平鎮市','桃園市','復興鄉','新屋鄉','楊梅鎮','龍潭鄉','龜山鄉','蘆竹鄉','觀音鄉');
  else if(city=='新竹市')
    towns = new Array('','北區','東區','香山區');
  else if(city=='新竹縣')
    towns = new Array('','五峰鄉','北埔鄉','尖石鄉','竹北市','竹東鎮','芎林鄉','峨眉鄉','湖口鄉','新埔鎮','新豐鄉','橫山鄉','關西鎮','寶山鄉');
  else if(city=='苗栗縣')
    towns = new Array('','三義鄉','三灣鄉','大湖鄉','公館鄉','竹南鎮','西湖鄉','卓蘭鎮','南庄鄉','後龍鎮','苗栗市','苑裡鎮','泰安鄉','通霄鎮','造橋鄉','獅潭鄉','銅鑼鄉','頭份鎮','頭屋鄉');
  else if(city=='台中市')
    towns = new Array('','中區','北屯區','北區','西屯區','西區','東區','南屯區','南區');
  else if(city=='台中縣')
    towns = new Array('','大甲鎮','大安鄉','大肚鄉','大里市','大雅鄉','太平市','外埔鄉','石岡鄉','后里鄉','沙鹿鎮','和平鄉','東勢鎮','烏日鄉','神岡鄉','梧棲鎮','清水鎮','新社鄉','潭子鄉','龍井鄉','豐原市','霧峰鄉');
  else if(city=='彰化縣')
    towns = new Array('','二水鄉','二林鎮','大村鄉','大城鄉','北斗鎮','永靖鄉','田中鎮','田尾鄉','竹塘鄉','伸港鄉','秀水鄉','和美鎮','社頭鄉','芳苑鄉','花壇鄉','芬園鄉','員林鎮','埔心鄉','埔鹽鄉','埤頭鄉','鹿港鎮','溪州鄉','溪湖鎮','彰化市','福興鄉','線西鄉');
  else if(city=='南投縣')
    towns = new Array('','中寮鄉','仁愛鄉','水里鄉','名間鄉','竹山鎮','信義鄉','南投市','埔里鎮','草屯鎮','國姓鄉','魚池鄉','鹿谷鄉','集集鎮');
  else if(city=='雲林縣')
    towns = new Array('','二崙鄉','口湖鄉','土庫鎮','大埤鄉','元長鄉','斗六市','斗南鎮','水林鄉','北港鎮','古坑鄉','台西鄉','四湖鄉','西螺鎮','東勢鄉','林內鄉','虎尾鎮','崙背鄉','麥寮鄉','莿桐鄉','褒忠鄉');
  else if(city=='嘉義市')
    towns = new Array('','西區','東區');
  else if(city=='嘉義縣')
    towns = new Array('','大林鎮','大埔鄉','中埔鄉','六腳鄉','太保市','水上鄉','布袋鎮','民雄鄉','朴子市','竹崎鄉','東石鄉','阿里山鄉','梅山鄉','鹿草鄉','番路鄉','新港鄉','溪口鄉','義竹鄉');
  else if(city=='台南市')
    towns = new Array('','中西區','北區','安平區','安南區','東區','南區');
  else if(city=='台南縣')
    towns = new Array('','七股鄉','下營鄉','大內鄉','山上鄉','仁德鄉','六甲鄉','北門鄉','左鎮鄉','永康市','玉井鄉','白河鎮','安定鄉','西港鄉','佳里鎮','官田鄉','東山鄉','南化鄉','後壁鄉','柳營鄉','將軍鄉','麻豆鎮','善化鎮','新化鎮','新市鄉','新營市','楠西鄉','學甲鎮','龍崎鄉','歸仁鄉','關廟鄉','鹽水鎮');
  else if(city=='高雄市')
    towns = new Array('','三民區','小港區','左營區','前金區','前鎮區','苓雅區','新興區','楠梓區','鼓山區','旗津區','鹽埕區');
  else if(city=='高雄縣')
    towns = new Array('','三民鄉','大社鄉','大寮鄉','大樹鄉','仁武鄉','內門鄉','六龜鄉','永安鄉','田寮鄉','甲仙鄉','杉林鄉','岡山鎮','林園鄉','阿蓮鄉','美濃鎮','茄萣鄉','茂林鄉','桃源鄉','梓官鄉','鳥松鄉','湖內鄉','路竹鄉','旗山鎮','鳳山市','橋頭鄉','燕巢鄉','彌陀鄉');
  else if(city=='屏東縣')
    towns = new Array('','九如鄉','三地門鄉','內埔鄉','竹田鄉','牡丹鄉','車城鄉','里港鄉','佳冬鄉','來義鄉','枋山鄉','枋寮鄉','東港鎮','林邊鄉','長治鄉','南州鄉','屏東市','恆春鎮','春日鄉','崁頂鄉','泰武鄉','琉球鄉','高樹鄉','新埤鄉','新園鄉','獅子鄉','萬丹鄉','萬巒鄉','滿州鄉','瑪家鄉','潮州鎮','霧台鄉','麟洛鄉','鹽埔鄉');
  else if(city=='宜蘭縣')
    towns = new Array('','三星鄉','大同鄉','五結鄉','冬山鄉','壯圍鄉','宜蘭市','南澳鄉','員山鄉','頭城鎮','礁溪鄉','羅東鎮','蘇澳鎮');
  else if(city=='花蓮縣')
    towns = new Array('','玉里鎮','光復鄉','吉安鄉','秀林鄉','卓溪鄉','花蓮市','富里鄉','新城鄉','瑞穗鄉','萬榮鄉','壽豐鄉','鳳林鎮','豐濱鄉');
  else if(city=='台東縣')
    towns = new Array('','大武鄉','太麻里鄉','台東市','成功鎮','池上鄉','卑南鄉','延平鄉','東河鄉','金峰鄉','長濱鄉','海端鄉','鹿野鄉','達仁鄉','綠島鄉','關山鎮','蘭嶼鄉');
  else if(city=='澎湖縣')
    towns = new Array('','七美鄉','白沙鄉','西嶼鄉','馬公市','望安鄉','湖西鄉');
  else
    towns = new Array('');
  var town = U.gi('fbadrTown');
  for(var i=town.length-1; i>=0; i--)
    town.remove(i);
  for(var i=0; i<towns.length; i++)
    town.options[i] = new Option(towns[i], towns[i]);
  fbadrChange();
}


// 組完成地址字串
function fbadrChange() {
  var rd = U.gi('fbadrRoad').value==''?'':U.gi('fbadrRoad').value+U.gi('fbadrRoadType').value;
  var village = U.gi('fbadrVillage').value==''?'':U.gi('fbadrVillage').value+U.gi('fbadrVillageType').value;
  var sec = U.gi('fbadrSection').value==''?'':U.gi('fbadrSection').value+'段';
  var lane = U.gi('fbadrLane').value==''?'':U.gi('fbadrLane').value+'巷';
  var alley = U.gi('fbadrAlley').value==''?'':U.gi('fbadrAlley').value+'弄';
  var no = U.gi('fbadrNo').value==''?'':U.gi('fbadrNo').value+'號';
  var no2 = U.gi('fbadrNo2').value==''?'':'之'+U.gi('fbadrNo2').value;
  var addr = U.gi('fbadrAddress');
  addr.innerHTML = U.gi('fbadrCity').value+U.gi('fbadrTown').value+village+rd+sec+lane+alley+no+no2;
}

// submit form 之前的check
function feedbackAddressSubmit() {
  if(U.gi('fbadrMail').value.indexOf('@')<=0) {
    alert('請輸入您的 email');
    return;
  }
  if(U.gi('fbadrCity') && U.gi('fbadrCity').value=='') {
    alert('請選擇縣市鄉鎮');
    return;
  }
  ajaxCall('/SearchEngine/addaddressxytemp.do?address='+encodeURI(U.gi('fbadrAddress').innerHTML)+'&x='+UcontextMenuLatLng.x()+'&y='+UcontextMenuLatLng.y()+'&provider='+encodeURI('UrMap首頁回饋')+'&upload_email='+U.gi('fbadrMail').value+'&action=add&encode=UTF-8', feedbackAddressCallback, false, '<img src="/img/loading.gif">', U.gi('fbadrLoading'));
 if(!U.gi('fbadrCity') && U.gi('fb1MenuItem'))
  U.gi('contextMenu').removeChild(U.gi('fb1MenuItem'));
  map.closeInfoWindow();
}

// 判斷之否成功
function feedbackAddressCallback(xmlhttp) {
  if(xmlhttp.responseText.indexOf('非常感謝您')>0)
    alert('感謝您的協助，我們會儘速審核您所回報的地址');
  else
    alert('系統回報失敗，請確認您輸入的地址有包含正確的縣市及鄉鎮名稱，或稍後再試');
}


function preFeedbackOneAddress(addr) {
  alert('請在地圖上「'+addr+'」的正確位置按下滑鼠右鍵來進行回報');
  map.closeInfoWindow();
  var fbItem = U.gi('fb1MenuItem');
  if(!fbItem) {
    fbItem = document.createElement('a');
    fbItem.id = 'fb1MenuItem';
    fbItem.href = 'javascript:void(0);';
    fbItem.onclick = feedbackOneAddress;
    fbItem.style.cssText = 'color:red;';
    U.gi('contextMenu').insertBefore(fbItem, U.gi('contextMenu').firstChild);
  }
  fbItem.address = addr;
  fbItem.innerHTML = '我要回報「'+addr+'」';
}

function feedbackOneAddress() {
  hideContextMenu();
  var content = '<div style="background:#fdd; padding:4px; height:90%; border:1px solid gray;">我要回報此處的地址門牌<hr>請確認您所要回報的完整地址如下：<br><span style="color:red" id="fbadrAddress">'+U.gi('fb1MenuItem').address+'</span><br>請輸入您的 email，以便我們通知您處理結果<br><input type="text" id="fbadrMail"><div style="position:absolute;right:0px;bottom:0px;"><span id="fbadrLoading"></span><input type="button" value="送出" onclick="feedbackAddressSubmit();"><input type="button" value="取消" onclick="map.closeInfoWindow();"></div></div>';
  Upin.openInfoWindow(content, 300, 110);
}



function ajaxCall(url, callbackFn, isAsynconized, loadingMsg, loadingContainer) {
//	console.log(arguments.callee.caller);
  var loadingDiv = document.createElement('div');
  if(loadingMsg)
    loadingDiv.innerHTML = loadingMsg;
  if(!loadingContainer) {
    loadingContainer = document.body;
    loadingDiv.style.cssText = 'background:red; color:white; padding:3px 5px 3px 5px; position:absolute; right:0px; top:0px;';
  }
  var xmlhttp;
  if(window.ActiveXObject)
    xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
  else if(window.XMLHttpRequest)
    xmlhttp = new XMLHttpRequest();
  if(isAsynconized) {
    xmlhttp.onreadystatechange = function() {
      if(xmlhttp.readyState==4) {
        loadingContainer.removeChild(loadingDiv);
        callbackFn(xmlhttp);
      }
    };
  }
  try {
    loadingContainer.appendChild(loadingDiv);
    xmlhttp.open('GET', url, isAsynconized);
    xmlhttp.send(null);
    if(!isAsynconized) {
      loadingContainer.removeChild(loadingDiv);
      callbackFn(xmlhttp);
    }
  } catch(ex) {
    loadingContainer.removeChild(loadingDiv);
    //alert(ex);
  }
}

function returnToSave() {
  if(Utarget.getPoint().lat()!=0) {
    map.centerMap(Utarget.getPoint());
    mapMarkerClick(Utarget);
  }
  UCounter.addCount('UrMap首頁_function_回到原查詢點');
}


function generateMapLinkString() {
  var mode = map.getCurrentMapType()==U_MAP_TYPE?0:(map.getCurrentMapType()==U_SATELLITE_TYPE?1:2);
  var str = map.getCenter().lng()+';'+map.getCenter().lat()+';'+map.getZoomLevel()+';'+mode+';twd97'+'@';
  if(Utarget.getPoint().lat()!=0)
    str += Utarget.label+';'+Utarget.desc+';'+Utarget.getPoint().lng()+';'+Utarget.getPoint().lat()+';twd97';
  str += '@';
  return str;
}

function linkMap(ev) {
	/*var str = generateMapLinkString();
  DWREngine.setAsync(false);
  SearchBean.encode(str, linkMapCallback);
  DWREngine.setAsync(true);*/
  
  var url = 'http://www.urmap.com/map.jsp';
  var locValue = '';
  var latlng = map.getCenter();
  var latlngEncoded = encodeUrLatlng(latlng.lat()) + ',' + encodeUrLatlng(latlng.lng());
  var level = encodeUrLatlng(map.getZoomLevel());
  var currentLoc = dhtmlHistory.getCurrentLocation();
  var args = {m:latlngEncoded, z:level}
	var encodeStr = objToLocString(args);
  url += '#'+encodeStr;
  var iframeSrc = 'http://www.urmap.com/mapgen/embed.html?centerLatlng=' + map.getCenter().ec() + '&zoomLevel=' + map.getZoomLevel() + '&w=400,h=300&zoom=0&type=0&mapType=400&style=black&icon=0|image=|label=|description=|latlng=BCDcAbfEfGBaJhjCJ|';
  var iframeUrl = '<iframe width="410" height="330" frameborder="no" scrolling="no" marginheight="0" marginwidth="0" src="' + iframeSrc + '"></iframe>';
  var html = '連結網址：<input type="button" value="全選" style="font-size:12px;" onclick="document.getElementById(\'urlTA\').select();"><br><textarea id="urlTA" rows="5" cols="33" style="font-size:13px;">'+url+'</textarea><br><br>HTML連結語法：<input type="button" value="全選" style="font-size:12px;" onclick="document.getElementById(\'htmlTA\').select();"><br><textarea id="htmlTA" rows="7" cols="33" style="font-size:13px;"><a target="_blank" href="'+url+'">地圖連結</a></textarea><br><br>iFrame語法：<input type="button" value="全選" style="font-size:12px;" onclick="document.getElementById(\'iframeTA\').select();"><br><textarea id="iframeTA" rows="7" cols="33" style="font-size:13px;"><iframe width="410" height="330" frameborder="no" scrolling="no" marginheight="0" marginwidth="0" src="'+iframeSrc+'"></iframe></textarea><br /><a href="./mapgen/index.html?center=' + map.getCenter().toUrlString() + '&zoom=' + map.getZoomLevel() + '" target="_blank">自訂嵌入地圖樣式</a><br><br>我要試試看：<a target="_blank" href="'+url+'">地圖連結</a><p style="color:red;">PS.導航結果目前暫時無法提供網頁連結</p>';
  U.gi('detailDiv').innerHTML = html;
  alm.getLayout('mainLayout').showPanel('detailDiv');
  U.blinkElement(U.gi('detailDiv'), '#fbb');
  
  UCounter.addCount('UrMap首頁_function_網頁連結');
}

function emailMap(ev) {
	var str = generateMapLinkString();
  DWREngine.setAsync(false);
  SearchBean.encode(str, emailMapCallback);
  DWREngine.setAsync(true);
  UCounter.addCount('UrMap首頁_function_郵寄');
}

function linkMapCallback(enc) {
  DWREngine.setAsync(true);
  var url = 'http://www.urmap.com/map.jsp?link='+enc;
  var html = '連結網址：<input type="button" value="全選" style="font-size:12px;" onclick="document.getElementById(\'urlTA\').select();"><br><textarea id="urlTA" rows="5" cols="33" style="font-size:13px;">'+url+'</textarea><br><br>HTML連結語法：<input type="button" value="全選" style="font-size:12px;" onclick="document.getElementById(\'htmlTA\').select();"><br><textarea id="htmlTA" rows="7" cols="33" style="font-size:13px;"><a target="_blank" href="'+url+'">地圖連結</a></textarea><br><br>我要試試看：<a target="_blank" href="'+url+'">地圖連結</a><p style="color:red;">PS.導航結果目前暫時無法提供網頁連結</p>';
  U.gi('detailDiv').innerHTML = html;
  alm.getLayout('mainLayout').showPanel('detailDiv');
  U.blinkElement(U.gi('detailDiv'), '#fbb');
}

function emailMapCallback(enc) {
  DWREngine.setAsync(true);
  var url = 'http://www.urmap.com/map.jsp?link='+enc;
  location.href = 'mailto:?subject=UrMap%20Map%20Link&body='+escape(url);
}

function measureDistance(){
	map.setMapAction(U_MEASURE_ACTION);
	UCounter.addCount('UrMap首頁_function_測量距離');
}

function initASPPOI(){
	var menuDiv;
	if (MENUTYPE) {
		menuDiv = document.getElementById(MENUTYPE+'Title');
		myMenu.toggleMenu(menuDiv);
	}
	if(ASPTYPE){
		if (menuDiv) {
			var a = getPoiTag(menuDiv);
			if (a)
				clickPoiTag(a);
		} else {
			GetPOIByString(ASPTYPE);
		}
		/*setTimeout(function(){
			map.zoomMap(8);
		}, 800);*/
		ASPTYPE = null;
	}
}
function GetPOIByString(data){
	var d = data.split(";");
	if( map.getZoomLevel()<7 )
		forceAppearenceType = '';
	
	// split sapuz data
	sapuzData = {};
	if (d[2]) {
		var sapuzArr = d[2].split(':');
		sapuzArr = sapuzArr[1].split(',');
		sapuzData = {qtype:sapuzArr[0],qcode:sapuzArr[1]};
	}
	
  getPoi(d[0],d[1]);
  /*if(GetYAdResults){
	GetYAdResults('tw_weblisher_interest_leisure'
					, 'tw_syndication_weblisher_cm_test'
					, 'utf8', '5');
	
	}*/
}

function getPoiTag(parent) {
	var anchors = parent.getElementsByTagName('a');
	var a;
	for (var i=0; i<anchors.length; i++) {
		if (anchors[i].getAttribute('data').indexOf(ASPTYPE) != -1)
			a = anchors[i];
	}
	return a;
}

function clickPoiTag(a){
    if(map.getZoomLevel()<7)
      return;
	var data = a.getAttribute("data");
	GetPOIByString(data);
	
  	if(CURRENT_POI_CATEGORY){
		CURRENT_POI_CATEGORY.style.cssText = '';
	}
	CURRENT_POI_CATEGORY = a;
	a.style.cssText = 'padding: 2px 8px;	background : #06c;	color: #fff;	text-decoration: none;';
	
}
    	
function selectCategory( cat ){
	SELECT_CAT_MENU_TYPE = cat;
	divId = cat+'CatContent';
	var div = document.getElementById(divId);
	if(div){
		if(div.innerHTML.trim() =='' ){
			loadCategory(cat,false);
		}
	}
}

function loadCategory( cat , isSync ){
	if(!isSync)
		isSync = false;
	ajaxCall('tree/category/'+cat+'.txt?_timestamp='+(+new Date(2009, 5, 13)),loadCategoryCallback, isSync );
}

function initMorakData(){
	ajaxCall('event/morak/data.txt?_timestamp=20090820', function(o){
		var eventSideContentEl = U.gi('eventSideContent');
		var eventSideContentUl = eventSideContentEl.getElementsByTagName('UL')[0];
		var html = [];
		var jsonStr = o.responseText;
		//alert(jsonStr);
		eval("var MORAK_JSON = "+jsonStr);
		var MORAK_JSONLen = MORAK_JSON.length;
		if(MORAK_JSON && MORAK_JSONLen > 0){
			for(var i=0; i<MORAK_JSONLen; i++){
				var mdata = MORAK_JSON[i];
				var clickDataHTML = '(' + mdata[2] + ', ' + mdata[1] + ', ' + mdata[4] + ', ' + mdata[3] + ');';
				var htmlString = '<li>'+mdata[0]+ '<br />'+
					'[<a title="'+mdata[0]+'災前" href="javascript:void(0);" onclick="zoomBeforeMorakot'+clickDataHTML+'">災前</a>/ '+
					'<a title="'+mdata[0]+'災後" href="javascript:void(0);" onclick="zoomAfterMorakot'+clickDataHTML+'">災後</a>]'+
					'</li>';
				html.push(htmlString);
			}
			//console.log(html);
			eventSideContentUl.innerHTML = html.join('');
		}
		//console.log(typeof MORAK_JSON);
	}, false);
}
function loadCategoryCallback(o){
	var str = o.responseText;
	var sa = str.split("\n");
	var html ='';
	for(var i =0; i< sa.length;i++){
		var cat = sa[i].split("@");
	  if(cat.length==2 && cat[0]!='' && cat[0]!='undefined')
		  html += '<a href="#" data="'+cat[1]+'" onclick="clickPoiTag(this);UCounter.addCount(\'UrMap首頁_category_'+cat[0]+'\');return false;" style="text-decoration:none;">'+cat[0]+'</a>';
  }
  var div = document.getElementById(SELECT_CAT_MENU_TYPE+'CatContent');
 	if(div){
		div.innerHTML = html;
	}
}
	
function changeCatBySource( divId ){
 	var div1 = document.getElementById('my_menu');
 	var div2 = document.getElementById('cp_menu');
 	if(divId=='my_menu'){
 		div1.style.display = 'block';	
 		div2.style.display = 'none';	
 	}
 	else{
 		div2.style.display = 'block';	
 		div1.style.display = 'none';	
 	}
}

/*==========地圖日記start==========*/
function adSearchCallback(xmlhttp) {
  //clearPoi();
  var pois = new Array();
  var doc = xmlhttp.responseXML;
  var ads = U.gt(doc, 'post');
  var html = '';
  var bounds = map.getBounds();
  for(var i=0; i<ads.length; i++) {  	
    var titleName = U.getTagValue(ads[i], 'title');
    var linkUrl = U.getTagValue(ads[i], 'url');
		var description = U.getTagValue(ads[i], 'description');
	
		var latitude = parseFloat(U.getTagValue(ads[i], 'lat'));
    var lngitude = parseFloat(U.getTagValue(ads[i], 'lng'));
    var picUrl = U.getTagValue(ads[i], 'userthumbnail');
		//去空白區
		titleName = titleName.trim();
		linkUrl = linkUrl.trim();
		description = description.trim();
		picUrl = picUrl.trim();
	
    var desc = "<center><img src=\""+picUrl+"\" onclick='javascript:window.open(\""+linkUrl+"\")' ><br>";
    desc += "<a href='#' onclick='javascript:{window.open(\""+linkUrl+"\")};'>詳細資料</a></center>";
    var latlng = new ULatLng(latitude, lngitude);
	if(bounds.contains(latlng)) {
      var ad = new UMarker(latlng, UadIcon, titleName, desc);
      ad.isAdPoi = true;
      ad.label = "<center>"+description+"</center>";
      ad.desc = "<center><a href='#' onclick='javascript:{window.open(\""+linkUrl+"\")};'><b>"+titleName+"</b></a><br>";
      ad.desc += "<img src=\""+picUrl+"\" onclick='javascript:window.open(\""+linkUrl+"\")' >"+"</center>";
      pois.push(ad);
	  //Upois.push(ad);
      //map.addOverlay(ad);
    }
  }
  _setPoi(pois);
/*
  if(Uads.length==0) {
    alert('目前的地圖範圍內無任何符合條件的資訊，請變更您的條件或地圖範圍');
  } 
*/
}

function adSearch(UadCategory) {  
  var bounds = map.getBounds();
  var url = '/asp/atlas/adSearch.jsp?type_id='+UadCategory+'&nelat='+bounds.getNorthEast().lat()+'&swlat='+bounds.getSouthWest().lat()
            +'&nelng='+bounds.getNorthEast().lng()+'&swlng='+bounds.getSouthWest().lng();
  U.loadByAjax(url, adSearchCallback);
}


/*==========end==========*/



// 外面連結至機車導航
function locateMotorContent() {
	var isFromMotor = false;
	var parameters = window.location.search.split('?')[1];
	if (parameters) {
		parameters = parameters.split('=')[1];
		if (parameters == 'motor') {
			if (CURRENT_USERNAME && CURRENT_USERNAME != '')	{
				alm.getLayout('mainLayout').showPanel('routingDiv');
				//setEvent();
			} else {
				//getLoginFromRouting();
			}
		}
	}
}


// 機車導航
function getLoginFromRouting() {
	var title = 'Urmap會員';
	var url = '/pms/loginBefore.jsp';
	alm.getPanel('userDiv').getUpdateManager().update({url:url, nocache:true,scripts:true});
	alm.getPanel('userDiv').setTitle(title);
	alm.getLayout('mainLayout').showPanel('userDiv');
}


function setEvent() {
	var routingPanel = alm.getLayout('mainLayout').findPanel('routingDiv');
	routingPanel.events.activate.subscribe(function(){
		document.getElementById('routingBannerDiv').innerHTML = '<iframe width="300" height="252" src="http://banner.urmap.com/getad.php?bannerId=J" frameborder="0" marginheight="0" marginwidth="0" scrolling="no"></iframe>';
	});
}


function getAdjAd( asppoi_type_ids ){
  SearchBean.findAspPoi( 217719, 2646459, 300*1000, 400*1000, asppoi_type_ids, false, getAdPoiCallback );
}

function getAdPoiCallback(result) {
  //  var pois = new Array();
    var da = result.split(';');
		var nearstMarker;
		var nearestDist = 9999999;
    for(i=0; i<da.length; i++) {
      var at = da[i].split(',');
      if(at.length<13)
        continue;
      var coords = new ULatLng(parseInt(at[2]), parseInt(at[1]), U_TM2_COORDSYS);
      var dist = Math.sqrt( Math.pow( (Utarget.getPoint().x()-coords.x()), 2 )+Math.pow( (Utarget.getPoint().y()-coords.y()), 2 )  )
			
			if(dist < nearestDist){
				nearestDist = dist;
		    var icon = new UIcon();
				icon.image = UIconImagePath+at[3];
				icon.iconWidth = parseInt(at[11]);
				icon.iconHeight = parseInt(at[12]);
				icon.iconAnchor = new UPoint(Math.round(icon.iconWidth/2), Math.round(icon.iconHeight/2));
				icon.infoWindowAnchor = new UPoint(Math.round(icon.iconWidth/2), 0);
				
				var txt = at[5];
				var nearstMarker = new UMarker(coords, icon, at[4], txt);
				nearstMarker.pid = at[0];
				nearstMarker.label = at[4];
				nearstMarker.desc = at[5];
				nearstMarker.isPoi = true;
				nearstMarker.passiveAction = at[6];
				nearstMarker.extLink = at[7];
				nearstMarker.activeAction = at[8];
				nearstMarker.contentId = at[9];
				/*
				if(nearstMarker.activeAction!='0' && !UdisplayedActiveAd[nearstMarker.contentId]) {
					UactivePoi = nearstMarker;
					UdisplayedActiveAd[nearstMarker.contentId] = 'displayed';
					if(nearstMarker.contentId=='0')
						SearchBean.getAsppoiContent(nearstMarker.pid, showPopupContent);
					else
						SearchBean.getAdvert(nearstMarker.contentId, showPopupContent);
				}
			     */
			}
		}
		UadObject = nearstMarker;
		map.addOverlay( UadObject );
		if(nearstMarker.contentId){
			UactivePoi = UadObject;
			UdisplayedActiveAd[nearstMarker.contentId] = 'displayed';
			var bounds = map.getBounds();
			if(!bounds.contains(UactivePoi.getPoint()) ){
				bounds.extend(UactivePoi.getPoint());
				var level = map.getBoundsZoomLevel(bounds);
				map.zoomMap(level-1);
			}
			//SearchBean.getAdvert(nearstMarker.contentId, showPopupContent);
		}
		else if( nearstMarker.passiveAction == '1'){
			UactivePoi = UadObject;
			var bounds = map.getBounds();
			if(!bounds.contains(UactivePoi.getPoint()) ){
				bounds.extend(UactivePoi.getPoint());
				var level = map.getBoundsZoomLevel(bounds);
				map.zoomMap(level-1);
			}
			nearestMarker.onclick = function(){ window.open(nearstMarker.extLink);}
		}
		
	}
	

function addSearchResultAd(){
	// 學承
	// return '<div style="display: block; float: right; overflow:hidden;" ><img src="http://apam.urmap.com/apam/upload/pccenter/16_16.gif"><a href="javascript:void(0);" onclick="getAdjAd(\'481\');UCounter.addCount(\'UrMap首頁_function_學承-搜尋結果廣告連結\');">免費學漫畫插畫</a></div>';
	// 麥當勞
	//return '<div style="display: block; float: right; overflow:hidden;" ><img src="http://apam.urmap.com/apam/upload/admin/M_logo.gif" style="vertical-align:middle;"><a href="javascript:void(0);" onclick="getAdjAd(\'253\');UCounter.addCount(\'UrMap首頁_function_麥當勞-搜尋結果廣告連結\');">最近的麥當勞</a></div>';
	//花旗 優力加油天天省
	 //return '<div style="display: block; float: right; overflow:hidden;line-height:20px;" ><img src="../img/Citi-logo_mapList20x20-1.gif" style="width:20px;height:20px;vertical-align:middle;margin:0px 8px 0px 0px;" valign="absmiddle"><a href="javascript:void(0);" onclick="getULeGasStation();UCounter.addCount(\'UrMap首頁_function_花旗-搜尋結果廣告連結\');">優力加油天天省</a></div>';
	 //附近旅遊住宿
	 return '<div style="display: block; float: right; overflow:hidden;line-height:20px;" ><img src="http://apam.urmap.com/apam/upload/surehigh/surehigh_hotel_mark.gif" style="width:16px;height:19px;"><a href="javascript:void(0);" onclick="getPoi(\'hotel\',\'0\');UCounter.addCount(\'UrMap首頁_function-附近旅遊_搜尋結果廣告連結\');">附近旅遊住宿</a></div>';
	 //中秋燒烤好所在getPoi(poiSource, poiType)
	 //return '<div style="display: block; float: right; overflow:hidden;line-height:20px;" ><img src="http://www.urmap.com/img/Urmap_icon16x19.gif" style="width:16px;height:19px;" valign="absmiddle"><a href="javascript:void(0);" onclick="getPoi(\'asp\',\'579\');UCounter.addCount(\'UrMap首頁_function_搜尋結果廣告連結中秋燒烤\');">中秋燒烤好所在</a></div>';
	//呼朋引伴瘋耶誕
	 //return '<div style="display: block; float: right; overflow:hidden;line-height:20px;" ><img src="img/icon_16x16_2.gif" style="width:16px;height:19px;" valign="absmiddle">呼朋引伴瘋耶誕 : <a data="asp;53,54,55,56,57,58,59,60,61,62,1450" href="javascript:void(0);" onclick="clickPoiTag(this);UCounter.addCount(\'UrMap首頁_function_呼朋引伴瘋耶誕-住宿\');">住宿</a>|<a data="asp;7,547,552,1430,1434,1436,1443,1444,1459,225,1442" href="javascript:void(0);" onclick="clickPoiTag(this);UCounter.addCount(\'UrMap首頁_function_呼朋引伴瘋耶誕-旅遊\');">旅遊</a>|<a data="asp;26,569,570,571,572,940,1458,458,599,877,880,999,1002,1005,1007,1009,90,179,458,89,461,87,460,88,459,532" href="javascript:void(0);" onclick="clickPoiTag(this);UCounter.addCount(\'UrMap首頁_function_呼朋引伴瘋耶誕-餐廳\');">餐廳</a></div>';
	//新年假期何處去
	 //return '<div style="display: block; float: right; overflow:hidden;line-height:20px;" ><img src="img/canon15x19.gif" style="width:16px;height:19px;" valign="absmiddle">新年假期何處去 : <a data="asp;53,54,55,56,57,58,59,60,61,62,1450" href="javascript:void(0);" onclick="clickPoiTag(this);UCounter.addCount(\'UrMap首頁_function_新年假期何處去-住宿\');">住宿</a>|<a data="asp;7,547,552,1430,1434,1436,1443,1444,1459,225,1442" href="javascript:void(0);" onclick="clickPoiTag(this);UCounter.addCount(\'UrMap首頁_function_新年假期何處去-旅遊\');">旅遊</a>|<a data="asp;26,569,570,571,572,940,1458,458,599,877,880,999,1002,1005,1007,1009,90,179,458,89,461,87,460,88,459,532" href="javascript:void(0);" onclick="clickPoiTag(this);UCounter.addCount(\'UrMap首頁_function_新年假期何處去-餐廳\');">餐廳</a></div>';
	// 88節 花店協會廣告
	//return '<div style="display: block; float: right; overflow:hidden;line-height:20px;"><img src="img/icon-ad-88-day.jpg" width="20" height="20" style="vertical-align:middle;margin:1px 3px 0 0;" /><a style="color:#cc0000;" href="http://www.flowergift.org.tw/flower/front/bin/home.phtml" onclick="UCounter.addCount(\'UrMap首頁_function_88節搜尋結果廣告連結\');" target="_blank">還在煩惱父親節送什麼好嗎?</a></div>';
	// 七夕情人節 花店協會廣告
	//return '<div style="display: block; float: right; overflow:hidden;line-height:20px;"><a style="color:#cc0000;" href="http://www.flowergift.org.tw/flower/front/bin/home.phtml" onclick="UCounter.addCount(\'UrMap首頁_function_七夕情人節搜尋結果廣告連結\');" target="_blank"><img src="img/ad-chinese-valentines-day.jpg" width="150" height="30" style="vertical-align:middle;margin:1px 3px 0 0;" />七夕情人節-送禮排行榜</a></div>';
	//聖誕跨年約會地推薦
	 //return '<div style="display: block; float: right; line-height:20px;" ><img src="img/Xmas_icon.gif" style="width:24px;height:24px;vertical-align:middle;margin:-6px 3px 0 0;*margin-top:0;"><a href="http://ur543.urmap.com/" target="_blank"  onclick="getPoi(\'hotel\',\'0\');UCounter.addCount(\'UrMap首頁_function-聖誕跨年約會地推薦_搜尋結果廣告連結\');">聖誕跨年約會地推薦</a></div>';
	 //2010新春玩樂地點推薦
	 //return '<div style="display: block; float: right; overflow:hidden;line-height:20px;" ><a href="event/2010NewYear/index.html" target="_blank" onclick="getPoi(\'hotel\',\'0\');UCounter.addCount(\'UrMap首頁_function-2010新春玩樂地點推薦_搜尋結果廣告連結\');"><img src="img/bubble_banner.gif" style="width:120px;height:26px;"></a></div>';
}

var Uads = new Array();
var cityBankIcon = new UIcon();
  cityBankIcon.image = "http://citibank.urmap.com/citibank/imgs/Citi-logo_mapList0714.jpg";
  cityBankIcon.iconWidth = 36;
  cityBankIcon.iconHeight = 28;
  cityBankIcon.iconAnchor = new UPoint(10, 10);
  cityBankIcon.infoWindowAnchor = new UPoint(10, 1);

function getNearCityShop(){
	if(map.getZoomLevel() >= 7){
		var encode = '';
		encode = 'UTF-8';
		var mbounds = map.getBounds();
		var url = 'CitiBankSearch.jsp?'
	  			+'NEx='+mbounds.getNorthEast().x()+'&NEy='+mbounds.getNorthEast().y()+'&SWx='+mbounds.getSouthWest().x()+'&SWy='+mbounds.getSouthWest().y();
	  
	 	U.loadByAjax(url, getNearCityShopCallback);
    }
}
function clearCityAds() {
  while(Uads.length>0)
    map.removeOverlay(Uads.pop());
}
function addGasStations() {
	for (var i=0; i<Uads.length; i++) {
		map.addOverlay(Uads[i]);
	}
}
function clearGasStations() {
	for (var i=0; i<Uads.length; i++) {
		map.removeOverlay(Uads[i]);
	}
}
function getULeGasStation(){
	if (map.getZoomLevel() >= 7) {
		if (Uads.length == 0) {
			var encode = '';
			encode = 'UTF-8';
			var mbounds = map.getBounds();
			//var sw = new ULatLng(119.89514265830016, 21.960669794943666);
			//var ne = new ULatLng(121.94078645016157, 25.239362181573096);
			var swX = 161845;
			var swY = 2495600;
			var neX = 334470;
			var neY = 2782500;
			var url = 'CitiBankSearch.jsp?citiType='+encodeURI('台灣優力加油優惠')+'&'
					+'NEx='+neX+'&NEy='+neY+'&SWx='+swX+'&SWy='+swY;
			U.loadByAjax(url, getNearGasStationCallback);
		} else {
			addGasStations();
			getNearGasStation();
		}
	}
}

function getNearGasStation() {
	var bounds = map.getBounds();
	var centerPoint = bounds.getCenter();
	var index = 0;
	var minDistance = 0;
	for (var i=0; i<Uads.length; i++) {
		var dist_x = parseInt(Uads[i].getPoint().x()) - parseInt(centerPoint.x());
		var dist_y = parseInt(Uads[i].getPoint().y()) - parseInt(centerPoint.y());
		var distance = Math.sqrt((dist_x * dist_x) + (dist_y * dist_y));
		if (i == 0) {
			index = i;
			minDistance = distance;
		}
		if (distance < minDistance) {
			index = i;
			minDistance = distance;
		}
	}
	//console.log('northeast lat' + bounds.getNorthEast().lat() + 'northeast lng' + bounds.getNorthEast().lng() + 'southwest lat' + bounds.getSouthWest().lat() + 'southwest lng' + bounds.getSouthWest().lng());
	if (!bounds.contains(Uads[index].getPoint())) {
		bounds.extend(Uads[index].getPoint());
		var zoomLevel = map.getBoundsZoomLevel(bounds) - 1;
		map.centerAndZoom(centerPoint, zoomLevel);
	}
}
function getNearGasStationCallback(xmlhttp){
  //clearCityAds();
  var doc = xmlhttp.responseText ? xmlhttp.responseText.trim() : xmlhttp.trim();
  var ads = doc.split('；');	//；　＝＝＞全形
  var imageFilePath = 'http://citibank.urmap.com/citibank/imgs/customer_imgs/';
  var html = '';
  var bounds = map.getBounds();
  
	function ashWords(word) {
		return '<font color="#333333">' + word + '</font>';
	}
	function bindMarkerClickEvent(_marker, _latlng, _citiName, _desc){
		_marker.addListener('click', function() {
			_marker.openInfoWindow(_desc, 335, 180);
			U.gi('setStartLink').onclick = function() {setRoutingStartLocation(_marker.getPoint(), _citiName);};
    		U.gi('setEndLink').onclick = function() {setRoutingEndLocation(_marker.getPoint(), _citiName);};
			  });
	}
  if(0 != doc.length) {
	  var chkLatLng = new Array(); //用來存放地標值，檢查是否有重覆
	  var detail_list = '';
	  detail_list += '*分期門檻與期數，以及0手續費之商品，以特約商店公告為主<br>';
	  for(var i=0; i<ads.length; i++) {
		//alert(ads[i]);
		var data = ads[i].split(',');
		var citi_Id = data[16];	//店家ID
		var citiName = data[0];	//店名
		var cat = data[1];	//店家類別
		var address = data[2];	//住址
		
		var TEL1 = data[3];	//電話1	(測試用  記得改回來)
		var TEL2 = data[4];	//電話2
		var latestMsg = data[5];
		latestMsg = latestMsg.replace(/strong/g, 'b');
		var latestMsgByHtml = '<font color="#004287">'+latestMsg+'</font>';	//最新優惠<一串html語法>
		var imageFileName = data[6];	//圖檔名稱
		
		var hyperlink = data[7];	//店家連結
		var flag = data[8];	//異動狀態
		
		var latitude = parseFloat(data[14]);	//y
		var lngitude = parseFloat(data[13]);	//x
		
		//檢查坐標是否有重覆
  		/*var _2_LatLng = [];
		if(chkLatLng.length > 0) {
			for(var tmp_i=0;tmp_i<chkLatLng.length;tmp_i++) {
				var tmp_latitude = chkLatLng[tmp_i];
				var _1_Lat = parseFloat(tmp_latitude[0]);
				var _2_Lng = parseFloat(tmp_latitude[1]);
				
				if((_1_Lat == latitude) && (_2_Lng == lngitude)) {
					latitude = latitude + 10;
					lngitude = lngitude + 10;
					_2_LatLng[0] = latitude;
					_2_LatLng[1] = lngitude;
					//chkLatLng.push(_2_LatLng);
					tmp_i = 0;	//重新在與陣列中比對
					//continue;
				} else {
					_2_LatLng[0] = latitude;
					_2_LatLng[1] = lngitude;
					//chkLatLng.push(_2_LatLng);
				}
			}
			chkLatLng.push(_2_LatLng);
		} else {
			_2_LatLng[0] = latitude;
			_2_LatLng[1] = lngitude;
			chkLatLng.push(_2_LatLng);
		}*/
		//alert(citiName+'\n'+'y:'+latitude+'\tx:'+lngitude);
		//new ULatLng(parseFloat(location_y), parseFloat(location_x), U_TM2_COORDSYS);
		var latlng = new ULatLng(latitude, lngitude, U_TM2_COORDSYS);
		var _desc = '<table width="90%" border="0">';
		var title_Words = '';
		var _Column_add = 0;	//用於記錄資料  for 泡泡視窗
		var _Column_tel = 0;	//用於記錄資料  for 泡泡視窗
		var _Column_msg = 0;	//用於記錄資料  for 泡泡視窗
		var _Column_img = 0;	//用於記錄資料  for 泡泡視窗
		
		if(citiName) {
			title_Words += citiName;
			
			var tmp_Str = '';
			if(hyperlink) {
				if(hyperlink.indexOf('"') != -1) {	//過濾雙引號
					hyperlink = hyperlink.replace('"','');
				}
				tmp_Str = hyperlink;
				if(tmp_Str.indexOf('http://') == -1)
					tmp_Str = 'http://' + tmp_Str;
			}
			
			detail_list += '<table border="0"><tr><td>'
						+ '<a href="#" onmouseover="mouseOnShowMapData(\''+citiName+'\');" ';
			//如沒Link 則click 拿掉
			if('' != tmp_Str) {
				detail_list += ' onclick="javascript:{window.open(\''+tmp_Str+'\')};" ';
			}
			detail_list += ' style="text-decoration:none"><img src="./imgs/result.gif" height="20px" width="20px" />'
					+ '<font color="#333333"><strong>' + citiName + '</strong></font></a></td></tr>';
		}
		
		if('' != address) {
			_desc += '<tr height="20"><td colspan="4">' + ashWords(address) + '</td></tr>';
			
			detail_list += '<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;' + ashWords(address) + '</td></tr>';
			_Column_add = 1;
		}
		
		if(TEL1 || TEL2) {
			_desc += '<tr height="20" valign="top"><td colspan="4">';
			detail_list += '<tr><td>';
			if(TEL1) {
				_desc += ashWords(TEL1);
				detail_list += '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;' + ashWords(TEL1);
			}
			
			if(TEL2) {
				_desc += '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;' + ashWords(TEL2);
				detail_list += '<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;' + ashWords(TEL2);
			}
			_desc += '</td></tr>';
			detail_list += '</td></tr>';
			_Column_tel = 1;
		}
		detail_list += '</table>';
		
		if(latestMsg && ('' != latestMsg.trim())) {
			_desc += '<tr><td colspan="4">' + latestMsgByHtml + '</td></tr>';
			_Column_msg = 1;
		}
		
		if(imageFileName && ('' != imageFileName.trim())) {
			_desc += '<tr>';
			_desc += '<td colspan="2" width="100px"><img src="'+(imageFilePath + imageFileName)+'" alt="" onerror="this.src=\''+imageFilePath+'Error_default.gif\'" />';
			_Column_img = 1;
			_desc += '</td></tr>';
		}/* else {
			_desc += '<td colspan="2">&nbsp;';
		}*/
		
		_desc += '<tr><td>';
		
		_desc += '<a href="javascript:void(0);" id="setStartLink">設為起點</a> | <a href="javascript:void(0);" id="setEndLink">設為終點</a> | <a onclick="javascript:{window.open(\'http://www.citibank.com.tw/global_docs/chi/cc/rewards_upetrol/index.htm\')};" href="javascript:void(0);"> 活動詳情 </a>';
		
		//_desc += ' | <a href="javascript:void(0);" onclick="javascript:{clearUmapInfoWindow();};">關閉視窗</a>';
		
		if(hyperlink) {
			if(hyperlink.indexOf('http://') == -1)
				hyperlink = 'http://' + hyperlink;
			_desc += ' | <a href="javascript:void(0);" onclick="javascript:{window.open(\''+hyperlink+'\')};">店家資訊</a>';
		}/* else {
			_desc += '&nbsp;';
		}*/
		
		_desc += '</td></tr></table>';

		var ad = new UMarker(latlng, cityBankIcon, citiName);
		ad.isAdPoi = true;
		ad.label = title_Words;
		ad.desc = _desc;
		ad._Column_add = _Column_add;
		ad._Column_tel = _Column_tel;
		ad._Column_msg = _Column_msg;
		ad._Column_img = _Column_img;
		bindMarkerClickEvent(ad, latlng, citiName, '<div style="color:#333;font-weight:bold;">' + citiName + '</div>' + _desc);
		Uads.push(ad);
		map.addOverlay(ad);
	  }
	  /*if(listPageFlag) {
		//列表頁內文
  		U.gi("listDiv").innerHTML = detail_list;
  		_Utabpane.selectTab('list');
	  }*/
  }
  getNearGasStation();
  //listPageFlag = false;	//點tree列表  也要秀結果  so  關閉它
  /*if(Uads.length==0) {
	//clearAllAdss();
	U.gi("listDiv").innerHTML = '';
    alert('目前的地圖範圍內無任何符合條件的資訊，請變更您的條件或地圖範圍');
  } */
}
// for mazu event
function mazuBike(){
	var coords = new ULatLng(24.013003,120.680396);
	getEventPois(coords,2,'491,492');
	getGeoObject('5');
	startGPS();
  /*
  	map.centerAndZoom(coords,2);
	var center = map.getCenter();
	var bounds = map.getBounds();
	UpoiSource = 'asp';
	UpoiType = '491,492';
	SearchBean.findAspPoi(center.x(), center.y(), bounds.getWidth(U_TM2_COORDSYS), bounds.getHeight(U_TM2_COORDSYS), UpoiType, false, getAspPoiCallback);
	*/

}

function getEventPois( latlng,zoom, asppoi_type_ids ){
	map.centerAndZoom(latlng,zoom);
	var center = map.getCenter();
  var bounds = map.getBounds()
	SearchBean.findAspPoi( center.x(), center.y(), 300*1000, 400*1000, asppoi_type_ids, false, getEventPoiCallback );
}

function getEventPoiCallback( result ){
	var da = result.split(';');
  for(i=0; i<da.length; i++) {
      var at = da[i].split(',');
      if(at.length<13)
        continue;
      var icon = new UIcon();
      icon.image = UIconImagePath+at[3];
      icon.iconWidth = parseInt(at[11]);
      icon.iconHeight = parseInt(at[12]);
      icon.iconAnchor = new UPoint(Math.round(icon.iconWidth/2), Math.round(icon.iconHeight/2));
      icon.infoWindowAnchor = new UPoint(Math.round(icon.iconWidth/2), 0);
      var coords = new ULatLng(parseInt(at[2]), parseInt(at[1]), U_TM2_COORDSYS);
      var txt = at[5];
      if(at[10]!='6')
      	txt += '<p><a href="#" onclick="collectAspPoi(\''+at[0]+'\',\''+at[4]+'\',\''+at[5]+'\','+coords.lat()+','+coords.lng()+');return false;">收藏此地標</a><img src="img/new.gif"></p>';
      var poi = new UMarker(coords, icon, at[4], txt);
      poi.pid = at[0];
      poi.label = at[4];
      poi.desc = at[5];
      poi.isPoi = true;
      poi.passiveAction = at[6];
      poi.extLink = at[7];
      poi.activeAction = at[8];
      poi.contentId = at[9];
      UEventPois.push(poi);
      
  }
		
  for(var i=0; i<UEventPois.length; i++)
	  map.addOverlay(UEventPois[i]);
}

function clearEventPoi() {
  while(UEventPois.length>0)
    map.removeOverlay(UEventPois.pop());
}
function initExam97(){
	//alm.getPanel('hotDiv').getUpdateManager().update({ url:'/EXAM97/exam001.html', scripts:true});
	//alm.getPanel('detailDiv').getUpdateManager().update('EXAM97/exam001.html');
	/*var iframeExam97 = document.createElement('iframe');
	iframeExam97.src = "/EXAM97/exam01.html";
	iframeExam97.width="100%";
	iframeExam97.height="400";
	iframeExam97.frameborder="0";
	iframeExam97.allowtransparency="true" ;
	iframeExam97.style.border = "0px";
	U.gi('detailDiv').appendChild(iframeExam97);*/
	U.gi('detailDiv').innerHTML = '<iframe id="EXAM97Frame" scrolling="no" style="overflow-x:hidden;" name="EXAM97Frame" src="/EXAM97/exam01.html" width="100%" height="360" frameborder="0" allowtransparency="true" ></iframe>';
    U.gi('EXAM97Frame').src = "/EXAM97/exam01.html";
    alm.getLayout('mainLayout').showPanel('detailDiv');
}
function exam97(alink, latlng, addr){
	var sp = latlng.split(',');
	var exam97latlng = new ULatLng(parseFloat(sp[0]), parseFloat(sp[1]), U_TM2_COORDSYS);
	
	var label = typeof alink == 'string'?alink:alink.innerHTML;
	Utarget.setPoint(exam97latlng);
	setMapTarget(exam97latlng, label, addr, 4);
}
function addBookmarkLink() {
	if(document.all)
		window.external.AddFavorite(location.href,document.title);
	else if(window.sidebar)
		window.sidebar.addPanel(document.title,location.href,'');
}
function setHomepage()
{
 if (document.all)
    {
        document.body.style.behavior='url(#default#homepage)';
  		document.body.setHomePage('http://www.urmap.com');
 
    }
    else if (window.sidebar)
    {
	    if(window.netscape)
	    {
			try
			{ 
				netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); 
			} 
			catch (e) 
			{ 
				alert( "該操作被瀏覽器拒絕，如果想啓用該功能，請在地址欄內輸入 about:config,然後將項 signed.applets.codebase_principal_support 值該為true" ); 
			}
    	}
	    var prefs = Components.classes['@mozilla.org/preferences-service;1'].getService(Components. interfaces.nsIPrefBranch);
	    prefs.setCharPref('browser.startup.homepage','http://www.urmap.com');
 	}
}
function resizeIframe(iframe){
	/*var IS_IE6 = !window.opera && navigator.userAgent.toLowerCase().indexOf('msie 6')>=0;
	var iframeHeight = IS_IE6?380:345 + (screenHeight - 768);
	iframe.height = iframeHeight;*/
	var iframeHeight = document.getElementById('mapDiv').clientHeight - 45;
	iframe.style.height = iframeHeight + 'px';
}

function initRSH(){
	map.addListener('moveend', function(){addHistoryEvent('m')});
	map.addListener('zoom', function(){addHistoryEvent('z')});
	var args = getSharpArgs();
			//alert(CENTER);
	if(CENTER  && !isNaN(parseInt(ZOOM))&&ZOOM>=0){
		var sp = CENTER.split(',');
		var latlng = new ULatLng(sp[0], sp[1]);
		map.centerAndZoom(latlng, ZOOM);
		if (ISMARKER)
			map.addOverlay(new UMarker(latlng));
	}else if(!chkNullObject(args)){
		gotoLocation(args);
	}else{
		map.gotoCookieLocation();
	}
	dhtmlHistory.initialize();
	dhtmlHistory.addListener(historyChange);
}
function historyChange(){
	
}
function chkNullObject(obj){
	var chk = true;
	for(var ii in obj){
		chk = false;
		//log(chk);
		break;
	}
	//alert(chk);
	return chk;
}
function gotoLocation(args){
	var sp = args.m?args.m.split(','):'';
	if(sp)
		args.m = decodeUrLatlng(sp[0])+','+decodeUrLatlng(sp[1]);
	var moveend = args.m? eval('new ULatLng('+args.m+')'): map.getCenter();
	var zoom = args.z? decodeUrLatlng(args.z):map.getZoomLevel();
	map.centerAndZoom(moveend, zoom, true);
}
function addHistoryEvent(type) {
	if(!type) return;
	var locValue = '';
	var args = getSharpArgs(currentLoc);
	var latlng = map.getCenter(), level = map.getZoomLevel();
	var currentLoc = dhtmlHistory.getCurrentLocation();
	if(!args[type]) args[type] = '';
	args['a'] = type;
	args['m'] = encodeUrLatlng(latlng.lat()) + ',' + encodeUrLatlng(latlng.lng());
	args['z']  = encodeUrLatlng(level);
	//args[type] = locValue;
	var encodeStr = objToLocString(args);
	dhtmlHistory.add(encodeStr, type);
}
function objToLocString(obj){
	var str = [];
	for(var o in obj){
		str.push(o + '=' + obj[o]);
	}
	return str.join('&');
}
function getSharpArgs(str) {
    var args = new Object();
    var olocation = str?str:window.location + '';
    var olocationIndexOf = olocation.indexOf('#');
	
	var query = "";
	if(!str && olocationIndexOf > 0)
		query = olocation.substring(olocationIndexOf+1, olocation.length);
	else
		query = str;
	//alert(query);
	if(!query) return {};
    
    var pairs = query.split("&");                 // Break at ampersand
    for(var i = 0; i < pairs.length; i++) {
        var pos = pairs[i].indexOf('=');          // Look for "name=value"
        if (pos == -1) continue;                  // If not found, skip
        var argname = pairs[i].substring(0,pos);  // Extract the name
        var value = pairs[i].substring(pos+1);    // Extract the value
        value = decodeURIComponent(value);        // Decode it, if needed
        args[argname] = value;                    // Store as a property
    	//log(args);
    }
    return args;                                  // Return the object
}
function encodeUrLatlng(num){
	var str = num + '';
	var output = '';
	for(var i=0; i<str.length; i++){
		var cha = str.charCodeAt(i) + 49;
		cha = String.fromCharCode(cha);
		output += cha;
	}
	return (output);
}
function decodeUrLatlng(str){
	var str = str + '';
	var output = '';
	for(var i=0; i<str.length; i++){
		var cha = str.charCodeAt(i) - 49;
		cha = String.fromCharCode(cha);
		output += cha;
	}
	return (output);
}
function log(obj) {
	if (typeof console != 'undefined')
		console.log(obj);
}

/**
* fix query address

if(smartQuery){
	var tmp =smartQuery;
	smartQuery = function(queryString){
		//map.locateTo(address, callback, err_callback)
		map.locateTo(queryString, function(latlng,allData){
			//"台北市,台北市,,4,301818.6159,2771127.809,,縣市"
			if(latlng!=null){
				//console.log([queryString,',',queryString,',,4,',latlng.x(),',',latlng.y(),',,縣市'].join(''));
				smartQueryCallback([allData.msg,',',allData.msg,',,4,',latlng.x(),',',latlng.y(),',,縣市'].join(''));
			}
		}, 
		function(){
			tmp(queryString);
		});
	};

}*/
