﻿// JScript 檔

var mDEF_POS_TEXT_CAPTION = "輸入地址欄";
var maryMidPosAdd = new Array("1", "", "", "", "");
var mintMidPosCount=1, mintMidPosNumber=1;
var mintMaxMidPos=5;

//----------------------------------------------------------------------------------
// 目    的 : 新增中繼點。
// 輸 入 值 :
// 傳 回 值 : 若中繼點尚未超過上限(mintMaxMidPos), 則新增一中繼點。
// 日    期 :    COMMENT
// ----------    -------
// 2007/11/12    建立(Jimmy)
//----------------------------------------------------------------------------------
function addNewMidPos() {
    var intReturn = addNewMidPosIfNotExist();
    if (intReturn != -1) {
        return 1;
    } else {
        alert("無法再新增中繼點！");
        return 0;
    }
}

//----------------------------------------------------------------------------------
// 目    的 : 如果指定的中繼點不存在,則新增此中繼點。
// 輸 入 值 : intPosNum 整數,中繼點編號
// 傳 回 值 : 若中繼點尚未超過上限(mintMaxMidPos), 則新增一中繼點。
// 日    期 :    COMMENT
// ----------    -------
// 2007/11/12    建立(Jimmy)
//----------------------------------------------------------------------------------
function addNewMidPosIfNotExist() {
    var strNewMidPos="";
    if (mintMidPosCount >= mintMaxMidPos)  return -1;
    try{
        mintMidPosCount++;
        mintMidPosNumber++;
        var intPosNum = mintMidPosNumber;
        var objText = document.getElementById("txtMiddle"+intPosNum);
        if(!objText) {
            strNewMidPos += "<div id=\"divMidPos"+intPosNum+"\">";
            strNewMidPos += "<table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">";
            strNewMidPos += "<tr><td align=\"left\" background=\"img/start_bg.gif\"><table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">";
            strNewMidPos += "<tr>";
            strNewMidPos += "<td><img src=\"img/stop.gif\" alt=\"中繼點\" width=\"76\" height=\"20\" /></td>";
            strNewMidPos += "<td class=\"go_1\">[" + intPosNum + "]</td>";
            strNewMidPos += "<td valign=\"top\"><a href=\"javascript: removeMidPos("+intPosNum+");\" class=\"go_1\">刪除此中繼點</a></td>";
            strNewMidPos += "</tr>";
            strNewMidPos += "</table></td></tr>";
            
            strNewMidPos += "<tr><td height=\"20\"><table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">";
            strNewMidPos += "<tr>";
            strNewMidPos += "<td width=\"138\"><input name=\"txtMiddle"+intPosNum+"\" type=\"text\" value=\""+mDEF_POS_TEXT_CAPTION+"\" size=\"36\" onfocusin=\"javascript: TextFocusIn(this);\" onfocusout=\"javascript: TextFocusOut(this);\" /></td>";
            strNewMidPos += "<td width=\"818\" align=\"left\">";
            strNewMidPos += "<a href=\"javascript: setMiddle("+intPosNum+");\"><img src=\"img/setup.gif\" alt=\"設定\" width=\"52\" height=\"25\" border=\"0\" /></a><a href=\"javascript: resetMiddle("+intPosNum+");\"><img src=\"img/re.gif\" alt=\"重設\" width=\"52\" height=\"25\" border=\"0\" /></a>";
            strNewMidPos += "</td>";
            strNewMidPos += "</tr>";
            strNewMidPos += "</table></td></tr>";
            strNewMidPos += "</table>";
            strNewMidPos += "</div>";
            
            appendHtml("divMidPosContainer", strNewMidPos);
            
            window.parent.window.addNewMidPosHidden(intPosNum);
            
            return 1;
        } else {
            //alert("node 已存在.");
            return 0;
        }
    } catch(e) {
        alert(e.description);
        return -1;
    }
}

