function trim(st) {
	var len = st.length
	var begin = 0, end = len - 1;
	while (st.charAt(begin) == " " && begin < len) {
		begin++;
	}
	while (st.charAt(end) == " " && begin < end) {
		end--;
	}
	return st.substring(begin, end+1);
}    


function isEmail(input)
{
	var reg1str = "(@.*@)|(\\.\\.)|(@\\.)|(\\.@)|(^\\.)";
    var reg2str = "^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$";
    var invalid_email_reg = new RegExp(reg1str);
    var valid_email_reg = new RegExp(reg2str);

	if(invalid_email_reg.test(input) ||
	   !valid_email_reg.test(input))
		return false;		
	else
		return true;	   	
}


function isCharacter(input)
{
	// a-zA-Z
	var validRegExp=/^[a-zA-Z]*$/;
	
	if(validRegExp.test(input))
		return true;
	else
		return false;					
}

function isAlphanumeric(input)
{
	// a-zA-Z
	var validRegExp=/^[a-zA-Z|0-9]*$/;
	
	if(validRegExp.test(input))
		return true;
	else
		return false;					
}


function isProper(input)
{
	// DO NOT ACCEPT < > ' " & #	
	var invalidRegExp=/(<|>|\'|\"|&|#)+/;
	
	if(invalidRegExp.test(input))
		return false;
	else
		return true;					
}

function isProper2(input)
{
	// DO NOT ACCEPT < > & #	
	var invalidRegExp=/(<|>|&|#)+/;
	
	if(invalidRegExp.test(input))
		return false;
	else
		return true;					
}

function isProper3(input)
{
	// DO NOT ACCEPT < > #	
	var invalidRegExp=/(<|>|#)+/;
	
	if(invalidRegExp.test(input))
		return false;
	else
		return true;					
}

function isPosInteger(input) //MinOrder, MaxOrder, LeadTimeDays
{
	//Accept Positive Numbers only
	var validRegExp=/^[0-9]*$/;
	
	if(validRegExp.test(input))
		return true;
	else
		return false;					
}


function isDate(sYear, sMth, sDay)
{
	if (eval(sMth) == "2"){
		if (parseFloat(sYear%4) == 0){
			if (sDay > 29)
				return false;
		}
		else{
		 	if (sDay > 28)
				return false;
		}		
	}
	
	else{ 
		if ((eval(sMth) == 4) || (eval(sMth) == 6) || (eval(sMth) == 9) || (eval(sMth) == 11))
			if (sDay == 31)
				return false;
	}	
	return true;		
}

function isNRICFormat(st)
{
	if (st.length != 9)
		return false;
	else {
		if (!(st.charAt(0) == "s" || st.charAt(0) == "S" || st.charAt(0) == "t" || st.charAt(0) == "T"))
			return false;
		else {
			if (!isCharacter(st.charAt(8)))
				return false;
		}		
	}	
	
	return true;
}

/************************************************************************************************** 
	textCounter() parameters are:  text field, the count field, max length 

	Insert this into ur code :-
		<center>
		<form name=myform action="YOUR-SCRIPT.CGI">
		<font size="1" face="arial, helvetica, sans-serif"> ( You may enter up to 125 characters. )<br>
		<textarea name=message wrap=physical cols=28 rows=4 onKeyDown="textCounter(this.form.message,this.form.remLen,125);" onKeyUp="textCounter(this.form.message,this.form.remLen,125);"></textarea>
		<br>
		<input readonly type=text name=remLen size=3 maxlength=3 value="125"> characters left</font>
		</form>
		</center>
**************************************************************************************************/
function textCounter(field, countfield, maxlimit) 
{
	if (field.value.length > maxlimit) // if too long...trim it!
		field.value = field.value.substring(0, maxlimit);
	// otherwise, update 'characters left' counter
	else 
		countfield.value = maxlimit - field.value.length;
}

function MoveElement(FromCombo,ToCombo) {
	var to_remove_counter=0; 
	for (var i=0;i<FromCombo.options.length;i++)	{
		if (FromCombo.options[i].selected==true)	{
			var addtext=FromCombo.options[i].text;
			var addvalue=FromCombo.options[i].value;
			ToCombo.options[ToCombo.options.length]=new Option(addtext,addvalue);
			FromCombo.options[i].selected=false;
			++to_remove_counter;
		}
		else
		{
			FromCombo.options[i-to_remove_counter].selected=false;
			FromCombo.options[i-to_remove_counter].text=FromCombo.options[i].text;
			FromCombo.options[i-to_remove_counter].value=FromCombo.options[i].value;
		}
	}
	var numToLeave=FromCombo.options.length-to_remove_counter;
	for (i=FromCombo.options.length-1;i>=numToLeave;i--) 	{ 
		FromCombo.options[i]=null;
	}
}

function toggleBox(szDivID, iState) // 1 visible, 0 hidden
{
    if(document.layers) {   //NN4+
    	document.layers[szDivID].visibility = iState ? "show" : "hide";}
    else if(document.getElementById) {	  //gecko(NN6) + IE 5+
        var obj = document.getElementById(szDivID);
        obj.style.visibility = iState ? "visible" : "hidden";}
    else if(document.all) { // IE 4 
        document.all[szDivID].style.visibility = iState ? "visible" : "hidden";}
}