var cID="";
var cTable="";
var cOrigColor="";
var cFontColor="";
var cSelOrig="";
var cSelFont="";
var nSelIdx=-1;
var cSelBgColor="#3D5AC2";
var cSelFgColor="#FFFFFF";
var nDefWinWidth=640;
var nDefWinHeight=480;
var nDefWinX=100;
var nDefWinY=100;
var timerGoTo,timerShow,nWaitSecs,cForward,cShowId,lToBack,lToEnd;
var aOnLoad=new Array();
var cNowObjCat="";
var cNowObjId="";

window.onload=ExeOnLoadFun;

function SetGoTimer(nSecs,cURL,cId,lBack,lClose) {
nWaitSecs=nSecs;
cForward=cURL;
lToBack=lBack;
lToEnd=lClose;
if (Nothing(cId)==false) {
	cShowId=cId;
	timerShow=setInterval("DispLeftSecs()",1000);}
timerGoTo=setTimeout("TimeToGo()",nSecs*1000);
}

function TimeToGo(){
if (opener!=null) {
	if (Nothing(lToEnd)){
		if (Nothing(lToBack)) 
			opener.document.location=cForward; 
		else 
			opener.history.back(); }
	window.close();}
else 
	if (Nothing(lToBack)) top.location=cForward; 
	else { 
		if (isNaN(lToBack))
			window.history.back(); 
		else
			window.history.go(-lToBack);
	}
}

function StopGo() {
clearTimeout(timerGoTo);
clearInterval(timerShow);
}

function GoOn(){
timerGoTo=setTimeout("TimeToGo()",nWaitSecs*1000);
timerShow=setInterval("DispLeftSecs()",1000);
}

function DispLeftSecs() {
var oObj=document.getElementById(cShowId)
nWaitSecs=nWaitSecs-1;
if (oObj!=null) oObj.innerHTML=nWaitSecs;
}

function ChgSrc(oImg) {
	//oImg.src=oImg.getAttribute("orig");
	if (oImg.src.indexOf( "/GetSrcImg.asp" ) >= 0)
		oImg.src = "/error.jpg";
	else
		oImg.src = "/GetSrcImg.asp?t=" + oImg.src ;
	//alert(oImg.src);
}

function GoTo(cURL) {
	top.location=cURL;
}

function AddOnLoadFun(cFun) {
var i=aOnLoad.length;
aOnLoad[i]=cFun;
}

function ExeOnLoadFun() {
for(var i=0; i<aOnLoad.length; i++) eval(aOnLoad[i]);
}

function CheckLogin(cId) {
	if (cId=="") { 
		alert("尚未登錄易立達,無法使用本功能!");
		return false;
	}
	else
		return true;
}

function CheckUser(nHoper,cMsg) {
	cMsg = cMsg ? cMsg : "您沒有權限使用此功能!" ;
	if ( (nHoper & nHoperCat) == 0 ) {
		alert( cMsg );
		return false;
	}
	else
		return true;
}

function go() {
	if (search.F.value=="") 
		return;
	else
		search.submit();
}

function Verify(oItem){
	var cConfirm,i;
	i=0;
	while (true) {
		cConfirm=prompt("請再輸入密碼以覆核:","");
		if (oItem.value!=cConfirm) {
			i++;
			if (i>2) break;
			alert("第 " + i + " 次覆核錯誤!");
		}
		else break;
	}
	if (i>2 ) {
		alert("覆核錯誤,請重填密碼!");
		oItem.value="";
	}
}

function ResetSel(oSel){
var i
for (i=0;i<oSel.length;i++){
	if (oSel.options[i].defaultSelected) 
		oSel.options[i].selected = true;
	else
		oSel.options[i].selected = false;
	}
}

// Assign a cVal to a form's var In Multi Select From Getdata() //
function AddSuffix(cWin,cVar,cVal) {
var cExp,cOrigVal,i
	cExp = cWin + ".document.forms[0]." + cVar + ".value" ;
	cOrigVal=eval(cExp) ;
	if (cOrigVal=="") eval(cExp+"='"+cVal+"'") ;
	else {
		i = cOrigVal.lastIndexOf(",",cOrigVal.length) ;
		if (i==-1) eval(cExp+"='"+cVal+"'") ;
		else {
			eval(cExp+"='"+cOrigVal.substring(0,i+1)+cVal+"'");
		}
	}		
}

