var dg_ICON='imgs/t_5.gif';
var sBlogURL='../showpost.aspx';
var bDebug=false;      //是否顯示除錯訊息，例如bDebug=True時，會顯示實際接收資料數，僅除錯時開啟
var nDetailLayer=10; //最大地圖層級
var nMapPoints=500;    //載入地圖後要查詢並顯示的點位數量
var sRequestEventsByUserID='';  //指定特定使用者的Events
var nRealDataCounts;   //實際讀到的有效資料數
var fname1='ajax/getMapEventsInfo.asp';      //取得地圖點位資訊
var XHR_QueryTimeout=15;					//ajax查詢逾時設定時間
var XHR_AbortTimer=null;
var sArticle=new Array();
//-----------------------------------------------------------------------
var tO = null;
function doResize(divo)
{
	divo.style.width = (parseInt(document.body.clientWidth)) + 'px';
	divo.style.height = (parseInt(getHeight())) + 'px';
	if(tt != null)
	{
		tt.resize(parseInt(divo.style.width),parseInt(divo.style.height));
	}
}

function resizeFunc()
{
	clearTimeout(tO);
	tO = setTimeout("doResize(document.getElementById('mapc'));", 500);
}

function getHeight()
{
	b = document.body;
	p = b.parentNode;
	bcHeight = b.clientHeight;
	pcHeight = p.clientHeight;
	if(document.all)	//IE
	{
		return (pcHeight == 0) ? bcHeight : pcHeight;
	}
	else				//FF
	{
		return (pcHeight == p.offsetHeight && pcHeight == p.scrollHeight) ? bcHeight : pcHeight;
	}
	return bcHeight;
}
var xx, yy, zz, cc, it = false;
function init()
{
	tt.addMapControl();
	//tt.addWMap();
	//getMapEventsInfo();
	
	//使用預設地圖，因此不必選取地圖風格類型
	//tt.addMapTypeSelector();
	//取得指定UserID的，不一定存在
	if(top.document.getElementById("txtUserID") != null)
	{
	    sRequestEventsByUserID=top.document.getElementById("txtUserID").value;
	}
//	if(parent.document.getElementById("txtPosX") != null)
//	{
//	    if(parent.document.getElementById("txtPosX").value != "")
//	    {
//    	    tt.zoomToXY(new dgXY(parent.document.getElementById("txtPosX").value, parent.document.getElementById("txtPosY").value),10);
//	    }
//    } 
	if (bDebug && sRequestEventsByUserID!='') alert('指定查詢使用者事件'+sRequestEventsByUserID);
}
//以上的部份為地圖init必要的部份，儘可能不要修改
//以下為主要新增運作的程式，可客製化

