function clearAll(form) {
	for (var i=0; i<form.elements.length; i++) {
		var elementType = form.elements[i].type;
		//alert(elementType);
		if (elementType == "button" || elementType == "reset" || elementType == "submit" || elementType == "hidden") {
			;//do nothing
		} else if (elementType == "select-one") {
			form.elements[i].value="-1";
		} else if (elementType == "radio") {
			form.elements[i].checked="false";
			form.elements[i].value="-1";
		} else if (elementType == "text") {
			form.elements[i].value="";
		} else {
			form.elements[i].value="";
		}
	}
}

function isNumerical(value) {
	var bValid = true;
	var regform = / /g;
	value = value.replace(regform, "");

	if (value.length > 0) {
		if (isNaN(value)) {
			bValid = false;
	   }
		if (bValid) {
			var numbers = "0123456789-.";
			for (var i=0; i<value.length; i++) {
				if (numbers.indexOf(value.charAt(i)) == -1) {
					bValid = false;
					break;
				}
			}
		}
	}
	return bValid;
}

function isInteger(value) {
	var bValid = true;
	var regform = / /g;
	value = value.replace(regform, "");

	if (value.length > 0) {
		if (isNaN(value)) {
			bValid = false;
	   }
		if (bValid) {
			var numbers = "0123456789";
			for (var i=0; i<value.length; i++) {
				if (numbers.indexOf(value.charAt(i)) == -1) {
					bValid = false;
					break;
				}
			}
		}
	}
	return bValid;
}


function del(url) {
	if (confirm("Are you sure?")) {
		window.location.href = url;
	}	
}

function sbar(st){st.style.backgroundColor='#D0F0BC';}
function cbar(st){st.style.backgroundColor='';}

function isEmpty(value) {
	var regform = / /g;
	var flag = false;
	if (value.replace(regform, "").length == 0) {
		flag = true;
	}
	return flag;
}

function isChineseExist(value) {
	var bValid = false;
	value = escape(value);
	if (value.indexOf("%u") != -1) {
		bValid = true;
	}
	return bValid;
}

function isAllNumber(value) {
	var bValid = true;
	if (!isEmpty(value)) {
		var keywords = "0123456789";
		for (var i=0; i<value.length; i++) {
			if (keywords.indexOf(value.charAt(i)) == -1) {
				bValid = false;
				break;
			}
		}
	} else {
		bValid = false;
	}
	return bValid;
}

function isAllEnglish(value) {
	var bValid = true;
	if (!isEmpty(value)) {
		value = value.toLowerCase();
		var keywords = "abcdefghijklmnopqrstuvwxyz";
		for (var i=0; i<value.length; i++) {
			if (keywords.indexOf(value.charAt(i)) == -1) {
				bValid = false;
				break;
			}
		}
	} else {
		bValid = false;
	}
	return bValid;
}

function addSelectedIndex (srcObj, destObj) {	
	var src = eval(srcObj);
	var dest = eval(destObj);	
	if (src.options == null || dest.options == null) {
		return false;
	}	
	if (src.selectedIndex==-1 || src.selectedIndex == 0)
		return false;
	if (src.length > 0) {	
		if (dest.length <= 0) dest.length = 0;
		dest.length += 1;	
		dest.options[dest.length - 1].text = src.options[src.selectedIndex].text;
		dest.options[dest.length - 1].value = src.options[src.selectedIndex].value;	
		for (var i = src.selectedIndex; i< (src.length-1); i++) {		
			src.options[i].text = src.options[i+1].text;
			src.options[i].value = src.options[i+1].value;
		}	
		src.length = src.length -1;
		src.selectedIndex = 0;
	}	
}

function removeSelectedIndex (srcObj, destObj) {
	var src = eval(srcObj);
	var dest = eval(destObj);	
	if (src.options == null || dest.options == null) {
		return false;
	}	
	if (dest.selectedIndex==-1 || dest.selectedIndex == 0)
		return false;
	if (dest.length > 0) {		
		if (src.length <= 0) src.length = 0;
		src.length += 1;	
		src.options[src.length - 1].text = dest.options[dest.selectedIndex].text;
		src.options[src.length - 1].value = dest.options[dest.selectedIndex].value;		
		for (var i = dest.selectedIndex; i< (dest.length-1); i++) {		
			dest.options[i].text = dest.options[i+1].text;
			dest.options[i].value = dest.options[i+1].value;
		}		
		dest.length = dest.length - 1;
		dest.selectedIndex = 0;	
	}	
}

function validateEmail(email) {
	var regform = / /g;
	var errormsg = "";
	var bValid = true;
	var value = email;
	value = value.replace(regform, "");
	if (isEmpty(value))
		return false;
	return checkEmail(value);
	
}


