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 del(url) {
	if (confirm("您確定要刪除嗎?")) {
		window.location.href = url;
	}	
}

function isValidateEmail(value) {
	var flag = false;
  	var filter=/^.+@.+\..{2,3}$/
  	if (filter.test(value)) {
		flag = true;
  	}
	return flag;
}

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 validateOptionRequired(value) {
	var regform = / /g; 
	var bValid = true; 
	value = value.replace(regform, "");
	if (value.replace(regform, "").length == 0 || value == "-1") { 
		bValid = false;
	}
	return bValid;
}

function hasSpace(value) {
	if  (value.indexOf(" ") >= 0) {
		return true;
	}
	return false;
}

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 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;

		var selectedCount = 0;
		for (i=src.options.length-1; i>=0; i--) {			
			if (src.options[i].selected) {
				selectedCount ++;
			}
		}
//		alert(selectedCount);
		var origDestLength = dest.length - 1;
		//alert(origDestLength);
		dest.length += selectedCount;

		for (i=src.options.length-1; i>=0; i--) {			
			if (src.options[i].selected) {
				//alert("Element " + i + " is " + src.options[i].text + " and has the value " + src.options[i].value);
				//dest.length += 1;
				dest.options[origDestLength + selectedCount].text = src.options[i].text;
				dest.options[origDestLength + selectedCount].value = src.options[i].value;
				selectedCount --;
				for (var j = i; j< (src.length-1); j++) {		
					src.options[j].text = src.options[j+1].text;
					src.options[j].value = src.options[j+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;


		var selectedCount = 0;
		for (i=dest.options.length-1; i>=0; i--) {			
			if (dest.options[i].selected) {
				selectedCount ++;
			}
		}
		//alert(selectedCount);
		var origSrcLength = src.length - 1;
		//alert(origDestLength);
		src.length += selectedCount;


		for (i=dest.options.length-1; i>=0; i--) {			
			if (dest.options[i].selected) {
				//alert("Element " + i + " is " + src.options[i].text + " and has the value " + src.options[i].value);
				//dest.length += 1;
				src.options[origSrcLength + selectedCount].text = dest.options[i].text;
				src.options[origSrcLength + selectedCount].value = dest.options[i].value;
				selectedCount --;
				for (var j = i; j< (dest.length-1); j++) {		
					dest.options[j].text = dest.options[j+1].text;
					dest.options[j].value = dest.options[j+1].value;
				}
				dest.length = dest.length -1;
			}
		}

		dest.selectedIndex = 0;	
	}	
}


function checkAccount(uid) {
	if (isEmpty(uid))
		return( "「帳號」不可以空白 !\n" );
	if (uid.length<3 || uid.length>16)
		return( "您的帳號長度只能 3 至 16 個字元 !\n" );
	if (!(uid.charAt(0)>='a' && uid.charAt(0)<='z'))
		return( "您的帳號第一字元只能為小寫字母 !\n" );

	for (var idx=0; idx<uid.length; idx++) {
		if (uid.charAt(idx)>='A' && uid.charAt(idx)<='Z')
			return("帳號不可以含有大寫字元 !\n");
		if (!((uid.charAt(idx)>='a' && uid.charAt(idx)<='z') || (uid.charAt(idx)>='0' && uid.charAt(idx)<='9') || (uid.charAt(idx)=='_')))
			return( "您的帳號只能是數字,英文字母及「_」等符號,其他的符號都不能使用 !\n");
		if (uid.charAt(idx) =='_' && uid.charAt(idx-1)=='_')
			return("「_」符號不可相連 !\n");
	}
	if (uid.charAt(uid.length - 1) == '_')
		return( "「_」符號不可在最後 !\n");
	return "";
}

function checkPassword(pw1, pw2 ) {
	if (isEmpty(pw1)) {
		return ("「密碼」不可以空白 !\n");
	}
	for (var idx=0; idx<pw1.length; idx++) {
		if (pw1.charAt(idx)==' ' || pw1.charAt(idx)=='\"')
			return ("密碼不可以含有空白或雙引號 !\n");
		if (pw1.length<6 || pw1.length>32)
			return( "密碼長度只能 6 到 32 個字母 !\n" );
		if (pw1 != pw2)
			return("密碼二次輸入不一樣,請重新輸入 !\n");
	}
	return "";
}

function validateUploadFile(input) {
	var errormsg = "";
	var value = input.value;
	var position = -1;
	//alert(value);
	position = value.lastIndexOf("/");
	if (position == -1) {
		position = value.lastIndexOf("\\");		
	}
	//alert(position);

	if (position != -1) {
		value = value.substring(position+1, value.length);
	}
	//alert(value);
	if (isChineseExist(value)) {
		errormsg += "上傳檔案不允許有中文字 !! \n";
	}
	if (isContainSpace(value)) {
		errormsg += "上傳檔案不允許有空白字串 !! \n";
	}
	return errormsg;
}

function isContainSpace(value) {
	var errormsg = "";
	var bValid = false;
	var beforeValue = value
	var afterValue = beforeValue.replace(regform, "");
	if (beforeValue.length != afterValue.length) {
		bValid = true;
	}
	return bValid;
}

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 saveImageAs (URL) {
	if (typeof URL == 'object')
	URL = URL.src;
	var win = window.open (URL, 'save', 'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,copyhistory=0,width=10,height=10');
	win.document.execCommand('SaveAs'); 
	win.close();
} 

function isNumerical(value) {
	var regform = / /g;
	var bValid = true;
	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 regform = / /g;
	var bValid = true;
	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 isDouble(value) {
	var regform = / /g;
	var bValid = true;
	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;
}

