<!-- hide from JavaScript-challenged browsers

document.onkeydown=checkKeys
function checkKeys(e) {
	//if ((event.ctrlKey && (event.keyCode !=67 && event.keyCode !=86)) || (event.altKey) || (event.keyCode >=112 && event.keyCode <=123)) {
		//event.keyCode=0;
		//return false;
	//}
	// "Esc" key!
	if (event.keyCode == 27) {
		event.keyCode=0;
		return false;
	}
}

/**
var message="";
///////////////////////////////////
function clickIE() {if (document.all) {(message);return false;}}
function clickNS(e) {if
(document.layers||(document.getElementById&&!document.all)) {
if (e.which==2||e.which==3) {(message);return false;}}}

if (document.layers)
{document.captureEvents(Event.MOUSEDOWN);document.onmousedown=clickNS;}
else{document.onmouseup=clickNS;document.oncontextmenu=clickIE;}

document.oncontextmenu=new Function("return false") 
**/
/**
function RightClick(e) {
if (navigator.appName == 'Netscape' && 
    (e.which == 3 || e.which == 2))
   return false;
else 
   if (navigator.appName == 'Microsoft Internet Explorer' && 
       (event.button == 2 || event.button == 3)) {
      alert("Right mouse click is diabled.");
      return false;
   }
   else
      return true;
}

document.onmousedown=RightClick;
document.onmouseup=RightClick;
if (document.layers) window.captureEvents(Event.MOUSEDOWN);
if (document.layers) window.captureEvents(Event.MOUSEUP);
window.onmousedown=RightClick;
window.onmouseup=RightClick;
**/

var defaultEmptyOK = false
// BOI, followed by one or more whitespace characters, followed by EOI.
var reWhitespace = /^\s+$/
// BOI, followed by one or more characters, followed by @,
// followed by one or more characters, followed by ., 
// followed by one or more characters, followed by EOI.


/*
Change Cell Backgrounds -
c Shivaji Basu (www.shivbasu.com)
To add more shock to your site, visit www.DHTML Shock.com
*/

function cColorOn(td, color){
	if(document.getElementById||(document.all && !(document.getElementById))){
		td.style.backgroundColor=color;
  	}
}

function cColorOut(td, color){
	if(document.getElementById||(document.all && !(document.getElementById))){
		td.style.backgroundColor=color;
  	}
}


function trim(s) {
var str = s;
	//trim leding spaces
	while (str.length>0) {
		if(str.charAt(0) == ' ') {
			str = str.substr(1,str.length);
		} else {
			break;
		}
	}
	
	//trim trailing spaces
	while(str.length>0)	{
		if(str.charAt(str.length-1) == ' ')
			str = str.substr(0,str.length-1);
		else
			break;
	}
	return str
}


function isEmpty(s) {
	s = trim(s)
	return ((s == null) || (s.length == 0))
}
  
var reInteger = /^\d+$/
function isInteger (inputStr){   
	if (isEmpty(inputStr)) {
		if (isInteger.arguments.length == 1) {
			return false; //defaultEmptyOK;
		} else {
			return (isInteger.arguments[1] == true);
		}
	} 
    return reInteger.test(inputStr)
}

function isNonZeroInteger (inputStr){   
	if (isInteger(inputStr)) {
		if (parseInt(inputStr) == 0) {
			return false;
		} else {
			return true;
		}
	} 
    return false;
}

var reSignedInteger = /^(-)?\d+$/
function isSignedInteger (inputStr) {   
	if (isEmpty(inputStr)) {
		if (isSignedInteger.arguments.length == 1) {
			return false; //defaultEmptyOK;
		} else {
			return (isSignedInteger.arguments[1] == true);
		}
	} 
	return reSignedInteger.test(inputStr)
}

var reFloat = /^((\d+(\.\d*)?)|((\d*\.)?\d+))$/
function isFloat (inputStr){   
	if (isEmpty(inputStr)) {
		if (isFloat.arguments.length == 1) {
			return false; //defaultEmptyOK;
		} else {
			return (isFloat.arguments[1] == true);
		}
	} 
    return reFloat.test(inputStr)
}

var reSignedFloat = /^(((-)?\d+(\.\d*)?)|((-)?(\d*\.)?\d+))$/
function isSignedFloat (inputStr) {
	if (isEmpty(inputStr)) {
		if (isSignedFloat.arguments.length == 1) {
			return false; //defaultEmptyOK;
		} else {
			return (isSignedFloat.arguments[1] == true);
		}
	} 
 	return reSignedFloat.test(inputStr)
}

var reLetter = /^[a-zA-Z]|\ \+$/;
function isLetter (inputStr) {
	if (isEmpty(inputStr)) {
		if (isLetter.arguments.length == 1) {
			return false; //defaultEmptyOK;
		} else {
			return (isLetter.arguments[1] == true);
		}
	} 
 	return reLetter.test(inputStr)
}