function RefSearch(cTable,cFrom,cField,cWin,cReplace,oForm,cVar1,cTag1,cVar2,cTag2) {
var cVal1,cVal2;
	if (cVar2==null) {
		if (cVar1==null) {
			OpenExeWin('/edit/RefSearch.asp?table='+cTable+'&from='+cFrom+'&win='+cWin+'&field='+cField+'&replace='+cReplace,cWin);
			return true;
		}
		else {
			cVal1=eval("oForm."+cVar1+".value");
			cVar2="";
			cVal2="";
			cTag2="";
		} }
	else {
		cVal1=eval("oForm."+cVar1+".value");
		cVal2=eval("oForm."+cVar2+".value");
	}
	if (cTable.charAt(0)=="@") {
		cTable = eval("oForm."+cTable.substr(1,cTable.length-1)+".value") ;
	}
	if (cTable!="") {
		OpenExeWin('/edit/RefGet.asp?table='+cTable+'&from='+cFrom+'&field='+cField+'&win='+cWin+"&replace="+cReplace+"&var1="+cVar1+"&val1="+cVal1+"&Tag1="+cTag1+"&var2="+cVar2+"&val2="+cVal2+"&Tag2="+cTag2,cWin);		
		return true;
	}
	else
		return false;	
}

function SetSelColor(cBg,cFg) {
	cSelBgColor=(cBg==null) ? "#000000" : cBg ;
	cSelFgColor=(cFg==null) ? "#ffffff" : cFg ;
}

function EmuSel(n) {
	eval('document.form1.ID['+n+'].click();');
}

function SetValue(n) {
	// 如果同一列就不處理 //
	if (nSelIdx == n){
		return;
	}
	// 若已選過則恢復原來的顏色 //
	if (nSelIdx>=0) {
		eval('L'+nSelIdx+'.style.backgroundColor="'+cSelOrig+'"');
		eval('L'+nSelIdx+'.style.Color="'+cSelFont+'"');	
	}
	eval('cID=document.form1.ID['+n+'].value;');
	nSelIdx = n;
	cSelOrig=cOrigColor;
	cSelFont=cFontColor;
	cOrigColor="#A08888";
	cFontColor="#000000";
	eval('L'+n+'.style.backgroundColor="'+cOrigColor+'"');
	eval('L'+n+'.style.Color="'+cFontColor+'"');	
}

// 只有一筆資料的 Emu Use //
function EmuSel0() {
	eval('document.form1.ID.click();');
}
// 只有一筆資料的 SetValue //
function SetValue0() {
	eval('cID=document.form1.ID.value;');
	eval('L0.style.backgroundColor="#A08888"');
	eval('L0.style.Color="#000000"');	
}

function toSel(obj){
  cOrigColor=obj.style.backgroundColor;
  cFontColor=obj.style.color;
  obj.style.backgroundColor=cSelBgColor ;
  obj.style.color=cSelFgColor ;
}

function toStd(obj){
  obj.style.backgroundColor=cOrigColor;
  obj.style.color=cFontColor;
}

function toFocus(obj){
  cOrigColor=obj.style.backgroundColor;
  cFontColor=obj.style.color;
  obj.style.backgroundColor="#FFFFFF";
}

function ShowMsg(cMsg,cTitle,nWidth,nHeight,cScroll,cFrame,cNewPage,cBlur) {
var cWinType;
	
  if (nWidth == null){ nWidth=300; }
  if (nHeight == null){ nHeight=200; }
  if (cTitle == "" ){ cTitle="易立達訊息視窗"; }

  if (cScroll == null){ 
	cWinType = "width=" + nWidth + ",height=" + nHeight;
  }
  else {
	cWinType = "width=" + nWidth + ",height=" + nHeight + ",scrollbars=yes" ;
  }

  // Trans Mark to string //
  cMsg = cMsg.replace( /%S/g , "'" );
  cMsg = cMsg.replace( /%D/g , '"' );
  cMsg = cMsg.replace( /%%/g , "%" );

  exeWin=window.open("","exeWin",cWinType);
  exeWin.resizeTo(nWidth,nHeight);
  exeWin.document.open("text/html");
  with (exeWin.document) {
      	writeln("<HEAD><TITLE>"+cTitle+"</TITLE>") ;
	writeln('<LINK href="/css/standard.css" rel=stylesheet type=text/css>');
	writeln("</HEAD>");
        writeln('<BODY bgColor="#e7efef" TopMargin="5" LeftMargin="5" MarginWidth="5" MarginHeight="5" onBlur="window.close()">');
      	writeln("<CENTER>",cMsg,"</CENTER>" );
	writeln("</BODY>");
      	close();
      	}
  exeWin.focus();    
  return;
}  // end ShowMsg

