﻿// JScript 檔
var mstrLoadMapFirstFlag="1";
var mdblScaleFactorRange=8;

function CustomerSymbol_Click(strID, strUrl) {
    if (strID == "slocation") return;
    //alert("CustomerSymbol_Click - "+strID);
    var aryObject = strID.split(',');
    var lngItemId = aryObject[0];
    var lngPortslId = aryObject[1];
    if (lngItemId == undefined) lngItemId = "";
    if (lngPortslId == undefined) lngPortslId = "";
    if (lngItemId == "" || lngPortslId == "") return;
    //-- tabid : 屏東縣 = 147, 台中市 = 394, 高雄縣 = 209, 新竹 = 77
    var strUrl = "http://pt.sohot.com.tw/Portals/" + lngPortslId + "/tabid/147/itemid/" + lngItemId + "/Default.aspx";
    //var strUrl = "http://travel.apbb.com.tw/Portals/" + lngPortslId + "/tabid/394/itemid/" + lngItemId + "/Default.aspx";
    //var strUrl = "http://kh.sohot.com.tw/Default.aspx?tabid=209&ItemId=" + lngItemId
    //var strUrl = "http://220.229.248.23/Default.aspx?tabid=77&ItemId=" + lngItemId + "&ctabid=36"
    
    window.open(strUrl, "_blank");
    
    try {
        var objFunc = document.getElementById("hidInitFunc");
        if (objFunc) {
            var strFuncCode = objFunc.value;
            if (strFuncCode == "class") {
                //alert("lngItemId=" + lngItemId + ",lngPortslId=" + lngPortslId);
                //-- 儲存瀏覽紀錄
                var strParams = "smode=s1&if01=" + lngItemId + "&if02=" + lngPortslId + "&if03=CMS";
	            new net.ContentLoader("MJ_NoteBrowseRecord.asp", parseNoteBrowseReturn, null, "POST", strParams);
            } else {
                //alert("Error! strFuncCode=" + strFuncCode)
            }
        } else {
            //alert("hidInitFunc is null...");
        }
    } catch(e) {
        alert(e.description);
    }
}

function parseNoteBrowseReturn() {
    var xmlDoc = this.req.responseXML;
	var elReturn = xmlDoc.getElementsByTagName("return")[0]; //-- 取得poi節點
	var atsReturn = elReturn.attributes;
	var strBrId = atsReturn.getNamedItem("brid").value;
	var strReturnErrMsg = atsReturn.getNamedItem("errmsg").value;
	
	if (strReturnErrMsg != "")
	    alert(strReturnErrMsg);
	else {
	    var elErr = xmlDoc.getElementsByTagName("err")[0]; //-- 取得poi節點
	    var atsErr = elErr.attributes;
	    var strErrMsg = atsErr.getNamedItem("msg").value;
	    if (strErrMsg != "") alert(strErrMsg);
	}
}

//當使用者在物件圖示上方按下並放開滑鼠鍵時
function InsertShowObject_Click(ObjectId) {
	if (ObjectId == "slocation") return;
    
	var aryObject = ObjectId.split(',');
	if (aryObject[0] == undefined) aryObject[0] = "";
    if (aryObject[1] == undefined) aryObject[1] = "";
    if (aryObject[0] == "" || aryObject[1] == "") return;
    //-- tabid : 屏東縣 = 147, 台中市 = 394, 高雄縣 = 209, 新竹 = 77
    var strUrl = "http://pt.sohot.com.tw/Portals/" + aryObject[1] + "/tabid/147/itemid/" + aryObject[0] + "/Default.aspx";
    //var strUrl = "http://travel.apbb.com.tw/Portals/" + aryObject[1] + "/tabid/394/itemid/" + aryObject[0] + "/Default.aspx";
    //var strUrl = "http://kh.sohot.com.tw/Default.aspx?tabid=209&ItemId=" + aryObject[0]
    //var strUrl = "http://220.229.248.23/Default.aspx?tabid=77&ItemId=" + aryObject[0] + "&ctabid=36"
    window.open(strUrl, "_blank");
}

