// JavaScript Document
function isBlank(str) {
	str = removeExtraSpaces(str," ");
	str = removeLeadingAndTrailingChar(str," ");
	var len = str.length;
	var enter = 0;
	if(len == 0) return true;
	//Check if user only enter
	for (i=0; i<len; i++) {
		if((str.charCodeAt(i) == 13)||(str.charCodeAt(i) == 10)||(str.charCodeAt(i) == 32))
			enter = 0;
		else
			return false;
	}	  
	return true;
}

function checkLength(str, intLength) {
	str = removeExtraSpaces(str," ");
	str = removeLeadingAndTrailingChar(str," ");
	if (str.length<intLength) return true;
	return false;
}

function removeExtraSpaces(string, delimiter) {
	var returnString = "";
	splitstring = string.split(delimiter);
	for(i = 0; i < splitstring.length; i++) {
    	if (splitstring[i]!="") returnString += splitstring[i] + delimiter;
	}
	return returnString;
}

function removeLeadingAndTrailingChar(inputString, removeChar)  {
	var returnString = inputString;
	if (removeChar.length) {
		while(''+returnString.charAt(0)==removeChar) {
			returnString=returnString.substring(1,returnString.length);
		}
		while(''+returnString.charAt(returnString.length-1)==removeChar) {
			returnString=returnString.substring(0,returnString.length-1);
	  	}
	}
	return returnString;
}

function submitform(pressbutton) {
	
	document.adminForm.task.value = pressbutton;
	try {
		document.adminForm.onsubmit();
	} catch(e){}
	
	document.adminForm.submit();
}

function submitbutton(pressbutton) {
	
	submitform(pressbutton);
}

function check_all(n) {
	
	var f = document.adminForm;
	var c = f.toggle.checked;
	var n2 = 0;
	for (i=0; i < n; i++) {
		cb = eval( 'f.cb' + i );
		if (cb) {
			cb.checked = c;
			n2++;
		}
	}

	if (c) {
		document.adminForm.boxchecked.value = n2;
	} else {
		document.adminForm.boxchecked.value = 0;
	}
}

function isChecked(isitchecked) {
	if (isitchecked == true){
		document.adminForm.boxchecked.value++;
	} else {
		document.adminForm.boxchecked.value--;
	}
}

function has_selected(item_name) {
// 8/30/2005, Doan Vu
	// item_name : name of check boxes
	if (item_name == undefined || item_name == '') { return false;}
	chk_box_arr = document.getElementsByName(item_name);
	if (!chk_box_arr) { return false; }
	if (!chk_box_arr.length) {
		return chk_box_arr.checked ? true : false;
	} else {
		for (i=0, n=chk_box_arr.length; i<n; i++) {
			if (chk_box_arr[i].checked) return true;
		}
		return false;
	}
}

function radio_active(form, sel_name, val){
	//var f = eval("document.form1."+sel_name);
	for (i = 0; i < form.elements.length; i++){
		if(form.elements[i].name == sel_name) {
			if (form.elements[i].value == val) {
				form.elements[i].checked = true;
				break;
			}
		}
	}
}//end fucntion

function MM_openBrWindow(theURL,winName,features) { //v2.0
	if (features=='') features = 'width=340,height=520';
	window.open(theURL,winName,features);
}

function select_active(form, sel_name, val){
	//var f = eval("document.form1."+sel_name);

	for (i = 0; i < form.elements.length; i++){
		if (form.elements[i].name == sel_name) {
			for (var j=0; j<form.elements[i].length; j++){
				if (form.elements[i].options[j].value == val) {
					form.elements[i].selectedIndex = j;
					break;
				}
			}		
		}
	}
	
}//end fucntion

function radio_active(form, sel_name, val){
	//var f = eval("document.form1."+sel_name);
	for (i = 0; i < form.elements.length; i++){
		if(form.elements[i].name == sel_name) {
			if (form.elements[i].value == val) {
				form.elements[i].checked = true;
				break;
			}
		}
	}
}//end fucntion

function radio_check(form, sel_name) {
	
	var bln_check = false;
	for (i = 0; i < form.elements.length; i++){
		if(form.elements[i].name == sel_name) {
			if (form.elements[i].checked) {
				bln_check = true;
				break;
			}
		}
	}
	
	if (bln_check) {
		return true;
	} else {
		return false;
	}
	
}//end fucntion

function radio_check_value(form, sel_name) {
	
	var radio_value = 0;
	for (i = 0; i < form.elements.length; i++){
		if(form.elements[i].name == sel_name) {
			if (form.elements[i].checked) {
				radio_value = form.elements[i].value;
				break;
			}
		}
	}//for
	
	return radio_value;
	
}//function

