// JavaScript Document
var globe, map, marker;
var map_type='2d';
var site_domain='showtaiwan.hinet.net'; //dev.3dmap.hinet.net
var SearchStatus = false;
var DoSearch = 'N';
var sidebar_url = '', obj_url='', popup_style='', popup_url='', popup_w, popup_h;				//左方區塊初始url			
var mtype = 'home', searchtype = 'location'; //目前的主題項目, 物件對象, 自建或收藏
var sidebar_width = 330;
var is_sidebar_opened = true;		//判斷左方搜尋區視窗狀態
var is_mapfunc_opened = false;		//判斷工具圖層視窗狀態
var is_maptools_opened = false;		//判斷工具圖層視窗狀態
var is_obj_content_opened = false;	//判斷左方地點/商店內頁是否打開
var is_bigpopup_opened = 2;		//全頁模式(初始化未開啟)
var mainmap_width, mainmap_height;			//記錄地圖寬高
var other_width = 331, other_height = 77;			//記錄地圖寬高
var GlobeLabel = new Array();		//3D地圖標示點陣列物件
var GlobeName='', LabelInfo;			//3D地圖標示點、標示的樣式變數
var pre_x, pre_y, pre_z, cur_x, cur_y, cur_z, rMenuX, rMenuY, stype_timeout, sidebar_area_timeout; //地圖中心點,右鍵標示點xy及高度z, 購物車物品數量
var map_x = 326;					//地圖的寬(pixle)
var map_y = 101;					//地圖的高(pixle)
var reg_main_map_window = false;	//判斷main_map_window註冊狀態
var main_map_window = self;
var maploadfinished = false;
var fly_available = false;
/* for 2d map */
var mkrTemple_num=0;
var mkrTemple= {};
var mkrTemple_data = new Array();
var mkrCurObj;
var StrMapType=3;
var MsgInfo, STPath;
var Chk3dnum = 0;
var search_to, weather_to, footer_close_timer;
var search_timeout_counter = 0;
/* 旅遊用變數 */
var area_names = ["", "台北市",   "新北市",   "基隆市", "桃園縣",  "新竹市",  "新竹縣",   "苗栗縣",   "台中市",   "彰化縣",   "南投縣",   "雲林縣",   "嘉義市",   "嘉義縣",   "台南市",   "高雄市",  "屏東縣",   "宜蘭縣",  "花蓮縣",   "台東縣",   "澎湖縣",    "金門縣"];
var area_lat =   ["", "25.0366",  "25.013",   "25.13",  "25.013",  "24.8065", "24.8385",  "24.6865",  "24.1400",  "24.0815",  "23.9027",  "23.7115",  "23.486",   "23.459",   "22.9971",  "22.629",  "22.55",    "24.6666", "23.99235", "22.7938",  "23.56736",  "24.43265"];
var area_lng =   ["", "121.5244", "121.4628", "121.74", "121.215", "120.969", "121.0054", "120.8803", "120.6821", "120.5385", "120.6905", "120.5413", "120.4535", "120.3233", "120.2121", "120.296", "120.5366", "121.773", "121.6014", "121.2323", "119.56789", "118.317"];
var area_type = ["景點", "住宿", "餐廳", "交通", "其他"];
var currentArea = 0;
var currentTripSN = 0;
var tl_mode = 'p';
var deletePlanID;
var blockEvent = 0;
var timeOutValue = 5000;
var SV2D = null;
$(function() {
	if($.browser.msie){
		if($.browser.version.slice(0,1) == "6"){
			 if (navigator.appVersion.indexOf("compatible;MSIE")==-1) location.href="ie6.html";
		}
		$(".ie_only").show();
	}else {
		$(".ie_only").remove();
		$.getScript('js/jquery.cookie.js', function() { 
			if( $.cookie("brwsr") == null){
				$.cookie("brwsr", "not_ie");
				alert("您使用的瀏覽器並不是Microsoft IE系列，將無法使用3D地圖功能，如要使用3D地圖功能請更換IE瀏覽器進入本網站!");
			}
        });
	}
	$.ajaxSetup({
		error:function(jqXHR, textStatus, errorThrown){
			if(textStatus == 'timeout'){
				func_procTimeout();
			}
		},
		timeout:timeOutValue
	});
	//登入連結
	$("#login").click(function(e){
		e.preventDefault();
		func_goLogin();
	});
	//左邊區塊開關
	$('#sidebar_toggler').click(function(e){ 
		e.preventDefault();
		if($(this).hasClass('close')){
			func_close_sidebar(); 
		}else{
			func_open_sidebar();
		}
	});
	// 左邊上方主功能切換
	$('#sidebar_result_tabs a').click(function(e){
		e.preventDefault();
		if(blockEvent == 1){
			return false;
		}
		var cur_mtype = $(this).attr('title');
		//切換subject = mine(我的) / hot(熱門) / nearby(周邊) / channel(頻道) / route(規劃) / home(首頁) / shopping(購物)
		if(cur_mtype == 'tool' || cur_mtype == 'layer'){
			/**/
			if(map_type == '2d'){
				alert('請稍候，系統將自動切換到3D地圖模式!\n轉換地圖可能需要花費較長時間，敬請耐心等待!');
				SwitchTo3D();
//				return;
			}
		}
		$('.sidebar_link').removeClass('sidebar_link');
		$(this).addClass('sidebar_link');
		mtype = cur_mtype;
		listen_travel_map = false; //重設「旅遊」中，加入行程時設定的指標
		var pos = $(this).position();
		var trangle_pos = pos.left + 17;
		$("#sidebar_result_tabs_trangle").animate({left:trangle_pos},200);
		func_clearSearch();
		$("#sidebar_result_subtabs li a").hide();
		$('#obj_content').hide();
		if(cur_mtype == 'route'){ 
			$('#sidebar_content').hide();
			$('#sidebar_result_sub').hide();
			$('#sidebar_route').show();
			return;
		}
		$('#sidebar_route').hide();
		$('#sidebar_content').show();
		$('#sidebar_result_sub').show();
		if(cur_mtype == 'mine'){ //我的
			$('.result_sub').show();
			$("#sidebar_result_subtabs li .mine").show();
			$("#sidebar_class li").hide(); //隱藏全部
			$("#sidebar_class li.hot").show();	//顯示hot類(單選)
			$("#sidebar_result_sub").animate({top:33},200, function(){
				resize_sidebar_content();
			});
			//判斷sidebar_result_subtabs a 是否有已選的項目
			if($("#sidebar_result_subtabs li.mine a.sidebar_sublink").length <= 0){
				$("#subtabs_mine_location").addClass("sidebar_sublink");
			}
			func_goSearch();
			return;
		}else if(cur_mtype == 'hot' || cur_mtype == 'nearby' ){ //熱門週邊
      hideLayerPOI();
			$('.result_sub').show();
			$("#sidebar_result_subtabs li .hot").show();
			$("#sidebar_class li").hide(); //隱藏全部
			$("#sidebar_class li."+cur_mtype).show();	//顯示目前選的
			$("#sidebar_result_sub").animate({top:33},200, function(){
				resize_sidebar_content();
			});
			//判斷sidebar_result_subtabs a 是否有已選的項目
			if($("#sidebar_result_subtabs li.hot a.sidebar_sublink").length <= 0){
				if(cur_mtype == 'hot'){
					$("#subtabs_hot_location").addClass("sidebar_sublink"); //預設為 location
					searchtype = $("#subtabs_hot_location").attr("title");
				}else{
					// searchtype= ''; 之後要預設為空(等search引擎重建索引)
					$("#subtabs_hot_location").addClass("sidebar_sublink"); //預設為 location
					searchtype = $("#subtabs_hot_location").attr("title");
				}
			}else{
				searchtype = $("#sidebar_result_subtabs li.hot a.sidebar_sublink").attr('title');
			}
			func_goSearch();
			return;
		}else{
			var ch = $("#sidebar_result_sub").height();
			ch = (-5) - ch;
			$("#sidebar_result_sub").animate({top:ch},200, function(){
				resize_sidebar_content();
			});
			if(mtype == 'travel'){
				var turl = "include/proc.php?target=travel.php";
			}else if(mtype == 'mazu'){
				var turl = "include/proc.php?target=../events/201201A/home.php";
			}else if(mtype == 'campus'){
				var turl = "include/proc.php?target=../campus/home.php";
			}else{
				var turl = "include/proc.php?target=sidebar.php&mtype=" + cur_mtype;
			}
			sidebar_content_load(turl);
			return;
		}
	}).mousedown(function(){
		$("#searchkey").val('');
	});
	//sub選單按下的動作(切換 searchsearchtype = 地點/地圖/商品/商店/優惠/頻道
	$("#sidebar_result_subtabs li a").click(function(e){
		e.preventDefault();
		searchtype = $(this).attr("title");
		if(searchtype == 'story' || searchtype == 'travel' ){
			$('#sidebar_class').hide();
			$('#sidebar_gary_line').hide();
			resize_sidebar_content();
		}else{
			$('#sidebar_class').show();
			$('#sidebar_gary_line').show();
			resize_sidebar_content();
		} 
		$(".sidebar_sublink").removeClass("sidebar_sublink");
		$(this).addClass("sidebar_sublink");
		$("#searchkey").val('');
		//六大類按鈕歸0
		$("#sidebar_class a.active").removeClass("active");
		chg_searchclass('');
		func_goSearch();
	});
	
	//六大類按鈕動作
	$("#sidebar_class a").click(function(e){
		e.preventDefault();
		if(mtype == 'nearby'){	//週邊，六大類可複選
			if(searchtype == 'address'){
				searchtype = 'location';
				$("#searchkey").val("");
				$("#subtabs_hot_location").addClass('sidebar_sublink');
			}
			var sclass = $(this).attr("clida");
			if($(this).hasClass("active")){	//已選，切換為未選
				$(this).removeClass("active");
			}else{
				$(this).addClass("active");
			}
			if(map_type == '3d'){
				var curLayerName = $(this).attr('id');
				//LayerButtonTrigger(curLayerName);
			}
		}else{					//非周邊搜尋，六大類還是要一個一個切換	
			if($(this).hasClass("active")){	//已選切換為未選，也就是變成「全選」模式(什麼都不選=全選)
				$(this).removeClass("active");
				var newclass = '';
			}else{							//未選切換為已選，其他已選的要去掉
				$("#sidebar_class a").removeClass("active");
				$(this).addClass("active");
				var newclass = $(this).attr("clida");
			}
			chg_searchclass(newclass);
		}
		func_goSearch();
	});
	
	//展開行政區選單
	$("#sidebar_area_switch").click(function(){
		if($("#sidebar_area_switch").hasClass("close")){
			$("#sidebar_area_switch").removeClass("close");
			$("#sidebar_area_border").fadeOut(200,function(){resize_sidebar_content();});
		}else{
			$("#sidebar_area_switch").addClass("close");
			$("#sidebar_area_border").fadeIn(200,function(){resize_sidebar_content();});
		}
	});
	//行政區切換
	$("#sidebar_area_lists a").click(function(e){
		e.preventDefault();
		var cur_area = $(this).html();
		if(cur_area != '全區'){
			cur_y = $(this).attr('lat');
			cur_x = $(this).attr('lng');
			chg_area(cur_area);
			if($("#sidebar_area_switch").hasClass("close")){
				$("#curarea").html(" &gt; "+cur_area);
				setTimeout('$("#curarea").html("");',1000);
				$("#sidebar_area_switch").removeClass("close");
				$("#sidebar_area_border").fadeOut(200,function(){resize_sidebar_content();});
			}
			func_goSearch(cur_area);
		}
	});
	//根行政區(回復到未選階段)
	$(".rootarea").click(function(e){
		e.preventDefault();
		$("#curarea").html("");
		$('#searcharea').val("");
		$("#sidebar_area_switch").trigger("click");
	});
	$('#open_sidebar a').click(function(e){
		e.preventDefault();
		func_open_sidebar();
	});
	/*地圖切換按鈕*/
	$("#mapswitch_2D").click(function(e){
		e.preventDefault();
		if(map_type == '3d' && !$(this).hasClass('on')){
			SwitchTo2D();
		}
	});
	$("#mapswitch_3D").click(function(e){
		e.preventDefault();
		SwitchTo3D();
	});
	
	//工具、圖層的按鈕
	$(".map_funcs").click(function(e){
		e.preventDefault();
		//globe.detachEvent('onRButtonDown', right_popup_3d);
		if($(this).hasClass("mp_opened")){ //原先已是開啟的，要關掉
			//$("#mapfunc_win").attr("src","about:blank").hide();
			func_close_mapfunc();
			$(this).removeClass("mp_opened");
		}else{
			$(".mp_opened").removeClass("mp_opened");
			$(this).addClass("mp_opened");
			var id = $(this).attr("id");
			var turl = "include_page/pop_mapfunc.php?target="+id+".php";
			func_open_mapfunc(turl);
			//$("#mapfunc_win").attr("src",turl).show();
		}
	});
	$("#show_statements").click(function(e){
		e.preventDefault();
		func_open_footer();
	});
	//控制下方「經緯度」
	$("#map_view_info").mouseenter(function(){
		$("#map_view_info_text").hide();
		$("#map_view_info_location").show();
	}).mouseleave(function(){
		$("#map_view_info_text").show();
		$("#map_view_info_location").hide();
	});
	/* 輪播廣告部份 */
	$('.text_ads').mouseenter(function(){
		$(this).cycle('pause');
	}).mouseleave(function(){
		$(this).cycle('resume');
	}).cycle({
		fx: 'fade',
		timeout: 3000,
		speed: 300,
		cleartypeNoBg: true
	});
	//評價的星星滑鼠行為
	$('.stars img').live('mouseenter', function(e){
		$(this).nextAll('img').attr('src', img_folder+'star_blank.gif');
		$(this).prevAll('img').attr('src', img_folder+'star.gif');
		$(this).attr('src', img_folder+'star.gif');
	}).live('mouseleave', function(e){
		var rate=$(this).parent().attr('rate');
		if(rate == '0'){
			$(this).parent().find('img').attr('src', img_folder+'star_blank.gif');
			return;
		}
		var has_half_star=(rate*2%2 >= 1);
		var star_count=Math.floor(rate);
		if(has_half_star){
			var start_li = star_count;
			var img = 'star_half.gif';
		}else{
			var start_li = star_count-1;
			var img = 'star.gif';
		}
		var target=$(this).parent().find('img').eq(start_li);
		target.nextAll('img').attr('src', img_folder+'star_blank.gif');
		target.prevAll('img').attr('src', img_folder+'star.gif');
		target.attr('src', img_folder+img);
	}).live('click',function(e){
		e.preventDefault();
		var cur_type = $(this).parent().attr('cur_type');
		var cur_objsn = $(this).parent().attr('cur_objsn');
		var rpage = $(this).parent().attr('rpage');
		var clickstar = $(this).attr('clickstar');
		sidebar_rating(cur_type, cur_objsn, clickstar, rpage);
	});
	
	$(window).unload( function () { CUnload(); } ).resize( function() {
		func_getScreenWH();
		refresh_map();
		if(is_bigpopup_opened==1){ //視窗開啟狀態,要調整視窗大小
			resize_popup(popup_style);
		}
	});
	func_INIT();
});
//開啟後，初始化基本的寬高等資料
function func_INIT(){
	func_getScreenWH();
	loadMap();
	$('#obj3dmap').height(mainmap_height);
	$('#mapfunc_win').height(mainmap_height-63);
	if(popup_url.length > 0) open_popup(popup_url, 'big');
	func_set_history('include/proc.php?target=sidebar.php');
	//if(cur_lang == 'cn') translatePage(cur_lang);
	//載入搜尋輸入框
	$(document.body).append('<iframe id="autocomplete_frame" name="autocomplete_frame" scrolling="no" style="display:block" frameborder="0" src="include/autocomplete.php"></iframe>');

  loadAnnounce();
}
function loadAnnounce()
{
  $.ajax({
    url: 'include/get_announce.php',
    timeout: 5000,
    error: function(){
//      alert('timeout');
    },
    success: function(data){
      $('#announceList').append(data);
      $('#announceList').cycle({ 
        fx: 'scrollUp', speed: 3000, pause: 1, timeout: 5000
      });
    }
  });
}

