﻿// JScript 檔

function changeClass(strFirstClassName, strSubClassName) {
    var strClass = strFirstClassName + "&" + strSubClassName;
    //alert("Class="+strClass);
    //setCustomerSymbolGetRange(4000);
    //setCustomerSymbolProcPage("IMap_LoadCustomerSymbolXml2.asp");
    //-- 使用 iMap 電子地圖的 setMapShowCustomerSymbolClass 屬性設定要顯示的自定地標類別
    setMapShowCustomerSymbolClass(strClass);
    reloadCustomerSymbol();
}

//-- 更改查詢項目
function changeSearchFunc() {
    var strFunc = changeSearchFunc.arguments[0];
    var divFraSearch = document.getElementById("divFraSearch");
    var divNavigate = document.getElementById("divNavigate");
    var ifrSearch = document.getElementById("ifrSearch");
    var strSearchText = getInputObjectValue("hidSearchText");
    
    //divFraSearch.style.visibility = "visible";
    //divNavigate.style.visibility = "hidden";
    divNavigate.style.display = "none";
    divFraSearch.style.display = "inline";
    
    //alert("changeSearchFunc:"+strFunc);
    setInputObjectValue("hidInitFunc", strFunc);
    if (strSearchText =="") {
        setInputObjectValue("txtSearch", "");
        TextFocusOut(frmData.txtSearch);
        
        switch(strFunc) {
            case "addr":
                ifrSearch.src = "map_sindex_addr.asp";
                break;
            case "keyword":
                ifrSearch.src = "map_sindex_skeyword.asp";
                break;
            case "class":
                ifrSearch.src = "map_sindex_sclass.asp";
                break;
            case "friend":
                ifrSearch.src = "map_sindex_sfriend.asp";
                break;
            case "road":
                ifrSearch.src = "map_sindex_road.asp";
                break;
            case "billboard":
                ifrSearch.src = "map_billboard_data.asp";
                break;
            case "addpoi":
                var dblX=0, dblY=0;
                if (changeSearchFunc.arguments.length >= 3) {
                    dblX = changeSearchFunc.arguments[1];
                    dblY = changeSearchFunc.arguments[2];
                }
                //alert("map_addNewPoi.asp?x=" + dblX + "&y=" + dblY);
                ifrSearch.src = "map_addNewPoi.asp?x=" + dblX + "&y=" + dblY;
                break;
            case "poi":
                ifrSearch.src = "map_poi_data.asp";
                break;
            case "navigate":
                //divNavigate.style.visibility = "visible";
                //divFraSearch.style.visibility = "hidden";
                divFraSearch.style.display = "none";
                divNavigate.style.display = "inline";
                break;
            case "mymap":
                ifrSearch.src = "map_mymap_personal.asp";
                break;
            case "download":
                ifrSearch.src = "map_download.asp";
                break;
        }
    } else {
        setInputObjectValue("txtSearch", strSearchText);
        setInputObjectValue("hidSearchText", "");
        searchDataInfo();
    }
    divFraSearch = null;
    divNavigate = null;
    ifrSearch = null;
    
    ShowTargetSearchImage();
}

function check_key() {
	if (event.keyCode == 13) {
		//searchDataInfo();
		//alert("enter...");
		event.keyCode = 0;
        return;
	}
}

//-- 隱藏新增自訂標點視窗
function CloseAddNewPoi() {
    var divFraAddNewPoi = document.getElementById("divFraAddNewPoi");
    var divFraSearch = document.getElementById("divFraSearch");
    
    //divFraSearch.style.visibility = "visible";
    //divFraAddNewPoi.style.visibility = "hidden";
    divFraSearch.style.display = "inline";
    divFraAddNewPoi.style.display = "none";
    
    divFraAddNewPoi = null;
    divFraSearch = null;
}

//-- 完成新增自訂標點
function FinishAddNewPoi() {
    setMapClickSymbol("");
    refreshMapClickSymbol();
}