function ReloadFrame(cTag) {
	window.top.frames[cTag].location.reload();
}

function DispFrame(cTag,cPage) {
        window.top.frames[cTag].location.href=cPage;
}

function DoModify(cWin,cFrame) {
	var cPage="" ;
	if (cID.length==0) {
                alert("沒有選擇!");
		return false;
	}
        cPage='/edit/ModifyForm.asp?TABLE='+cTable+'&ID='+cID.replace(/ /,'+') ;
	if (cWin=="" && cFrame=="")
	 	location.href=cPage;
	else {
		if (cFrame!="")
			DispFrame(cFrame,cPage);
		else
			OpenExeWin(cPage,cWin);
	}
}

function DoGetData(cFrom,cField,cReplace) {
	var cPage="" ;
	if (cID.length==0) {
                alert("沒有選擇!");
		return false;
	}
        cPage='/edit/GetData.asp?TABLE='+cTable+'&ID='+cID+'&FROM='+cFrom+"&FIELD="+cField+"&REPLACE="+cReplace ;
        location.href=cPage ;
}

function DoShow(cWin,cFrame) {
	var cPage="" ;
	if (cID.length==0) {
                alert("沒有選擇!");
		return false;
	}
        cPage='/edit/show.asp?TABLE='+cTable+'&ID='+cID.replace(/ /,'+') ;
	if (cWin=="" && cFrame=="")
		location.href=cPage;
	else {
		if(cFrame!="")
			DispFrame(cFrame,cPage);
		else
			OpenExeWin(cPage,cWin);
	}
}

function DoDel() {
	if (cID.length==0) {
                alert("沒有選擇!");
		return false;
	}
	if (confirm("確實要刪除嗎?")) {
		OpenExeWin( '/edit/del.asp?TABLE='+cTable+'&ID='+cID.replace(/ /,'+') );
	}
}

function SetTable(cTableName) {
	cTable=cTableName;
}

function ConfirmExe(cURL) {
	if (window.confirm("確實要執行嗎?"))
		OpenExeWin(cURL);
	else
		return;
}		

function OpenRelWin(cFilter,cLogo,cUnit,cDepth,cPropCat,cPropKey,cRelObjCat) {
var cURL="/ShowRelList.asp?C=" + cNowObjCat + "&O=" + cNowObjId + "&F=" + cFilter + "&L=" + cLogo + "&U=" + cUnit + "&D=" + cDepth + "&PC=" + cPropCat + "&PO=" + cPropKey + "&R=" + cRelObjCat ;
OpenExeWin(cURL,"RelWin", 1024 , 0 , 200, 800);
return( void(-1) )
}