function func_getScreenWH(){
	var screen_w = $(window).width();
	var screen_h = $(window).height();
	mainmap_width = screen_w - other_width;
	mainmap_height = screen_h - other_height;
}
//註冊
function func_open_join_popup(){
	var regUrl = "http://member.hinet.net/chtreg/z_regredirect.jsp?siteid=9002&curl=http://"+site_domain+"/api/authorize.php&channelurl=http://"+site_domain+"/index.php&cp_reg_info=&others=&reg_url=&service_type=&finish_channelurl=";
	//var regUrl = $("#register").attr('regURL');
	var url = "include_page/pop_frame.php?targetURL="+encodeURIComponent(regUrl);
	window.open(regUrl,'register_join');
	//open_popup(url,'big');
}
//檢查是否login
function func_checkLogin(){
	return false;
}

//左方選單拉動(展開或收回)，更新sidebar_content的top屬性
function resize_sidebar_content(){
	var ch = $("#sidebar_result_sub").height();
	var ct = $("#sidebar_result_sub").css("top");
	ct = ct.replace("px", "");
	var nh = parseInt(ct) + ch;
	if(nh < 33) nh = 33;
	$("#sidebar_content").css({top:nh});
}

//更換搜尋對象
function chg_searchtype(newtype){
	var searchtype=$("#searchtype").val();
	if((searchtype == 'address' || newtype == 'address') && newtype != searchtype){
		$('#searchkey').val('');
	}
	$("#searchtype").val(newtype);
	$('#searchclass').val('');//初始化searchclass
	$('#orderby').val('');
}
//更換搜尋六大類
function chg_searchclass(newclass){
	$('#searchclass').val(newclass);
	$('#orderby').val('');
}
//當使用者切換地區時，變更隱藏欄位 searcharea的內容
function chg_area(cur_area){
	panTo_City(cur_x, cur_y);
	$('#searcharea').val(cur_area);
}
//切換「排序」欄位後，自動重新搜尋
function chg_orderby(){
	var new_orderby = $("#order_by").val();
	$("#orderby").val(new_orderby);
	func_goSearch();
}
//清空與搜尋相關的選項(用在當主功能項目切換時...)
function reset_search_status(){
	$("#searchtype").val('');
	$('#searchclass').val('');
	$('#orderby').val('');
	$('#orderby').val('SN-DESC');
	$('#isfree').val('');
	$('#ispublic').val('');
	//$('#searcharea').val('');
	$('#lprice').val('');
	$('#uprice').val('');
	$('#liststyle').val('');
}
function func_procTimeout(){
	alert('您目前瀏覽的頁面反應速度較慢，建議您先操作其他功能，或稍後再試一次。');
	sidebar_content_load('include/sidebar_default.html');
}
//當使用者輸入搜尋關鍵字後的處理方式
function func_keyword_search(newSearchKey){
	reset_search_status();
	func_clearSearch();
	if(!newSearchKey){
		var srchkey = $("#autocomplete_frame").contents().find("#searchkey").val();
	}else{
		var srchkey = newSearchKey;
		$("#autocomplete_frame").contents().find("#searchkey").val(srchkey);
	}
	//將searchtype對應到 searchtype_text的屬性(searchtype)
	searchtype = "address";
	mtype = 'nearby';
	var trangle_pos = -100;
	$("#sidebar_result_tabs_trangle").css({left:trangle_pos});
	$(".sidebar_link").removeClass('sidebar_link');
	$("#searchkey").val(srchkey);
	$('#sidebar_content').show();
	$("#sidebar_result_sub").animate({top:-150},200, function(){
		resize_sidebar_content();
	});
	func_goSearch();
}
function func_show_nearby(){
	$("#sidebar_result_tabs_nearby").trigger('click');
}
//切換左方搜尋的主要函式，自動判斷:searchtype: null(不分), map(地圖), location(地點), shop(商店), product(商品), channel(頻道)
//第2組參數:panMap定義要不要重新移動地圖中心點(當觸發者為 onLbuttonUp時就不要啦~~)
function func_goSearch(cur_area, noPanMap){
	SearchStatus = false;
	$('#sidebar_route').hide();
	$('#sidebar_content').show();
	$('#sidebar_result_sub').show();
	cur_v = func_getV(cur_z);
	var srchkey =$("#searchkey").val();	
	if(srchkey != null){
		srchkey = encodeURI(srchkey);
	}else{
		srchkey = '';
	}
	var curarea = '';
	if(cur_area != null){
		var curarea = encodeURIComponent(cur_area);
	}
	var srchclass = $("#searchclass").val();
	var nearclass = '';
	
	if(searchtype == 'address'){
		srchclass = '';
	}else if(mtype == 'nearby'){		//周邊(搜尋)==>判斷layer啦~~
		srchclass = '';
		SearchStatus = true;
		$("#sidebar_class a.active").each(function(){
			var cls = $(this).attr("clida");
			nearclass = nearclass + cls;
		});
	}else if(mtype == 'mine'){		//我的(搜尋)
		var targetobj = $("#sidebar_result_subtabs li.mine a.sidebar_sublink"); //找出那個是目前的searchtype對象物件..請見sidebar_result_subtabs的html部份!
		searchtype = targetobj.attr("title");
	}
	var orderby = $("#orderby").val();
	var searcharea = $('#searcharea').val();
	searcharea = encodeURI(searcharea);
	var liststyle = $('#liststyle').val();
	var isfree = $('#isfree').val();
	var ispublic = $('#ispublic').val();
	var doPanMap = (noPanMap)? '0':'1';
	var sdburl = "include/proc.php?target=sidebar.php&mtype="+mtype+"&searchtype="+searchtype+"&searcharea="+searcharea+"&searchkey="+srchkey+"&searchclass="+srchclass+"&nearclass="+nearclass+"&liststyle="+liststyle+"&orderby="+orderby+"&isfree="+isfree+"&ispublic="+ispublic+"&x="+cur_x+"&y="+cur_y+"&z="+cur_z+"&v="+cur_v+"&cur_area="+curarea+"&DoSearch="+DoSearch+"&doPanMap="+doPanMap;
	sidebar_content_load(sdburl);
	if(is_bigpopup_opened == 1) close_popup();
}
//搜尋商品專用的資料
function func_product_search(){
	var srchkey =$("#searchkey").val();
	var lprice = $('#lprice').val();
	var uprice = $('#uprice').val();
	srchkey = encodeURI(srchkey);
	var srchclass = $("#searchclass").val();
	if(lprice.length <= 0 && uprice.length <= 0  && srchkey.length <= 0  && srchclass.length <= 0 ){
		alert('請輸入關鍵字或價格區間再按「搜尋」!');
	}
	var orderby = $("#orderby").val();
	sidebar_content_load("include/proc.php?target=sidebar.php&type=product&searchkey="+srchkey+"&searchclass="+srchclass+"&lprice="+lprice+"&uprice="+uprice);
}
//載入資料到左方區塊中
function sidebar_content_load(url, ret){
	//ret = 1;
	if(map_type == '3d'){
		globe.removePopup(MsgInfo);
	}
	if(ret == null){
		func_set_history(url, 'sidebar_content_load');
	}else{
		blockEvent = 1;
		sidebar_url = url;
		$("#obj_content").hide();
		$.get(url, function(data) {
			blockEvent = 0;
			//if(cur_lang == 'cn') data = Simplized(data);
			$('#sidebar_content').html(data).show();
			$("#sidebar_functions").show();
		});
	}
}
//重新載入資料到左方區塊中
function sidebar_content_reload(){
	if(sidebar_url.length > 0 ){
		sidebar_content_load(sidebar_url, 1);
	}
}
//載入資料到左方物件內容區塊中
function obj_content_load(url){
	obj_url = url;
	is_obj_content_opened = true;
	if(is_bigpopup_opened == 1){close_popup();}
	$.get(url, function(data) {
		//if(cur_lang == 'cn') data = Simplized(data);
		$('#obj_content').html(data).show();
		$("#sidebar_content").hide();
		$("#sidebar_functions").hide();
	});
}
//載入資料到左方物件內容區塊中
function obj_content_reload(cpage){
	if(obj_url.length > 0){
		url = obj_url + '&cpage=' + cpage;
		obj_content_load(url);
	}
}
//左方區塊切換頁面( called by obj_show )
function obj_load(cur_type, cur_objsn, up_obj, cmd, n){
	obj_url = '';
	if(map_type == '3d'){
		globe.removePopup(MsgInfo);
	}
	if(cur_type == 'buysale'){
		func_show_buysale(cur_objsn); //點選優惠時的處理方式
		return;
	}
    if(n == null) n = '0';
	if(up_obj == null) up_obj = '';
	var url = "include/proc.php?target=sidebar_inner.php&cur_type=" + cur_type + "&cur_objsn=" + cur_objsn + "&up_obj=" + up_obj +"&n=" +n;
	if(cmd != null) url = url + '&cmd=' + cmd;
	func_set_history(url, 'obj_content_load');
	//obj_content_load(url);
}
function obj_open(target_type, target_objsn, target_page, opener){
	if(map_type == '3d'){
		globe.removePopup(MsgInfo);
	}
	open_popup('include_page/pop.php?target=poi_top.php&opener='+opener+'&cpage='+ target_page +'&cur_objsn=' + target_objsn + '&cur_type=' + target_type, 'big');
}
function func_set_history(url, cmd){
	if(url.indexOf("?") > 0){
		url = url + '&';
	}else{
		url = url + '?';
	}
	$("#uframe").attr('src','include/url_history.php?url='+encodeURIComponent(url)+'&cmd='+cmd);
}

