//*********** file name	: lib_validation.js
//*********** summary	: javascript func. to be used in eCommerce control panel
//*********** maker	: DaeHo Yu
//*********** created	: 7/12/01
//*********** modified	: 

function isArray(objCom) {
	if (typeof(objCom.length) == "undefined") {
		return false;
	}
	else {
		return true;
	}
}

function isArraySelectBox(objCom) {
	if (typeof(objCom[0].length) == "undefined") {
		return false;
	}
	else {
		return true;
	}
}

function trim(str) {
	var strTrim;
	var i, j;
	
	for (i=0; i<str.length; i++) {
		if (str.charAt(i) != " ") break;
	}
	for (j=str.length-1; j>=0; j--) {
		if (str.charAt(j) != " ") break;
	}
	
	strTrim = str.substr(i, j-i+1);
	return strTrim;
}

function isEmpty(str) {
	return ((str==null) || (str.length==0));
}

function isWhiteSpace(str) {
	var strTrim = trim(str);
	return isEmpty(strTrim);
}

function isDigit(d) {
	return ((d >= "0") && (d <= "9"));
}

function isLetter(c) {
	return (((c >= "a") && (c <= "z")) || ((c >= "A") && (c <= "Z")));
}

function isNumeric(strNum) {
	var i;
	
	if (isWhiteSpace(strNum) == true) {
		return false;
	}
	
	strNum = trim(strNum);
	
	for (i=0; i<strNum.length; i++) {
		var chr = strNum.charAt(i);
		if (!isDigit(chr)) {
			return false;
		}
	}
	return true;
}

function isAlphaOnly(strNum) {
	var i;
	
	if (isWhiteSpace(strNum) == true) {
		return false;
	}
	
	strNum = trim(strNum);
	
	for (i=0; i<strNum.length; i++) {
		var chr = strNum.charAt(i);
		if (!isLetter(chr)) {
			return false;
		}
	}
	return true;
}

function isAlphaSpecial(strNum, strSpecial) {
	var i;
	
	if (isWhiteSpace(strNum) == true) {
		return false;
	}
	
	strNum = trim(strNum);
	
	for (i=0; i<strNum.length; i++) {
		var chr = strNum.charAt(i);
		var nIndex = strSpecial.indexOf(chr);
		if (!isLetter(chr) && nIndex < 0) {
			return false;
		}
	}
	return true;
}

function isAlphaNumeric(strNum) {
	var i;
	
	if (isWhiteSpace(strNum) == true) {
		return false;
	}
	
	strNum = trim(strNum);
	
	for (i=0; i<strNum.length; i++) {
		var chr = strNum.charAt(i);
		if (!isDigit(chr) && !isLetter(chr)) {
			return false;
		}
	}
	return true;
}

function isAlphaNumericSpecial(strNum, strSpecial) {
	var i;
	
	if (isWhiteSpace(strNum) == true) {
		return false;
	}
	
	strNum = trim(strNum);
	
	for (i=0; i<strNum.length; i++) {
		var chr = strNum.charAt(i);
		var nIndex = strSpecial.indexOf(chr);
		if (!isDigit(chr) && !isLetter(chr) && nIndex < 0) {
			return false;
		}
	}
	return true;
}

function isFloat(strNum) {
	var i = 0, j = 0;
	var trimNum;
	
	if (isWhiteSpace(strNum) == true) {
		return false;
	}
	
	trimNum = trim(strNum);
	if (trimNum.length==1 && trimNum==".") {
		return false;
	}
	
	if (trimNum.charAt(0) == "+" || trimNum.charAt(0) == "-") i = 1;
	for (; i<trimNum.length; i++) {
		var chr = trimNum.charAt(i);
		if (!isDigit(chr)) {
			if (chr=="." && j==0) {
				j++;
			}
			else {
				return false;
			}
		}
	}
	
	return true;
}

function isEmail(strEmail) {
	var index;
	var indexDot;
	var trimStr;
	
	trimStr = trim(strEmail);
	
	index = trimStr.indexOf("@");
	if (index <= 0 || index == trimStr.length - 1) {
		return false;
	}
	
	indexDot = trimStr.indexOf(".", index+1);
	if (indexDot <= index+1 || indexDot == trimStr.length - 1) {
		return false;
	}
	
	return isAlphaNumericSpecial(trimStr, "@._");
}

function isZipCode(strZip) {
	var trimZip;
	
	trimZip = trim(strZip);
	if (trimZip.length != 5) {
		return false;
	}

	return isNumeric(trimZip);
}

function isCanadaZipCode(strZip) {
	var trimZip;
	
	trimZip = trim(strZip);
	if (trimZip.length != 6) {
		return false;
	}

	return isAlphaNumeric(trimZip);
}

function isRangeNum(num, min, max) {
	var index;
	var trimNum;
	
	trimNum = trim(num);
	
	if (!isNumeric(trimNum) || trimNum < min || trimNum > max) {
		return false;
	}
	return true;
}

function isFillOut(formObj, msg, wrongChar) {
	if (isWhiteSpace(formObj.value)) {
		alert("Please enter field, " + msg + ".");
		formObj.focus();
		return false;
	}
	if (wrongChar!="" && isExistCharacter(formObj, msg, wrongChar)) {
		return false;
	}
	return true;
}

function isExistCharacter(formObj, msg, wrongChar) {
	var i, index;
	var strSrc;
	
	strSrc = formObj.value;
	for (i=0; i<wrongChar.length; i++) {
		index = strSrc.indexOf(wrongChar.charAt(i));
		if (index >= 0) {
			if (msg != "") {
				alert("Not allowed [" + wrongChar + "] character at the " + msg + ".");
				formObj.focus();
			}
			return true;
		}
	}
	return false;
}

function isValidPhoneNumber(formObj1, formObj2, formObj3, isRequired) {
	if (isRequired == true) {
		if (isWhiteSpace(formObj1.value) || isWhiteSpace(formObj2.value) || isWhiteSpace(formObj3.value)) {
			alert("The telephone number you have entered is invalid.");
			formObj1.focus();
			return false;
		}
	}
	else {
		if (isWhiteSpace(formObj1.value) && isWhiteSpace(formObj2.value) && isWhiteSpace(formObj3.value)) {
			return true;
		}
	}
	
	if (formObj1.value.length!=3 || !isNumeric(formObj1.value)) {
		alert("The telephone number you have entered is invalid.");
		formObj1.focus();
		return false;
	}
	if (formObj2.value.length!=3 || !isNumeric(formObj2.value)) {
		alert("The telephone number you have entered is invalid.");
		formObj2.focus();
		return false;
	}
	if (formObj3.value.length!=4 || !isNumeric(formObj3.value)) {
		alert("The telephone number you have entered is invalid.");
		formObj3.focus();
		return false;
	}
	return true;
}

function isSelectForm(formObj,msg) { 
	if (formObj.selectedIndex == -1 || isWhiteSpace(formObj.value)) {
		alert("Please select select-form, " + msg + ".");
		return false;
	}
	return true;
}
