/*  © 2007 - All Rights Reserved */
//overrides toggle from topminds.js - adding jQuery animation
var toggle = function(id, force){
	var show = false; 
	var element = document.getElementById(id);
	if(force != undefined){
		show = force;
	}else{
		if(element.style.display){
			show = element.style.display=="none";
		}else if(window.getComputedStyle){
			var cs = window.getComputedStyle(element,"");
			var prop = cs.getPropertyValue("display");
			show = prop=="none";
		}else{
			show = element.currentStyle.display=="none";
		}
	}
	if(show){
		$('#'+id).show("normal",resetFooter);
		//$('#'+id).slideDown("normal",resetFooter);
	}else{
		$('#'+id).hide("normal",resetFooter);
		//$('#'+id).slideUp("normal",resetFooter);
	}
	return show;
};


var formPreparer = {

	focussedField:undefined,
	formFieldClass:"formField",
	focussedFormFieldClass:"formFieldFocussed",
	
	/**
	* Loops through the forms and form elements
	* attempting to add some interactivity
	*/
	prepareForms : function(){
		for(var j = 0; j < document.forms.length; j++){
			var form = document.forms[j];
			var elements = form.elements;
			for(var i = 0; i < form.elements.length; i++){
				var el = form.elements[i];
				var highlightable = this.getFormFieldContainer(el.parentNode);
				if(highlightable){
					el.container = highlightable;
					YAHOO.util.Event.addListener(el,"focus", this.focus, this, true);
					YAHOO.util.Event.addListener(el,"blur", this.blur, this, true);
				}
			}
		}
	},
	
	/**
	* Recursive method that looks up the dom tree until it hits the top
	* or finds a node with the class of formFieldClass
	*/
	getFormFieldContainer : function(container){
		if(YAHOO.util.Dom.hasClass(container,this.formFieldClass)){
			return container;
		}else{
			return container.parentNode ? this.getFormFieldContainer(container.parentNode) : false;
		}
	},
	
	/**
	* Triggered when a field is focussed
	*/
	focus:function(event,other,more){
		if(this.focussedField){
			YAHOO.util.Dom.replaceClass(this.focussedField.container, this.focussedFormFieldClass, this.formFieldClass);
		}
		this.focussedField = event.target;
		YAHOO.util.Dom.replaceClass(this.focussedField.container,this.formFieldClass, this.focussedFormFieldClass);
	},
	
	/**
	* Triggered when a field is focussed
	*/
	blur:function(event,other,more){
		if(this.focussedField){
			YAHOO.util.Dom.replaceClass(this.focussedField.container, this.focussedFormFieldClass, this.formFieldClass);
		}
		this.focussedField = undefined;
		
	}
	
};
//This works, but is disabled for now. field containers need to be divs. p's don't work
//var e = YAHOO.util.Event.addListener(window , "load", formPreparer.prepareForms, formPreparer,true );

//displays an error message in the container specified by the id
function showError(errorContainer, message, classes){
	var c = document.getElementById(errorContainer);
	if(c.errorContainer){
		$(c.errorContainer).text("appended "+message);	
	}else{
		var error = jQuery('<div class="errorMessage hidden'+(classes?' '+classes:'')+'">'+message+'</div>');
		$(c).prepend(error);
		error.show("normal",resetFooter);
		c.errorContainer = error;
	}
}

function removeErrors(errorContainer){
	document.getElementById(errorContainer).errorContainer = false;
	$('#'+errorContainer)
		.find(".errorMessage")
		.hide("normal",function(){
			$(this).remove(); 
			resetFooter();
		});
}

////////////////////////////////
// Labelization of form fields. 
// See the labelized css in style.css
////////////////////////////////

function labelize(identifier){
	identifier = identifier ? identifier : ".labelized";
	jQuery.each($(identifier), function(){
		var fields = $(this).children("input[type!=submit],select")
			.focus(function(){
				$(this).addClass("focussed");
				var label = $(this).siblings("label");
				label.addClass("focussed");
				label.removeClass("unfocussed");
			})
			.blur(function(){
				$(this).removeClass("focussed");
				if(this.value.trim().length <= 0){
					var label = $(this).siblings("label"); 
					label.removeClass("focussed");
					label.addClass("unfocussed");
				}
			})
			;
		jQuery.each($(fields), function(){
			var label = $(this).siblings("label"); 
			if(this.value.trim().length > 0){
				label.addClass("focussed");
			}else{
				label.addClass("unfocussed");
			}
		});
	});
}
$(document).ready(function(){labelize();});