var reLetterDigit = /^[a-zA-Z0-9]|\ \|\.\+$/
function isLetterDigit (inputStr) {
	if (isEmpty(inputStr)) {
		if (isLetterDigit.arguments.length == 1) {
			return false; //defaultEmptyOK;
		} else {
			return (isLetterDigit.arguments[1] == true);
		}
	} 
 	return reLetterDigittest(inputStr)	
}

//var reDateFormat = /^(\d{2})\/(\d{2})\/+\d{4}$/
//var reDateFormat = /\b((19|20)\d{2})[\/](1[0-2]|0?[1-9])[\/](0?[1-9]|[12][0-9]|3[01])/
var reDateFormat = /\b(0?[1-9]|[12][0-9]|3[01])[\/](1[0-2]|0?[1-9])[\/]((19|20)\d{2})/
function isDateFormat(inputStr) {
	var b = reDateFormat.test(inputStr)
	if (b) {
		return true;
	} else {
		return false;
	}
}

var reTimeFormat = /\b(0?[1-9]|[01][0-9]|2[0123])[:]([0-5][0-9])/
function isTimeFormat(inputStr) {
	var b = reTimeFormat.test(inputStr)
	if (b) {
		return true;
	} else {
		return false;
	}
}


function validDate(inputStr) {
	var arr, d, m, y;
	if (isDateFormat(inputStr)) {
		arr = inputStr.split("/");
		d = parseInt(arr[0],10);
		m = parseInt(arr[1],10);
		y = parseInt(arr[2],10);
		return validDateValue(y, m, d);
	} else {
		//alert("日期不正確!");
		alert("Invalid Date!");
	}
}

var daysInMonth = "0,31,29,31,30,31,30,31,31,30,31,30,31".split(",")
function validDateValue(y, m, d) {

	if (isInteger(y) && isInteger(m) && isInteger(d)) {
		if (y<2000 || y>2050) {
			alert("Invalid Year!");
			//alert("年份不正確!");
			return false;
		}
		if (m<0 || m>12){
			alert("Invalid Month!");
			//alert("月份不正確!");
			return false;
		}
		if (d<0 || d>31) {
			alert("Invalid Day!");
			//alert("日子不正確!");
			return false;
		} 
		if (d > daysInMonth[m]) {
			alert("Invalid Day in Month!");
			//alert("日子不正確!");
			return false; 
		}
		if (m == 2) {
			if (y%4==0) {
				if (d>29) {
					alert("Invalid Day in Month!");
					//alert("日子不正確!");
					return false;
				} else {
					return true;
				}
	
			} else {
				if (d>28) {
					alert("Invalid Day in Month!");
					//alert("日子不正確!");
					return false;
				} else {
					return true;
				}
			}
		}
		return true;
	} else {
		alert("Invalid Date Format!");
		//alert("日期格式不正確!");
		return false;
	}
}

function getDateInput(inputStr) {
	var arr;
	if (validDate(inputStr)) {
		arr = inputStr.split("/");
		d = arr[0];
		m = arr[1];
		y = arr[2];
		if (m.length ==1) m = "0" + m;
		if (d.length ==1) d = "0" + d;
		return y + "" + m + "" + d;
	}
}

var reEmail = /^.+\@.+\..+$/
function isEmail (s){   
	if (isEmpty(s)) 
       if (isEmail.arguments.length == 1) return defaultEmptyOK;
       else return (isEmail.arguments[1] == true);
    
    else {
       return reEmail.test(s)
    }
}

//var reCurrency = /^((\d+(\,\d{3})+(\,\d{3})\+(\.\d{2}))|(\d+(\,\d{3})+(\.\d{2}))|(\d+(\.\d{2}))|((\d*\.)?\d+))$/
var reCurrency = /^((\d+(\,\d{3})+(\,\d{3})+(\,\d{3}|\,\d{3}\.\d{1}|\,\d{3}\.\d{2}))|(\d+(\,\d{3})+(\,\d{3}|\,\d{3}\.\d{1}|\,\d{3}\.\d{2}))|(\d+(\,\d{3}|\,\d{3}\.\d{1}|\,\d{3}\.\d{2}))|(\d+|\d+(\.\d{1}|\.\d{2})))$/
function isCurrency (inputStr){   
	if (isEmpty(inputStr)) {
		if (isCurrency.arguments.length == 1) {
			return false; //defaultEmptyOK;
		} else {
			return (isCurrency.arguments[1] == true);
		}
	} 
    return reCurrency.test(inputStr)
}
// Convert the input to currency Format!
function convert2CurrencyFormat(inputString) {
	if (!isEmpty(inputString)) {
		inputString = inputString.replace(/,/g, "");
		if (inputString.indexOf(',') == -1) {	// Test if the "," exist or not
			// get the last position of "."
			var integal = inputString.lastIndexOf('.');	// Test if the "." exist or not
			var len = integal;
			if (len == -1) len = inputString.length;
			if (len>3) {
				offset = len%3;
				result = (offset>0) ? inputString.substring(0, offset) + "," : "";
				for (i=offset; i<=len-3; i++) {
					result += inputString.substring(i, i+3) + ",";
					i = i + 2;
				}
				result = result.substring(0, result.length-1);
				if (integal>0) {
					result += inputString.substring(integal, inputString.length);
					for (i=(inputString.length-integal)-1; i<2; i++) {
						result += "0";
					}
				} else {
					result += (len<inputString.length)? inputString.substring(len, inputString.length) : ".00";
				}
			} else {
				if (integal == -1) {
					result = inputString + ".00";
				} else {
					result = inputString;
					for (i=(inputString.length-integal)-1; i<2; i++) {
						result += "0";
					}
				}
			}
			return result;
		} else {
			return inputString;
		}
	} else {
		return inputString;
	}
}


