/*******
	更新日期: 2001-05-03
	最後更新成員: Janet
	更新目地: 加入開啟全螢幕 function opencfullwindow(url, target, type)
	          type=1: 含最上列(藍色列), 有關閉視窗及放大縮小鍵
	          type=2: 全螢幕, 無關閉視窗及放大縮小鍵
	          type=3: 含IE頻道列
			
*******/
function goDate(f, dir) {
        da = new Array(12);
        da[0] = 31;   da[1] = 28;   da[2] = 31;   da[3] = 30;   da[4] = 31;
        da[5] = 30;   da[6] = 31;   da[7] = 31;   da[8] = 30;   da[9] = 31;
        da[10] = 30;   da[11] = 31;

        var i;
        dd = f.dd.selectedIndex;
        mm = f.mm.selectedIndex;
        yy = f.yy.selectedIndex;
        if (isleap(yy)) da[1] = 29;

        if (dir == '1') {
                if (dd == da[mm]-1) {
                        dd = 0;
                        if (mm == 11) {
                                mm = 0;
                                yy++;
                        } else mm++;
                        f.yy.options[yy].selected = true;
                        f.mm.options[mm].selected = true;
                } else {
                        dd++;
                }       
                f.dd.options[dd].selected = true;
                
        } else if (dir == '-1') {
                if (dd == 0) {
                        if (mm == 0) {
                                mm = 11;
                                yy--;
                        } else mm--;                        
                        dd = da[mm]-1;
                        f.yy.options[yy].selected = true;
                        f.mm.options[mm].selected = true;
                } else {
                        dd--;
                }
                f.dd.options[dd].selected = true;
        } else if (dir == '0') {
                var da1 = new Date();
                mm = da1.getMonth();
                yy = getChinaYear(da1);
                for (i=0; i<f.yy.length; i++)
                        if (f.yy.options[i].value == yy) break;
                yy = i;
                f.yy.options[yy].selected = true;
                
                mm = da1.getMonth();
                f.mm.options[mm].selected = true;

                dd = da1.getDate();
                bvalue = da[mm];

                for (i=f.dd.length-1; i >= 0 ; i--)
                        f.dd.options[i] = null;
                for (i=0; i < bvalue ; i++) {
                        f.dd.options[i] = null;
                        opt = new Option(i+1, i+1);
                        f.dd.options[i] = opt;
                }
                f.dd.options[dd-1].selected = true;
                
        }
        
        return(true);
}

//檢查是否為數字 
//mstr:來源Object
function isNum(input) {    
	if (isNaN(input.value)) {
		alert("請輸入正確數字")
		input.focus();
		return false
	}	
  return true;
}

//檢查是否為數字(整數) 
//mstr:來源Object
function isNumber(input) {    
    mnum="0123456789";
    input.value = (input.value == null)?"" : allTrim(input.value); 
    for(var i=0; i<input.value.length; i++)  {
       if (mnum.indexOf(input.value.substring(i,i+1))==-1)
       {
         alert("輸入資料須為數字!!");
         input.value = "";
         input.focus();
         return false;
       }
    }
    return true;
}

//檢查是否為數字(整數) 
//num:要check的資料
function isNumber1(num) {    	 
    mnum="0123456789";
    num = (num == null)? "" : allTrim(num); 
    for(var i=0; i<num.length; i++)  {
       if (mnum.indexOf(num.substring(i,i+1))==-1)
       {       
         return false;
       }
    }
    return true;
}

//檢查是否為數字(含小數)
//input:來源Object
//fix:小數位數
function isNumber3(input,fix) {    
    mnum="0123456789.";
    fixflag = false;    
    input.value=(input.value==null)?"":trim(input.value);
    for(var i=0; i<input.value.length; i++)  {
       chkval = input.value.substring(i,i+1);
       
       if (mnum.indexOf(chkval)==-1)
       {
         alert("輸入資料須為數字!!");
         input.value = "";
         input.focus();
         return;
       }
       
       if(fixflag)
       {
          fixnum++;
          if(fixnum > fix)
          {
            alert("小數位部份限"+ fix +"位");   
            input.focus(); 
            return;              
          }
       }       
       
       if(chkval == ".")
       {
          fixflag = true;
          fixnum = 0;
       }

    }
}

