function AddZero(obj,len)
{
	var TMPstr=obj.value+"";
	var RTstr=obj.value+"";
	if(TMPstr.length<len&&TMPstr.length>0)
	{
		for(i=0;i<len-TMPstr.length;i++)
		{
			RTstr="0"+RTstr;
		}
	}
	obj.value=RTstr;
}

function lTrim(str)
{
	if (str.charAt(0) == " ")
	{
		str = str.slice(1);
		//str = str.substring(1, str.length);
		str = lTrim(str);
	}
	return str;
}

function rTrim(str)
{
	var iLength = str.length;
	if (str.charAt(iLength - 1) == " ")
	{
		str = str.slice(0, iLength - 1);
		//str = str.substring(0, iLength - 1);
		str = rTrim(str);
	}
	return str;
}

function trim(str)
{
	return lTrim(rTrim(str));
}

function zeroprefix(str,len)
{
	 var i,ret;
	ret="";
    if(str =="") return ret;

	if(len<str.length)
	{
		ret=str.substr(str.length-len);
	}
	else
	{

		for(i=0;i<len-str.length;i++)
			ret+="0";
		ret+=str;
	}
	return ret;
}

function setRegDate(currentObj)
{
	if(isSpecDate(currentObj.value)) return;
	var dateStr;
	if(trim(currentObj.value)!=''){
		dateStr = getRegDateStr(currentObj.value);
	}
	if(dateStr!=null&&trim(dateStr)!=''){
		if(chkvaliddate(dateStr)){
			currentObj.value = dateStr;
		}else{
			alert("擔晅偵晄惓側暥帤偑娷傑傟偰偄傑偡丅");
			currentObj.focus();
			return false;
		}
	}
}

function isSpecDate(s)
{
	if(s=='SPEC_DATE1'||s=='SPEC_DATE2'||s=='SPEC_DATE3'||s=='SPEC_DATE4'){
		return true;
	}else{
		return false;
	}
}

function getRegDateStr(s)
{
	var d = getDateObj(s);
	if(d==false) return 'false';
	var separator = '/';
	return d.getFullYear()+separator+zeroprefix((d.getMonth()+1).toString(),2)+separator+zeroprefix(d.getDate().toString(),2);
}

function getDateObj(dateStr)
{
	var separator = new Array("-"," ","/",".");
	var year,month,day;
	var d = new Date();
	for (i = 0; i < separator.length; i++)
	{
		if (dateStr.indexOf(separator[i]) != -1)
		{
			strDateArray = dateStr.split(separator[i]);
			if (strDateArray.length == 3)
			{
				year = strDateArray[0];
				month = parseInt(strDateArray[1],10)-1;
				day = strDateArray[2];
				if(year.length == 2) year = "20" + year;
				break;
			}
		}
	}
	if(year==null||year==''||month==null||month===''||day==null||day==''){
		var len = dateStr.length;
		if(len<=2){
			year = d.getFullYear();
			month=d.getMonth();
			day=dateStr;
		}else if(len<=4){
			year = d.getFullYear();
			month=parseInt(dateStr.substring(0,len-2),10)-1;
			day=dateStr.substr(len-2,2);
		}else if(len<=6){
			year = '20'+zeroprefix(dateStr.substring(0,len-4),2);
			month=parseInt(dateStr.substr(len-4,2),10)-1;
			day=dateStr.substr(len-2,2);
		}else if(len==8){
			year = dateStr.substring(0,4);
			month=parseInt(dateStr.substr(len-4,2),10)-1;
			day=dateStr.substr(len-2,2);
		}
	}
	//for common use , do not auto convert special data such as 9999 to reg date, so judge if the date regular or not
	var intday = parseInt(day, 10);
	var intmon = parseInt(month, 10)+1;
	var intyear = parseInt(year, 10);
	if (isNaN(intday)||isNaN(intmon)||isNaN(intyear)) return false;

	if (intmon>12 || intmon<1) return false;
	if (intmon == 1 || intmon == 3 || intmon == 5 || intmon == 7 || intmon == 8 || intmon == 10 || intmon == 12) maxday=31;
	if (intmon == 4 || intmon == 6 || intmon == 9 || intmon == 11) maxday=30;
	if (intmon == 2)
	{
		if (isleapyear(intyear) == true) maxday=29;
		else maxday=28;
	}
	if(intday > maxday || intday < 1) return false;


	d.setFullYear(year,month,day);
	return d;
}