function OpenExeWin(cURL,cWinName,nX,nY,nWidth,nHeight){
var nNewOpen,cBlurFun;
  cWinName = cWinName==null || cWinName=='' ? "exeWin" : cWinName ;
  nX = nX==null ? nDefWinX : nX ;
  nY = nY==null ? nDefWinY : nY ;
  nWidth = nWidth==null ? nDefWinWidth : nWidth ;
  nHeight = nHeight==null ? nDefWinHeight : nHeight ;
  
  if (cWinName!=window.name) {
	if (cURL==null)
		exeWin=window.open("",cWinName,"scrollbars=yes,toolbar=no,location=no,directory=no,status=no,menubar=no,resizable=yes,titlebar=no,width="+nWidth+",height="+nHeight);
	else
		exeWin=window.open(cURL,cWinName,"scrollbars=yes,toolbar=no,location=no,directory=no,status=yes,menubar=no,resizable=yes,titlebar=no,width="+nWidth+",height="+nHeight);
	nNewOpen=1;
  } else {
	exeWin=window;
	nNewOpen=0;
	if (cURL!=null) exeWin.location.href=cURL;
  }
  
  if (cURL==null && nNewOpen==1 ) {
  	exeWin.document.open( "text/html" );
	  with (exeWin.document) {
 	   	writeln("<HEAD><TITLE>易立達執行視窗</TITLE>") ;
		writeln('<LINK href="/css/standard.css" rel=stylesheet type=text/css>');
		writeln("</HEAD>");
     	  	writeln('<BODY bgColor="#e7efef" TopMargin="5" LeftMagin="5" MarginWidth="5" MarginHeight="5" onBlur="window.close()">');
   	   	writeln("<CENTER>", "程式執行中,請稍待..." , "</CENTER>" );
		writeln("</BODY>");
    	  	close();
     	 	}
	}
  exeWin.focus();
  //exeWin.moveTo(nX,nY);
  //exeWin.resizeTo(nWidth,nHeight)
  return true;
}

function RefAdv(oObj) {
	ReloadFrame("title");
}

function ChkBlank(o1) {
	if (o1.value.length==0) {		
		alert("資料不可空白");
		o1.focus();
		return false; }
	else {
		return true;
	}
}

/************************************************************/
/* Show Data & Setup the checked */
function SetData(cProp,o1,cShowArea,cFormName) {
var cProps,nLen,cVal,cTemp,i,lSelected,nIdx;
var cNew=''; 
var cNewProps='';
var oForm=cFormName==null ? document.forms[0] : document.forms[cFormName] ;

nIdx = o1.selectedIndex;
cInputStr = eval(cProp+'_info['+nIdx+']')
if (cInputStr==null){return true;}
cProps=eval('oForm.elements["' + cProp+'"].value');
if (cProps!='') {
	cProps=cProps.toUpperCase();
	aInput=cInputStr.split('<input') ;
	for(i=1;i<aInput.length;i++){
		cVal=GetTagPara(aInput[i],"value") ;
		if ( FindPara(cProps,cVal) >= 0 ) {
			cTemp='<input checked' + aInput[i] ;
			/* cNewProps+=cNewProps=="" ? cVal : ","+cVal */
		}
		else
			cTemp='<input' + aInput[i] ;
		cNew=cNew+cTemp;
	}
	cInputStr = cNew ;
}
if (cShowArea==null)
	eval(cProp+'_area.innerHTML=cInputStr');
else
	eval(cShowArea+'.innerHTML=cInputStr');
/* eval('document.forms[0].elements["'+cProp+'"].value=cNewProps'); */
}

/* 當直接更改屬性時,離開後更新一下顯示區得內容 */
function UpdateArea(o1,cFormName){
	var oForm = cFormName==null ? document.forms[0] : document.forms[cFormName] ;
	var cProp = o1.name;
	SetData(cProp,oForm.elements[cProp+"_sel"]);
}

/* 取得屬性名稱 */
function GetPropName(cProp){
var nLen=cProp.length;
var cName="";
for(i=0;i<nLen;i++) {
	if( cProp.charCodeAt(i) > 64 ) cName=cName+cProp.charAt(i); else break;
}
return(cName)
}

/**************************************************************/
/* 查cFind字串是否在cSrc裡面,cSrc以","間隔每個字串 */
function FindPara(cSrc,cFind){
var nIdx=-1;

aStr=cSrc.split(",");
for(i=0;i<aStr.length;i++){
	if (aStr[i]==cFind){ nIdx=i;break;} ;
}
return(nIdx)		
}


/**************************************************************/
/* 拿掉一個參數 */
function DelPara(cSrc,cPara){
var nIdx,i,cRtn="";

nIdx = FindPara(cSrc,cPara)
if (nIdx>=0) {
	aStr=cSrc.split(",");
	for(i=0;i<aStr.length;i++){
		if (i!=nIdx) cRtn+=cRtn=="" ? aStr[i] : ","+aStr[i] ;
	}
	cSrc = cRtn ;
}
return( cSrc )
}