//在左方列表點選優惠時的處理 (cur_objsn = TB_BUYSALE 的 SN
function func_show_buysale(cur_objsn){
	
}
//左上方回上一頁按鈕
function func_location_back(up_obj){
	/*history.back();*/
	if(map_type == '3d'){
		globe.removePopup(MsgInfo);
	}
	if(up_obj){
		if(up_obj == 'prev'){
			$("#sidebar_result_tabs_circle").trigger('click');
			return;
		}else if(up_obj == 'back'){
			history.back();
			return;
		}
		var obj_data = up_obj.split("-");
		if(obj_data[0] && obj_data[1]){
			if(obj_data[0] == 'travel'){
				loadTrip( obj_data[1]);
				return;
			}
			obj_load(obj_data[0], obj_data[1], '', '', obj_data[2]);
			return;
		}
	}
	obj_url = '';
	$('#obj_content').hide();
	$('#sidebar_result_sub').show();
	$("#sidebar_content").show();
	$("#sidebar_functions").show();
	sidebar_content_reload();
	//clearPOI();
	//set_map_pois();
}
//清除上次的search結果
function func_clearSearch(){
	$("#searchkey").val('');
	clearPOI();
}

//左方區塊開啟
function func_open_sidebar(){
	is_sidebar_opened = true;
	if(is_bigpopup_opened == 1){
		close_popup();
		return;
	}
	$('#sidebar_toggler').removeClass('open').addClass('close');		//向左的箭頭換成向右的
	$('#sidebar').animate({left: 0}, 200);								//左邊區塊寬度打開
	$('#mapwrap').width(mainmap_width).animate({left: sidebar_width}, 200);	//右邊區塊(地圖容器)
	$("#open_sidebar").hide();	
}
//左方區塊關閉
function func_close_sidebar(){
	//向左箭頭改為向右箭頭
	$('#sidebar_toggler').removeClass('close').addClass('open');
	//左邊區塊設為width 0
	$('#sidebar').animate({left: (0-sidebar_width)}, 200);
	var nowmap_width = mainmap_width+sidebar_width;
	$('#mapwrap').width(nowmap_width).animate({left: 0}, 200, function(){refresh_map();});
	is_sidebar_opened = false;
	$("#open_sidebar").show();
}

//地圖mapwrap變動後更新實際地圖元件的尺寸
function refresh_map(){
	if(map_type == '2d'){
		$('#map_container_two').css({position: 'absolute', top: 31, bottom: 25, left: 0, right: 0});
		map.checkResize();
	}else{
		$('#map_container_three').css({position: 'absolute', top: 31, bottom: 25, left: 0, right: 0});
	}
}
//打開的視窗:以某一url頁面載入內容(用ajax load)
function func_popup_loadpage(url){
	$("#popup_win").attr('src',url);
}

function isInteger(s){
	return (s%(parseInt(s)/Number(s)))===0;
}
function in_array(stringToSearch, arrayToSearch) {
	if (arrayToSearch.length > 0){
		for (s = 0; s <arrayToSearch.length; s++) {
			thisEntry = arrayToSearch[s].toString();
			if (thisEntry == stringToSearch) return true;
		}
	}
	return false;
}

function in_array2(stringToSearch, arrayToSearch) {
	if (arrayToSearch.length > 0){
		for (s = 1; s <arrayToSearch.length; s++) {
			thisEntry = arrayToSearch[s].toString();
			if (thisEntry == stringToSearch) return s;
		}
	}
	return false;
}