function isleapyear(year)
{
	if ((year%100) == 0)
	{
		if ((year%400) == 0) return true;
	}
	else
	{
		if ((year%4) == 0) return true;
	}
	return false;
}

function showCalendar(anchor,inputObj,language,url)
{
	var left=getAnchorWindowPosition(anchor).x;
	var top=getAnchorWindowPosition(anchor).y+24;
	var VFreeArgumentArr=new Array;
	VFreeArgumentArr[0]=window;
	VFreeArgumentArr[1]="YYYY/Mm/Dd";
	VFreeArgumentArr[2]=inputObj;
	var dataString = showModalDialog(url+"webctrl/Calendar.html?inputObj="+inputObj, VFreeArgumentArr ,"dialogLeft:"+ (left-198) +";dialogTop:"+top+";dialogWidth:202px;dialogHeight:186px;status:no;help:no;");
}

function setRegTime(time)
{
	if(chktime(trim(time.value))) return;
	var arr=time.value.split(':');
	var TMPstr="";
	var RTstr="";
	if(arr.length<2)
		TMPstr=zeroprefix(time.value,4);
	else if(arr.length==2)
	{
		if(arr[0].length<2)
			TMPstr=zeroprefix(arr[0],2);
		if(arr[1].length<2)
			TMPstr+=zeroprefix(arr[1],2);
	}
	RTstr=TMPstr.substring(0,2)+':'+TMPstr.substring(2,4);
	if(chktime(RTstr))
		time.value=RTstr;
	else
	{
		//alert(getmsg("ComTimeCHK"));
		//alert("time error!");
		//time.focus();
	}
}

function refreshTitleShow(msg)
{
	if(document.getElementById("titleshow")!=null){
		var obj = document.getElementById("titleshow");
		obj.innerHTML = msg;
	}
}

function enterKeyPress()
{
	if (event.ctrlKey && event.keyCode == 13)
	{
		bFlag = false ;
		return false ;
	}
	else
	{
		if (event.keyCode == 13)
		{
			event.keyCode = 9 ;
			return false ;
		}
		else
		{
			return true ;
		}
	}
}

function logout(destform)
{
	if(!confirm(getmsg("logout")))
	{
		return false;
	}
	else
	{
		destform.cmd.value="logout";
		destform.action="login.php";
		destform.submit();
	}
}

var lastRowIndex;
function setHighLight(rowIndex,rowspan,bgClor)
{
	if(lastRowIndex==null)
		lastRowIndex=rowIndex;
	else
	{
		for(i=1;i<=rowspan;i++)
		{
			var laststr="row"+lastRowIndex+i;
			with(document.getElementById(laststr).runtimeStyle)
			{
				backgroundColor="";
				document.getElementById(laststr).runtimeStyle.color="";
			}
		}
		lastRowIndex=rowIndex;
	}
	for(i=1;i<=rowspan;i++)
	{
		var curstr="row"+rowIndex+i;
		with(document.getElementById(curstr).runtimeStyle)
		{
			if(bgClor)
			{
				backgroundColor=bgClor;
			}
			else
				backgroundColor="blue";
			document.getElementById(curstr).runtimeStyle.color="white";
		}
	}
}
function setCursor(curstr)
{
	with(document.getElementById(curstr).runtimeStyle)
	{
		cursor="hand";
		document.getElementById(curstr).runtimeStyle.color="red";
	}
}
function leftCursor(curstr)
{
	cursor="";
	document.getElementById(curstr).runtimeStyle.color="";
}