//----------------------------------------------------------------------------------
// 目    的 : 清除所有已設定的定點資訊。
// 輸 入 值 : 
// 傳 回 值 : 
// 日    期 :    COMMENT
// ----------    -------
// 2007/11/28    建立(Jimmy)
//----------------------------------------------------------------------------------
function clearAllPosition() {
    var i=0, objText, objDiv;
    
    objText = document.getElementById("txtStart");
    if (objText) objText.value = mDEF_POS_TEXT_CAPTION;
    
    objText = document.getElementById("txtEnd");
    if (objText) objText.value = mDEF_POS_TEXT_CAPTION;
    
    for(i=1; i<=mintMidPosNumber; i++) {
        objText = document.getElementById("txtMiddle"+i);
        if(objText) {
            if(i==1)
                objText.value = mDEF_POS_TEXT_CAPTION;
            else {
                objDiv = document.getElementById("divMidPos"+i);
                objDiv.removeNode(true);
                objDiv = null;
            }
        }
        objText = null;
    }
    
    window.parent.window.clearAllPosition();
}

function changePosition() {
    var strAddr = frmData.txtStart.value;
    frmData.txtStart.value = frmData.txtEnd.value;
    frmData.txtEnd.value = strAddr;
    
    window.parent.window.changeSEPosition();
}

//----------------------------------------------------------------------------------
// 目    的 : 取得空的中繼點
// 輸 入 值 :
// 傳 回 值 : 整數,中繼點編號
// 日    期 :    COMMENT
// ----------    -------
// 2007/11/27    建立(Jimmy)
//----------------------------------------------------------------------------------
function getEmptyMidPos() {
    var i=0, intNodeCount=-1;
    var objText, strNodeValue="";
    
    for(i=1; i<=mintMidPosNumber; i++) {
        objText = document.getElementById("txtMiddle"+i);
        if(objText) {
            strNodeValue = objText.value;
            if (strNodeValue == mDEF_POS_TEXT_CAPTION || strNodeValue == "") {
                intNodeCount = i;
                break;
            }
        }
        objText = null;
    }
    return intNodeCount;
}

//----------------------------------------------------------------------------------
// 目    的 : 移除中繼點。
// 輸 入 值 : intPosNum 整數,中繼點編號
// 傳 回 值 : 移除指定的中繼點。
// 日    期 :    COMMENT
// ----------    -------
// 2007/11/12    建立(Jimmy)
//----------------------------------------------------------------------------------
function removeMidPos(intPosNum) {
    var blnConfirm = confirm("確定要刪除此中繼點?");
	if (blnConfirm == true) {
	    window.parent.window.resetMiddlePosition(intPosNum);
	    // 'true' possible value specifies removal of childNodes also
        eval("divMidPos"+intPosNum).removeNode(true);
        mintMidPosCount--;
    }
}

//----------------------------------------------------------------------------------
// 目    的 : 清除終點。
// 輸 入 值 :
// 傳 回 值 : 呼叫父視窗的 resetMiddlePosition() function 清除終點資訊。。
// 日    期 :    COMMENT
// ----------    -------
// 2007/11/12    建立(Jimmy)
//----------------------------------------------------------------------------------
function resetEnd() {
    window.parent.window.resetStartPosition();
    frmData.txtEnd.value = mDEF_POS_TEXT_CAPTION;
}

//----------------------------------------------------------------------------------
// 目    的 : 清除中繼點。
// 輸 入 值 : intPosNum 整數,中繼點編號
// 傳 回 值 : 呼叫父視窗的 resetMiddlePosition() function 清除中繼點資訊。
// 日    期 :    COMMENT
// ----------    -------
// 2007/11/12    建立(Jimmy)
//----------------------------------------------------------------------------------
function resetMiddle(intPosNum) {
    var objText = document.getElementById("txtMiddle"+intPosNum);
    if(objText) {
        var strAddr = objText.value;
        if (strAddr != mDEF_POS_TEXT_CAPTION && strAddr != "") {
            window.parent.window.resetMiddlePosition(intPosNum);
            objText.value = mDEF_POS_TEXT_CAPTION;
        }
        objText = null;
    } else {
        alert("找不到此控制項!");
    }
}

