/*
 * jQuery clueTip plugin
 * Version 1.0.6  (January 13, 2010)
 * @requires jQuery v1.3+
 *
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
 *
 */
 
/*
 *
 * Full list of options/settings can be found at the bottom of this file and at http://plugins.learningjquery.com/cluetip/
 *
 * Examples can be found at http://plugins.learningjquery.com/cluetip/demo/
 *
*/
(function(jQuery){jQuery.cluetip={version:'1.0.6'};var jQuerycluetip,jQuerycluetipInner,jQuerycluetipOuter,jQuerycluetipTitle,jQuerycluetipArrows,jQuerycluetipWait,jQuerydropShadow,imgCount;jQuery.fn.cluetip=function(js,options){if(typeof js=='object'){options=js;js=null;}
if(js=='destroy'){return this.removeData('thisInfo').unbind('.cluetip');}
return this.each(function(index){var link=this,jQuerythis=jQuery(this);var opts=jQuery.extend(true,{},jQuery.fn.cluetip.defaults,options||{},jQuery.metadata?jQuerythis.metadata():jQuery.meta?jQuerythis.data():{});var cluetipContents=false;var cluezIndex=+opts.cluezIndex;jQuerythis.data('thisInfo',{title:link.title,zIndex:cluezIndex});var isActive=false,closeOnDelay=0;if(!jQuery('#cluetip').length){jQuery(['<div id="cluetip">','<div id="cluetip-outer">','<h3 id="cluetip-title"></h3>','<div id="cluetip-inner"></div>','</div>','<div id="cluetip-extra"></div>','<div id="cluetip-arrows" class="cluetip-arrows"></div>','</div>'].join(''))
[insertionType](insertionElement).hide();jQuerycluetip=jQuery('#cluetip').css({position:'absolute'});jQuerycluetipOuter=jQuery('#cluetip-outer').css({position:'relative',zIndex:cluezIndex});jQuerycluetipInner=jQuery('#cluetip-inner');jQuerycluetipTitle=jQuery('#cluetip-title');jQuerycluetipArrows=jQuery('#cluetip-arrows');jQuerycluetipWait=jQuery('<div id="cluetip-waitimage"></div>').css({position:'absolute'}).insertBefore(jQuerycluetip).hide();}
var dropShadowSteps=(opts.dropShadow)?+opts.dropShadowSteps:0;if(!jQuerydropShadow){jQuerydropShadow=jQuery([]);for(var i=0;i<dropShadowSteps;i++){jQuerydropShadow=jQuerydropShadow.add(jQuery('<div></div>').css({zIndex:cluezIndex-1,opacity:.1,top:1+i,left:1+i}));}
jQuerydropShadow.css({position:'absolute',backgroundColor:'#000'}).prependTo(jQuerycluetip);}
var tipAttribute=jQuerythis.attr(opts.attribute),ctClass=opts.cluetipClass;if(!tipAttribute&&!opts.splitTitle&&!js){return true;}
if(opts.local&&opts.localPrefix){tipAttribute=opts.localPrefix+tipAttribute;}
if(opts.local&&opts.hideLocal){jQuery(tipAttribute+':first').hide();}
var tOffset=parseInt(opts.topOffset,10),lOffset=parseInt(opts.leftOffset,10);var tipHeight,wHeight,defHeight=isNaN(parseInt(opts.height,10))?'auto':(/\D/g).test(opts.height)?opts.height:opts.height+'px';var sTop,linkTop,posY,tipY,mouseY,baseline;var tipInnerWidth=parseInt(opts.width,10)||275,tipWidth=tipInnerWidth+(parseInt(jQuerycluetip.css('paddingLeft'),10)||0)+(parseInt(jQuerycluetip.css('paddingRight'),10)||0)+dropShadowSteps,linkWidth=this.offsetWidth,linkLeft,posX,tipX,mouseX,winWidth;var tipParts;var tipTitle=(opts.attribute!='title')?jQuerythis.attr(opts.titleAttribute):'';if(opts.splitTitle){if(tipTitle==undefined){tipTitle='';}
tipParts=tipTitle.split(opts.splitTitle);tipTitle=tipParts.shift();}
if(opts.escapeTitle){tipTitle=tipTitle.replace(/&/g,'&amp;').replace(/>/g,'&gt;').replace(/</g,'&lt;');}
var localContent;function returnFalse(){return false;}
var activate=function(event){if(!opts.onActivate(jQuerythis)){return false;}
isActive=true;jQuerycluetip.removeClass().css({width:tipInnerWidth});if(tipAttribute==jQuerythis.attr('href')){jQuerythis.css('cursor',opts.cursor);}
if(opts.hoverClass){jQuerythis.addClass(opts.hoverClass);}
linkTop=posY=jQuerythis.offset().top;linkLeft=jQuerythis.offset().left;mouseX=event.pageX;mouseY=event.pageY;if(link.tagName.toLowerCase()!='area'){sTop=jQuery(document).scrollTop();winWidth=jQuery(window).width();}
if(opts.positionBy=='fixed'){posX=linkWidth+linkLeft+lOffset;jQuerycluetip.css({left:posX});}else{posX=(linkWidth>linkLeft&&linkLeft>tipWidth)||linkLeft+linkWidth+tipWidth+lOffset>winWidth?linkLeft-tipWidth-lOffset:linkWidth+linkLeft+lOffset;if(link.tagName.toLowerCase()=='area'||opts.positionBy=='mouse'||linkWidth+tipWidth>winWidth){if(mouseX+20+tipWidth>winWidth){jQuerycluetip.addClass(' cluetip-'+ctClass);posX=(mouseX-tipWidth-lOffset)>=0?mouseX-tipWidth-lOffset-parseInt(jQuerycluetip.css('marginLeft'),10)+parseInt(jQuerycluetipInner.css('marginRight'),10):mouseX-(tipWidth/2);}else{posX=mouseX+lOffset;}}
var pY=posX<0?event.pageY+tOffset:event.pageY;jQuerycluetip.css({left:(posX>0&&opts.positionBy!='bottomTop')?posX:(mouseX+(tipWidth/2)>winWidth)?winWidth/2-tipWidth/2:Math.max(mouseX-(tipWidth/2),0),zIndex:jQuerythis.data('thisInfo').zIndex});jQuerycluetipArrows.css({zIndex:jQuerythis.data('thisInfo').zIndex+1});}
wHeight=jQuery(window).height();if(js){if(typeof js=='function'){js=js.call(link);}
jQuerycluetipInner.html(js);cluetipShow(pY);}
else if(tipParts){var tpl=tipParts.length;jQuerycluetipInner.html(tpl?tipParts[0]:'');if(tpl>1){for(var i=1;i<tpl;i++){jQuerycluetipInner.append('<div class="split-body">'+tipParts[i]+'</div>');}}
cluetipShow(pY);}
else if(!opts.local&&tipAttribute.indexOf('#')!==0){if(/\.(jpe?g|tiff?|gif|png)jQuery/i.test(tipAttribute)){jQuerycluetipInner.html('<img src="'+tipAttribute+'" alt="'+tipTitle+'" />');cluetipShow(pY);}else if(cluetipContents&&opts.ajaxCache){jQuerycluetipInner.html(cluetipContents);cluetipShow(pY);}else{var optionBeforeSend=opts.ajaxSettings.beforeSend,optionError=opts.ajaxSettings.error,optionSuccess=opts.ajaxSettings.success,optionComplete=opts.ajaxSettings.complete;var ajaxSettings={cache:false,url:tipAttribute,beforeSend:function(xhr){if(optionBeforeSend){optionBeforeSend.call(link,xhr,jQuerycluetip,jQuerycluetipInner);}
jQuerycluetipOuter.children().empty();if(opts.waitImage){jQuerycluetipWait.css({top:mouseY+20,left:mouseX+20,zIndex:jQuerythis.data('thisInfo').zIndex-1}).show();}},error:function(xhr,textStatus){if(isActive){if(optionError){optionError.call(link,xhr,textStatus,jQuerycluetip,jQuerycluetipInner);}else{jQuerycluetipInner.html('<i>sorry, the contents could not be loaded</i>');}}},success:function(data,textStatus){cluetipContents=opts.ajaxProcess.call(link,data);if(isActive){if(optionSuccess){optionSuccess.call(link,data,textStatus,jQuerycluetip,jQuerycluetipInner);}
jQuerycluetipInner.html(cluetipContents);}},complete:function(xhr,textStatus){if(optionComplete){optionComplete.call(link,xhr,textStatus,jQuerycluetip,jQuerycluetipInner);}
imgCount=jQuery('#cluetip-inner img').length;if(imgCount&&!jQuery.browser.opera){jQuery('#cluetip-inner img').bind('load error',function(){imgCount--;if(imgCount<1){jQuerycluetipWait.hide();if(isActive){cluetipShow(pY);}}});}else{jQuerycluetipWait.hide();if(isActive){cluetipShow(pY);}}}};var ajaxMergedSettings=jQuery.extend(true,{},opts.ajaxSettings,ajaxSettings);jQuery.ajax(ajaxMergedSettings);}}else if(opts.local){var jQuerylocalContent=jQuery(tipAttribute+(/#\S+jQuery/.test(tipAttribute)?'':':eq('+index+')')).clone(true).show();jQuerycluetipInner.html(jQuerylocalContent);cluetipShow(pY);}};var cluetipShow=function(bpY){jQuerycluetip.addClass('cluetip-'+ctClass);if(opts.truncate){var jQuerytruncloaded=jQuerycluetipInner.text().slice(0,opts.truncate)+'...';jQuerycluetipInner.html(jQuerytruncloaded);}
function doNothing(){};tipTitle?jQuerycluetipTitle.show().html(tipTitle):(opts.showTitle)?jQuerycluetipTitle.show().html('&nbsp;'):jQuerycluetipTitle.hide();if(opts.sticky){var jQuerycloseLink=jQuery('<div id="cluetip-close"><a href="#">'+opts.closeText+'</a></div>');(opts.closePosition=='bottom')?jQuerycloseLink.appendTo(jQuerycluetipInner):(opts.closePosition=='title')?jQuerycloseLink.prependTo(jQuerycluetipTitle):jQuerycloseLink.prependTo(jQuerycluetipInner);jQuerycloseLink.bind('click.cluetip',function(){cluetipClose();return false;});if(opts.mouseOutClose){jQuerycluetip.bind('mouseleave.cluetip',function(){cluetipClose();});}else{jQuerycluetip.unbind('mouseleave.cluetip');}}
var direction='';jQuerycluetipOuter.css({zIndex:jQuerythis.data('thisInfo').zIndex,overflow:defHeight=='auto'?'visible':'auto',height:defHeight});tipHeight=defHeight=='auto'?Math.max(jQuerycluetip.outerHeight(),jQuerycluetip.height()):parseInt(defHeight,10);tipY=posY;baseline=sTop+wHeight;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>baseline&&mouseY-sTop>tipHeight+tOffset){tipY=mouseY-tipHeight-tOffset;direction='top';}else{tipY=mouseY+tOffset;direction='bottom';}}else if(posY+tipHeight+tOffset>baseline){tipY=(tipHeight>=wHeight)?sTop:baseline-tipHeight-tOffset;}else if(jQuerythis.css('display')=='block'||link.tagName.toLowerCase()=='area'||opts.positionBy=="mouse"){tipY=bpY-tOffset;}else{tipY=posY-opts.dropShadowSteps;}
if(direction==''){posX<linkLeft?direction='left':direction='right';}
jQuerycluetip.css({top:tipY+'px'}).removeClass().addClass('clue-'+direction+'-'+ctClass).addClass(' cluetip-'+ctClass);if(opts.arrows){var bgY=(posY-tipY-opts.dropShadowSteps);jQuerycluetipArrows.css({top:(/(left|right)/.test(direction)&&posX>=0&&bgY>0)?bgY+'px':/(left|right)/.test(direction)?0:''}).show();}else{jQuerycluetipArrows.hide();}
jQuerydropShadow.hide();jQuerycluetip.hide()[opts.fx.open](opts.fx.openSpeed||0);if(opts.dropShadow){jQuerydropShadow.css({height:tipHeight,width:tipInnerWidth,zIndex:jQuerythis.data('thisInfo').zIndex-1}).show();}
if(jQuery.fn.bgiframe){jQuerycluetip.bgiframe();}
if(opts.delayedClose>0){closeOnDelay=setTimeout(cluetipClose,opts.delayedClose);}
opts.onShow.call(link,jQuerycluetip,jQuerycluetipInner);};var inactivate=function(event){isActive=false;jQuerycluetipWait.hide();if(!opts.sticky||(/click|toggle/).test(opts.activation)){cluetipClose();clearTimeout(closeOnDelay);}
if(opts.hoverClass){jQuerythis.removeClass(opts.hoverClass);}};var cluetipClose=function(){jQuerycluetipOuter.parent().hide().removeClass();opts.onHide.call(link,jQuerycluetip,jQuerycluetipInner);jQuerythis.removeClass('cluetip-clicked');if(tipTitle){jQuerythis.attr(opts.titleAttribute,tipTitle);}
jQuerythis.css('cursor','');if(opts.arrows){jQuerycluetipArrows.css({top:''});}};jQuery(document).bind('hideCluetip',function(e){cluetipClose();});if((/click|toggle/).test(opts.activation)){jQuerythis.bind('click.cluetip',function(event){if(jQuerycluetip.is(':hidden')||!jQuerythis.is('.cluetip-clicked')){activate(event);jQuery('.cluetip-clicked').removeClass('cluetip-clicked');jQuerythis.addClass('cluetip-clicked');}else{inactivate(event);}
this.blur();return false;});}else if(opts.activation=='focus'){jQuerythis.bind('focus.cluetip',function(event){activate(event);});jQuerythis.bind('blur.cluetip',function(event){inactivate(event);});}else{jQuerythis[opts.clickThrough?'unbind':'bind']('click',returnFalse);var mouseTracks=function(evt){if(opts.tracking==true){var trackX=posX-evt.pageX;var trackY=tipY?tipY-evt.pageY:posY-evt.pageY;jQuerythis.bind('mousemove.cluetip',function(evt){jQuerycluetip.css({left:evt.pageX+trackX,top:evt.pageY+trackY});});}};if(jQuery.fn.hoverIntent&&opts.hoverIntent){jQuerythis.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);jQuerythis.unbind('mousemove.cluetip');}});}else{jQuerythis.bind('mouseenter.cluetip',function(event){activate(event);mouseTracks(event);}).bind('mouseleave.cluetip',function(event){inactivate(event);jQuerythis.unbind('mousemove.cluetip');});}
jQuerythis.bind('mouseover.cluetip',function(event){jQuerythis.attr('title','');}).bind('mouseleave.cluetip',function(event){jQuerythis.attr('title',jQuerythis.data('thisInfo').title);});}});};jQuery.fn.cluetip.defaults={width:275,height:'auto',cluezIndex:97,positionBy:'auto',topOffset:15,leftOffset:15,local:false,localPrefix:null,hideLocal:true,attribute:'rel',titleAttribute:'title',splitTitle:'',escapeTitle:false,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(ct,ci){},onHide:function(ct,ci){},ajaxCache:true,ajaxProcess:function(data){data=data.replace(/<(script|style|title)[^<]+<\/(script|style|title)>/gm,'').replace(/<(link|meta)[^>]+>/g,'');return data;},ajaxSettings:{dataType:'html'},debug:false};var insertionType='appendTo',insertionElement='body';jQuery.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);