function openPopWin(_x, _y, _width, _height, _contentHTML) {

	var pop = window.createPopup();
	pop.document.body.innerHTML=_contentHTML;
	pop.document.body.style.border='1px solid #999';
	
	var style=pop.document.createStyleSheet();
	style.addRule('ul', 'list-style: none; font-size: 12px; margin: 0; padding: 2px;');
	style.addRule('li', 'height: 20px;');
	style.addRule('li.separator', 'border-bottom: 1px solid #bbb; height: 0; font-size: 0; float: left; width: 109px; margin: 0 0 5px 0;');
	style.addRule('a', 'display: block; height: 20px; padding: 5px 0 0 25px; color: #000; text-decoration: none; line-height: 12px;');
	style.addRule('a:hover', 'background: #316ac5; color: #fff;');
	style.addRule('a.disabled', 'color: #aaa');
	style.addRule('a.disabled:hover', 'color: #aaa');
	style.addRule('a.set_start_point', 'background: url(./css/img/upload.png) 5px no-repeat;');
	style.addRule('a.set_start_point:hover', 'background: #316ac5 url(./css/img/upload.png) 5px no-repeat;');
	style.addRule('a.set_end_point', 'background: url(./css/img/download.png) 5px no-repeat;');
	style.addRule('a.set_end_point:hover', 'background: #316ac5 url(./css/img/download.png) 5px no-repeat;');
	style.addRule('a.write_story', 'background: url(./css/img/pencil.png) 5px no-repeat;');
	style.addRule('a.write_story:hover', 'background: #316ac5 url(./css/img/pencil.png) 5px no-repeat;');
	style.addRule('a.set_pass_point', 'background: url(./css/img/flag.png) 5px no-repeat;');
	style.addRule('a.set_pass_point:hover', 'background: #316ac5 url(./css/img/flag.png) 5px no-repeat;');
	style.addRule('a.hot_point', 'background: url(./css/img/needle.png) 5px no-repeat;');
	style.addRule('a.hot_point:hover', 'background: #316ac5 url(./css/img/needle.png) 5px no-repeat;');
	style.addRule('a.hot_map', 'background: url(./css/img/map.png) 5px no-repeat;');
	style.addRule('a.hot_map:hover', 'background: #316ac5 url(./css/img/map.png) 5px no-repeat;');
    style.addRule('a.restore', 'background: url(./css/img/cycle.png) 5px no-repeat;');
	style.addRule('a.restore:hover', 'background: #316ac5 url(./css/img/cycle.png) 5px no-repeat;');
	style.addRule('a.set_gsview', 'background: url(./css/img/gsview.png) 5px no-repeat;');
	style.addRule('a.set_gsview:hover', 'background: #316ac5 url(./css/img/gsview.png) 5px no-repeat;');
	pop.document.onclick = function () {
		pop.hide();
	};
	pop.document.oncontextmenu = function () {
		return false;
	};
	pop.document.ondragstart = function () {
		return false;
	};
	pop.show(_x, _y, _width, _height, document.body);
}

//3D地圖清除標示點
function clearPOI_3D(){
	if(reg_main_map_window != true){
		try{
			globe.teCore.IScriptEngine.UnregisterName('main_map_window');
		}catch(e){}
		try{
			globe.teCore.IScriptEngine.RegisterGlobalName('main_map_window', window);
		}catch(e){alert('regist main map window failure!'); }
		reg_main_map_window = true;
	}
	var n = GlobeLabel.length;
	for (s = 0; s < n; s++) {
		thisEntry = GlobeLabel[s].toString();
		if (thisEntry) {
			var LID= globe.teCore.IInformationTree.FindItem(GlobeName+"\\"+thisEntry);
			if(LID == 0){
				var SSID= globe.teCore.IInformationTree.FindItem(thisEntry);
				LID = SSID;
			}
			globe.teCore.IInformationTree.DeleteItem(LID);
		}
	}
	GlobeLabel =  new Array();
}
//3D地圖新增一個標示點
function STCreateLabel_3d(_x,_y,_h,_text,_ImgUrl,_MURL, _title){      
	if(reg_main_map_window != true){
		try{
			globe.teCore.IScriptEngine.UnregisterName('main_map_window');
		}catch(e){}
		try{
			globe.teCore.IScriptEngine.RegisterGlobalName('main_map_window', window);
		}catch(e){}
		reg_main_map_window = true;
	}
	var labelPos = new SGCoord3D(_x, _y, _h);   
	var label = globe.creator.createLabel(labelPos,'', _ImgUrl, LabelInfo,_text);
	if ( _MURL != null) {
		MsgInfo= new SGPopup();
		MsgInfo.src = _MURL;
		MsgInfo.width = 320;
		MsgInfo.height = 180;
		MsgInfo.caption=_title;
		var message = globe.creator.createMessage( MsgInfo , sgMessageTypeURL,sgMessageClientPopup); 
		try{
			label.setMessage(message);
		}catch(e){}
	}
	try{
		globe.root.appendChild(label);
		GlobeName=label.parentNode().getName(); 
	}catch(e){}
}
//3D地圖標示一個點並彈出一個對話泡泡視窗
function STCreateLabel_POP(_x,_y,_h,_text,_ImgUrl,_MURL,_width,_height,_title){ 
	var labelPos = new SGCoord3D(_x, _y, _h); 
	
	var label = globe.creator.createLabel(labelPos,'' , _ImgUrl, LabelInfo,_text);
	if ( _MURL != null) {
		MsgInfo= new SGPopup(_title, _MURL);
		MsgInfo.width = _width;
		MsgInfo.height = _height;  
		var message = globe.creator.createMessage( MsgInfo , sgMessageTypeURL,sgMessageClientPopup); 
		try{
			label.setMessage(message);
		}catch(e){}
	}
	var cur_pos = globe.navigate.getPosition();
	try{
		globe.root.appendChild(label);
		GlobeName=label.parentNode().getName(); 
	}catch(e){}	
	globe.navigate.jumpTo(label);
	globe.navigate.flyTo(label);
}

// **********************************2D地圖用函式集*************************************//
//載入2D地圖
function loadMap(){
	$("#layer").hide();
	map = new CMap(document.getElementById("map_container_two"));
	$(window).bind("resize", function() { if(map_type=='2d') { map.checkResize(); } });
	pre_x = 121.52349;
	pre_y = 25.03598;
	pre_z = 1000;
	cur_x = pre_x;
	cur_y = pre_y;
	cur_z = pre_z;
	var center=new CLatLng(pre_y, pre_x);
	map.setCenter(center, 11);
	//map.addControl(CControl.C_LARGE_ZOOM);
	//map.addControl(CControl.C_SMALL_MODE);
	//map.addControl(CControl.C_SCALE_CTRL);
	map.enableContinuousZoom();
	map.enableScrollWheelZoom()
	CEvent.addListener(map, "dragstart", function(){onLButtonDown_2D();});//開始移動地圖位置
  CEvent.addListener(map, "dragend", function(){onLButtonUp_2D();});//移動地圖位置
  CEvent.addListener(map, "zoomend", function(){getCurLatLng();});//移動地圖位置
	reg_rmenu_behavior();
	$(".mapobj_3d").hide();
	setTimeout("getWeather()",3000);
}
//2D地圖右鍵呼叫資料
function reg_rmenu_behavior(){
	CEvent.bind(map, "contextmenu", map, rmenuCall);
	$('#rmenu').click(function(){
		$('#rmenu').css({top: -300});
	});
	$('#map_container_two, #sidebar_content, .map_fs>a, #searchbar_submit').click(function(){
		$('#rmenu').css({top: -300});
	});
}
//地圖右鍵動作
function rmenuCall(m, p){
	var c = $('#map_container_two')[0];
	var curleft = curtop = 0; 
	if (c.offsetParent) { 
        curleft = c.offsetLeft;
        curtop = c.offsetTop;
        while (c = c.offsetParent) { 
			curleft += c.offsetLeft;
            curtop += c.offsetTop;
        } 
	}
	curleft += p.x;
	curtop += p.y;
	var point=new CPoint(curleft, curtop);
	var latlng=map.fromDocPixelToLatLng(point);
	rMenuY = latlng.lat();
	rMenuX = latlng.lng();
	$('#rmenu').css({left: curleft, top: curtop});
	document.getElementById('setRouteS2d').onclick = function() { setRoutePointS(); }
	document.getElementById('setRouteE2d').onclick = function() { setRoutePointE(); }
	//document.getElementById('setRouteM2d').onclick = function() { setRoutePointM_twoD(curleft, curtop); }
}
//2D左鍵功能
function onLButtonDown_2D(){
	clearTimeout(search_to);
	clearTimeout(weather_to);
}
function onLButtonUp_2D(){
	getCurLatLng();
	var pre_node = new CLatLng(pre_y, pre_x);
	var cur_node = new CLatLng(cur_y, cur_x);
	var dist = pre_node.distanceFrom(cur_node);
	DoSearch = 'N';
	//改成只有最後兩級可以觸發重新搜尋...
	if(cur_z > 30000){
		if(dist >= 5000) DoSearch = 'Y';
	}else if(cur_z > 15000){
		if(dist >= 2500) DoSearch = 'Y';
	}else if(cur_z > 10000){
		if(dist >= 2000) DoSearch = 'Y';
	}else if(cur_z > 5000){
		if(dist >= 1000) DoSearch = 'Y';
	}else if(cur_z > 2500){
		if(dist >= 800) DoSearch = 'Y';
	}else if(cur_z > 1250){
		if(dist >= 600) DoSearch = 'Y';
	}else if(cur_z > 675){
		if(dist >= 400) DoSearch = 'Y';
	}else{
		if(dist >= 200) DoSearch = 'Y';
	}
	if(DoSearch == 'Y'){
		pre_x = cur_x;
		pre_y = cur_y;
		pre_z = cur_z;
		if(mtype == 'nearby' && SearchStatus === true && is_obj_content_opened === false){
			search_to = setTimeout('func_goSearch("",true)',100);//func_goSearch();
		}
	}
	weather_to = setTimeout('getWeather()',100);
	event_map_moved();
	return false;
}
//2D地圖清除標示點
function clearPOI_2D(){
	for(i = 1; i <= mkrTemple_num; i++){
		if(mkrTemple[i]){
			map.removeOverlay(mkrTemple[i]);
		}
	}
	if(mkrCurObj) map.removeOverlay(mkrCurObj);
	mkrTemple_num = 0;
}
//2D地圖加一個標示點
function STCreateLabel_2d(_x,_y,_h,_text,_ImgUrl,_MURL,_title){
	var myIcon = new CIcon();    
	myIcon.infoWindowAnchor = new CPoint(5, 0);
	myIcon.image = _ImgUrl;
	mkrTemple_num=mkrTemple_num+1;
	mkrTemple_data[mkrTemple_num] = _text;
	var bb=new CLatLng(_y, _x);
	mkrTemple[mkrTemple_num]  = new CMarker( bb , {icon: myIcon, title: _text, clickable: true, draggable: false});
	var IconW=25 ;
	var IconH=25 ;
	if(_ImgUrl == 'css/img/poi_icon/poi_circle.png'){
		IconW=59 ;
	    IconH=98 ;
	}
	myIcon.iconSize = new CSize(IconW, IconH);
	myIcon.iconAnchor = new CPoint(IconW/2, IconH);
	if (_MURL !=null) { 
		var _height = 150
		var _width = 300;
		CEvent.addListener(mkrTemple[mkrTemple_num], "click", function(loc) { 
			this.openInfoWindow('<iframe src="'+_MURL+'" width="'+_width+'" height="'+_height+'"  frameborder="0" scrolling="no"></iframe>',new CSize(_width,_height));
		});
	}
	map.addOverlay(mkrTemple[mkrTemple_num]);
}

