var Validation			= new Object();
Validation.HasErrors 	= null;
Validation.DisplayType	= "block";

function getTagByID( p_strID ) {
	return document.all ? document.all[ p_strID ] : document.getElementById( p_strID );
}
function outputError( p_strElement, p_strErrorMsg, p_bError ) {
	var strErrorID      	= p_strElement + '_error';
	Validation.HasErrors    = p_bError ? true : Validation.HasErrors;

	getTagByID(strErrorID).innerHTML      = p_bError ? p_strErrorMsg 			: '';
	getTagByID(strErrorID).style.display  = p_bError ? Validation.DisplayType   : 'none';
}
function isFieldEmpty( p_oElement ) {
	bEmpty			= true;

	if( p_oElement.getAttribute("type")=='select-one' ) {
		bEmpty      = !(p_oElement.selectedIndex > 0);
	}
	else if( p_oElement.length > 0 ) {
		for( i=0; i < p_oElement.length; i++ ) {
			if( p_oElement[i].type=='radio' || p_oElement[i].type=='checkbox' ) {
				bEmpty	= p_oElement[i].checked ? false : bEmpty;
			}
			else if( p_oElement.type=='select-multiple' ) {
				bEmpty	= p_oElement[i].selected ? false : bEmpty;
			}
			else {
				bEmpty  = /\S+/.test(p_oElement[i].value) ? false : bEmpty;
			}
		}
	}
	else {
		if( p_oElement.getAttribute("type")=='radio' || p_oElement.getAttribute("type")=='checkbox' ) {
			bEmpty	= p_oElement.checked ? false : bEmpty;
		}
		else {
			bEmpty  = /\S+/.test(p_oElement.value) ? false : bEmpty;
		}
	}
	return bEmpty;
}
function requireInput( p_oForm, p_strElement ) {
	outputError( p_strElement, 'This is a required field', isFieldEmpty(p_oForm.elements[p_strElement]) );
}
function requireMatch( p_oForm, p_strElement, p_RegExp ) {
	if( isFieldEmpty(p_oForm.elements[p_strElement]) ) {
		outputError( p_strElement, 'This is a required field', true );
	}
	else {
		outputError( p_strElement, 'Please enter a valid format', !p_RegExp.test(p_oForm.elements[p_strElement].value) );
	}
}
function requireConfirmation( p_oForm, p_strElement, p_strConfirmElement ) {
	if( isFieldEmpty(p_oForm.elements[p_strConfirmElement]) ) {
		outputError( p_strConfirmElement, 'Confirmation is required', true );
	}
	else {
		var bError	= p_oForm.elements[p_strElement].value != p_oForm.elements[p_strConfirmElement].value;
		outputError( p_strConfirmElement, 'Confirmation must match', bError );
	}
}