function checkEmail(emailStr) {
   var regform = / /g;
   if (emailStr.length == 0) {
	   return false;
   }
   var emailPat=/^(.+)@(.+)$/;
   var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
   var validChars="\[^\\s" + specialChars + "\]";
   var quotedUser="(\"[^\"]*\")";
   var ipDomainPat=/^(\d{1,3})[.](\d{1,3})[.](\d{1,3})[.](\d{1,3})$/;
   var atom=validChars + '+';
   var word="(" + atom + "|" + quotedUser + ")";
   var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
   var domainPat=new RegExp("^" + atom + "(\\." + atom + ")*$");
   var matchArray=emailStr.match(emailPat);
   if (matchArray == null) {
	   return false;
   }
   var user=matchArray[1];
   var domain=matchArray[2];
   if (user.match(userPat) == null) {
	   return false;
   }
   var IPArray = domain.match(ipDomainPat);
   if (IPArray != null) {
	   for (var i = 1; i <= 4; i++) {
		  if (IPArray[i] > 255) {
			 return false;
		  }
	   }
	   return true;
   }
   var domainArray=domain.match(domainPat);
   if (domainArray == null) {
	   return false;
   }
   var atomPat=new RegExp(atom,"g");
   var domArr=domain.match(atomPat);
   var len=domArr.length;
   if ((domArr[domArr.length-1].length < 2) ||
	   (domArr[domArr.length-1].length > 3)) {
	   return false;
   }
   if (len < 2) {
	   return false;
   }
   return true;
}

function isDate(year, month, day) {

	// month argument must be in the range 1 - 12
	month = month - 1; // javascript month range : 0- 11
	var tempDate = new Date(year,month,day);

	if ( (tempDate.getYear()==year) &&	(month == tempDate.getMonth()) &&	(day == tempDate.getDate()) ) 
		return true;
	else
		return false
}


function checkID(id)
{
	letter ="ABCDEFGHIJKLMNOPQRSTUVWXYZ"; 
	i=0;
	result=0;

	id=id.toUpperCase(); // 轉成大寫
	id=id.replace(" /g", ""); // 把空白換掉
	if(id.length != 10) // 是不是10個字?
	{
		if ( id.length == 8 )	return chknumCompanyNo(id);
		return false;
	}
	if(letter.indexOf(id.substring(0,1)) == -1)
	{
		return false;
	} 
	else {
		i = letter.indexOf(id.substring(0,1)) + 10;
	}
	
	result=0;

	if(isNaN(id.substring(1,10)))
	{
		return false;
	}

	if(id.substring(1,2) != "1" && id.substring(1,2) != "2")
	{
		return false;
	}

	idalpha = id.substring(0,1);
	idalpha_value= 0;

	if( idalpha == "A" )  idalpha_value = 1;
	else if( idalpha == "B" )  idalpha_value = 10;
	else if( idalpha == "C" )  idalpha_value = 19;
	else if( idalpha == "D" )  idalpha_value = 28;
	else if( idalpha == "E" )  idalpha_value = 37;
	else if( idalpha == "F" )  idalpha_value = 46;
	else if( idalpha == "G" )  idalpha_value = 55;
	else if( idalpha == "H" )  idalpha_value = 64;
	else if( idalpha == "I" )  idalpha_value = 39;
	else if( idalpha == "J" )  idalpha_value = 73;
	else if( idalpha == "K" )  idalpha_value = 82;
	else if( idalpha == "L" )  idalpha_value = 2;
	else if( idalpha == "M" )  idalpha_value = 11;
	else if( idalpha == "N" )  idalpha_value = 20;
	else if( idalpha == "O" )  idalpha_value = 48;
	else if( idalpha == "P" )  idalpha_value = 29;
	else if( idalpha == "Q" )  idalpha_value = 38;
	else if( idalpha == "R" )  idalpha_value = 47;
	else if( idalpha == "S" )  idalpha_value = 56;
	else if( idalpha == "T" )  idalpha_value = 65;
	else if( idalpha == "U" )  idalpha_value = 74;
	else if( idalpha == "V" )  idalpha_value = 83;
	else if( idalpha == "W" )  idalpha_value = 21;
	else if( idalpha == "X" )  idalpha_value = 3;
	else if( idalpha == "Y" )  idalpha_value = 12;
	else if( idalpha == "Z" )  idalpha_value = 30;


	for(i=1; i<9; i++)
	{
		result += (parseInt(id.substring(i, i+1)) * (9-i));
	}

	result = result+idalpha_value;

	if( ((10 - (result % 10))%10) != id.substring(9,10))
	{
		return false;
	}

	return true;
}

var cx = new Array;
cx[0] = 1;
cx[1] = 2;
cx[2] = 1;
cx[3] = 2;
cx[4] = 1;
cx[5] = 2;
cx[6] = 4;
cx[7] = 1;


function chknumCompanyNo(NO){  
	var SUM = 0;
	if (NO.length != 8) {
		return;
	}
	var cnum = NO.split("");
	for (i=0; i<=7; i++) {
		if (NO.charCodeAt() < 48 || NO.charCodeAt() > 57) 
		{
			return;
		}
		SUM += cc(cnum[i] * cx[i]);
	}

	if (SUM % 10 == 0) return true;
	else if (cnum[6] == 7 && (SUM + 1) % 10 == 0) return true;
	else {
		return false;
	}
}
function cc(n){
	if (n > 9) {
		var s = n + "";
		n1 = s.substring(0,1) * 1;
		n2 = s.substring(1,2) * 1;
		n = n1 + n2;
	}
	return n;
}