// *********************************共用地圖方法集**********************************//
//左方物件列表時在右方地圖跑一個點出來
function show_p(x, y, z, label, cur_type, cur_objsn, icon_link){
	//cur_type:shop-1-05 (tp[0] = shop, top[1] = 1, tp[2]=05;
	var oz = 0;
	h = oz + (z-1)*10;
	var tp = cur_type.split("-");
	if(!tp[1]) tp[1] = 6;
	if(!icon_link) icon_link = 'css/img/poi_icon/poi_icon_0'+tp[1]+'_'+tp[2]+'.png';
	if(tp[0] == 'address') tp[0] = encodeURIComponent(label);
	_MURL = 'include_page/pop_mapfunc.php?target=popup_poi.php&cur_type='+tp[0]+'&cur_objsn='+cur_objsn;
	if(map_type == '3d'){
		if(!maploadfinished){
			setTimeout( "myOnLoadFinished()",3000);
			setTimeout( "show_p('"+x+"', '"+y+"', '"+h+"', '"+label+"', '"+cur_type+"', '"+cur_objsn+"')",3000);
			return;
		}
		var n = GlobeLabel.length;
		GlobeLabel[n] = label;
		STCreateLabel_3d(x,y,h,label,icon_link, _MURL, label);
	}else{
		STCreateLabel_2d(x,y,h,label,icon_link, _MURL, label);
	}
}
function show_poi_pop(x, y, label, type, objsn, cur_pic){
	if(type == 'address'){
		type= label;
	}else{
		clearPOI();
	}
	$('#rmenu').css({top: -300});
	if(is_bigpopup_opened == 1) return false;
	var label_img = 'css/img/map_center.png'; //固定式的標點
	if(cur_pic != null){
		if(cur_pic.length>0) label_img = cur_pic;
	}
	 
	_MURL = 'include_page/pop_mapfunc.php?target=popup_poi.php&cur_type='+encodeURIComponent(type)+'&cur_objsn='+objsn;
	if(map_type == '3d'){
		h = 1;
		var thisEntry = label;
		var LID= globe.teCore.IInformationTree.FindItem(GlobeName+"\\"+thisEntry);
		if(LID == 0){
			var SSID= globe.teCore.IInformationTree.FindItem(thisEntry);
			LID = SSID;
		}
		globe.teCore.IInformationTree.DeleteItem(LID);
		var n = GlobeLabel.length;
		GlobeLabel[n] = label;
		//var newlabel = STCreateLabel_POP(x,y,h,label_img,label,label_html);
		//var newlabel = STCreateLabel_POP(x,y,h,label_img,label+'asdf',_MURL);
		var newlabel = STCreateLabel_POP(x,y,h,label,label_img,_MURL,320,180,label);
		//STCreateLabel_3d(x,y,h,label,label_img,_MURL,label,320,150);
	}else{
		_width = 300;
		_height = 150;
		var shtml='<iframe src="'+_MURL+'&amp;obj_status=inner" width="'+_width+'" height="'+_height+'" frameborder="0" scrolling="no"></iframe>';
		var myIcon = new CIcon();
		myIcon.infoWindowAnchor = new CPoint(12, 12);
		myIcon.image = label_img;
		var bb=new CLatLng(y, x);
		mkrCurObj = new CMarker( bb , {icon: myIcon, title: label, clickable: true, draggable: false});
		var IconW=25;
		var IconH=25;
		if(cur_pic == 'css/img/poi_icon/poi_circle.png'){
			IconW=59 ;
			IconH=98 ;
		}
		myIcon.iconSize = new CSize(IconW, IconH);
		myIcon.iconAnchor = new CPoint(IconW/2,IconH);
		map.addOverlay(mkrCurObj);
		mkrCurObj.openInfoWindow(shtml,new CSize(_width,_height));
		//mkrTemple[mkrTemple_num]  = new CMarker( bb , {icon: myIcon, title: _text, clickable: true, draggable: false});
		CEvent.addListener(mkrCurObj, "click", function(loc) { 
			this.openInfoWindow(shtml,new CSize(_width,_height));
		});
//		map.setCenter(new CLatLng(y, x), 9);
		map.panTo(new CLatLng(y, x));
//		map.panDirection(0,0.2);
	}
}
function show_poi_mark(x, y, mark_img ){
	var h = 20;
	var label = "map_poi_marker";
	if(mark_img == null){
		mark_img = 'css/img/map_center.png';
	}
	if(map_type == '3d'){
		if(!maploadfinished){
			setTimeout( "myOnLoadFinished()",3000);
			setTimeout( "show_poi_mark('"+x+"', '"+y+"')",3000);
			return;
		}
		var n = GlobeLabel.length;
		GlobeLabel[n] = label;
		STCreateLabel_3d(x,y,h,label,mark_img);
	}else{
		STCreateLabel_2d(x,y,h,label,mark_img);
	}
}

//新整理 清除地圖上所有poi資料
function clearPOI(){
	if(map_type == '2d'){
		clearPOI_2D();
	}else if(map_type == '3d'){
		clearPOI_3D();
	}else{
		
	}
}
//當user指定台灣行政區時，移到該地區上方並處理高度及角度
function panTo_City(x, y, z){
	if(map_type == '3d'){
		if(z == null){
			var h = 28000;
		}else{
			var h = func_z_to_h(z);
		}
		var pos = new SGPosition(x, y, h, 0.0, -90.0);
		globe.navigate.setPosition(pos);
	}else{
		if(z == null){
			var lv = 4;
		}else{
			var lv = func_z_to_lv(z);
		}
//		map.setCenter(new CLatLng(y, x), lv);
		map.panTo(new CLatLng(y, x));
	}
    cur_x = x;
    cur_y = y;
    cur_z = z;
	getWeather();
}
function panTo_rmenu(x, y){
	setCamera(rMenuX, rMenuY, 10);
	$('#rmenu').css({top: -300});
}
function setCamera(x, y, z, ztype){
	if(ztype == null){
		ztype = '2d';
		if(map_type == '2d') ztype= '3d';
	}
	if(ztype == '2d'){
		h = func_z_to_h(z);
		h = h*1.1;
		var pos = new SGPosition(x, y, h, 0.0, -90.0);
		globe.navigate.setPosition(pos);
	}else if(ztype == '3d'){
		lv = func_z_to_lv(z);
		if(x>=122 || x<=119.5){
			x = 120.99632;
			y = 24.556963;
		}
		map.setCenter(new CLatLng(y, x), lv);
	}
}
function set_route_point(point_type,x,y){
	if(point_type == 'start'){
		setRoutePointS(x,y);
	}else{
		setRoutePointE(x,y);
	}
}
function set_route_point_2(point_type, x, y, addr){
	if(point_type == 'start'){
		setRoutePointS_2(x, y, addr);
	}else{
		setRoutePointE_2(x, y, addr);
	}
}
function routing_threeD(start_x, start_y, end_x, end_y){
	_setRoutePointS(start_x, start_y, true);
	_setRoutePointE(end_x, end_y, true);
}
function SwitchTo2D(){
	if(map_type == '3d'){
		globe.removePopup(MsgInfo);
		$("#divRoute").html('');
		if(is_bigpopup_opened == 1){close_popup();}
		var pos = globe.navigate.getPosition();
		setCamera(pos.x, pos.y, pos.height, map_type);
		$(".mapobj_2d").show();
		$(".mapobj_3d").hide();
		$("#mapfunc_win").attr("src","about:blank").hide();
		$(".mp_opened").removeClass("mp_opened");
		map_type='2d';
		$('#map_container_three').hide();
		$('#map_container_two').show();
		$('#map_container_two').css({position: 'absolute', top: 31, bottom: 32, left: 0, right: 0});
		if(typeof(map)=='undefined'){
			loadMap();
		}else{
			map.checkResize();
		}
		if(obj_url.length > 0){
			setTimeout("obj_content_reload();",300);
		}else if(mtype == 'nearby' && searchtype == 'address'){
			if($(".address_rs_lists.selected").length > 0){
				$(".address_rs_lists.selected").trigger('click');
			}
		}else if(sidebar_url.length > 0 && mtype != 'route' ){
			setTimeout("sidebar_content_reload();",300);
		}
		$("#mapswitch_3D").removeClass('on');
		$("#mapswitch_2D").addClass('on');
		map.clearOverlays();
	}
}
function SwitchTo3D(){
	if($.browser.msie){
		$("#divRoute").html('');
		if(map_type == '2d'){
			if(!maploadfinished){
				if(CheckTEPlugin()){
					$.getScript('js/map_functions.js', function(){
						//alert('3D地圖啟動中，請稍候!');
						init();
					}); 
					return true;
				}else{
					var css_option = {width:866, height:386, left:get_nleft(), right:'auto', top:108, bottom:'auto'};
					open_popup('http://'+site_domain+'/downloadpage/software_pop.html', 'map', css_option);
					return false;
				}
			}else{
				if(is_bigpopup_opened == 1){close_popup();}
				$("#map_container_two").unblock();
				$("#layer").show();
				setCamera(map.getCenter().lng(), map.getCenter().lat(), map.getZoom(), map_type);
				map_type='3d';
				$('#map_container_two').hide();
				$('#map_container_three').show();
				$('#map_container_three').css({position: 'absolute', top: 31, bottom: 32, left: 0, right: 0});			
				if(obj_url.length > 0){
					setTimeout("obj_content_reload();",300);
				}else if(mtype == 'nearby' && searchtype == 'address'){
					if($(".address_rs_lists.selected").length > 0){
						$(".address_rs_lists.selected").trigger('click');
					}
				}else if(sidebar_url.length > 0 && mtype != 'route' ){
					setTimeout("sidebar_content_reload();",300);
				}
				$("#mapswitch_2D").removeClass('on');
				$("#mapswitch_3D").addClass('on');
				$(".mapobj_3d").show();
				$(".mapobj_2d").hide();
				if(!switchTo3DFirstTime){
					clearRouteDraw();
				}
				switchTo3DFirstTime = false; 
				return true;
			}
		}else{
			return true;
		}
	}else{
		alert('3D地圖目前僅支援在IE瀏覽器，謝謝。');
		return false;
	}
}