//-- 初始化 iMap 組件
function iMapInit() {
	var dblLeft = frmData.srcLeft.value;
	var dblTop = frmData.srcTop.value;
	var dblRight = frmData.srcRight.value;
	var dblBottom = frmData.srcBottom.value;
	var strSymbolXml = frmData.ObjectXML.value;
	var strWebPageUrl = frmData.webpagepath.value;
	var strMapImagePath = frmData.mapimagepath.value;
	var strProjectName = frmData.map_project.value;
	var strDefaultTheme = frmData.hidDefaultTheme.value;
	var strCustomerMenu = frmData.hidCustomerMenu.value;
	var strCustomerSymbolMenu = frmData.hidCustomerSymbolMenu.value;
	//var strShowLayer;
	
	//alert(strWebPageUrl);
	
	setWebPagePath(strWebPageUrl);
	setMapImagePath(strMapImagePath);
    setMapProjectName(strProjectName);
	setMapThemeName(strDefaultTheme);
	
    setReturnMapClickEvents(0);
	setInsertShowObject(strSymbolXml);
	
	setReturnLoadMapEvents("true");
	
	setCustomerSymbolGetRange(16000);
	setCustomerSymbolProcPage("IMap_LoadCustomerSymbolXml2.asp");
	
	//-- 設定使用滑鼠滾輪作地圖放大或縮小時的縮放比例
	setMouseWheelZoomInScale(6);
	setMouseWheelZoomOutScale(10);
	//-- 設定電子地圖每 Pixel 所能允許的最大座標值
	setMaxCoordPerPixel(800);
	//-- 設定使用滑鼠滾輪作地圖放大時，滑鼠滾動的上限值
	setMaxMouseWheelCount(6);
	
	//-- 設定自訂圖示的 Menu
	if (strCustomerSymbolMenu != "") setCustomerSymbolMenuCaptions(strCustomerSymbolMenu);
	
	//-- 設定地圖的移動模式為-平移
    iMapSetOptPan();
	
	if (dblLeft != 0 && dblTop != 0 && dblRight != 0 && dblBottom != 0) {
	    ShowMap(dblLeft, dblTop, dblRight, dblBottom);
	} else {
	    ShowDefaultMap();
	}
	//-- 加入主地圖的自訂Menu
	if (strCustomerMenu != "") window.setTimeout("setCustomerMenu('" + strCustomerMenu + "');", 300);
}

function LoadSearchPageFinish() {
    var divShowText = document.getElementById("divShowText");
	if (divShowText) divShowText.innerHTML = "";
}

//-- 查詢項目初始化
function SearchFrameInit() {
    var divFraSearch = document.getElementById("divFraSearch");
    var divNavigate = document.getElementById("divNavigate");
    var divTemp = document.getElementById("divTemp");
    
    divNavigate.style.display = "none";
    divTemp.style.display = "none";
    
    //divFraSearch.style.visibility = "visible";
    //divFraSearch.style.position = "relative";
    var intWidth = divFraSearch.offsetWidth;
    var intHeight = divFraSearch.offsetHeight;
    //var intLeft = divFraSearch.offsetLeft;
    //var intTop = divFraSearch.offsetTop;
    //divFraSearch.style.position = "static";
    
    //divNavigate.style.position = "absolute";
    //divNavigate.style.left = intLeft;
    //divNavigate.style.top = intTop;
    divNavigate.style.width = intWidth;
    divNavigate.style.height = intHeight;
    //divNavigate.style.position = "static";
    //divNavigate.style.visibility = "hidden";
    
    //divTemp.style.position = "absolute";
    //divTemp.style.left = intLeft;
    //divTemp.style.top = intTop;
    divTemp.style.width = intWidth;
    divTemp.style.height = intHeight;
    //divTemp.style.position = "static";
    //divTemp.style.visibility = "hidden";
    
    divFraSearch = null;
    divNavigate = null;
    divTemp = null;
    
    var strInitFunc = getInputObjectValue("hidInitFunc");
    //alert("SearchFrameInit:"+strInitFunc);
    if (strInitFunc == "") {
        strInitFunc = "addr";
        setInputObjectValue("hidInitFunc", strInitFunc);
    }
    changeSearchFunc(strInitFunc);
}

