function Trim(val){
	return LTrim(RTrim(val));
}

function RTrim(val){
	var c, i, j = -1;
	for(i = val.length-1;i >= 0;--i){
		c = val.charAt(i);
		if(!isSpace(c)){
			j = i;
			break;
		}
	}
	if(j != -1)
		return val.substring(0, j + 1);
	else
		return '';
}

function LTrim(val){
	var c, i, j = -1;
	for(i = 0;i < val.length;++i){
		c = val.charAt(i);
		if(!isSpace(c)){
			j = i;
			break;
		}
	}
	if(j != -1)
		return val.substring(j, val.length);
	else
		return '';
}

function isSpace(val){
	if((val == ' ') || (val == '\t') || (val == '\n') || (val == '\r') )
		return true;
	else
		return false;
}

function isAlNum(val){
	return (isDigit(val) || isAlpha(val));
}

function isAlpha(val){
	return (isLower(val) || isUpper(val));
}

function isUpper(val){
	var c = val.charAt(0);
	if( (c < 'A') || (c > 'Z') )
		return false;
	return true;
}

function isLower(val){
	var c = val.charAt(0);
	if( (c < 'a') || (c > 'z') )
		return false;
	return true;
}

function isDigit(val){
	var c = val.charAt(0);
	if( (c < '0') || (c > '9') )
		return false;
	return true;
}

function isNumber(val){
	var i;
	for(i = 0;i < val.length;++i)
		if(isDigit(val.charAt(i)) == false)
			return false;
	return true;
}

function isInteger(val, radix, min, max){
	var int_val = parseInt(val, radix);
	if(isNaN(int_val))
		return false;
	if(min < max)
		if( (int_val > max) || (int_val < min) )
			return false;
	return true;
}

function isFloat(val, min, max){
	var fl_val = parseFloat(val);
	if(isNaN(fl_val))
		return false;
	if(min < max)
		if( (fl_val > max) || (fl_val < min) )
		return false;
	return true;
}

function isWWWURL(val){
	val = val.toString();
	if(val.substring(0,  7) != 'http://')
		return false;
	if(val.indexOf('.', 7) < 8)
		return false;
	return true;
}

function checkEmail(wbaddr){
	var atpos = wbaddr.indexOf("@");
	var lastat = wbaddr.lastIndexOf("@");
	var lastdot = wbaddr.lastIndexOf(".");
	var length = wbaddr.length-1;
	var networkaddr = wbaddr.substring( (lastat+1) , wbaddr.length );
	networkaddr = networkaddr.toLowerCase();
	var notld = wbaddr.substring( (lastat+1) , lastdot );
	var domain = notld.substring( (notld.lastIndexOf(".")+1), notld.length);
	var legalchars = "abcdefghijklmnopqrstuvwxyz1234567890-.";
	var networkerror = 0;
	var dotpos = -1;
	if( (domain.length < 2) || (domain.length > (26 - (length - lastdot))) )
		return false;
	for(var i=0 ; i < networkaddr.length ; i++){
		if(legalchars.indexOf(networkaddr.charAt(i)) == -1)
			return false;
		if( (networkaddr.charAt(i) == ".") && ((dotpos+1) == i) ){
			doterror = 1;
			dotpos = i;
		}
	}
	if(lastdot <= atpos)
		return false;
	if( ((length - lastdot) > 4) || ((length - lastdot) < 2) )
		return false;
	if( (atpos == -1) || (lastat != atpos) )
		return false;
	return true;
}

function checkDate(formday, formmonth, formyear){
	var day   = parseInt(formday, 10);
	var month = parseInt(formmonth, 10);
	var year  = parseInt(formyear, 10);
	var febdays = 28;
	if(isNaN(day) || isNaN(month) || isNaN(year) || (day != formday) || (month != formmonth) || (year != formyear)|| (formyear.length != 4) )
		return false;
	if( (month > 12) || (day < 1) || (month < 1) || (year < 1) )
		return false;
	if( (month == 1) || (month == 3) || (month == 5) || (month == 7) || (month == 8) || (month == 10) || (month == 12) ){
		if(day > 31)
			return false;
		}else{
			if(day > 30)
				return false;
		}
		if(month == 2){
			if( ( ((year % 4) == 0) && ((year % 100) != 0) ) || ((year % 400) == 0) )
				febdays = 29;
				if(day > febdays)
					return false;
		}
		return true;
}

/*@cc_on @*/
/*@if (@_win32 && @_jscript_version>=5)

function window.confirmYesNo(str)
{
    execScript('n = msgbox("'+str+'","4132")', "vbscript");
    return(n == 6);
}

@end @*/