//開啟一個中間的視窗
function open_popup(url, wstyle, css_option){ //wstyle=small / big (small:小視窗-只蓋住部份地圖;  big:大視窗-蓋住包含左半部的空間)
	if(is_bigpopup_opened == 2){
		$(document.body).append('<iframe id="popup_win" frameborder="0" style="display:none;" scrolling="auto"></iframe>');
	}
	//先想辦法關掉資料
	if(map_type == '3d'){
		globe.removePopup(MsgInfo);
	}
	popup_url = url;
	is_bigpopup_opened = 1;
	resize_popup(wstyle);
	var locstr = "rMenuX="+rMenuX +"&rMenuY=" +rMenuY+"&popupH="+popup_h+"&popupW="+popup_w;
	if(url.indexOf("?") > 0){
		url = url + '&' + locstr;
	}else{
		url = url + '?' + locstr;
	}
	$('#popup_win').attr('src',url);
	if(css_option != null) $('#popup_win').css(css_option);
	$('#popup_win').delay(200).fadeIn();
}

function resize_popup(wstyle){
	var t = 111;
	var h = mainmap_height - 77;
	var w,r,l;
	if(wstyle == 'small'){
		w = mainmap_width - 10;
		if(w > 480) w = 480;
		r = "auto";
		l = 338;
	}else if(wstyle=='login'){
		if(mainmap_width >= 850){
			w = 850;
		}else{
			w = mainmap_width + 320;
		}
		r = 5;
		l = "auto";
	}else if(wstyle=='map'){ //貼齊地圖的寬高
		w = mainmap_width - 10;
		r = 5;
		l = "auto";
	}else{		//大視窗，地圖大於1000p :地圖收起，左邊不動? 地圖小於1000p: 左邊收起，全板開
		wstyle = 'big';
		r= "auto";
		t = 81;
		if(mainmap_width >= 1000){
			l = 335;
			w = mainmap_width - 10;
			h = mainmap_height - 43;
		}else{
			l= 3;
			w = mainmap_width +323;
			h= mainmap_height - 12;
		}
	}
	popup_style=wstyle;
	popup_w = w;
	popup_h = h;
	var newcss = {width:w,height:h,left:l,right:r, top:t};
	$('#popup_win').css(newcss);
}

//關閉地圖中間視窗
function close_popup(options){
	$('#popup_win').attr('src','about:blank').hide();
	is_bigpopup_opened = 0;
	changeSearchBoxType(); //如果關閉商店頁面要更新上方下拉選單的內容(去掉「店內搜尋」的項目)
}
//最小化中間視窗
function minimize_popup(){
	$('#popup_win').animate({width:'43px',height:'43px',top:'115px'});
	$("#popup_win").contents().find(".w_close").removeClass('w_close').addClass('w_open');
	$("#popup_win").contents().find(".w_open").click(function(){
		top.maximize_popup();
	});
}
//最大化中間視窗
function maximize_popup(){
	open_popup(popup_url, popup_style);
}
//關閉「地圖」
function close_map(){
	var newleft = mainmap_width + 330;
	$('#mapwrap').animate({left:newleft}, 400);
}
//關閉「地圖」
function open_map(){
	$('#mapwrap').animate({left:330}, 400, function(){refresh_map();});
}
//新增地點,地圖
function func_add_poi(cur_type){
	if(func_checkLogin()){
		open_popup('include_page/pop.php?target=poi_add.php&cur_type=' + cur_type);
	}
}
//打開「交通」圖層(傳入公車 / 捷運)
function show_traffic_info(by_type){
	if(map_type == '2d'){
		$.ajax({
			type:"GET",
			url:"ajax_proc.php",
			data:{cmd:"show_traffic_info", by_type:by_type, cur_y:cur_y, cur_x:cur_x },
			datatype:"text",
			error:function(){
				alert("error in applying ajax");
			},
			success:function(data){
				$("#obj_content").append(data);
			}
		});
	}else{
		if(by_type == 'bus'){
			traffic_type = '公車資訊';
		}else{
			traffic_type = '捷運資訊';
		}
		LayerButtonTrigger(traffic_type);
	}
}

//20101008 地圖工具列 Siegfrid Start
function mZoomIn(){	//:放大
	if(map_type == '2d'){
		map.zoomIn();
	}else{
		var pos = globe.navigate.getPosition();
		globe.navigate.zoomIn(parseFloat(pos.height/2));
	}
	getCurLatLng();
}
function mZoomOut(){	//:縮小
	if(map_type == '2d'){
		map.zoomOut();
	}else{
		var pos = globe.navigate.getPosition();
		globe.navigate.zoomOut(parseFloat(pos.height*3));
	}
	getCurLatLng();
}
function mUp(){	//:上
	if(map_type == '2d'){
		map.panDirection(0, +1)
	}
	getCurLatLng();
}
function mDown(){	//:下
	if(map_type == '2d'){
		map.panDirection(0, -1)
	}
	getCurLatLng();
}
function mLeft(){	//:左
	if(map_type == '2d'){
		map.panDirection(+1,0 )
	}
	getCurLatLng();
}
function mRight(){	//:右
	if(map_type == '2d'){
		map.panDirection(-1,0 )
	}
	getCurLatLng();
}

function teMenuOperate(code) {
	switch(code) {
		case "zoomIn" : ZoomIn(); break;
		case "zoomOut" : ZoomOut(); break;
		case "zoomHouseLv" : globe.navigate.zoomTo(sgLevelHouse); break;
		case "zoomStreetLv" : globe.navigate.zoomTo(sgLevelStreet); break;
		case "zoomCityLv" : globe.navigate.zoomTo(sgLevelCity); break;
		case "zoomStateLv" : globe.navigate.zoomTo(sgLevelState); break;
		case "zoomCountryLv" : globe.navigate.zoomTo(sgLevelCountry); break;
		case "zoomGlobeLv" : globe.navigate.zoomTo(sgLevelGlobe); break;
		case "faceNorth" : menugo(7008); break;
		case "flyAround" : menugo(34026); break;
		case "dragMode" : menugo(1022); break;
		case "slideMode" : menugo(1021); break;
		case "turnTiltMode" : menugo(1023); break;
		case "stop" : globe.navigate.stop(); break;
		case "hDistanceM" : menugo(33326); break;
		case "vDistanceM" : menugo(33330); break;
		case "areaM" : menugo(33350); break;
	}
}
function menugo(code) {
	globe.teCore.IMenu.Invoke(code);
}
//20101008 地圖工具列 Siegfrid End

function getWeather() {
	//return;
	/*if(map_type == '2d'){
		var ll = map.getCenter();
		if (ll != null) {
			var terrainX = ll.lng();
			var terrainY = ll.lat();
			//var getJsonUrl = "http://163.29.7.184/rest/GetWeather.aspx?x=" + terrainX + "&y=" + terrainY + "&callback=showWeather";
			var getJsonUrl = "http://"+site_domain+"/STREST/GetWeather.aspx?x=" + terrainX + "&y=" + terrainY + "&callback=showWeather";
			CScript.getRequest(getJsonUrl);
			//showWeather(CScript);
		}
	}else if(map_type == '3d'){
		var ret = globe.window.pixelToWorld();   
		if (ret != null) {
			var terrainX = ret.coord.x.toFixed(5);
			var terrainY = ret.coord.y.toFixed(5);
			//var getJsonUrl = "http://163.29.7.184/rest/GetWeather.aspx?x=" + terrainX + "&y=" + terrainY + "&callback=showWeather";
			var getJsonUrl = "http://"+site_domain+"/STREST/GetWeather.aspx?x=" + terrainX + "&y=" + terrainY + "&callback=showWeather";
			CScript.getRequest(getJsonUrl);
			//showWeather(CScript);
		}
	}*/
}
function showWeather(jsonObject) {
	if(typeof jsonObject == 'object'){
		try{	
			$('#cur_cityName').html(jsonObject.cityName);
			if(jsonObject.description){
				//var res = jsonObject.description.split(" ");
				var res = jsonObject.description;
				var wicon = 0;
				var StrImg = '';
				switch(res) {
					case '晴午後多雲':
					StrImg='<img src="css/img/weather/ico-weather-12.jpg">';
					//return StrImg;
					break;
					case '多雲時晴':
					StrImg='<img src="css/img/weather/ico-weather-11.jpg">';
					//return StrImg;
					break;
					case '雲':
					StrImg='<img src="css/img/weather/ico-weather-5.jpg">';
					//return StrImg;
					break;
					case '晴':
					StrImg='<img src="css/img/weather/ico-weather-9.jpg">';
					//return StrImg;
					break;
					case '多雲':
					StrImg='<img src="css/img/weather/ico-weather-8.jpg">';
					//return StrImg;
					break;
					case '晴時多雲陣雨':
					StrImg='<img src="css/img/weather/ico-weather-7.jpg">';
					//return StrImg;
					break;
					case '多雲短暫陣雨':
					case '多雲午後短暫陣雨':
					StrImg='<img src="css/img/weather/ico-weather-6.jpg">';
					//return StrImg;
					break;
					case '晴午後短暫雷陣雨':
					StrImg='<img src="css/img/weather/ico-weather-3.jpg">';
					//return StrImg;
					break;
					case '陰':
					StrImg='<img src="css/img/weather/ico-weather-2.jpg">';
					//return StrImg;
					break;
					case '多雲午後短暫雷陣雨':
					case '多雲短暫陣雨或雷雨':
					case '多雲時陰短暫陣雨或雷雨':
					case '多雲時陰短暫雷陣雨':
					case '多雲時陰陣雨或雷雨':
					case '陰時多雲陣雨或雷雨':
					case '陰陣雨或雷雨':
					StrImg='<img src="css/img/weather/ico-weather-1.jpg">';
					//return StrImg;
					break;
					case '晴時多雲':
					StrImg='<img src="css/img/weather/ico-weather-11.jpg">';
					//return StrImg;
					break;
					case '晴轉多雲':
					StrImg='<img src="css/img/weather/ico-weather-11.jpg">';
					break;
					case '多雲時陰陣雨':
					StrImg='<img src="css/img/weather/ico-weather-6.jpg">';
					//return StrImg;
					break;
					case '晴午後局部短暫雷陣雨':
					StrImg='<img src="css/img/weather/ico-weather-3.jpg">';
					//return StrImg;
					break;
					case '陰時多雲短暫雨':
					case '陰時多雲短暫陣雨':
					case '多雲轉陰短暫雨':		
					StrImg='<img src="css/img/weather/ico-weather-4.jpg">';
					//return StrImg;
					break;
					case '陰':
					StrImg='<img src="css/img/weather/ico-weather-2.jpg">';
					//return StrImg;
					break;
					case '多雲時陰':
					StrImg='<img src="css/img/weather/ico-weather-2.jpg">';
					//return StrImg;
					break;
					case '陰短暫雨':
					StrImg='<img src="css/img/weather/ico-weather-6.jpg">';
					//return StrImg;
					break;
					default:
						StrImg=res;
					break;
				}
				$('#cur_description').html(" | " +StrImg);
			}
			if(jsonObject.temperature){
				$('#cur_temperature').html(" | " +jsonObject.temperature);
			}
			/*if(jsonObject.rainChanceRate){
				$('#cur_rainChanceRate').html(jsonObject.rainChanceRate);
			}*/
		}catch(e){
			
		}
	}
}