function allTrim(s)
{
        var s1 = lTrim(s);
        return(rTrim(s1));
}

function lTrim(s)
{
        s = "" + s;
        var len = s.length;
        var pos = 0;
        var s1 = "";

        while (pos < len) {
                var chr = s.substring( pos, pos + 1 );
                if (chr == " " || chr == "") pos = pos + 1; 
                else return(s.substring(pos,len));
        }
        
        return s1;
}

function rTrim(s)
{
        s = "" + s;
        var len = s.length;
        var pos = len-1;
        var s1 = "";
        var i = 0
        while (pos >= 0) {
                var chr = s.substring( pos, s.length-i );
                if (chr == " " || chr == "") pos = pos - 1; 
                else return(s.substring(0,pos+1));
                i++;
        }
        
        return s1;
}

//刪除左右空白（含全形空白）
function allTrim2(s) {
        var s1 = lTrim2(s);
        return(rTrim2(s1));
}

//刪除左空白（含全形空白）
function lTrim2(s) {
        s = "" + s;
        var len = s.length;
        var pos = 0;
        var s1 = "";

        while (pos < len) {
                var chr = s.substring( pos, pos + 1 );
                if (chr == " " || chr == "" || chr == "　") pos = pos + 1; 
                else return(s.substring(pos,len));
        }
        
        return s1;
}

//刪除右空白（含全形空白）
function rTrim2(s) {
        s = "" + s;
        var len = s.length;
        var pos = len-1;
        var s1 = "";
        var i = 0;
        while (pos >= 0) {
                var chr = s.substring( pos, s.length-i );
                if (chr == " " || chr == "" || chr == "　") pos = pos - 1; 
                else return(s.substring(0,pos+1));
                i++;
        }
        
        return s1;
}

/*
需配合qMenu
var qMenu = new Array();
qMenu = [{code:"prjbase",name:"基本資料"},{code:"prjadv",name:"詳細資料"},{code:"prjcom",name:"競爭廠商"},{code:"prjbgtitm",name:"預算"}];
*/
function showLY(m) {
	for (i = 0; i < qMenu.length; i++) {
		acode = qMenu[i].code;
		aname = qMenu[i].name;
		if (acode == m)
			eval(acode +".style.display = \"block\"");
		else   		
			eval(acode +".style.display = \"none\"");
	}
} 

function getqMenu() {
	var msg = "";
	for (i = 0; i < qMenu.length; i++) {
		acode = qMenu[i].code;
		aname = qMenu[i].name;
		msg += "[<a href='javascript: showLY(\""+ acode +"\")'>"+ aname +"</a>]";
	}
	document.write(msg);
} 

//$nStr: name
//sNum: start num
//eNum: end num
//$stNum: step num
//cNum: default value
//$needspopt: Y->add <option value=''></option>
//$spdStr: <option value=''>$spdStr</option>
function selectoptnum(nStr, sNum, eNum, stNum){
	msg = "<select name="+ nStr +">";
	
   if(sNum > eNum)
      numLen = sNum.length;
   else
      numLen = eNum.length;

	msg += "<option value=\"\"></option>";
	for(i = sNum; i <= eNum; i += stNum){
		tNum = i;
   	msg += "<option value="+ tNum +">"+ tNum +"</option>";
	}	
	msg += "</select>";	
	return msg;
}

//TABLE[obj] 新增一列
function insertTRow(obj, idx) {
	if (insertTRow.arguments.length < 2) idx = obj.rows.length;
	ridx = obj.rows.length
	cidx = obj.rows(0).cells.length;
	obj.insertRow(idx);		
	for (i = 0; i < cidx; i++) {
		obj.rows(ridx).insertCell();	
	}
	
	//for (i in obj.rows) {
	//	alert("i="+ i);
	//}
}	

