/* Image w/ description tooltip v2.0
* Created: April 23rd, 2010. This notice must stay intact for usage 
* Author: Dynamic Drive at http://www.dynamicdrive.com/
* Visit http://www.dynamicdrive.com/ for full source code
*/

function ddimgtooltip_create(tipprefix)
{
	if(tipprefix == undefined || tipprefix.length < 1)
		tipprefix="imgtip";
	return {
	
		tiparray:new Array(),
	
		tooltipoffsets: [20, -30], //additional x and y offset from mouse cursor for tooltips
	
		//***** NO NEED TO EDIT BEYOND HERE
	
		tipprefix: tipprefix, //tooltip ID prefixes
	
		createtip:function($, tipid, tipinfo){
			if ($('#'+tipid).length==0){ //if this tooltip doesn't exist yet
				return $('<div id="' + tipid + '" class="'+this.tipprefix+'" />').html(
					'<div class="'+this.tipprefix+'_img"><img src="' + tipinfo[0] + '" /></div>'
					+ ((tipinfo[1])? '<div class="'+this.tipprefix+'_text">'+tipinfo[1]+'</div>' : '')
					)
				.css(tipinfo[2] || {})
				.appendTo(document.body)
			}
			return null
		},
	
		positiontooltip:function($, $tooltip, e){
			var x=e.pageX+this.tooltipoffsets[0], y=e.pageY+this.tooltipoffsets[1]
			var tipw=$tooltip.outerWidth(), tiph=$tooltip.outerHeight(), 
			x=(x+tipw>$(document).scrollLeft()+$(window).width())? x-tipw-(this.tooltipoffsets[0]*2) : x
			y=(y+tiph>$(document).scrollTop()+$(window).height())? $(document).scrollTop()+$(window).height()-tiph-10 : y
			$tooltip.css({left:x, top:y})
		},
		
		showbox:function($, $tooltip, e){
			$tooltip.show()
			this.positiontooltip($, $tooltip, e)
		},
	
		hidebox:function($, $tooltip){
			$tooltip.hide()
		},
	
	
		init:function(targetselector){
			var tiparray=this.tiparray
			var $targets=$(targetselector)
			var ddimgtip=this;
			if ($targets.length==0)
				return
			var tipids=[]
			$targets.each(function(){
				var $target=$(this)
				$target.attr('rel').match(/\[(\d+)\]/) //match d of attribute rel="imgtip[d]"
				var tipsuffix=parseInt(RegExp.$1) //get d as integer
				var tipid=this._tipid=ddimgtip.tipprefix+tipsuffix //construct this tip's ID value and remember it
				var $tooltip=ddimgtip.createtip($, tipid, tiparray[tipsuffix])
				if(typeof tiparray[tipsuffix][3] !="undefined")
				{
					var tmp_img=document.createElement('img')
					tmp_img.src=tiparray[tipsuffix][3]
					if(typeof tiparray[tipsuffix]['4'] !="undefined")
						tmp_img.className=tiparray[tipsuffix]['4']
					$target.empty()
					$target.append(tmp_img)
					$(tmp_img).css(tiparray[tipsuffix][5] || {})
					if(typeof tiparray[tipsuffix]['6'] !="undefined")
					{
						$target.addClass('fancy');
						$target.attr('href',tiparray[tipsuffix][6]);
					}
				}
				$target.mouseenter(function(e){
					var $tooltip=$("#"+this._tipid)
					ddimgtip.showbox($, $tooltip, e)
				})
				$target.mouseleave(function(e){
					var $tooltip=$("#"+this._tipid)
					ddimgtip.hidebox($, $tooltip)
				})
				$target.mousemove(function(e){
					var $tooltip=$("#"+this._tipid)
					ddimgtip.positiontooltip($, $tooltip, e)
				})
				if ($tooltip){ //add mouseenter to this tooltip (only if event hasn't already been added)
					$tooltip.mouseenter(function(){
						ddimgtip.hidebox($, $(this))
					})
				}
			})
		}
	};
}