function CheckTE(_downloadUrl, _redirectUrl) {
	if(Chk3dnum == 1){
		return;
	}
	
	this.downloadUrl = _downloadUrl;
	this.redirectUrl = _redirectUrl;
	
	this.check = function() {
		if (navigator.appVersion.indexOf("Windows") > -1) {
			var obj = CheckBrowser();
			if (obj.name == "IE") {
				if (CheckTEPlugin()) {
					window.location.href = this.redirectUrl;
					Chk3dnum++;
				}
				else {
					alert("請下載3D瀏覽軟體!");
					window.location.href = this.downloadUrl;
				}
			}
			else {
				alert("請使用IE7以上的瀏覽器版本");
				window.location.href = downloadUrl;
			}
		}
		else {
			alert("很抱歉！您的作業系統不支援!請使用Windows作業系統!");
			window.location.href = downloadUrl;
		}
	}
	function CheckBrowser() {
		var browserObj = new Object();
		browserObj.version = "none";
		browserObj.name = "none";
		if (navigator.appName == "Microsoft Internet Explorer") {
			browserObj.name = "IE";
			if (navigator.appVersion.indexOf("MSIE 6") != -1) {
				browserObj.version = 6;
			} 
			else if (navigator.appVersion.indexOf("MSIE 7") != -1) {
				browserObj.version = 7;
			} 
			else if (navigator.appVersion.indexOf("MSIE 8") != -1) {
				browserObj.version = 8;
			} 
			else {
				browserObj.version = "none";
			}
		}
		else if (navigator.appName == "Netscape") {
			if (navigator.userAgent.indexOf("Firefox") != -1) {
				browserObj.name = "Firefox";
				browserObj.version = navigator.userAgent.substr(navigator.userAgent.lastIndexOf("/") + 1, 1);
			}
			else {
				browserObj.name = "Netscape";
			}
		}
		return browserObj;
	}
	function CheckTEPlugin() {
		try {
			new ActiveXObject("TerraExplorer2.TEInformationWindow");
			return true;
		}
		catch(e) {
			return false;
		}
	}
}

//在搜尋時，給定z(高度公尺值)，回傳v(經緯度半徑範圍值)
function func_getV(z){
	if(z > 60000){
		v = 0.5;
	}else if(z > 45000){
		v = 0.3;
	}else if(z > 30000){
		v = 0.2;
	}else if(z > 20000){
		v = 0.13;
	}else if(z > 15000){
		v = 0.065;
	}else if(z > 10000){
		v = 0.035;		
	}else{
		v = 0.02;
	}
	return v;
}

function func_z_to_h(z){
	var h = 1000;
	if(z == 0){
		h = 470000;
	}else if(z == 1){
		h = 250000;
	}else if(z == 2){
		h = 120000;
	}else if(z == 3){
		h = 57000;
	}else if(z == 4){
		h = 28000;
	}else if(z == 5){
		h = 14500;
	}else if(z == 6){
		h = 7300;
	}else if(z == 7){
		h = 4000;
	}else if(z == 8){
		h = 3500;
	}else if(z == 9){
		h = 2000;
	}
	return h;
}
function func_z_to_lv(z){
	var lv = 0;
	if(z >= 470000){
		lv = 0;
	}else if(z >= 250000){
		lv = 1;
	}else if(z >= 120000){
		lv = 2;
	}else if(z >= 57000){
		lv = 3;
	}else if(z >= 28000){
		lv = 4;
	}else if(z >= 14500){
		lv = 5;
	}else if(z >= 7300){
		lv = 6;
	}else if(z >= 4000){
		lv = 7;
	}else if(z >= 3500){
		lv = 8;
	}else if(z >= 2000){
		lv = 9;
	}else if(z >= 1000){
		lv = 10;
	}else{
		lv = 10;
	}
	return lv;
}

function chg_map_switch(cur_map_type){
	if(cur_map_type == '2d'){
		$("#map_switch_but").css('background','url(img/cmap_2d_arrow.png)');
		$("#map_switch").css('background','url(img/cmap_2d.png)');
	}else{
		$("#map_switch_but").css('background','url(img/cmap_3d_arrow.png)');
		$("#map_switch").css('background','url(img/cmap_3d.png)');
	}
}

function chg_mtype(cur_mtype){
	//alert('chg '+ mtype + ' to '+ cur_mtype);
	if(mtype != cur_mtype){
		if(cur_mtype != 'route' || cur_mtype != 'layer' || cur_mtype != 'tool' ){
			$("#sidebar_route").hide();	
		}
		$('.sidebar_link').removeClass('sidebar_link');
		$('#sidebar_result_tabs_' + cur_mtype).addClass('sidebar_link');
		mtype = cur_mtype;
		var pos = $('#sidebar_result_tabs_' + cur_mtype).position();
		if(pos){
			var trangle_pos = pos.left + 17;
			$("#sidebar_result_tabs_trangle").animate({left:trangle_pos},200);
		}
	}
}

//變更搜尋類別，當內頁切換到商店時會變成只搜商店內容
function changeSearchBoxType(stype, shopsn){
	if(stype == null){
		$("#searchtype_text").html('商圈').attr('searchtype','circle').attr('shopsn','');;
	}else if(stype == 'shop_product'){
		$("#searchtype_text").html('店內').attr('searchtype',stype).attr('shopsn',shopsn);
	}
}

/* 地圖圖層與工具視窗移動的函式 */
//地圖工具(圖層)開啟
function func_open_mapfunc(turl){
	MsgInfo = new SGPopup("工具/圖層",turl);
	MsgInfo.width="270";
	MsgInfo.height="80%";
	MsgInfo.align="TopRight";
	globe.showPopup(MsgInfo);
	
}
//地圖工具(圖層)關閉
function func_close_mapfunc(){
	globe.removePopup(MsgInfo);
}

//當地圖(不論2D或3D)被移動時呼叫的函式
function event_map_moved(){
	if (typeof travel_map_moved == 'function' && listen_travel_map === true){
		travel_map_moved();
	}
}
//地圖上有一群點的集合時，移動地圖到中心點的位置
function showAll(points){
  if (($.isArray(points)) && (points.length > 0)){
    if (map_type == '3d'){
       showAll3D(points);
    }else{
        showAll2D(points);
    }
  }
}
function showAll3D(points){ 
  var bounds = new Array;
  $.each(points, function(index, value) { 
    var point = value.split(','); 
    var bound = new SGCoord2D(point[0], point[1]);
    bounds.push(bound);
  });
  globe.navigate.jumpTo(bounds);
}

function showAll2D(points){
  var bound = new CLatLngBounds();
  $.each(points, function(index, value) {
    var point = value.split(','); 
    bound.extend(new CLatLng(point[1], point[0]))
  });
  map.setCenter(bound.getCenter(), map.getBoundsZoomLevel(bound));
}

function CheckTEPlugin() {
	try {
		new ActiveXObject("TerraExplorer2.TEInformationWindow");
		return true;
	}
	catch(e) {
		return false;
	}
}

function test(){
	//alert(obj_url);
}

function showPager(mode, page, total){
    $.ajax({
        url: "include/travel_pager_ajax.php",
        data: {mode: mode, page: page, total: total},
        success: function(html){
             $("#sidebar_functions").html(html);
        }
    });
}
function func_open_maptools_slider(new_height){
	
}

function func_open_maptools(obj_to_show){
	$("#sidebar_result_tabs_route").trigger('click');
}

function func_open_mine(objname){
	/**/
	chg_mtype('mine');
	$("#sidebar_result_subtabs li.mine a").each(function(){
		if($(this).attr('title') == objname){
			$(this).trigger('click');
		}
	});
	$("#sidebar_result_tabs_mine").trigger('click');
}

function func_open_footer(){
	var o = $("#footer").length;
	if(o <= 0){
		$(document.body).append('<iframe id="footer" frameborder="0" scrolling="no" src="include_page/footer.php"></iframe>');
		$("#footer").mouseleave(function(){
			footer_close_timer = setTimeout("func_close_footer();",200);
		}).mouseenter(function(){
			clearTimeout(footer_close_timer);
		});
	}else{
		$("#footer").show();
	}
}

function func_close_footer(){
	$("#footer").fadeOut();
}

