/*
 * jQuery clueTip plugin
 * Version 0.9.8  (05/22/2008)
 * @requires jQuery v1.1.4+
 * @requires Dimensions plugin (for jQuery versions < 1.2.5)
 *
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
 *
 */
;(function($){var I,$cluetipInner,$cluetipOuter,$cluetipTitle,$cluetipArrows,$dropShadow,imgCount;$.fn.cluetip=function(G,H){if(typeof G=='object'){H=G;G=null}return this.each(function(h){var j=$(this);var k=$.extend(false,{},$.fn.cluetip.defaults,H||{},$.metadata?j.metadata():$.meta?j.data():{});var l=false;var m=parseInt(k.cluezIndex,10)-1;var n=false,closeOnDelay=0;if(!$('#cluetip').length){$cluetipInner=$('<div id="cluetip-inner"></div>');$cluetipTitle=$('<h3 id="cluetip-title"></h3>');$cluetipOuter=$('<div id="cluetip-outer"></div>').append($cluetipInner).prepend($cluetipTitle);I=$('<div id="cluetip"></div>').css({zIndex:k.cluezIndex}).append($cluetipOuter).append('<div id="cluetip-extra"></div>')[J](insertionElement).hide();$('<div id="cluetip-waitimage"></div>').css({position:'absolute',zIndex:m-1}).insertBefore('#cluetip').hide();I.css({position:'absolute',zIndex:m});$cluetipOuter.css({position:'relative',zIndex:m+1});$cluetipArrows=$('<div id="cluetip-arrows" class="cluetip-arrows"></div>').css({zIndex:m+1}).appendTo('#cluetip')}var o=(k.dropShadow)?+k.dropShadowSteps:0;if(!$dropShadow){$dropShadow=$([]);for(var i=0;i<o;i++){$dropShadow=$dropShadow.add($('<div></div>').css({zIndex:m-i-1,opacity:.1,top:1+i,left:1+i}))};$dropShadow.css({position:'absolute',backgroundColor:'#000'}).prependTo(I)}var p=j.attr(k.attribute),ctClass=k.cluetipClass;if(!p&&!k.splitTitle&&!G)return true;if(k.local&&k.hideLocal){$(p+':first').hide()}var q=parseInt(k.topOffset,10),lOffset=parseInt(k.leftOffset,10);var r,wHeight;var s=isNaN(parseInt(k.height,10))?'auto':(/\D/g).test(k.height)?k.height:k.height+'px';var t,linkTop,posY,tipY,mouseY,baseline;var u=isNaN(parseInt(k.width,10))?275:parseInt(k.width,10);var v=u+(parseInt(I.css('paddingLeft'))||0)+(parseInt(I.css('paddingRight'))||0)+o;var w=this.offsetWidth;var x,posX,tipX,mouseX,winWidth;var y;var z=(k.attribute!='title')?j.attr(k.titleAttribute):'';if(k.splitTitle){if(z==undefined){z=''}y=z.split(k.splitTitle);z=y.shift()}var A;var B=function(b){if(!k.onActivate(j)){return false}n=true;I.removeClass().css({width:u});if(p==j.attr('href')){j.css('cursor',k.cursor)}j.attr('title','');if(k.hoverClass){j.addClass(k.hoverClass)}linkTop=posY=j.offset().top;x=j.offset().left;mouseX=b.pageX;mouseY=b.pageY;if(j[0].tagName.toLowerCase()!='area'){t=$(document).scrollTop();winWidth=$(window).width()}if(k.positionBy=='fixed'){posX=w+x+lOffset;I.css({left:posX})}else{posX=(w>x&&x>v)||x+w+v+lOffset>winWidth?x-v-lOffset:w+x+lOffset;if(j[0].tagName.toLowerCase()=='area'||k.positionBy=='mouse'||w+v>winWidth){if(mouseX+20+v>winWidth){I.addClass(' cluetip-'+ctClass);posX=(mouseX-v-lOffset)>=0?mouseX-v-lOffset-parseInt(I.css('marginLeft'),10)+parseInt($cluetipInner.css('marginRight'),10):mouseX-(v/2)}else{posX=mouseX+lOffset}}var c=posX<0?b.pageY+q:b.pageY;I.css({left:(posX>0&&k.positionBy!='bottomTop')?posX:(mouseX+(v/2)>winWidth)?winWidth/2-v/2:Math.max(mouseX-(v/2),0)})}wHeight=$(window).height();if(G){$cluetipInner.html(G);C(c)}else if(y){var d=y.length;for(var i=0;i<d;i++){if(i==0){$cluetipInner.html(y[i])}else{$cluetipInner.append('<div class="split-body">'+y[i]+'</div>')}};C(c)}else if(!k.local&&p.indexOf('#')!=0){if(l&&k.ajaxCache){$cluetipInner.html(l);C(c)}else{var e=k.ajaxSettings;e.url=p;e.beforeSend=function(){$cluetipOuter.children().empty();if(k.waitImage){$('#cluetip-waitimage').css({top:mouseY+20,left:mouseX+20}).show()}};e.error=function(){if(n){$cluetipInner.html('<i>sorry, the contents could not be loaded</i>')}};e.success=function(a){l=k.ajaxProcess(a);if(n){$cluetipInner.html(l)}};e.complete=function(){imgCount=$('#cluetip-inner img').length;if(imgCount&&!$.browser.opera){$('#cluetip-inner img').load(function(){imgCount--;if(imgCount<1){$('#cluetip-waitimage').hide();if(n)C(c)}})}else{$('#cluetip-waitimage').hide();if(n)C(c)}};$.ajax(e)}}else if(k.local){var f=$(p+':first');var g=$.fn.wrapInner?f.wrapInner('<div></div>').children().clone(true):f.html();$.fn.wrapInner?$cluetipInner.empty().append(g):$cluetipInner.html(g);C(c)}};var C=function(a){I.addClass('cluetip-'+ctClass);if(k.truncate){var b=$cluetipInner.text().slice(0,k.truncate)+'...';$cluetipInner.html(b)}function doNothing(){};z?$cluetipTitle.show().html(z):(k.showTitle)?$cluetipTitle.show().html('&nbsp;'):$cluetipTitle.hide();if(k.sticky){var c=$('<div id="cluetip-close"><a href="#">'+k.closeText+'</a></div>');(k.closePosition=='bottom')?c.appendTo($cluetipInner):(k.closePosition=='title')?c.prependTo($cluetipTitle):c.prependTo($cluetipInner);c.click(function(){E();return false});if(k.mouseOutClose){if($.fn.hoverIntent&&k.hoverIntent){I.hoverIntent({over:doNothing,timeout:k.hoverIntent.timeout,out:function(){c.trigger('click')}})}else{I.hover(doNothing,function(){c.trigger('click')})}}else{I.unbind('mouseout')}}var d='';$cluetipOuter.css({overflow:s=='auto'?'visible':'auto',height:s});r=s=='auto'?Math.max(I.outerHeight(),I.height()):parseInt(s,10);tipY=posY;baseline=t+wHeight;if(k.positionBy=='fixed'){tipY=posY-k.dropShadowSteps+q}else if((posX<mouseX&&Math.max(posX,0)+v>mouseX)||k.positionBy=='bottomTop'){if(posY+r+q>baseline&&mouseY-t>r+q){tipY=mouseY-r-q;d='top'}else{tipY=mouseY+q;d='bottom'}}else if(posY+r+q>baseline){tipY=(r>=wHeight)?t:baseline-r-q}else if(j.css('display')=='block'||j[0].tagName.toLowerCase()=='area'||k.positionBy=="mouse"){tipY=a-q}else{tipY=posY-k.dropShadowSteps}if(d==''){posX<x?d='left':d='right'}I.css({top:tipY+'px'}).removeClass().addClass('clue-'+d+'-'+ctClass).addClass(' cluetip-'+ctClass);if(k.arrows){var e=(posY-tipY-k.dropShadowSteps);$cluetipArrows.css({top:(/(left|right)/.test(d)&&posX>=0&&e>0)?e+'px':/(left|right)/.test(d)?0:''}).show()}else{$cluetipArrows.hide()}$dropShadow.hide();I.hide()[k.fx.open](k.fx.open!='show'&&k.fx.openSpeed);if(k.dropShadow)$dropShadow.css({height:r,width:u}).show();if($.fn.bgiframe){I.bgiframe()}if(k.delayedClose>0){closeOnDelay=setTimeout(E,k.delayedClose)}k.onShow(I,$cluetipInner)};var D=function(){n=false;$('#cluetip-waitimage').hide();if(!k.sticky||(/click|toggle/).test(k.activation)){E();clearTimeout(closeOnDelay)};if(k.hoverClass){j.removeClass(k.hoverClass)}$('.cluetip-clicked').removeClass('cluetip-clicked')};var E=function(){$cluetipOuter.parent().hide().removeClass().end().children().empty();if(z){j.attr(k.titleAttribute,z)}j.css('cursor','');if(k.arrows)$cluetipArrows.css({top:''})};if((/click|toggle/).test(k.activation)){j.click(function(a){if(I.is(':hidden')||!j.is('.cluetip-clicked')){B(a);$('.cluetip-clicked').removeClass('cluetip-clicked');j.addClass('cluetip-clicked')}else{D(a)}this.blur();return false})}else if(k.activation=='focus'){j.focus(function(a){B(a)});j.blur(function(a){D(a)})}else{j.click(function(){if(j.attr('href')&&j.attr('href')==p&&!k.clickThrough){return false}});var F=function(b){if(k.tracking==true){var c=posX-b.pageX;var d=tipY?tipY-b.pageY:posY-b.pageY;j.mousemove(function(a){I.css({left:a.pageX+c,top:a.pageY+d})})}};if($.fn.hoverIntent&&k.hoverIntent){j.mouseover(function(){j.attr('title','')}).hoverIntent({sensitivity:k.hoverIntent.sensitivity,interval:k.hoverIntent.interval,over:function(a){B(a);F(a)},timeout:k.hoverIntent.timeout,out:function(a){D(a);j.unbind('mousemove')}})}else{j.hover(function(a){B(a);F(a)},function(a){D(a);j.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,delayedClose:0,closePosition:'top',closeText:'Close',truncate:0,fx:{open:'show',openSpeed:''},hoverIntent:{sensitivity:3,interval:50,timeout:0},onActivate:function(e){return true},onShow:function(a,c){},ajaxCache:true,ajaxProcess:function(a){a=a.replace(/<s(cript|tyle)(.|\s)*?\/s(cript|tyle)>/g,'').replace(/<(link|title)(.|\s)*?\/(link|title)>/g,'');return a},ajaxSettings:{dataType:'html'},debug:false};var J='appendTo',insertionElement='body';$.cluetip={};$.cluetip.setup=function(a){if(a&&a.insertionType&&(a.insertionType).match(/appendTo|prependTo|insertBefore|insertAfter/)){J=a.insertionType}if(a&&a.insertionElement){insertionElement=a.insertionElement}}})(jQuery);