﻿//追蹤「滑鼠點擊物件及座標」 By Andrew Sun  Last Updated: 2008.04.25
var Trace_GapTime     = 900;        //允許追蹤的最小間隔(毫秒) 
var Trace_LastTime    = (new Date()).getTime();  //上次追蹤時間初值
var Trace_HasHtmlDTD  = false;  // 是否有無DTD ，只對IE有作用 
var Trace_BrowserType,Trace_PageWidth,Trace_PageHeight,Trace_CursorX,Trace_CursorY
//2008.04.25 新增當螢幕解析度大於版面時需處理的偏移量
var Trace_ChkObj       = "DivTheme" ; //檢查偏移量用的基準物件
var Trace_ChkObj_X     = 12  ;      //基準物件原始位置的正常X偏移量
var Trace_ChkObj_Y     = 0   ;      //基準物件原始位置的正常Y偏移量
var Trace_ChkObjWidth  = 992 ; //要追蹤範圍的總寬度
var Trace_ChkObjHeight = 612 ; //要追蹤範圍的總高度


//判斷瀏覽器形式，有無DTD及現行頁面大小
if(!document.all)
 {
 Trace_BrowserType='FF';
 Trace_PageWidth  = window.innerWidth;
 Trace_PageHeight = window.innerHeight;  
 }
else
 {
 Trace_BrowserType='IE'; 
 if (document.documentElement.clientWidth > 0)
   {
   Trace_HasHtmlDTD = true;  
   Trace_PageWidth  = document.documentElement.clientWidth;
   Trace_PageHeight = document.documentElement.clientHeight;    
   }
 else
   {
   Trace_HasHtmlDTD = false;  
   Trace_PageWidth  = document.body.clientWidth;
   Trace_PageHeight = document.body.clientHeight;    
   } 
 }

//================================

function TraceElement(e)
{
   //低於GapTime則不予處理
   if ( (new Date()).getTime() - Trace_LastTime  < Trace_GapTime ) 
    {
	document.getElementById("ShowXY").innerHTML="小於[" + Trace_GapTime + "]毫秒時不予記錄";
	return;
	}
   
	 
   Trace_LastTime = (new Date()).getTime();
   if (!e) var e = window.event
   if (e.target) targ = e.target
   else if (e.srcElement) targ = e.srcElement
   if (targ.nodeType == 3) targ = targ.parentNode // defeat Safari bug
   if (Trace_BrowserType == 'IE')
     {
	 if (Trace_HasHtmlDTD)
	   {
	   Trace_CursorX = event.clientX + document.documentElement.scrollLeft;     
	   Trace_CursorY = event.clientY + document.documentElement.scrollTop;
	   }
	  else
	   {
	   Trace_CursorX = event.clientX + document.body.scrollLeft;
	   Trace_CursorY = event.clientY + document.body.scrollTop;
	   } 
	 }
   else
     {
	   //FF Base 
	   Trace_CursorX = e.pageX;
	   Trace_CursorY = e.pageY;
	 }
    
   //偏移量處理== Begin == 
	pLeft   = document.getElementById(Trace_ChkObj).offsetLeft;
   pTop    = document.getElementById(Trace_ChkObj).offsetTop;

   if (pLeft > Trace_ChkObj_X)
     {Trace_CursorX = Trace_CursorX - pLeft + Trace_ChkObj_X;}
     
   if ((Trace_CursorX < 0) | (Trace_CursorX > Trace_ChkObjWidth))
     {
     document.getElementById("ShowXY").innerHTML="校正後的X座標超出追蹤範圍,不予記錄";
     return;
     }

   
   if (pTop > Trace_ChkObj_Y)
     {Trace_CursorY = Trace_CursorY - pTop + Trace_ChkObj_Y;}

   if ((Trace_CursorY < 0) | (Trace_CursorY > Trace_ChkObjHeight))
     {
     document.getElementById("ShowXY").innerHTML="校正後的Y座標超出追蹤範圍,不予記錄";
     return;
     }
   //偏移量處理== End == 
   
	SetObjTrace("/service/Set_ClkLog_Tc.aspx",Trace_CursorX,Trace_CursorY,targ.tagName,targ.id,window.location) ;
   //document.getElementById("ShowXY").innerHTML=" Tag=[" + targ.tagName + "],id=[" + targ.id + "],w=[" + Trace_PageWidth + "],h=[" + Trace_PageHeight + "],x=[" + Trace_CursorX + "],y=[" + Trace_CursorY + "]";
}