/*
Form Builder 2.0 behavior
============================================================
Last Modified: 2009-03-12
Version: 2.0.0 alpha

Changelog
============================================================
2009-03-12:
	Adapted this to work with FormBuilder2

2008-12-23:
	Changed window onload activation to dom:loaded activation
	
2008-10-20:
	Replaced the GST_Utility.get_ancestor with Prototype's .up()
	Removed requirement of GST_Utility
*/

var GST_FormBuilder2 = {
	class_on_forms:"GST_FormBuilder2",
	class_name_on_focus:"fb2_focus",
	class_name_on_hover:"fb2_hover",

	handle_field_blur:function()
	{
		var container = $(this).up('.fb2_field');
		if (container) {
			container.removeClassName(GST_FormBuilder2.class_name_on_focus);
		}
	},
	
	handle_field_focus:function()
	{
		var container = $(this).up('.fb2_field');
		if (container) {
			container.addClassName(GST_FormBuilder2.class_name_on_focus);
		}
	},
	
	handle_field_mouseover:function()
	{
		this.addClassName(GST_FormBuilder2.class_name_on_hover);
	},
	
	handle_field_mouseout:function()
	{
		this.removeClassName(GST_FormBuilder2.class_name_on_hover);
	},

	activate:function()
	{
		// Get all FormBuilder2 forms
		var obj_forms = $$('form.' + GST_FormBuilder2.class_on_forms);
		for (var i = 0; i < obj_forms.length; i++) {
			var j;
			
			var form_fields = obj_forms[i].select('input', 'textarea', 'select');
			for (j = 0; j < form_fields.length; j++) {
				form_fields[j].observe('focus', GST_FormBuilder2.handle_field_focus);
				form_fields[j].observe('blur', GST_FormBuilder2.handle_field_blur);
			}
			
			var field_containers = obj_forms[i].select('.fb2_field');
			for (j = 0; j < field_containers.length; j++) {
				field_containers[j].observe('mouseover', GST_FormBuilder2.handle_field_mouseover);
				field_containers[j].observe('mouseout', GST_FormBuilder2.handle_field_mouseout);
			}
		} // end for(i)
	} // end activate()
}

// Require that Prototype is available
if (typeof Prototype == "undefined") {
	//alert("GST Form Builder 2.0 requires the Prototype javascript framework.\n\nPlease check that it is included.");
} else {
	document.observe("dom:loaded", GST_FormBuilder2.activate);
}