function removeOption(object,index) {
    object.options[index] = null;
}


function addOption(object,text,value,defaultSelected,selected) {
    var optionName = new Option(text, value, defaultSelected, selected);
    object.options[object.length] = optionName;
}


function removeAllOption(object) {
    for (var i=object.options.length-1;i>-1;i--) {
        removeOption(object,i);
    }
}


function addToGroup(from, to) {
	var i, j, k, max
	k = 0
	sel=0
	max = from.length
	arrText = new Array(max)
	arrValue = new Array(max)
	for (i=0; i < max; i++) {
		if (from.options[i].selected) {
			to.length++;
			j = to.length-1;
			to.options[j].value = from.options[i].value
			to.options[j].text  = from.options[i].text
			from.options[i].selected = false
		} else {
			arrText[k] = from.options[i].text
			arrValue[k] = from.options[i].value
			k++
		}
	}
	from.length=k;
	for (i=0; i < k; i++) {
		from.options[i].text = arrText[i]
		from.options[i].value = arrValue[i]
	}
}

function addAllToGroup(from, to) {
	var i, j, k, max
	k = 0
	sel=0
	max = from.length
	arrText = new Array(max)
	arrValue = new Array(max)
	for (i=0; i < max; i++) {
		//if (from.options[i].selected) {
			to.length++;
			j = to.length-1;
			to.options[j].value = from.options[i].value
			to.options[j].text  = from.options[i].text
			from.options[i].selected = false
		//} else {
			//arrText[k] = from.options[i].text
			//arrValue[k] = from.options[i].value
			//k++
		//}
	}
	from.length=k;
	for (i=0; i < k; i++) {
		from.options[i].text = arrText[i]
		from.options[i].value = arrValue[i]
	}
}

function jsAdd(to, f) {
	max = to.length
	if (max==0) {
		return false;
	}
	arrayField = new Array(max)
	for (i=0; i < max; i++) {
		arrayField[i]=to.options[i].value;
	}
	f.value=arrayField;
	if (f.value == "") {
		return false;
	} else {
		return true;
	}
}

function isFileTypeValid(inputStr , fileType){
	var args=isFileTypeValid.arguments
	for (var i=1 ; i < args.length ; i++ ) {
		var offset = args[i].length 
		var filetype  = inputStr.substring( (inputStr.length - offset) , (inputStr.length) )
		if (filetype == args[i] ){
			return true
		}
	}
	return false 
}


function changeField(currentField, nextField, len) {
	//if (isInteger(currentField.value)) { 
	if (!isEmpty(currentField.value)) { 
		if (window.event.keyCode == 0 || window.event.keyCode == 9 || window.event.keyCode == 16) {
			//currentField.focus();
			currentField.select();
		} else if ((currentField.value.length == len)) {
			nextField.focus();
			nextField.select();
		}
	}
}

function resetCombo(f){
	for (i=0;i<f.length;i++) {
		f[i].checked = false;
	}
}

function getCheckBoxValue(flist, theForm) {
	var checkboxvalue = ""
	if (theForm[flist].length == undefined) {
	   	if (theForm[flist].checked == true) {
            checkboxvalue = theForm[flist].value;
        }
    } else {
    	for (var i=0; i<theForm[flist].length; i++) {
    		if (theForm[flist][i].checked == true) {
    			checkboxvalue = theForm[flist][i].value;
    			break;
    		}
    	}
    }
	return checkboxvalue;
}
// get the selection box value
function getSelectionBoxValue(flist, theForm) {
	var selectionboxvalue = ""
	return theForm[flist][theForm[flist].selectedIndex].value;
}
// get the date input field
//function getDateInput(flist, theForm) {
    ////return theForm[flist + "Y"].value + "/" + theForm[flist + "M"].value + "/" + theForm[flist + "D"].value;
    //return theForm[flist].value;
//}
// get the check box value
function checkCheckBoxValue(flist, fdesc, theForm) {
	var b = false;
	var v = getCheckBoxValue(flist, theForm);
	if (!isEmpty(v)) {
		b = true;
	}
	if (!b) {
		alert("Please select " + fdesc);
		if (theForm[flist].length == undefined) {
		  theForm[flist].focus();
		} else {
          theForm[flist][0].focus();
        }
		return false;
	} else {
		return true;
	}
}

// done hiding -->