//-- 查詢資料
function searchDataInfo() {
    var divFraSearch = document.getElementById("divFraSearch");
    var divNavigate = document.getElementById("divNavigate");
    
    //divFraSearch.style.visibility = "visible";
    //divNavigate.style.visibility = "hidden";
    divNavigate.style.display = "none";
    divFraSearch.style.display = "inline";
    
    var fraSearch = document.getElementById("ifrSearch");
	var strSearch = getInputObjectValue("txtSearch");
	var strSMode = getInputObjectValue("hidInitFunc");
	
	//ShowMapProcTest("資料查詢中, 請稍候....");
	//alert(strSearch);
    //alert(strSMode);
    switch(strSMode) {
        case "addr":
            if (strSearch == pDEF_ADDR_TEXT || strSearch == "")
                alert("請輸入要查詢的地址!");
            else
                fraSearch.src = "map_sindex_addr.asp?sa=" + escape(strSearch);
            break;
        case "keyword":
            if (strSearch == pDEF_KEYWORD_TEXT || strSearch == "")
                alert("請輸入要查詢的關鍵字!");
            else
                fraSearch.src = "map_sindex_skeyword.asp?sa=" + escape(strSearch);
            break;
        case "class":
            alert("分類搜尋沒有可供查詢的項目。");
            frmData.txtSearch.value = "";
            TextFocusOut(frmData.txtSearch);
            //divFraSearch.style.visibility = "visible";
            break;
        case "friend":
            if (strSearch == pDEF_FRIEND_TEXT || strSearch == "")
                alert("請輸入要查詢的好友名稱!");
            else
                fraSearch.src = "map_sindex_sfriend.asp?sa=" + escape(strSearch);
            break;
        case "road":
            alert("交叉路口沒有可供查詢的項目。");
            frmData.txtSearch.value = "";
            TextFocusOut(frmData.txtSearch);
            break;
        default:
            if (strSearch == pDEF_ADDR_TEXT || strSearch == "")
                alert("請輸入要查詢的地址!");
            else
                fraSearch.src = "map_sindex_addr.asp?sa=" + escape(strSearch);
            break;
    }
    fraSearch = null;
}

//-- 顯示指定的座標位置, 並插入一個圖示
function ShowPosition(dblX, dblY, dblR, strId, strAlt) {
    var dblLeft = dblTop = dblRight = dblBottom = 0;
    var strSymbolXml = "";
    
	try {
	    dblX = parseFloat(dblX);
	    dblY = parseFloat(dblY);
	    if (dblX != 0 || dblY != 0) {
	        if (dblR == "") dblR = 400;
	        if (isNaN(dblR) == false) dblR = 400;
	        dblR = Number(dblR);
    		
	        dblLeft = dblX - dblR;
	        dblTop = dblY + dblR;
	        dblRight = dblX + dblR;
	        dblBottom = dblY - dblR;
		    
	        strSymbolXml = "<objectxml><object id=\"" + strId + "\" x=\"" + dblX + "\" y=\"" + dblY + "\" alt=\"" + strAlt + "\">";
	        strSymbolXml = strSymbolXml + "<icon path=\"" + frmData.map_click_symbol.value + "\" w=\"24\" h=\"27\" align=\"right\" valign=\"bottom\" />";
	        strSymbolXml = strSymbolXml + "</object></objectxml>";
	        
	        ShowMapAndInsertObject(dblX, dblY, dblLeft, dblTop, dblRight, dblBottom, strSymbolXml);
	    }
	} catch(e) {
	
	}
}

function ShowMapProcTest(strText) {
    /*var divShowText = document.getElementById("divShowText");
	divShowText.innerHTML = "<strong>" + strText + "</strong>";
	divShowText = null;*/
}