/* 加進一個參數 */
function AddPara(cSrc,cPara){
var nIdx;

nIdx = FindPara(cSrc,cPara) ;
if (nIdx<0) {
	if (cSrc=='') cSrc=cPara; else cSrc+=","+cPara;
}
return(cSrc)
}

/* 更新屬性定義 */
function UpdateProp(oProp,cFormName){
var cProp,oForm;

oForm = cFormName==null ? document.forms[0] : document.forms[cFormName] ;
cProp = GetPropName(oProp.name);

if (oProp.checked)
	oForm.elements[cProp].value=AddPara(oForm.elements[cProp].value,oProp.value);
else
	oForm.elements[cProp].value=DelPara(oForm.elements[cProp].value,oProp.value);
}



/*******************************************************/
/* 取得HTML字串中的某個參數的值 */
function GetTagPara(cHtml,cPara){
var i,j,cChar
var nLen=cHtml.length
var cRtn=''
var lStart=false
var cQuote=''

/* 若是空字串則傳回空字串 */
if (nLen<=0) return '';

/* 查看參數的位置 */
j=cHtml.search(eval("/"+cPara+"/i"));

if (j<0) return '';

process:
for(i=j;i<nLen;i++){
	cChar=cHtml.charAt(i);

	/*** 處理是否開始讀值 ***/
	if (cChar=='=') {
		if (!lStart) {
			lStart = true ;
			continue ; }
		else 
			cRtn = cRtn + cChar ;
	}
	else {
		/*** = 之前的字全部略掉 ***/
		if (!lStart) continue;
	}

	switch(cChar){
	case '"' :
		if (cQuote=='') {cQuote=cChar;continue;}
		else {
			if (cQuote=='"') break process;
			else {
				/*** 如果在Quote裡面,但並非這種Quote,就當作一般字元 **/
				cRtn = cRtn + cChar;
			}
		}
		break;
	case "'" :
		if (cQuote=='') {cQuote=cChar;continue;}
		else {
			if (cQuote=="'") break process;
			else {
				/*** 如果在Quote裡面,但並非這種Quote,就當作一般字元 **/
				cRtn = cRtn + cChar;
			}
		}
		break;
	case ' ',String.fromCharCode(9) :
		if (cQuote='') {
			/**** 如果不在 Quote 裡面,則資料值結束 ***/
			break process; }
		else {
			/*** 在 Quote 裡面則當作一般值 ***/
			cRtn = cRtn + cChar ;
		}
		break;
	case '>' :
		break process ;
	default :
		cRtn = cRtn + cChar ;
	}
}
return(cRtn);
}

function Nothing(xData){
var cType=typeof(xData);
if ((cType=="string" && xData.length==0) || (cType=="boolean" && xData==false) || cType=="undefined" || xData==null )
	return true;
else 
	return false;
}

function GetData(cSource,cLead,cTail){
var i;
if (Nothing(cLead)) {
	if (Nothing(cTail)) return(cSource);
	else {
		i = cSource.indexOf(cTail);
		if(i>=0) return(cSource.substring(0,i)); 
		else return("");
	}
}
else {
 	i = cSource.indexOf(cLead);
	if (i<0) return("");
	cSource=cSource.substring(i+cLead.length);
	if (Nothing(cTail)) return(cSource);
	else {
		i = cSource.indexOf(cTail);
		if (i>0) return(cSource.substring(0,i));
		else return("");
	}
}
}

function GetDataC(cSource,cLead,cTail){
var i,cRtn;
var cS=cSource.toUpperCase();
var cL=Nothing(cLead) ? "" : cLead.toUpperCase();
var cT=Nothing(cTail) ? "" : cTail.toUpperCase();
cRtn=GetData(cS,cL,cT);
i = cS.indexOf(cRtn);
return( i<0 ? "" : cSource.substr(i,cRtn.length) );
}

function GetQueryPara(cQuery,cPara){
var i;
var cVal=GetDataC(cQuery,cPara+"=");
if (cVal.length>0) {
	if (cVal.indexOf("&")>=0) cVal=GetData(cVal,"","&")
}
return cVal;
}

