function isempty(fld)
{
	if ( fld.value == null || fld.value == "" )
		return true;
	else
		return false;
}

function CheckRequiredFields ( frm )
{
	var i;
	var e;
	var fld;
	var lbl;
	var lblname;
	var msg;

	fld = null;
	msg = "";

	for ( i=0; i<frm.length; ++i )
	{
		e = frm.elements[i];
		if ( hasClass(e, "req-err") ) {
			removeClass(e, "req-err");
			addClass(e, "req");
		}

		if ( hasClass ( e, "req" ) )
		{
			if ( isempty ( e ) )
			{
				if ( fld == null ) fld = e;
				removeClass(e, "req");
				addClass(e, "req-err");
				lblname = e.name + "-lbl";
				lbl = document.getElementById ( lblname );
				if ( lbl != null )
				{
					msg += lbl.innerHTML;
					msg += " is required.\n";
				}
			}
		}
	}

	if ( msg != "" )
		alert ( msg );

	if ( fld != null ) 
	{
		if ( msg == "" )
			alert ( "Please fill in the required fields (highlighed in red)." );
		fld.focus();
		return false;
	}

	return true;
}


function getClasses(element) {
	return element.className.trim().split(/\s+/);
}

function hasClass(element,c) {
	return getClasses(element).indexOf(c) != -1;
}

function removeClass(element, c) {
	var classes = getClasses(element);
	var idx = classes.indexOf(c);
	if ( idx != -1 ) {
		classes.splice(idx,1);
		element.className = classes.join(' ');
	}
}

function addClass(element, c) {
	var classes = getClasses(element);
	if ( classes.indexOf(c) == -1 ) {
		element.className += ' ' + c;
	}
}

Array.prototype.indexOf = function(item,start) {
	for ( var i = (start || 0); i < this.length; i++ ) {
		if ( this[i] == item ) 
			return i;
	}

	return -1;
}

String.prototype.trim = function() {
	return this.replace(/^\s+/,'').replace(/\s+$/,'');
}