//----------------------------------------------------------------------------------
// 目    的 : 清除起點。
// 輸 入 值 :
// 傳 回 值 : 呼叫父視窗的 resetMiddlePosition() function 清除起點資訊。。
// 日    期 :    COMMENT
// ----------    -------
// 2007/11/12    建立(Jimmy)
//----------------------------------------------------------------------------------
function resetStart() {
    window.parent.window.resetStartPosition();
    frmData.txtStart.value = mDEF_POS_TEXT_CAPTION;
}

//-- 清除導航資訊
function resetNavigate() {
    clearAllPosition();
    setInputObjectValue("hidWorkMode", "");
    frmData.submit();
}

//----------------------------------------------------------------------------------
// 目    的 : 儲存路徑規劃資料。
// 輸 入 值 :
// 傳 回 值 : 將網頁導向 map_navigate_data_sp.asp 網頁。
// 日    期 :    COMMENT
// ----------    -------
// 2007/11/28    建立(Jimmy)
//----------------------------------------------------------------------------------
function saveRouteInfo() {
    var strRouteName = frmData.txtRouteName.value;
    if (strRouteName == "") {
        alert("請輸入路徑名稱!");
        frmData.txtRouteName.focus();
        return;
    }
    var blnConfirm = confirm("確定要儲存此路徑?");
	if (blnConfirm == true) {
        frmData.action = "map_navigate_data_sp.asp";
        frmData.submit();
    }
}

function setEnd() {
    var strAddr = frmData.txtEnd.value;
    if (strAddr == mDEF_POS_TEXT_CAPTION || strAddr == "") {
        alert("請輸入終點地址!");
        frmData.txtEnd.focus();
        return;
    } else {
        window.parent.window.setEndPosition(strAddr);
    }
}

//----------------------------------------------------------------------------------
// 目    的 : 設定中繼點(將中繼點文字方塊中輸入的地址定位)。
// 輸 入 值 : intPosNum 整數,中繼點編號
// 傳 回 值 : 呼叫父視窗的 setMiddlePosition() function 執行地址定位。
// 日    期 :    COMMENT
// ----------    -------
// 2007/11/12    建立(Jimmy)
//----------------------------------------------------------------------------------
function setMiddle(intPosNum) {
    var objText = document.getElementById("txtMiddle"+intPosNum);
    if(objText) {
        var strAddr = objText.value;
        if (strAddr == mDEF_POS_TEXT_CAPTION || strAddr == "") {
            alert("請輸入中繼點地址!");
            objText.focus();
            return;
        } else {
            window.parent.window.setMiddlePosition(intPosNum, strAddr);
        }
        objText = null;
    } else {
        alert("找不到此控制項!");
    }
}

function setStart() {
    var strAddr = frmData.txtStart.value;
    if (strAddr == mDEF_POS_TEXT_CAPTION || strAddr == "") {
        alert("請輸入起點地址!");
        frmData.txtStart.focus();
        return;
    } else {
        window.parent.window.setStartPosition(strAddr);
    }
}

//----------------------------------------------------------------------------------
// 目    的 : 顯示道路名稱在終點文字方塊中。
// 輸 入 值 : strAddr 字串,道路名稱
// 傳 回 值 : 
// 日    期 :    COMMENT
// ----------    -------
// 2007/11/23    建立(Jimmy)
//----------------------------------------------------------------------------------
function showEndAddr(strAddr) {
    frmData.txtEnd.value = strAddr;
}

function showEndPos() {
    try {
        var strPos = frmData.hidEPoint.value;
        var aryPos = strPos.split(",");
        window.parent.window.ShowMapByPos(aryPos[0], aryPos[1], 400);
    } catch(e) {
    
    }
}

