if(typeof(jQuery) != 'undefined')
{
	if(!CM){var CM = {};}
	if(!CM.formTools){CM.formTools = {};}
	CM.formTools.createToolTips = function(scope){
		
		var tooltips = jQuery("div.form_wrapper div.tooltip");
		var inputs = jQuery("div.form_wrapper input,div.form_wrapper select,div.form_wrapper textarea");
	
					
		//jQuery("div.form_wrapper div.tooltip > p, div.form_wrapper div.tooltip > ul").corner();
		
		inputs.blur(function(){
			hideToolTip(this);
		});
		
		inputs.focus(function(){
			showToolTip(this);
		});
	
		
		//inputs.bind("focus", showToolTip(jQuery("div.tooltip",this.parentNode).eq(0)));
		//inputs.bind("blur",  hideToolTip(jQuery("div.tooltip",this.parentNode).eq(0)));
		/*
		tooltips.hover(
			  function () {
				showToolTip(this);
			  }, 
			  function () {
				hideToolTip(this);
			  }
		);		
		*/
	};
	
	jQuery().ready(function(){
			CM.formTools.createToolTips();				  
	});
	
	function showToolTip(element)
	{
		var tooltips = jQuery("div.form_wrapper div.tooltip");		
		
		tooltips.hide();
		var sender = jQuery(element);
		var senderOffset = sender.offset();
		senderOffset.width = sender.width();
		
		
		var parent = element.parentNode;
		var wrapper = jQuery(element.parentNode);
		
		var parentOffset = wrapper.offset();
		var type = "default";
		while (!wrapper.hasClass("form_element"))
		{			
			wrapper = wrapper.parent();	
			if(wrapper.hasClass("input_basket"))
			{
				var children = wrapper.children();
				var lastChild = jQuery(children[children.length - 1]);
				parentOffset = lastChild.offset();	
				parentOffset.width = lastChild.width();
				type = "inputbasket";
			}			
		}
		
		var nodeToCheck = wrapper;
		while(!nodeToCheck.hasClass("form_wrapper"))
		{
			nodeToCheck = nodeToCheck.parent();
			if(nodeToCheck.hasClass("widget"))
			{
				type = "widget";
				parentOffset = nodeToCheck.offset();
				break;
			}
		}
				
		var tip = jQuery("div.tooltip", wrapper);
	
		switch(type)
		{
			case "inputbasket": 
							leftAdjust = parentOffset.left + parentOffset.width + "px";
							topAdjust = parentOffset.top + 0 + "px";			
							marginTop = 0;
							break;
			case "widget": 
							leftAdjust = senderOffset.left + senderOffset.width + 3 + "px";
							topAdjust =  senderOffset.top - 0 + "px";
							marginTop = 0;
							break;
			case "default": 
							leftAdjust = senderOffset.left + senderOffset.width + 6 + "px";
							topAdjust = senderOffset.top+"px";
							marginTop = 0;
							break;
			
		}		   
		
		parentOffset = senderOffset;
		tip.css(
					{
					"margin-top":marginTop,
					left:leftAdjust,
					top:topAdjust,
					"z-index": 100000
					}
				   );
		
		
		if (jQuery.browser.msie) {tip.show();}
		else {tip.fadeIn("slow");}
	}
	
	function hideToolTip(element)
	{		
		var parent = element.parentNode;
		var wrapper = jQuery(parent);
		while (!wrapper.hasClass("form_element"))
		{
			wrapper = wrapper.parent();	
		}
		var tip = jQuery("div.tooltip", wrapper);
		/*
		if(tip.length == 0 && parent.parentNode.className == "widget")
		{
			parent = parent.parentNode.parentNode;
			tip = jQuery("div.tooltip", parent);		
			tip = tip.eq(tip.length - 1);
			//parentOffset = jQuery(parent).offset();
		}
		*/
		tip.hide();
	}
}