function isInteger(s){
	var i;
    for (i = 0; i < s.length; i++){   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

// formatInteger
// Takes a number field and a money flag and validates that it is a valid number. Strips out all but digits
// and formats the number with commas and a dollar sign, if the money flag is true.
//
function formatInteger(numberField,moneyFlag,minimumValue,maximumValue,noCommas,showAlert) {
	
	if (showAlert == null) {
		showAlert = true;
	}
	strString = numberField.value;
	var strValidChars = "-$0123456789,.";
	var strChar;

	if (strString.length == 0) {
		return true;
	}

	newString = "";
	for (i = 0; i < strString.length; i++) {
		strChar = strString.charAt(i);
		if (strValidChars.indexOf(strChar) == -1) {
			if (showAlert) {
				alert("Invalid number. Only chars '0123456789,' are allowed");
			}
			setTimeout("document." + numberField.form.name + "." + numberField.name + ".focus()",100);
			return false;
		}
		if (strChar == ".") {
			break;
		}
		if (strChar == "-" && newString.length == 0) {
			newString += "-";
		}
		if (strChar >= "0" && strChar <= "9") {
			newString += strChar;
		}
	}
	newString = newString - 0;
	if (newString == "-") {
		newString = "0";
	}
	if (minimumValue != null && newString < minimumValue) {
		newString = minimumValue;
	}
	if (maximumValue != null && newString > maximumValue) {
		newString = maximumValue;
	}
	if (noCommas == null || !noCommas) {
		newString = addCommas(parseInt(newString) + "");
	}
	numberField.value = (moneyFlag ? "$" : "") + newString;
	return true;
	
}//function

// formatFloat
// Takes a number field and a money flag and validates that it is a valid number. Strips out all but digits
// and formats the number with commas and a dollar sign, if the money flag is true.
//
function formatFloat(numberField,moneyFlag,decimals,minimumValue,maximumValue,showAlert) {
	if (showAlert == null) {
		showAlert = true;
	}
	strString = numberField.value;
	var strValidChars = "$0123456789,.";
	var strChar;

	if (strString.length == 0) {
		return true;
	}

	newString = "";
	if (decimals == null) {
		decimals = 0;
	}
	foundDecimal = false;
	totalDecimals = 0;

	for (i = 0; i < strString.length; i++) {
		strChar = strString.charAt(i);
		if (strValidChars.indexOf(strChar) == -1) {
			if (showAlert) {
				alert("Invalid number. Only chars '0123456789,.' are allowed");
			}
			setTimeout("document." + numberField.form.name + "." + numberField.name + ".focus()",100);
			return false;
		}
		if ((strChar >= "0" && strChar <= "9") || (strChar == "." && !foundDecimal)) {
			if (strChar == ".") {
				foundDecimal = true;
				newString += strChar;
			} else if ((foundDecimal && totalDecimals < decimals) || !foundDecimal) {
				if (foundDecimal) {
					totalDecimals++;
				}
				newString += strChar;
			}
		}
	}
	newString = newString - 0;
	if (minimumValue != null && newString < minimumValue) {
		newString = minimumValue;
	}
	if (maximumValue != null && newString > maximumValue) {
		newString = maximumValue;
	}
	numberField.value = (moneyFlag ? "$" : "") + addCommas(newString);
	return true;
	
}//function

// validateCCNumber
// takes the credit card type field, the number field, and a flag indicating whether to set
// the type or not. Credit card number is validated according to industry standards.
//
function validateCreditCardNumber(typeField,numberField,setType,showAlert)
{
	if (showAlert == null) {
		showAlert = true;
	}
	var ccNum = numberField.value;

	if (numberField.value.length > 0 && numberField.value.charAt(0) != "*") {
		if (!isInteger(ccNum)) {
			if (showAlert) {
				alert('Please enter only numbers (no dashes or spaces) for the Credit Card number');
			}
			setTimeout("document." + numberField.form.name + "." + numberField.name + ".focus()",150);
			return false;
		}

		if (!LuhnCheck(ccNum) || !validateCreditCardType(typeField,ccNum,setType)) {
			if (showAlert) {
				alert('Invalid credit card number');
			}
			setTimeout("document." + numberField.form.name + "." + numberField.name + ".focus()",100);
			return false;
		}
	}
	return true;
}//function

// validateCreditCardType
// validate the credit card number after setting the type
//
function validateCreditCardType(typeField,cardNum,setType) {
	var cardType = typeField.options[typeField.selectedIndex].value;
	var numType = "";

	var cardLen = cardNum.length;
	var firstdig = cardNum.substring(0,1);
	var seconddig = cardNum.substring(1,2);
	var first4digs = cardNum.substring(0,4);

	if (((cardLen == 16) || (cardLen == 13)) && (firstdig == "4")) {
		numType = "VISA";
	} else if ((cardLen == 15) && (firstdig == "3") && ("47".indexOf(seconddig)>=0)) {
		numType = "AMEX";
	} else if ((cardLen == 16) && (firstdig == "5") && ("12345".indexOf(seconddig)>=0)) {
		numType = "MC";
	} else if ((cardLen == 16) && (first4digs == "6011")) {
		numType = "DISC";
	} else if ((cardLen == 14) && (firstdig == "3") && ("068".indexOf(seconddig)>=0)) {
		numType = "DINERS";
	}

	if (numType == "") {
		return false;
	}

	if (setType) {
		typeWasSet = false;
		for (var i=0;i<typeField.options.length;i++) {
			if (typeField.options[i].value == numType) {
				typeWasSet = true;
				typeField.selectedIndex = i;
				break;
			}
		}
		return typeWasSet;
	} else {
		if (numType != cardType && cardType != "") {
			return false;
		}
	}
	return true;

}//function

function textbox_check(form, sel_name) {
	
	var bln_check = true;
	
	for (k = 0; k < form.elements.length; k++){
		
		if (form.elements[k].name == sel_name) {
			if (isBlank(form.elements[k].value)) {
				bln_check = false;
				break;
			}
		}
		
	}
	return bln_check;
	
}//end function

function checkWordLen(str, intLength){
	
	if (str.length) {
		str = removeExtraSpaces(str, " ");
		str = removeLeadingAndTrailingChar(str, " ");
		
		var arrWord = Array();
		arrWord = splitToWordArr(str);
		
		for (x=0; x<arrWord.length; x++){
			if (arrWord[x].length > intLength) return false;
		}//if
		
		return true;
	} else {
		return true;
	}//if

}

function splitToWordArr(str) {

	var arrWord = Array();
	var count_start	= 0;
	var n = 0;
	
	if (str.length) {
		for (x=0; x<str.length; x++) {
			if (str.charAt(x) == " " && str.charAt(x-1) != " ")  {
				word = str.substring(count_start, x);
				count_start	= x + 1;
				arrWord[n] = word;
				n++;
			}
		}//for
		
		word = str.substring(count_start, str.length);
		arrWord[n] = word;
	
	}//if

	return arrWord;
	
}//function

function ValidEmail(EmailAddr) {
    var reg1 = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/;
    var reg2 = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4}|[0-9]{1,4})(\]?)$/;
    var SpecChar="!#$%^&*()'+{}[]\|:;?/><,~`" + "\"";
    var frmValue = new String(EmailAddr);
    var len = frmValue.length;
    if( len < 1 ) { return false; }
    for (var i=0;i<len;i++){
        temp=frmValue.substring(i,i+1)
        if (SpecChar.indexOf(temp)!=-1){
            return false;
        }
    }
    if(!reg1.test(frmValue) && reg2.test(frmValue)){
        return true;
    }
    return false;
}//function

function trim(s) {
	if(typeof(s) == 'undefined')  return s;
	while (s.substring(0,1) == " ") {
		s = s.substring(1, s.length);
	}
	while (s.substring(s.length-1, s.length) == ' ') {
		s = s.substring(0,s.length-1);
	}
	return s;
}//function

function checkbox_active(form, sel_name, val){
	
	for (i = 0; i < form.elements.length; i++){
		if(form.elements[i].name == sel_name) {
			val = val.toString()+',';
			if (val.search(form.elements[i].value+',')!=-1) {
				form.elements[i].checked = true;
			}
		}
	}
	
}//function

function checkbox_check(form, sel_name) {
	
	var bln_check = false;
	
	for (i = 0; i < form.elements.length; i++){
		if(form.elements[i].name == sel_name) {
			if (form.elements[i].checked) {
				bln_check = true;
				break;
			}
		}
	}
	
	return bln_check;
	
}//function

function multi_sel_check(form, sel_name) {
	
	var bln_check = false;
	
	for (i = 0; i < form.elements.length; i++){
		if(form.elements[i].name == sel_name) {
			
			if (form.elements[i].value > 0) {
				bln_check = true;
				break;
			}
		}
	}//for
	
	return bln_check;
	
}//function