function getCurLatLng(){
	if(map_type == '2d'){
		cur_x = map.getCenter().lng();
		cur_y = map.getCenter().lat();
		cur_z = map.getZoom();
		if(cur_z == 10){
			cur_z = 1000;
		}else if(cur_z == 9){
			cur_z = 1900;
		}else if(cur_z == 8){
			cur_z = 3500;
		}else if(cur_z == 7){
			cur_z = 4000;
		}else if(cur_z == 6){
			cur_z = 7300;
		}else if(cur_z == 5){
			cur_z = 14500;
		}else if(cur_z == 4){
			cur_z = 28000;
		}else if(cur_z == 3){
			cur_z = 57000;
		}else if(cur_z == 2){
			cur_z = 120000;
		}else if(cur_z == 1){
			cur_z = 250000;
		}else{
			cur_z = 470000;
		}
		$('#cur_x').html(cur_x.toFixed(5));
		$('#cur_y').html(cur_y.toFixed(5));
		$('#cur_z').html(cur_z);
	}else{
		 var ret = globe.window.pixelToWorld(); //取出當時的位置
		if (ret != null){
			cur_x = ret.coord.x.toFixed(5);    //cur_x, cur_y 定義在control.js中用來隨時記錄地圖的中心點
			cur_y = ret.coord.y.toFixed(5);
			cur_z = ret.distance.toFixed(1);   //cur_z 定義在control.js中 用來記錄 camera 的高度(公尺)
		}
		//更新首頁畫面上的 現在位置: 經度 xxx, 緯度xxx, 高度xxx 那一串文字的資訊 
		$('#cur_x').html(cur_x);  
		$('#cur_y').html(cur_y);
		$('#cur_z').html(cur_z);
	}
}

function func_goAfterLogin(msn){
	isLoggedIn = true;
	sess_msn = msn;
	$.get("include/proc.php?target=top_nav.php", function(data){
		//if(cur_lang == 'cn') data = Simplized(data);
		$("#top_nav").html(data);
	});
	$("#sidebar_tabs_mine").show();
	if(is_bigpopup_opened == 1){
		$("#popup_win").attr('src', $('#popup_win').attr('src'));
	}
}

function get_nleft() {
	if(mainmap_width < 932) { return Math.round(($(window).width() - 932) / 2); } 
	else { return 333; }
}

function hideLayerPOI()
{
	if (map_type == '3d')
  {
    if (st_layer['poi_eat'].isOpened)
    {
      setLayerVisibility('poi_eat', st_layer['poi_eat'].url, false);
      st_layer['poi_eat'].isOpened = false;
    }
    if (st_layer['poi_travel'].isOpened)
    {
      setLayerVisibility('poi_travel', st_layer['poi_travel'].url, false);
      st_layer['poi_travel'].isOpened = false;
    }
    if (st_layer['poi_fun'].isOpened)
    {
      setLayerVisibility('poi_fun', st_layer['poi_fun'].url, false);
      st_layer['poi_fun'].isOpened = false;
    }
    if (st_layer['poi_buy'].isOpened)
    {
      setLayerVisibility('poi_buy', st_layer['poi_buy'].url, false);
      st_layer['poi_buy'].isOpened = false;
    }
    if (st_layer['poi_traffic'].isOpened)
    {
      setLayerVisibility('poi_traffic', st_layer['poi_traffic'].url, false);
      st_layer['poi_traffic'].isOpened = false;
    }
    if (st_layer['poi_life'].isOpened)
    {
      setLayerVisibility('poi_life', st_layer['poi_life'].url, false);
      st_layer['poi_life'].isOpened = false;
    }
  }
}

function showStreetView2D()
{
  if (SV2D == null)
  {
    SV2D = new streetView2D();
    map.closeInfoWindow();
    SV2D.init();
    $('#panoDIVClose').css('cursor', 'pointer').click(function(){
      SV2D.destroy();
      SV2D = null;
    });
  }
}

function streetView2D()
{
  var stMarker;
  var stIcon;
  var stPano;
  var panoZoom = 0;
  var panoLinePoints = [];
  var panoLine, panoLeft, panoRight;

  this.init = function()
  {
    if (GBrowserIsCompatible())
    {
      stIcon = new CIcon(null, 'GStreetView/p48.png');
      stIcon.iconSize = new CSize(30, 30);
      stIcon.iconAnchor = new CPoint(15, 15);
      stIcon.infoWindowAnchor = new CPoint(15, 15);

      var mapCenter = map.getCenter();
      stMarker = new CMarker(mapCenter, {icon:stIcon, title:'可拖曳小綠人，即可觀看該地點Street View。', clickable:true, draggable:true});

      stMarker.enableDragging();
      map.addOverlay(stMarker);
      changeyaw(0);

      CEvent.addListener(stMarker, "dragend", function(ll)
      {
        $('#panoDIVContainer').show();
        var latlng = new GLatLng(ll.lat(), ll.lng());
        stPano.setLocationAndPOV(latlng);
      });

      var panoCenter = new GLatLng(mapCenter.lat(), mapCenter.lng());
      var panoPOV = {yaw:0, pitch:0}; // yaw:90正東方 pitch: -90垂直向上 90垂直向下
      var panoOptions = {latlng:panoCenter, pov:panoPOV};
      stPano = new GStreetviewPanorama(document.getElementById('panoDIV'), panoOptions);

      GEvent.addListener(stPano, 'error', handleNoFlash);
      GEvent.addListener(stPano, "initialized", function(latlng)
      {
        var sv_ll = new CLatLng(latlng.lat, latlng.lng);
        stMarker.setPoint(sv_ll);
      });

      GEvent.addListener(stPano, 'yawchanged', function(yaw)
      {
        changeyaw(yaw);
      });

      GEvent.addListener(stPano, 'zoomchanged', function(zoom)
      {
        panoZoom = zoom;
        changeyaw(stPano.getPOV().yaw);
      });

      $('#panoDIVContainer').show();
    }
    else
    {
      alert('瀏覽器無法支援Google Street View!!');
    }
  };

  this.destroy = function()
  {
    map.removeOverlay(panoLine);
    map.removeOverlay(panoLeft);
    map.removeOverlay(panoRight);
    map.removeOverlay(stMarker);
    stPano.remove();
    $('#panoDIVContainer').hide();
  };

  var handleNoFlash = function(errorCode)
  {
    if (errorCode == 600)
    {
      // no streetveiw in this area
      map.removeOverlay(panoLine);
      map.removeOverlay(panoLeft);
      map.removeOverlay(panoRight);
      $('#panoDIVContainer').hide();
      alert('此處無街景資料');

    }
  };

  var changeyaw = function(yaw)
  {
    var leng = 0.001;
    var range = 30 - 5 * panoZoom;

    var  right_angel = yaw + range;
    var  left_angel = yaw - range;
    if (right_angel >= 360) right_angel = right_angel - 360;
    if (left_angel < 0) left_angel = 360 + left_angel;

    var xy = changeyaw_compute(right_angel, leng);
    var rx = xy[0], ry = xy[1];
    xy = changeyaw_compute(left_angel, leng);
    var lx = xy[0], ly = xy[1];

    map.removeOverlay(panoLine);
    panoLinePoints = [];
    var mkr_ll = stMarker.getPoint();
    panoLinePoints.push(mkr_ll);
    panoLinePoints.push(new CLatLng(mkr_ll.lat() + ly, mkr_ll.lng() + lx));

    //六等分的線
    for (var i=1; i < 12; i++)
    {
      var six_range = range / 6 * i;
      var six_angel = left_angel + six_range;
      if (six_angel >= 360) six_angel = six_angel - 360;

      xy = changeyaw_compute(six_angel, leng);
      var sx = xy[0], sy=xy[1];
      panoLinePoints.push(new CLatLng(mkr_ll.lat() + sy, mkr_ll.lng() + sx));
    }
    panoLinePoints.push(new CLatLng(mkr_ll.lat() + ry, mkr_ll.lng() + rx));

    panoLine = new CPolygon(panoLinePoints, '#990000', 0, 0.6, '#ff00ff', 0.2, true, false);
    panoLine.area = true;
    map.addOverlay(panoLine);

    //左、右邊線
    map.removeOverlay(panoLeft);
    var RPoints = [], LPoints = [];
    LPoints.push(mkr_ll);
    LPoints.push(new CLatLng(mkr_ll.lat() + ly, mkr_ll.lng() + lx));
    panoLeft = new CPolyline(LPoints, '#ff00ff', 2, 0.3);
    map.addOverlay(panoLeft);

    map.removeOverlay(panoRight);
    RPoints.push(mkr_ll);
    RPoints.push(new CLatLng(mkr_ll.lat() + ry, mkr_ll.lng() + rx));
    panoRight = new CPolyline(RPoints, '#ff00ff', 2, 0.3);
    map.addOverlay(panoRight);
  }

  var changeyaw_compute = function(angel, len)
  {

  var Quo = Math.floor(angel/90);
  var Rem = Math.floor(angel%90);

  var sin = Math.abs(Math.sin(Rem*Math.PI/180) * len);
  var cos = Math.abs(Math.cos(Rem*Math.PI/180) * len);

      var x, y;

  if (Rem == 0) {
        switch (Quo) {
          case 0:
            x = 0;
            y = len;
            break;
          case 1:
            x = len;
            y = 0;
            break;
          case 2:
            x = 0;
            y = len* (-1);
            break;
          case 3:
            x = len* (-1);
            y = 0;
            break;
          default:
            break;

        }
  } else {
        switch (Quo) {
          case 0:
            x = sin;
            y = cos;
            break;
          case 1:
            x = cos;
            y = sin* (-1);
            break;
          case 2:
            x = sin* (-1);
            y = cos* (-1);
            break;
          case 3:
            x = cos* (-1);
            y = sin;
            break;
          default:
            break;
        }
  }

  var xy = [x, y];
  return xy;
  }
}

/* Copyright 2011, Ben Lin (http://dreamerslab.com/)
* Licensed under the MIT License (LICENSE.txt).
*
* Version: 1.0.1
*
* Requires: jQuery 1.2.3+
*/
;(function(a){a.preload=function(){var c=[],b=arguments.length;for(;b--;){c.push(a("<img />").attr("src",arguments[b]));}};})(jQuery);