function goToPage(idx, startPos)
{
	if(idx==0){
		idx=3;
		document.mainform.startPos.value=startPos;
	}
	if(idx==9){
		idx=3;
		document.mainform.startPos.value=startPos;
	}
	if(idx==3){
		document.mainform.startPos.value=startPos;
	}
	document.mainform.topopt.value=6;
	document.mainform.disp.value=idx;
	document.mainform.submit();
}

function chkpage(sum)
{
	if(document.mainform.startPosShow.value==""||parseInt(document.mainform.startPosShow.value)<=0)
	{
		goToPage(3,1);
	}
	else if(parseInt(document.mainform.startPosShow.value)>parseInt(sum))
	{
		goToPage(3,sum);
	}
	else
	{
		goToPage(3,document.mainform.startPosShow.value);
	}
}

function chkvalidTBname(str)
{
	if(str.length!=0)
	{
		str=str.toLowerCase();
		var nummer="0123456789";
		var letter="0123456789abcdefghijklmnopqrstuvwxyz";
		if(nummer.indexOf(str.charAt(0))!=-1)
			return false;
		for(i=0;i<str.length;i++)
		{
			if(letter.indexOf(str.charAt(i))==-1)
				return false;
		}
		var s=trim(str);
		if(s.length==0)
		{
			return false;
		}
	}
	return true;
}
function mylogout(destform)
{
	if(!confirm(getmsg("logout")))
	{
		return false;
	}
	else
	{
		destform.cmd.value="logout";
		destform.submit();
	}
}

function userlogout()
{
	if(!confirm(getmsg("logout")))
	{
		return false;
	}
	else
	{
		window.location.href="/webctrl/loginout.php";
	}
}

function showCalendar(anchor,inputObj)
{
	var left=getAnchorWindowPosition(anchor).x;
	var top=getAnchorWindowPosition(anchor).y+30;
	var VFreeArgumentArr=new Array;
	VFreeArgumentArr[0]=window;
	VFreeArgumentArr[1]="YYYYMmDd";
	VFreeArgumentArr[2]=inputObj;
	//var dataString = showModalDialog("../template/webctrl/Calendar.tmpl?inputObj="+inputObj, VFreeArgumentArr ,"dialogLeft:"+ (left-198) +";dialogTop:"+top+";dialogWidth:202px;dialogHeight:190px;status:no;help:no;");
	if(window.navigator.appName=="Netscape")
	{
		var dataString = window.open("../webctrl/Calendar.php?inputObj="+inputObj,"window","modal=yes,width=202px,height=210px,resizable=no,scrollbars=no");
	}
	else
	{
		var dataString = showModalDialog("../webctrl/Calendar.php?inputObj="+inputObj, VFreeArgumentArr ,"dialogLeft:"+ (left-198) +";dialogTop:"+top+";dialogWidth:202px;dialogHeight:210px;status:0;help:no;");

	}
}

function AddZero2(obj,len)
{

	var TMPstr=obj.value+"";
	var RTstr=obj.value+"";
	if(TMPstr.length<len && TMPstr.length>0)
	{
		for(i=0;i<len-TMPstr.length;i++)
		{
			RTstr="0"+RTstr;
		}
	}
	return RTstr;
}

function AddZero3(obj,len)
{

	var TMPstr=obj+"";
	var RTstr=obj+"";
	if(TMPstr.length<len && TMPstr.length>0)
	{
		for(i=0;i<len-TMPstr.length;i++)
		{
			RTstr="0"+RTstr;
		}
	}
	return RTstr;
}

function fixdate(obj)
{
	var date=obj.value;
	var date2="";
	var d = new Date();
	var year=d.getYear();
	var month=d.getMonth()+1;
	month=AddZero3(month,2);
	if(date.length <=2 )
	{
		date=AddZero2(obj,2);
		
	}
	else if(date.length <=4)
	{
		date=AddZero2(obj,4);
	}
	
	if (date.length==2)
	{
		
		date=""+year+month+date;
	}
	else if (date.length==4)
	{
		date=year+date+"";
	}
	var bbb= validateDate(date.substring(0,4), date.substring(4,6), date.substring(6,8));
	if(bbb!="right")
	{
		alert(bbb);
		return false;
		obj.focus();
	}

	obj.value=date;
}