function insertTBRow(obj, objdata, idx) {
	if (idx != null && idx != "undefined") idx = 1;
	ridx = obj.rows.length;
	insertTRow(obj, ridx);
	for (i = 0; i < objdata.length; i++) {
		obj.rows(ridx).cells(i).innerHTML = objdata[i];
	}			
	obj.moveRow(ridx, idx);
	//for (i in obj.rows) {
	//	alert("i="+ i);
	//}
}	

//TABLE[obj] 刪除一列
function deleteTRow(obj, idx) {
	obj.deleteRow(idx);		
}

//Text輸入達最大限後跳至tofd欄位
function moveTofd(f, input, tofd) {
	//if (Input.type != "text")
	maxlen = input.maxLength;
	if (input.value.length == maxlen) tofd.focus();
}

function isValidSelect(fvar, msg, allowempty) {
	   
    if (isValidSelect.arguments.length < 3) allowempty = true;
    if (allowempty && fvar.selectedIndex == 0) return true;        
    if (fvar.selectedIndex == 0) {
            alert(msg);
            fvar.focus();
            return false;
    } 
    return true;        
}

//檢查身份證字號
function isValidID(fvar, msg, allowempty) {
	if (allowempty && fvar.value == "") {
		return false;
	} else {
		if (fvar.value == "") {
       	alert(msg);
       	fvar.focus();
       	return false;
      }
	}	
	sid = fvar.value;

	var idXAry = new Array('10','11','12','13','14','15','16','17','34','18','19','20','21','22','35','23','24','25','26','27','28','29','32','30','31','33');
	var letterXAry = new Array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z');	
	if ( (sid.length < 10) || ( (sid.substring(0,1).toUpperCase() < 'A') || (sid.substring(0,1).toUpperCase() > 'Z') ) || !isNumber1(sid.substring(1,10)) ) {
	       alert("請輸入 正確的身分證號碼!");	       
	       fvar.focus();        	
	       return false;
	} else {			
	       var tmpVar = sid.substring(0,1).toUpperCase();
	       var idx = 0;
	       while (tmpVar != letterXAry[idx])
	       {
	               idx++;
	       }
	       var idX1 = parseInt(idXAry[idx].substring(0,1));
	       var idX2 = parseInt(idXAry[idx].substring(1,2));
	       var idVal = idX1 + idX2*9 + parseInt(sid.substring(1,2))*8 + 
	                                   parseInt(sid.substring(2,3))*7 +             
	                                   parseInt(sid.substring(3,4))*6 +             
	                                   parseInt(sid.substring(4,5))*5 + 
	                                   parseInt(sid.substring(5,6))*4 +     
	                                   parseInt(sid.substring(6,7))*3 + 
	                                   parseInt(sid.substring(7,8))*2 + 
	                                   parseInt(sid.substring(8,9))*1 + 
	                                   parseInt(sid.substring(9,10))*1  
	       if ((idVal % 10) != 0) {
	          alert("請輸入 正確的身分證號碼!");
	          fvar.focus();
	          return false;
	       }
		       
	}

	return true;
}

function chkNaN(num) {	
	if (isNaN(num)) {	
		return 0;
		
	} else {
		return num;
	}
}

//取得欄位資料
//str1:資料列	sign:分隔符號	fno:第幾個欄位
function getField(str1,sign,fno){
  if(str1!=null)
  {
    var str_length=str1.length;
    var fcount=0;
    var point='';
    var str2='';
      
    while(fcount<fno)
    {
      fcount++;
      str2='';
      var point=str1.indexOf(sign);
      if(point != -1)
      {
         str2=str1.substring(0,point);
         str1=str1.substring(point,str_length);
         str1=str1.substring(sign.length,str_length);
      }
      if(fcount==fno)
         break;
    }
  }    
  return(str2)  
}

function openUrl1(url, target, w, h, bCenter) {
    var nLeft, nTop, hWnd;
    nLeft = (screen.width - w) / 2;
    nTop = (screen.height - h) / 2;
	hWnd = window.open(url, target, "scrollbars=no resizable=yes width=" + w + " height=" + h);
	if (bCenter) hWnd.moveTo(nLeft,nTop);
	hWnd.focus();
}

