/* Extending YUI Tooltip

-------------------------------------*/

YAHOO.widget.Tooltip.prototype.getPosition = function(el) {
	var curleft = 0, curtop = 0;
	if (el.offsetParent) {
		do {
			curleft += el.offsetLeft;
			curtop += el.offsetTop;
		} while (el = el.offsetParent);
		return [curleft,curtop];

	}

};

YAHOO.widget.Tooltip.prototype.doShow =  function (e, context) {
	var yOffset = 35, xOffset = 16, me = this;
	if (YAHOO.env.ua.opera && context.tagName && 
		context.tagName.toUpperCase() == "A") {
		yOffset += 12;
	}

	return setTimeout(function () {
		var txt = me.cfg.getProperty("text"), elPosition = me.getPosition(context);
		// title does not over-ride text
		if (me._tempTitle && (txt === "" || YAHOO.lang.isUndefined(txt) || YAHOO.lang.isNull(txt))) {
			me.setBody(me._tempTitle);
		} else {
			me.cfg.refireEvent("text");
		}

		me.moveTo(elPosition[0] + xOffset, elPosition[1] + yOffset);
		if (me.cfg.getProperty("preventoverlap")) {
			me.preventOverlap(me.pageX, me.pageY);
		}
		YAHOO.util.Event.removeListener(context, "mousemove", me.onContextMouseMove);
		me.contextTriggerEvent.fire(context);
		me.show();
		me.hideProcId = me.doHide();
	}, this.cfg.getProperty("showdelay"));
};

// Create a custom tooltip namespace
YAHOO.namespace("pulse.util");
YAHOO.pulse.util.Tooltip = {};

// Create an add function
YAHOO.pulse.util.Tooltip.add = function(element, i){
	var myTooltip = new YAHOO.widget.Tooltip("helpTip" + i, { 
		context: element, 
		text: element.firstChild.title,
		preventoverlap: false
	});
	myTooltip.cfg.queueProperty("constraintoviewport", false);
};

/* Instantiation
-------------------------------------*/
YAHOO.util.Event.onDOMReady(function add_tooltips(){
	var helpNodes = YAHOO.util.Dom.getElementsByClassName("helpBtn");
	
	for (var i = 0, helpNode; helpNode = helpNodes[i]; i++)
	{
		YAHOO.pulse.util.Tooltip.add(helpNode, i);
		helpNode.firstChild.title = '';
	}
});