Event.observe( window, 'load', function() {

$$( ".form select" ).each( function( el ) {
	Event.observe( el, "blur", function() {
		var node = el.parentNode;
		if( el.parentNode.parentNode.hasClassName( "row" ) )
			node = el.parentNode.parentNode;
		$( node ).removeClassName( "hover" );
	});
	Event.observe( el, "focus", function() {
		var node = el.parentNode;
		if( el.parentNode.parentNode.hasClassName( "row" ) )
			node = el.parentNode.parentNode;
		$( node ).addClassName( "hover" );
	});
});

$$( ".form input" ).each( function( el ) {
	Event.observe( el, "focus", function() {

		// Only for safari - remove all other "hover" states
		if (navigator.userAgent.indexOf("Safari") > 0) {
			$$( ".form .hover" ).each( function( el ) {
				$( el ).removeClassName( "hover" );
			});
		}

		var node = el.parentNode;
		if( el.parentNode.parentNode.hasClassName( "row" ) )
			node = el.parentNode.parentNode;
		$( node ).addClassName( "hover" );

		
	});
	Event.observe( el, "blur", function() {
		var node = el.parentNode;
		if( el.parentNode.parentNode.hasClassName( "row" ) )
			node = el.parentNode.parentNode;
		$( node ).removeClassName( "hover" );
	});

	// Add additional listener only for safari
	if (navigator.userAgent.indexOf("Safari") > 0) {
		$$( ".form input.radio" ).each( function( el ) {
			Event.observe( el, "click", function() {
				var node = el.parentNode;
				if( el.parentNode.parentNode.hasClassName( "row" ) )
					node = el.parentNode.parentNode;
				$( node ).addClassName( "hover" );
			});
		});
		
	}
});
$$( ".form" ).each( function( form ) {
	Event.observe( form, "mouseover", function() {
		$( this ).addClassName( "hover" );
	});
	Event.observe( form, "mouseout", function() {
		$( this ).removeClassName( "hover" );
	});
});

});