//-- 顯示 GPS 座標的位置
function showGPSPosition(dblX, dblY, dblR, strSymbolXml, strLock) {
    if (isNaN(dblX) == true || isNaN(dblY) == true) return;
    
    dblX = parseFloat(dblX);
    dblY = parseFloat(dblY);
    if (dblR == "") dblR = 300;
    dblR = parseFloat(dblR);
    
    var dblLeft = dblX-dblR;
    var dblTop = dblY+dblR;
    var dblRight = dblX+dblR;
    var dblBottom = dblY-dblR;
    
    if (strLock == "1") {
        ShowMapAndInsertObject(dblX, dblY, dblLeft, dblTop, dblRight, dblBottom, strSymbolXml);
    } else {
        setInsertShowObject(strSymbolXml);
        setWorkMode("insert_show_object");
    }
    //setInsertShowObject(strXML);
	//setWorkMode("insert_show_object");
}

//-- 依據指定的座標來顯示地圖
function ShowMapByPos(dblX, dblY, dblR, strIconAlt) {
    if (isNaN(dblX) == true || isNaN(dblY) == true) return;
    try {
        dblX = parseFloat(dblX);
        dblY = parseFloat(dblY);
        if (dblR == "") dblR = 300;
        dblR = parseFloat(dblR);
        
        var dblLeft = dblX-dblR;
	    var dblTop = dblY+dblR;
	    var dblRight = dblX+dblR;
	    var dblBottom = dblY-dblR;
		
		/*var strSymbolXml = "<objectxml><object id='001' x='" + dblX + "' y='" + dblY + "' alt='" + strIconAlt + "'>";
	    strSymbolXml = strSymbolXml + "<icon path='" + frmData.poi_symbol.value + "' w='24' h='27' align='right' valign='bottom' />";
	    strSymbolXml = strSymbolXml + "</object></objectxml>";
		
		ShowMapAndInsertObject(dblX, dblY, dblLeft, dblTop, dblRight, dblBottom, strSymbolXml);*/
	    ShowMap(dblLeft, dblTop, dblRight, dblBottom);
    } catch(e) {
        
    }
}

//-- 顯示導航路線
function ShowRoute(strPoints) {
    var strDrawObjectXml, aryPoints, aryPoint;
    var dblSX, dblSY, dblEX, dblEY;
    var dblLeft, dblTop, dblRight, dblBottom;
    
    if (strPoints != "") {
        strDrawObjectXml = "<DrawObject LineColor='0x00FF00' DrawType='DRAW_POLYLINE'>";
        
        aryPoints = strPoints.split(";");
        for(var i=0; i<aryPoints.length; i++) {
            aryPoint = aryPoints[i].split(",");
            
            strDrawObjectXml = strDrawObjectXml + "<Point Y='" + aryPoint[1] + "' X='" + aryPoint[0] + "' NodeIndex='" + (i+1) + "' />"
        }
        try{
            aryPoint = aryPoints[0].split(",");
            dblSX = parseFloat(aryPoint[0]);
            dblSY = parseFloat(aryPoint[1]);
            
            aryPoint = aryPoints[aryPoints.length-1].split(",");
            dblEX = parseFloat(aryPoint[0]);
            dblEY = parseFloat(aryPoint[1]);
            
            var dblOffset = Math.max(Math.abs(dblSX - dblEX) / 10, Math.abs(dblSY - dblEY) / 10);
            
            dblLeft = Math.min(dblSX, dblEX) - dblOffset;
            dblRight = Math.max(dblSX, dblEX) + dblOffset;
            dblBottom = Math.min(dblSY, dblEY) - dblOffset;
            dblTop = Math.max(dblSY, dblEY) + dblOffset;
            
            ShowMap(dblLeft, dblTop, dblRight, dblBottom);
        } catch(e) {
            
        }
        
        strDrawObjectXml = strDrawObjectXml + "</DrawObject>";
        strDrawObjectXml = "<Root>" + strDrawObjectXml + "</Root>"
        window.setTimeout("setDrawObjectByXMLStr(\"" + strDrawObjectXml + "\");", 600);
        //setDrawObjectByXMLStr(strDrawObjectXml);
    }
}

//-- 顯示導航定點位置
function ShowRoutePos(strPos) {
    setInsertShowObject(strPos);
}

