
	function rv_validate_required_fields(formObj){
	
		try{
			
			var multiInputArray		=	new Array();
			var formElements		=	formObj.elements;
	        
			for(i=0, max=formElements.length; i<max; i++){
			
				var el				=	formElements[i];
				
				try{
        			if(
        				el == null
		                || !el.type
        				|| !el.name
		                || !el.className
        			){
        				continue;
        			}
				} catch(e){}
				
				/**
				*	Check the className for the RequiredField entry
				*/
				if(
					el.className.match(/requiredfield/i)
					&& !el.className.match(/__requiredfield/i)
				){
					//*
					if(	
						el.type == 'RADIO'
						|| el.type == 'radio'
						|| el.type == 'checkbox'
						|| el.type == 'CHECKBOX'
					){
						var StorageName				=	el.title;
						if(!$.trim(StorageName)){
							StorageName				=	el.name.replace(/\[/,'__');
							StorageName				=	StorageName.replace(/\]/,'__');
							StorageName				+=	'---';
						}
						
						// If it doesnt exist or is false
						if(
							!multiInputArray[StorageName]
							|| !multiInputArray[StorageName][0]
						){
							var ParentParent				=	null;
							
							if(
								multiInputArray[StorageName]
								&& typeof multiInputArray[StorageName][2] == 'object'
								&& multiInputArray[StorageName][2]
							){
								ParentParent				=	multiInputArray[StorageName][2];
							} else if(
								multiInputArray[StorageName]
								&& multiInputArray[StorageName][1]
								&& multiInputArray[StorageName][1] != el.parentNode
								&& el.parentNode.parentNode
							){
								ParentParent				=	el.parentNode.parentNode;
							}
							
							multiInputArray[StorageName]	=	new Array(el.checked, el.parentNode, ParentParent);
						}
						continue;
					}
					// */
					if(
		                !$.trim(el.value)
		            ){
						el.focus();
						$(el).css({ backgroundColor: '#ffa' });
						var msg				=	'Please fill in this required field. Thank you!';
						if(el.title){
							msg				=	'Please fill in the field: '+el.title+'. Thank you!';
						}
						alert(msg);
						return false;
					} else {
		                $(el).css({ backgroundColor: '#fff' });   
		            }
	            }
			};
			
			for( j in  multiInputArray){
				if(
					typeof multiInputArray[j] == 'object'
					&& !multiInputArray[j][0]
				){
					$(((multiInputArray[j][2]) ? multiInputArray[j][2] : multiInputArray[j][1])).css({ backgroundColor: '#ffa' });
					var msg					=	'Please fill in all the required fields. Thank you!';
					if(!j.match(/---/i)){
						msg					=	'Please select: '+j+'. Thank you!';
					}
					alert(msg);
					return false;
				}
			}
			
		} catch(e){
			alert(e.message);
		}
		
		return true;
	}

	function rv_convert_form_set_requires(cls){
	
		// Example: set_form1__RequiredField
		$('input.'+cls+'__RequiredField, select.'+cls+'__RequiredField, textarea.'+cls+'__RequiredField').removeClass(cls+'__RequiredField').addClass('RequiredField').addClass(cls+'__');
		return true;
		
	} // rv_convert_form_set_requires('set_form1');

	function rv_convert_form_remove_requires(cls){

		// Example: set_form1__RequiredField
		$('input.RequiredField, select.RequiredField, textarea.RequiredField').filter('.'+cls+'__').removeClass(cls+'__').removeClass('RequiredField').addClass(cls+'__RequiredField');
		return true;
		
	} // rv_convert_form_remove_requires('set_form1');
	
	function rv_convert_form_requires(clsSet, clsRemove){
		rv_convert_form_set_requires(clsSet);
		rv_convert_form_remove_requires(clsRemove);
		return true;
	}