(function($){var $cluetip,$cluetipInner,$cluetipOuter,$cluetipTitle,$cluetipArrows,$dropShadow,imgCount;$.fn.cluetip=function(options){var opts=$.extend({},$.fn.cluetip.defaults,options);if(options&&options.ajaxSettings){$.extend(opts.ajaxSettings,options.ajaxSettings);delete options.ajaxSettings;}if(options&&options.hoverIntent){$.extend(opts.hoverIntent,options.hoverIntent);delete options.hoverIntent;}if(options&&options.fx){$.extend(opts.fx,options.fx);delete options.fx;}return this.each(function(index){var cluetipContents=false;var cluezIndex=parseInt(opts.cluezIndex,10)-1;var isActive=false;if(!$cluetip){$cluetipInner=$("<div id=\"cluetip-inner\"></div>");$cluetipTitle=$("<h3 id=\"cluetip-title\"></h3>");$cluetipOuter=$("<div id=\"cluetip-outer\"></div>").append($cluetipInner).prepend($cluetipTitle);$cluetip=$("<div></div>").attr({"id":"cluetip"}).css({zIndex:opts.cluezIndex}).append($cluetipOuter).append("<div id=\"cluetip-extra\"></div>")[insertionType](insertionElement).hide();$("<div id=\"cluetip-waitimage\"></div>").css({position:"absolute",zIndex:cluezIndex-1}).insertBefore("#cluetip").hide();$cluetip.css({position:"absolute",zIndex:cluezIndex});$cluetipOuter.css({position:"relative",zIndex:cluezIndex+1});$cluetipArrows=$("<div id=\"cluetip-arrows\" class=\"cluetip-arrows\"></div>").css({zIndex:cluezIndex+1}).appendTo("#cluetip");}var dropShadowSteps=(opts.dropShadow)?+opts.dropShadowSteps:0;if(!$dropShadow){$dropShadow=$([]);for(var i=0;i<dropShadowSteps;i++){$dropShadow=$dropShadow.add($("<div></div>").css({zIndex:cluezIndex-i-1,opacity:0.1,top:1+i,left:1+i}));}$dropShadow.css({position:"absolute",backgroundColor:"#000"}).prependTo($cluetip);}var $this=$(this);var tipAttribute=$this.attr(opts.attribute),ctClass=opts.cluetipClass;if(!tipAttribute&&!opts.splitTitle){return true;}if(opts.local&&opts.hideLocal){$(tipAttribute+":first").hide();}var tOffset=parseInt(opts.topOffset,10),lOffset=parseInt(opts.leftOffset,10);var tipHeight,wHeight;var defHeight=isNaN(parseInt(opts.height,10))?"auto":(/\D/g).test(opts.height)?opts.height:opts.height+"px";var sTop,linkTop,posY,tipY,mouseY;var tipWidth=parseInt(opts.width,10)+parseInt($cluetip.css("paddingLeft"))+parseInt($cluetip.css("paddingRight"))+dropShadowSteps;if(isNaN(tipWidth)){tipWidth=275;}var linkWidth=this.offsetWidth;var linkLeft,posX,tipX,mouseX,winWidth;var tipParts;var tipTitle=(opts.attribute!="title")?$this.attr(opts.titleAttribute):"";if(opts.splitTitle){if(tipTitle==undefined){tipTitle="";}tipParts=tipTitle.split(opts.splitTitle);tipTitle=tipParts.shift();}var localContent;var activate=function(event){if(!opts.onActivate($this)){return false;}isActive=true;$cluetip.removeClass().css({width:opts.width});if(tipAttribute==$this.attr("href")){$this.css("cursor",opts.cursor);}$this.attr("title","");if(opts.hoverClass){$this.addClass(opts.hoverClass);}linkTop=posY=$this.offset().top;linkLeft=$this.offset().left;mouseX=event.pageX;mouseY=event.pageY;if($this[0].tagName.toLowerCase()!="area"){sTop=$(document).scrollTop();winWidth=$(window).width();}if(opts.positionBy=="fixed"){posX=linkWidth+linkLeft+lOffset;$cluetip.css({left:posX});}else{posX=(linkWidth>linkLeft&&linkLeft>tipWidth)||linkLeft+linkWidth+tipWidth+lOffset>winWidth?linkLeft-tipWidth-lOffset:linkWidth+linkLeft+lOffset;if($this[0].tagName.toLowerCase()=="area"||opts.positionBy=="mouse"||linkWidth+tipWidth>winWidth){if(mouseX+20+tipWidth>winWidth){$cluetip.addClass(" cluetip-"+ctClass);posX=(mouseX-tipWidth-lOffset)>=0?mouseX-tipWidth-lOffset-parseInt($cluetip.css("marginLeft"),10)+parseInt($cluetipInner.css("marginRight"),10):mouseX-(tipWidth/2);}else{posX=mouseX+lOffset;}}var pY=posX<0?event.pageY+tOffset:event.pageY;$cluetip.css({left:(posX>0&&opts.positionBy!="bottomTop")?posX:(mouseX+(tipWidth/2)>winWidth)?winWidth/2-tipWidth/2:Math.max(mouseX-(tipWidth/2),0)});}wHeight=$(window).height();if(tipParts){for(var i=0;i<tipParts.length;i++){if(i==0){$cluetipInner.html(tipParts[i]);}else{$cluetipInner.append("<div class=\"split-body\">"+tipParts[i]+"</div>");}}cluetipShow(pY);}else{if(!opts.local&&tipAttribute.indexOf("#")!=0){if(cluetipContents&&opts.ajaxCache){$cluetipInner.html(cluetipContents);cluetipShow(pY);}else{var ajaxSettings=opts.ajaxSettings;ajaxSettings.url=tipAttribute;ajaxSettings.beforeSend=function(){$cluetipOuter.children().empty();if(opts.waitImage){$("#cluetip-waitimage").css({top:mouseY+20,left:mouseX}).show();}};ajaxSettings.error=function(){if(isActive){$cluetipInner.html("<i>sorry, the contents could not be loaded</i>");}};ajaxSettings.success=function(data){cluetipContents=opts.ajaxProcess(data);if(isActive){$cluetipInner.html(cluetipContents);}};ajaxSettings.complete=function(){imgCount=$("#cluetip-inner img").length;if(imgCount){$("#cluetip-inner img").load(function(){imgCount--;if(imgCount<1){$("#cluetip-waitimage").hide();if(isActive){cluetipShow(pY);}}});}else{$("#cluetip-waitimage").hide();if(isActive){cluetipShow(pY);}}};$.ajax(ajaxSettings);}}else{if(opts.local){var $localContent=$(tipAttribute+":first");var localCluetip=$.fn.wrapInner?$localContent.wrapInner("<div></div>").children().clone(true):$localContent.html();$.fn.wrapInner?$cluetipInner.empty().append(localCluetip):$cluetipInner.html(localCluetip);cluetipShow(pY);}}}};var cluetipShow=function(bpY){$cluetip.addClass("cluetip-"+ctClass);if(opts.truncate){var $truncloaded=$cluetipInner.text().slice(0,opts.truncate)+"...";$cluetipInner.html($truncloaded);}function doNothing(){}tipTitle?$cluetipTitle.show().html(tipTitle):(opts.showTitle)?$cluetipTitle.show().html("&nbsp;"):$cluetipTitle.hide();if(opts.sticky){var $closeLink=$("<div id=\"cluetip-close\"><a href=\"#\">"+opts.closeText+"</a></div>");(opts.closePosition=="bottom")?$closeLink.appendTo($cluetipInner):(opts.closePosition=="title")?$closeLink.prependTo($cluetipTitle):$closeLink.prependTo($cluetipInner);$closeLink.click(function(){cluetipClose();return false;});if(opts.mouseOutClose){$cluetip.hover(function(){doNothing();},function(){$closeLink.trigger("click");});}else{$cluetip.unbind("mouseout");}}var direction="";$cluetipOuter.css({overflow:defHeight=="auto"?"visible":"auto",height:defHeight});tipHeight=defHeight=="auto"?$cluetip.outerHeight():parseInt(defHeight,10);tipY=posY;if(opts.positionBy=="fixed"){tipY=posY-opts.dropShadowSteps+tOffset;}else{if((posX<mouseX&&Math.max(posX,0)+tipWidth>mouseX)||opts.positionBy=="bottomTop"){if(posY+tipHeight+tOffset>sTop+wHeight&&mouseY-sTop>tipHeight+tOffset){tipY=mouseY-tipHeight-tOffset;direction="top";}else{tipY=mouseY+tOffset;direction="bottom";}}else{if(posY+tipHeight+tOffset>sTop+wHeight){tipY=(tipHeight>=wHeight)?sTop:sTop+wHeight-tipHeight-tOffset;}else{if($this.css("display")=="block"||$this[0].tagName.toLowerCase()=="area"||opts.positionBy=="mouse"){tipY=bpY-tOffset;}else{tipY=posY-opts.dropShadowSteps;}}}}if(direction==""){posX<linkLeft?direction="left":direction="right";}$cluetip.css({top:tipY+"px"}).removeClass().addClass("clue-"+direction+"-"+ctClass).addClass(" cluetip-"+ctClass);if(opts.arrows){var bgY=(posY-tipY-opts.dropShadowSteps);$cluetipArrows.css({top:(/(left|right)/.test(direction)&&posX>=0&&bgY>0)?bgY+"px":/(left|right)/.test(direction)?0:""}).show();}else{$cluetipArrows.hide();}$dropShadow.hide();$cluetip.hide()[opts.fx.open](opts.fx.open!="show"&&opts.fx.openSpeed);if(opts.dropShadow){$dropShadow.css({height:tipHeight,width:opts.width}).show();}if($.fn.bgiframe){$cluetip.bgiframe();}opts.onShow($cluetip,$cluetipInner);};var inactivate=function(){isActive=false;$("#cluetip-waitimage").hide();if(!opts.sticky||(/click|toggle/).test(opts.activation)){cluetipClose();}if(opts.hoverClass){$this.removeClass(opts.hoverClass);}};var cluetipClose=function(){$cluetipOuter.parent().hide().removeClass().end().children().empty();if(tipTitle){$this.attr("title",tipTitle);}$this.css("cursor","");if(opts.arrows){$cluetipArrows.css({top:""});}};if((/click|toggle/).test(opts.activation)){$this.click(function(event){if($cluetip.is(":hidden")||!$(this).is(".cluetip-clicked")){activate(event);$(".cluetip-clicked").removeClass("cluetip-clicked");$this.addClass("cluetip-clicked");}else{inactivate(event);}this.blur();return false;});}else{if(opts.activation=="focus"){$this.focus(function(event){activate(event);});$this.blur(function(event){inactivate(event);});}else{$this.click(function(){if($this.attr("href")&&$this.attr("href")==tipAttribute&&!opts.clickThrough){return false;}});var mouseTracks=function(evt){if(opts.tracking==true){var trackX=posX-evt.pageX;var trackY=tipY?tipY-evt.pageY:posY-evt.pageY;$this.mousemove(function(evt){$cluetip.css({left:evt.pageX+trackX,top:evt.pageY+trackY});});}};if($.fn.hoverIntent&&opts.hoverIntent){$this.hoverIntent({sensitivity:opts.hoverIntent.sensitivity,interval:opts.hoverIntent.interval,over:function(event){activate(event);mouseTracks(event);},timeout:opts.hoverIntent.timeout,out:function(event){inactivate(event);$this.unbind("mousemove");}});}else{$this.hover(function(event){activate(event);mouseTracks(event);},function(event){inactivate(event);$this.unbind("mousemove");});}}}});};$.fn.cluetip.defaults={width:275,height:"auto",cluezIndex:97,positionBy:"auto",topOffset:15,leftOffset:15,local:false,hideLocal:true,attribute:"rel",titleAttribute:"title",splitTitle:"",showTitle:true,cluetipClass:"default",hoverClass:"",waitImage:true,cursor:"help",arrows:false,dropShadow:true,dropShadowSteps:6,sticky:false,mouseOutClose:false,activation:"hover",clickThrough:false,tracking:false,closePosition:"top",closeText:"Close",truncate:0,fx:{open:"show",openSpeed:""},hoverIntent:{sensitivity:3,interval:50,timeout:0},onActivate:function(e){return true;},onShow:function(ct,c){},ajaxCache:true,ajaxProcess:function(data){data=$(data).not("style, meta, link, script, title");return data;},ajaxSettings:{dataType:"html"}};var insertionType="appendTo",insertionElement="body";$.cluetip={};$.cluetip.setup=function(options){if(options&&options.insertionType&&(options.insertionType).match(/appendTo|prependTo|insertBefore|insertAfter/)){insertionType=options.insertionType;}if(options&&options.insertionElement){insertionElement=options.insertionElement;}};})(jQuery);