function writeln(str1) {
	document.write(str1 +"\n");
}

//m: "."目前數量
//mm:	"."總數量	
var runtime1;
function runactive(m, mm, ly) {		
	clearTimeout(runtime1);
	if (ly == null || ly == "" || ly == "undefined") {
		//alert("ly1");
		ly = "";
		lyload = ly_load;
		lyrun  = ly_run;
	} else {
		//ly = ly.replace("parent.", "");
		//alert("ly2:"+ ly +","+ eval(ly) +",parent:"+ eval("parent."+ ly));				
		lyload = eval(ly +"_load");
		lyrun  = eval(ly +"_run");
	}	
	//alert("runactive:"+ ly +","+ lyload +";"+ lyrun);
	//alert("runactive:"+ lyload.id +","+ lyload +";"+ lyrun.id +","+ lyrun);
	var s = "";
	for (r = 0; r < m; r ++) {
		s += ".";
	}
	lyrun.innerHTML = s;
	if (m < mm) 
		m++;
	else
		m = 1;
	
	//alert("ly:"+ ly);
	runtime1 = setTimeout( "runactive("+ m +", "+ mm +", '"+ ly +"')" , 1000 );			
}

function startLoading(msg, ly, locly) {
	if (ly == null || ly == "" || ly == "undefined") {
		ly = "";
		lyload = "ly_load";
		lyrun  = "ly_run";
	} else {
		ly1 = ly.replace("parent.", "");
		lyload = ly1 +"_load";
		lyrun  = ly1 +"_run";		
  }
	if (msg == null || msg == "") msg = "讀取中, 請稍後!";
	if (locly == null || locly == "") {
		writeln("<div id='"+ lyload +"' align='center' style='cursor: wait'><table width=125 style='font-size: 9pt; color: white; background-color: blue'><tr><td nowrap width=90>"+ msg +"</td><td id='"+ lyrun +"' nowrap>.....</td></tr></table></div>");
	} else {		
		locly = eval(locly);
		locly.innerHTML = "<div id='"+ lyload +"' align='center' style='cursor: wait'><table width=125 style='font-size: 9pt; color: white; background-color: blue'><tr><td nowrap width=90>"+ msg +"</td><td id='"+ lyrun +"' nowrap>.....</td></tr></table></div>";		
		//alert(locly.outerHTML);
	}
	//runtime1 = setTimeout("runactive(0, 7, '"+ ly +"')", 1000);
}		

function stopLoading(ly) {
	clearTimeout(runtime1);	
	if (ly == null || ly == "") 
		lyload = ly_load;
	else
		lyload = eval(ly +"_load");
	lyload.style.display="none";
}		

function addPreChar(str1, strlength, prechar){		
	if (prechar == "") return;
	str1 = str1.toString();
	prechar = prechar.toString();
	while (str1.length < strlength){		
      str1 = prechar + str1;
	}	
  return str1;
}

function addAftChar(str1, strlength, aftchar){	
	if (aftchar == "") return;
	str1 = str1.toString();
	aftchar = aftchar.toString();	
	while (str1.length < strlength){		
		str1 = str1 + aftchar;
	}	
  return str1;
}

