var rules = {
	/*
	"form#booking-form" : function( el ) {
		if ( window.CalendarPopup ) {
			// instantiate CalendarPopup and set some params
			var yesterday = new Date();
			yesterday.setDate( yesterday.getDate() - 1 );
			cal = new CalendarPopup( "cp" );
			cal.addDisabledDates( null, formatDate( yesterday, "yyyy-MM-dd" ) );
			
			// create the <div> for calendar popup
			var d = document.createElement( "div" );
			d.id = "cp";
			document.body.appendChild( d );
		}
	},*/	
	
	"form.validate" : function( el ) {
		// handle form validation
		el.onsubmit = function() {
			var inputs = el.getElementsByTagName( "input" );
			var textareas = el.getElementsByTagName( "textarea" );
			var selects = el.getElementsByTagName( "select" );
			var form_elements = new Array( inputs, textareas, selects );
			var counter = 0;
			
			for ( var h = 0; h < form_elements.length; h++ ) {
				for ( var i = 0; i < form_elements[h].length; i++ ) {
					if ( !form_elements[h][i].className ) continue;
					var valid = true;
					if ( form_elements[h][i].className.indexOf( "required" ) != -1 ) {
						if ( form_elements[h][i].parentNode.lastChild.nodeName == "IMG" ) {
							form_elements[h][i].parentNode.removeChild( form_elements[h][i].parentNode.lastChild );
						}
						
						if ( form_elements[h][i].getAttribute( "name" ) == "email" ) {
							var regExp = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/;
							var regExp2 = /(\s+)|(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/;
							if ( ( form_elements[h][i].value.search( regExp ) ) == -1 || form_elements[h][i].value.search( regExp2 ) != -1 )
								valid = false;
						} else if ( form_elements[h][i].getAttribute( "type" ) == "checkbox" ) {
							if ( !form_elements[h][i].checked )
								valid = false;
						} else {
							if ( form_elements[h][i].value.replace( /(^\s+)|(\s+$)/g, '' ).length < 1 )
								valid = false;
						}
						
						if ( !valid ) {
							var img = document.createElement( "img" );
							img.setAttribute( "src", "images/icon-warning.gif" );
							img.className = "validation-error";
							form_elements[h][i].parentNode.appendChild( img );
							counter++;
						}
					}
				}
			}

			if ( !checkedHeard( el ) ) {
				img = document.createElement( "img" );
				img.setAttribute( "src", "images/icon-warning.gif" );
				img.className = "validation-error";
				document.getElementById("how_hear").appendChild( img );				
				counter++;
			}

			if ( counter > 0 ) {
				alert( "One or more required fields were not correctly supplied. Please double-check the noted fields." );
				return false;
			}
			else if (el.how_heard[3].checked == true && el.ref_other.value=='' ) {
				alert( "Please select option for 'How did you hear about us: Other'" );
				el.ref_other.focus();
				return false;
			}
		}
	}
};
Behaviour.register( rules );


		function checkedHeard( frm ) {
			var checked = false;
			for ( i=0; i < frm.how_heard.length; i++ ) {
				if ( frm.how_heard[i].checked ) {
					checked = true;
				}
			}
			return checked;
		}