//----------------------------------------------------------------------------------
// 目    的 : 顯示道路名稱在指定的中繼點文字方塊中。
// 輸 入 值 : strAddr 字串,道路名稱
//            intPosNum 整數,中繼點編號
// 傳 回 值 : 
// 日    期 :    COMMENT
// ----------    -------
// 2007/11/23    建立(Jimmy)
//----------------------------------------------------------------------------------
function showMiddleAddr(strAddr, intPosNum) {
    var objText = document.getElementById("txtMiddle"+intPosNum);
    if(objText) {
        objText.value = strAddr;
    }
    objText = null;
}

function showRoad(strRoadId) {
    window.parent.window.getAndShowRoad(strRoadId);
}

//----------------------------------------------------------------------------------
// 目    的 : 顯示道路名稱在起點文字方塊中。
// 輸 入 值 : strAddr 字串,道路名稱
// 傳 回 值 : 
// 日    期 :    COMMENT
// ----------    -------
// 2007/11/23    建立(Jimmy)
//----------------------------------------------------------------------------------
function showStartAddr(strAddr) {
    frmData.txtStart.value = strAddr;
}

function showStartPos() {
    try {
        var strPos = frmData.hidSPoint.value;
        var aryPos = strPos.split(",");
        window.parent.window.ShowMapByPos(aryPos[0], aryPos[1], 400);
    } catch(e) {
    
    }
}

//----------------------------------------------------------------------------------
// 目    的 : 取得 map_navigate.asp 網頁中紀錄的起點、中繼點和終點的 x,y 座標,並指定給
//            map_navigate_data.asp 網頁中對應的 Hidden 控制項,最後重新導向給該網頁執行
//            路徑規劃
// 輸 入 值 :
// 傳 回 值 : 
// 日    期 :    COMMENT
// ----------    -------
// 2007/11/27    建立(Jimmy)
//----------------------------------------------------------------------------------
function startRoute() {
    var strSPosition = window.parent.window.getStartPosition();
    var strEPosition = window.parent.window.getEndPosition();
    
    if (strSPosition == "") {
        alert("請輸入起點!");
        return;
    }
    if (strEPosition == "") {
        alert("請輸入終點!");
        return;
    }
    setInputObjectValue("hidSPoint", strSPosition);
    setInputObjectValue("hidEPoint", strEPosition);
    
    var objHidMPoint, strMPosition="", i=0, strInputHtml="";
    for(i=1; i<=mintMidPosNumber; i++) {
        strMPosition = window.parent.window.getMiddlePosition(i);
        if(strMPosition != "") {
            objHidMPoint = document.getElementById("hidMPoint"+i);
            if(objHidMPoint) {
                objHidMPoint.value = strMPosition;
            } else {
                strInputHtml += "<input type=\"hidden\" name=\"hidMPoint"+i+"\" value=\""+strMPosition+"\" />";
            }
            objHidMPoint = null;
        }
    }
    strInputHtml += "<input type=\"hidden\" name=\"hidMidPosNumber\" value=\""+mintMidPosNumber+"\" />";
    if(strInputHtml != "") appendHtml("divHiddenObject", strInputHtml);
    
    window.parent.window.ShowMapProcTest("路徑規劃中, 請稍候....");
    window.parent.window.TempDivVisible();
    
    frmData.hidWorkMode.value = "search";
    frmData.action = "map_navigate_data.asp";
    frmData.submit();
}

function TextFocusIn(txtSrc) {
    if (txtSrc.value == mDEF_POS_TEXT_CAPTION) {
        txtSrc.value = "";
    }
}
function TextFocusOut(txtSrc) {
    if (txtSrc.value == "") {
        txtSrc.value = mDEF_POS_TEXT_CAPTION;
    }
}

window.onload = function() {
    window.parent.window.TempDivHidden();
    
    var strWorkMode = getInputObjectValue("hidWorkMode");
    var blnRoute = getInputObjectValue("hidRoute");
    
    if (strWorkMode == "search" && blnRoute == "0") {
        //alert("clear..");
        //-- 清除之前的路徑規劃資料
        clearAllPosition();
    }
}