function validateDate(year, month, day) 
{
	if(month=="01"&&day=="01") return ("right");
	var tempDateValue = year + "/" + month + "/" + day;
	if(tempDateValue.length < 6||tempDateValue.length > 10)
		return ("The length of date fields is invalid."); 
	var tempDate = new Date(tempDateValue);
	if(isNaN(tempDate))
		return ("The scope of date fields is invalid.");   
	if(parseInt(year) > 1900 && parseInt(year) < 2500 && ((tempDate.getUTCFullYear
()).toString()==year) && (tempDate.getMonth()==parseInt(month)-1) && (tempDate.getDate()
==parseInt(day)))

		return ("right");
	else
		return ("The date fields is invalid.");
}

function getAnchorWindowPosition(anchorname) {
	var coordinates=getAnchorPosition(anchorname);
	var x=0;
	var y=0;
	if (document.getElementById) {
		if (isNaN(window.screenX)) {
			x=coordinates.x-document.body.scrollLeft+window.screenLeft;
			y=coordinates.y-document.body.scrollTop+window.screenTop;
			}
		else {
			x=coordinates.x+window.screenX+(window.outerWidth-window.innerWidth)-window.pageXOffset;
			y=coordinates.y+window.screenY+(window.outerHeight-24-window.innerHeight)-window.pageYOffset;
			}
		}
	else if (document.all) {
		x=coordinates.x-document.body.scrollLeft+window.screenLeft;
		y=coordinates.y-document.body.scrollTop+window.screenTop;
		}
	else if (document.layers) {
		x=coordinates.x+window.screenX+(window.outerWidth-window.innerWidth)-window.pageXOffset;
		y=coordinates.y+window.screenY+(window.outerHeight-24-window.innerHeight)-window.pageYOffset;
		}
	coordinates.x=x;
	coordinates.y=y;
	return coordinates;
	}

function getAnchorPosition(anchorname) {
	// This function will return an Object with x and y properties
	var useWindow=false;
	var coordinates=new Object();
	var x=0,y=0;
	// Browser capability sniffing
	var use_gebi=false, use_css=false, use_layers=false;
	if (document.getElementById) { use_gebi=true; }
	else if (document.all) { use_css=true; }
	else if (document.layers) { use_layers=true; }
	// Logic to find position
 	if (use_gebi && document.all) {
		x=AnchorPosition_getPageOffsetLeft(document.all[anchorname]);
		y=AnchorPosition_getPageOffsetTop(document.all[anchorname]);
		}
	else if (use_gebi) {
		var o=document.getElementById(anchorname);
		x=o.offsetLeft; y=o.offsetTop;
		}
 	else if (use_css) {
		x=AnchorPosition_getPageOffsetLeft(document.all[anchorname]);
		y=AnchorPosition_getPageOffsetTop(document.all[anchorname]);
		}
	else if (use_layers) {
		var found=0;
		for (var i=0; i<document.anchors.length; i++) {
			if (document.anchors[i].name==anchorname) { found=1; break; }
			}
		if (found==0) {
			coordinates.x=0; coordinates.y=0; return coordinates;
			}
		x=document.anchors[i].x;
		y=document.anchors[i].y;
		}
	else {
		coordinates.x=0; coordinates.y=0; return coordinates;
		}
	coordinates.x=x;
	coordinates.y=y;
	return coordinates;
	}

function AnchorPosition_getPageOffsetLeft (el) {
	var ol=el.offsetLeft;
	while ((el=el.offsetParent) != null) { ol += el.offsetLeft; }
	return ol;
	}
function AnchorPosition_getWindowOffsetLeft (el) {
	return AnchorPosition_getPageOffsetLeft(el)-document.body.scrollLeft;
	}	
function AnchorPosition_getPageOffsetTop (el) {
	var ot=el.offsetTop;
	while((el=el.offsetParent) != null) { ot += el.offsetTop; }
	return ot;
	}
function AnchorPosition_getWindowOffsetTop (el) {
	return AnchorPosition_getPageOffsetTop(el)-document.body.scrollTop;
	}