function maskDate(obj) {
	//event.keyCode "8": Backspace
	//event.keyCode "37": Left arrow
	//event.keyCode "46": Delete
	
	//alert(event.keyCode);
	//SYS_DATETYPE "1": 西元年(yyyy-mm-dd)
	//SYS_DATETYPE "2": 民國年(yyy-mm-dd)
	if (SYS_DATETYPE == "undefinded" || SYS_DATETYPE == "" || SYS_DATETYPE == null) SYS_DATETYPE = 1;
	if (event.keyCode == 8 || event.keyCode == 37 || event.keyCode == 46) return false;
	s = obj.value.replace(/ /i, "");
	if (s.length == 0) {obj.value == '' ; return false;}
	var bErr = 0;
	
	if (SYS_DATETYPE == "1") { 
		//西元年(yyyy-mm-dd)
		//alert(obj.value.substring(0,4) +","+ obj.value.substring(5,7) +","+ obj.value.substring(8,10));
		s = obj.value.substr(obj.value.length-1,1);	
		if (isNaN(parseInt(s))) bErr = 1;	
		if (obj.value.length > 10) bErr = 1;
		if (obj.value.length == 10 && !chkDateStr(obj.value, 2)) bErr = 2;
		if (bErr > 0) {
			//alert("輸入的日期格式不正確");
			if (bErr == 1) obj.value = obj.value.substring(0, obj.value.length-1);
		} else
			if (obj.value.length == 4 || obj.value.length == 7) obj.value = obj.value + "-";		
	} else if (SYS_DATETYPE == "2") {
		//民國年(yyy-mm-dd)

		s = obj.value.substr(obj.value.length-1,1);	
		if (isNaN(parseInt(s))) bErr = 1;	
		if (obj.value.length > 9) bErr = 1;
		if (obj.value.length == 9 && !chkDateStr(obj.value, 3)) bErr = 2;
		if (bErr > 0) {
			//alert("輸入的日期格式不正確");
			if (bErr == 1) obj.value = obj.value.substring(0, obj.value.length-1);
		} else
			if (obj.value.length == 3 || obj.value.length == 6) obj.value = obj.value + "-";			
	} else if (SYS_DATETYPE == "3") {
		//民國年(yyyy-mm-dd)
		if (obj.value.length == 1 && obj.value != "0") {
			obj.value = "00" + obj.value
			return false;
		}

		s = obj.value.substr(obj.value.length-1,1);	
		if (isNaN(parseInt(s)) && s != "-") bErr = 1;	
		if (obj.value.length > 10) obj.value = obj.value.substring(0, 10);
		if (obj.value.length == 10 && !chkDateStr(obj.value, 4)) bErr = 2;
		
		if (bErr > 0) {
//			alert("輸入的日期格式不正確");
			if (bErr == 1) obj.value = obj.value.substring(0, obj.value.length-1);
		} else {
			if (obj.value.length == 4 || obj.value.length == 7) obj.value = obj.value + "-";
			s = obj.value.substr(obj.value.length-1,1);	
			if ((obj.value.length == 5 || obj.value.length == 8) && s != "-") 
				obj.value = obj.value.substring(0, obj.value.length - 1)  + "-" + s;
		}
	}
	return true;
}

function getSysYear(yy, trimZero) {
	if (yy == "") return false;	
	if (trimZero == null || trimZero == "undefined" || trimZero == "") trimZero = false;
	yy = yy.toString();
	if (SYS_DATETYPE == "1") {
		if (yy.length == 4) 
			ny = yy;
		else
			ny = parseInt(yy, 10) + 1911;			
	} else if (SYS_DATETYPE == "2") {
		if (yy.length == 4) 
			ny = parseInt(yy, 10) - 1911;	
		else
			ny = yy;					
		if (!trimZero) ny = addPreChar(ny, 3, "0");				
	} else if (SYS_DATETYPE == "3") {
		if (yy.length == 4 && parseInt(yy, 10) > 1911)
				ny = parseInt(yy, 10) - 1911;	
		else
			ny = yy				
		if (!trimZero) ny = addPreChar(ny, 4, "0");	
	}
	return ny
}

var bBlink_lastobj;
function bBlink(obj, blinkcolor) {
	if (bBlink.arguments.length < 2) blinkcolor = "D3E4F4";
	if (bBlink_lastobj != null) {
		bBlink_lastobj.style.background = bBlink_lastbgcolor;
	}	
	bBlink_lastbgcolor   = obj.style.background;
	obj.style.background = blinkcolor;
	bBlink_lastobj = obj;
}

function num1bto2b(input) {
	numArray = new Array("０","１","２","３","４","５","６","７","８","９");
	str1 = input.value;
	for (i = 0; i <= 9; i++) {
		eval("re = /"+ i +"/gi");
		str1 = str1.replace(re, numArray[i]);
	}
	input.value = str1;
}