//查詢點位資料
/*var XHR_getMapEventsInfo=new ActiveXObject("Microsoft.XMLHTTP");
function getMapEventsInfo(){
	XHR_No=1;
	try{
			XHR_getMapEventsInfo.open("POST",fname1+"?ts="+(new Date()).getTime()+"&CNT="+nMapPoints+"&USER="+sRequestEventsByUserID);
			//!!!alert(fname1+"?ts="+(new Date()).getTime()+"&CNT="+nMapPoints+"&USER="+sRequestEventsByUserID);
			XHR_getMapEventsInfo.send(null);
			XHR_AbortTimer=setTimeout('ajaxErrorHandle('+XHR_No+')',XHR_QueryTimeout*1000);
			XHR_getMapEventsInfo.onreadystatechange=ServerProcessQuery_getMapEventsInfo;
	}catch(e){
	    alert('無法取得資料庫連線，請稍後重試！');
	    void(0);
	}
}


function ServerProcessQuery_getMapEventsInfo(){
	try{
	        if (XHR_getMapEventsInfo.readystate==4 || XHR_getMapEventsInfo.readystate==200){
	            if (XHR_AbortTimer) clearInterval(XHR_AbortTimer);
	        	var tmpStr=XHR_getMapEventsInfo.responseText;
	        	if (tmpStr!=''){
		        	sArticle=tmpStr.split('\n');    //global variable
    	        	sArticle.pop();
    	        	nRealDataCounts=sArticle.length;
                }
                //判斷資料筆數是否正確或是有不正常的換行造成誤判
                if (sArticle.length>nMapPoints)
                    alert('資料剖析錯誤！請通知系統管理員處理！')
               else if (bDebug)
                    alert('接收資料數：'+ sArticle.length+' 筆');
               //繪製Marker
              drawMapEventMarker(); 
            }
	}catch(e){
        void(0);
	}
}
//AJAX查詢逾時處理
function ajaxErrorHandle(XHR_No){
	switch(XHR_No){
		case 1:XHR_getMapEventsInfo.abort();break;
		default:void(0);							
	}	//ToDo:提示發生錯誤的原因
}*/
//繪製地圖事件Marker
function drawMapEventMarker(){
    var rawdata;
    var nErrorCounts=0;      //計算錯誤資料數，除錯用
    var sSerial,sUserID,sTitle,sContent,sCategory,sLogDate,sTrackbackURL,sPosX,sPosY,sCountyID;   //欄位暫存變數
    var tmpHTML;
    for (var ii=0;ii<nRealDataCounts;ii++){
        rawdata=sArticle[ii].split(',');
        if  (rawdata.length==10){   //合計10欄，小於10欄的是無效資料，不必放上去
            sSerial=rawdata[0];
            sUserID=rawdata[1];
            sTitle=rawdata[2];
            sContent=rawdata[3];
            sCategory=rawdata[4];
            sLogDate=rawdata[5];
            sTrackbackURL=rawdata[6];
            sPosX=rawdata[7];
            sPosY=rawdata[8];
            sCountyID=rawdata[9];
            tmpHTML=assembleHTML(sSerial,sUserID,sTitle,sContent,sCategory,sLogDate,sTrackbackURL,sPosX,sPosY,sCountyID);
            addMarker(new dgXY(sPosX,sPosY),dg_ICON,sTitle,tmpHTML,140,140);    //!!!
       }else{   nErrorCounts++;    }
    }
        if (bDebug && nErrorCounts>0)
        alert('檢查資料內容有錯誤：'+nErrorCounts+'筆');
}
//新增Marker
function addMarker(xxyy,icon,msg,html,winsizeW,winsizeH){
	try{
		var tmpdiv = document.createElement('div');
		var tmppic = document.createElement('img');
		var tmpstr = document.createElement('font');
		tmpdiv.style.cssText = 'width:600px;';
		tmppic.style.cssText = 'cursor:hand;position:absolute;left:-10px;top:-10px;width:20px;height:20px;';
		tmppic.src = icon;
		tmpdiv.appendChild(tmppic);
		tmpstr.style.cssText = 'position:absolute;filter:alpha(opacity=80);opacity:1;left:20px;top:-10px;display:none;font-size:14px;color:red;font-family: Tahoma';
		tmpstr.innerHTML =msg;
		tmpdiv.appendChild(tmpstr);
		mm = new dgMarker(xxyy,tmpdiv);
		mm.onclick = function()
		{
			this.childNodes[0].childNodes[1].style.display = 'none';
			tt.openInfoWindow(new dgXY(this.xy.x,this.xy.y),html,winsizeW,winsizeH);
		}
		mm.onmouseover = function()
		{
			this.style.zIndex = 99;
			this.childNodes[0].childNodes[1].style.display = 'block';
			tt.closeInfoWindow();
		}
		mm.onmouseout = function()
		{
			this.style.zIndex = 1;
			this.childNodes[0].childNodes[1].style.display = 'none';
		}
		mm.ondblclick = function()
		{
			tt.closeInfoWindow();
			this.childNodes[0].childNodes[1].style.display = 'none';
			tt.zoomToXY(new dgXY(this.xy.x,this.xy.y),nDetailLayer);    //最大地圖層級
		}
		tt.addItem(mm);
	}catch(e){setErrMsg(strAddMarkerFailure);};
}
//組合詳細資訊(WinTips)
function assembleHTML(Serial,UserID,Title,Content,Category,LogDate,TrackbackURL,PosX,PosY,CountyID){
	try{
		var html='';
		html+='<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">'+'\n';
        html+='<html xmlns="http://www.w3.org/1999/xhtml">'+'\n';
        html+='<head>'+'\n';
        html+='    <title>Article</title>'+'\n';
        html+='</head>'+'\n';
        html+='<body>'+'\n';
        html+='    <div style="width: 100px; height: 100px" style="font-size: 8pt">'+'\n';
        html+='        <table width="100px">'+'\n';
//        html+='           <tr>'+'\n';
//        html+='               <td style="width: 80px">'+'\n';
//        html+='                    事件編號'+'\n';
//        html+='                </td>'+'\n';
//        html+='                <td>'+'\n';
//        html+='                    '+Serial+'\n';
//        html+='                </td>'+'\n';
//        html+='            </tr>'+'\n';
        html+='            <tr>'+'\n';
//        html+='                <td style="width: 80px">'+'\n';
//        html+='                    主題：</td>'+'\n';
        html+='                <td>'+'\n';
      html+='                     <a href="'+sBlogURL+'?user='+UserID+'&ArticleID='+Serial+'&x='+PosX+'&y='+PosY+'" target=blank>'+'\n';
        html+='                    '+Title+'</a>';
        html+='                 </td>'+'\n';
        html+='            </tr>'+'\n';
        html+='            <tr>'+'\n';
//        html+='                <td style="width: 80px">'+'\n';
//        html+='                    分類：</td>'+'\n';
        html+='                <td>'+'\n';
        html+='                    <img src="../BlogImage.ashx?articleserial='+Serial+'"></td>'+'\n';
        html+='            </tr>'+'\n';
//        html+='            <tr>'+'\n';
//        html+='                <td style="width: 80px">'+'\n';
//        html+='                    發表日期：</td>'+'\n';
//        html+='                <td>'+'\n';
//        html+='                    '+LogDate+'</td>'+'\n';
//        html+='            </tr>'+'\n';
//        html+='            <tr>'+'\n';
//        html+='                <td style="width: 80px">'+'\n';
//        html+='                    發表人：</td>'+'\n';
//        html+='                <td>'+'\n';
//        html+='                    '+UserID+'</td>'+'\n';
//        html+='            </tr>'+'\n';
//        html+='            <tr>'+'\n';
//        html+='                <td colspan="2" style="height: 18px">'+'\n';
//        html+='                    文章內容摘要</td>'+'\n';
//        html+='            </tr>'+'\n';
//        html+='            <tr>'+'\n';
//        html+='                <td colspan="2" style="height: 18px">'+'\n';
//        html+='                    '+Content+'</td>'+'\n';
//        html+='            </tr>'+'\n';   
//        html+='            <tr>'+'\n';
        html+='                <td colspan="2">'+'\n';
        html+='                    <form id="frmDataFields" action="">'+'\n';
        html+='                        <input id="hidPosX" type="hidden" value="'+PosX+'" /><br />'+'\n';
        html+='                        <input id="hidPosY" type="hidden" value="'+PosY+'" /><br />'+'\n';
        html+='                        <input id="CountyID" type="hidden" value="'+CountyID+'" /><br />'+'\n';
        html+='                    </form>'+'\n';
        html+='                </td>'+'\n';
        html+='            </tr>'+'\n';
        html+='        </table>'+'\n';
        html+='    </div>'+'\n';
        html+='</body>'+'\n';
        html+='</html>'+'\n';
       if (bDebug) alert(html);   //除錯用，檢視HTML錯誤
		return html;
	}catch(e){
		return '';
	}
}
//擷取螢幕XY，並轉換為真實地理座標，送至地圖Blog頁面欄位
function sendMapXY2BlogPage(screenX,screenY){
	try{
		var realXY=tt.revXY(screenX,screenY);
		//alert(realXY.x+','+realXY.y);		//測試用
		if (top.document.getElementById("ctl00_ContentPlaceHolder1_FormView1_txtX"))
			top.document.getElementById("ctl00_ContentPlaceHolder1_FormView1_txtX").value=(realXY.x).toString();
		//alert('擷取X值：'+(realXY.x).toString());	//測試用
		if (top.document.getElementById("ctl00_ContentPlaceHolder1_FormView1_txtY"))
			top.document.getElementById("ctl00_ContentPlaceHolder1_FormView1_txtY").value=(realXY.y).toString();		
		//alert('擷取Y值：'+(realXY.y).toString());	//測試用			
	}catch(e){alert(e);}
	
}

function returnToOrgXY(){
	try{
	    var toX='',toY='';
        toX= top.document.getElementById("txtPosX").value;
        toY= top.document.getElementById("txtPosY").value;
		if (toX!='')
		    tt.zoomToXY(new dgXY(toX,toY),nDetailLayer);  
		}catch(e){alert(e);}
}