//-- 判斷來源寬高與目前地圖的寬高
function checkScaleFactor(dblSrcWidth, dblSrcHeight) {
    var blnRefreshMap = false;
    var dblSrcFactor=0, dblMapScale=0;
    
    if (isNaN(dblSrcWidth) == true || isNaN(dblSrcHeight) == true) {
        return false;
    } else {
        dblSrcWidth = Number(dblSrcWidth);
        dblSrcHeight = Number(dblSrcHeight);
        
        dblSrcFactor = (dblSrcWidth+dblSrcHeight) / 2;
        
        if (dblSrcFactor == 0) return false;
    }
    try {
        var dblMapLeft = getMapLeft();
        var dblMapTop = getMapTop();
        var dblMapRight = getMapRight();
        var dblMapBottom = getMapBottom();
        
        if (isNaN(dblMapLeft) == false && isNaN(dblMapTop) == false && isNaN(dblMapRight) == false && isNaN(dblMapBottom) == false) {
            dblMapLeft = Number(dblMapLeft);
            dblMapTop = Number(dblMapTop);
            dblMapRight = Number(dblMapRight);
            dblMapBottom = Number(dblMapBottom);
            
            var dblMapWidth = Math.abs(dblMapRight - dblMapLeft);
            var dblMapHeight = Math.abs(dblMapTop - dblMapBottom);
            
            dblMapScale = (dblMapWidth+dblMapHeight) / 2;
            //alert("factor rate=" + (dblMapScale / dblSrcFactor));
            
            if ((dblMapScale / dblSrcFactor) > mdblScaleFactorRange) {
                blnRefreshMap = true;
            } else {
                //alert("position out of range...(" + dblX + "," + dblY + ")-(" + dblMapLeft + "," + dblMapRight + "," + dblMapBottom + "," + dblMapTop + ")");
            }
        } else {
            //alert("map range is nan...");
            blnRefreshMap = false;
        }
    } catch(e) {
        //alert(e.description);
        blnRefreshMap = false;
    }
    return blnRefreshMap;
}
//-- 判斷來源座標點是否位於地圖範圍內
function checkPosInMap(dblX, dblY) {
    var blnRefreshMap = false;
    if (isNaN(dblX) == true || isNaN(dblY) == true) {
        return false;
    }
    try {
        var dblMapLeft = getMapLeft();
        var dblMapTop = getMapTop();
        var dblMapRight = getMapRight();
        var dblMapBottom = getMapBottom();
        
        if (isNaN(dblMapLeft) == false && isNaN(dblMapTop) == false && isNaN(dblMapRight) == false && isNaN(dblMapBottom) == false) {
            dblMapLeft = Number(dblMapLeft);
            dblMapTop = Number(dblMapTop);
            dblMapRight = Number(dblMapRight);
            dblMapBottom = Number(dblMapBottom);
            
            dblX = Number(dblX);
            dblY = Number(dblY);
            
            if ((dblX > dblMapLeft) && (dblX < dblMapRight) && (dblY > dblMapBottom) && (dblY < dblMapTop)) {
                blnRefreshMap = true;
            } else {
                //alert("position out of range...(" + dblX + "," + dblY + ")-(" + dblMapLeft + "," + dblMapRight + "," + dblMapBottom + "," + dblMapTop + ")");
            }
        } else {
            //alert("map range is nan...");
            blnRefreshMap = false;
        }
    } catch(e) {
        //alert(e.description);
        blnRefreshMap = false;
    }
    return blnRefreshMap;
}
//-- 顯示地圖以及動態插入圖示物件
function ShowMapAndInsertObject(dblX, dblY, dblLeft, dblTop, dblRight, dblBottom, strSymbolXml) {
    if (isNaN(dblLeft) == false && isNaN(dblTop) == false && isNaN(dblRight) == false && isNaN(dblBottom) == false) {
        dblLeft = Number(dblLeft);
        dblTop = Number(dblTop);
        dblRight = Number(dblRight);
        dblBottom = Number(dblBottom);
    } else {
        alert("地圖顯示範圍的資料錯誤!");
        return;
    }
    
    if (isNaN(dblX) == false && isNaN(dblY) == false) {
        setInsertShowObject(strSymbolXml);
        
        //-- 判斷此座標點是否位於地圖範圍內
        var blnRefreshMap = checkPosInMap(dblX, dblY);
        var blnCheckFactor = checkScaleFactor(Math.abs(dblRight-dblLeft), Math.abs(dblTop-dblBottom));
        //-- 判斷是否為第一次載入地圖
        var blnLoadMapFirst = false;
        try {
            var strLoadMapFirst = mstrLoadMapFirstFlag;
            //alert("strLoadMapFirst=" + strLoadMapFirst);
            if (strLoadMapFirst == "1") {
                mstrLoadMapFirstFlag = "0";
                blnLoadMapFirst = true;
            }
        } catch(e) {
            blnLoadMapFirst = false;
        }
        
        if ((blnRefreshMap==true) && (blnLoadMapFirst==false) && (blnCheckFactor==false)) {
            setWorkMode("insert_show_object");
        } else {
	        ShowMap(dblLeft, dblTop, dblRight, dblBottom);
        }
    } else {
	    alert("找不到定位資料!");
    }
}

function changeLoadMapFirstValue(strValue) {
    mstrLoadMapFirstFlag = strValue;
}