/**
 * jquery.simpletip 2.0.0-beta3. A simple tooltip plugin
 * 
 * Copyright (c) 2009 Craig Thompson
 * http://craigsworks.com
 *
 * Licensed under LGPLv3
 * http://www.opensource.org/licenses/lgpl-3.0.html
 *
 * Launch  : February 2009
 * Version : 2.0.0-beta3
 * Released: February 12, 2009 - 23:17pm
 */
(function(B){function A(F,C,E){if(E.target===null){E.target=F}if(typeof E.stem=="string"){E.stem={corner:E.stem,size:12,color:"#EBE4B4"}}var K=this;var I,D;K.root=F;K.tooltip=null;K.content=null;K.stem=null;var G=E.stem.size;var J=G/2;var H={bottomRight:[[0,0],[G,G],[G,0]],bottomLeft:[[0,0],[G,0],[0,G]],topRight:[[0,G],[G,0],[G,G]],topLeft:[[0,0],[0,G],[G,G]],topMiddle:[[0,G],[J,0],[G,G]],bottomMiddle:[[0,0],[G,0],[J,G]],rightMiddle:[[G,J],[0,G],[0,0]],leftMiddle:[[G,0],[G,G],[0,J]]};H.leftTop=H.bottomRight;H.rightTop=H.bottomLeft;H.leftBottom=H.topRight;H.rightBottom=H.topLeft;delete G;delete J;jQuery.extend(K,{create:function(){K.tooltip=jQuery(document.createElement("div")).addClass("simpletip").addClass(E.parentClass).appendTo(document.body).data("simpletip",K);K.content=jQuery(document.createElement("div")).addClass(E.contentClass).html(C).css("width",(E.width||null)).appendTo(K.tooltip);K.assignEvents();K.createStem();K.focus();if(!E.hidden){K.tooltip.show()}else{K.tooltip.hide()}},createStem:function(O){if(E.stem===false||E.stem.corner===false){return}else{if(!O){O=E.stem.corner}}jQuery(K.tooltip).find("."+E.stemClass).remove();K.stem=jQuery(document.createElement("div")).addClass(E.stemClass).attr("rel",O);if(document.createElement("canvas").getContext){var L=jQuery(document.createElement("canvas")).attr("width",E.stem.size).attr("height",E.stem.size).appendTo(K.stem);var N=L.get(0).getContext("2d");var Q=H[O];N.fillStyle=E.stem.color;N.beginPath();N.moveTo(Q[0][0],Q[0][1]);N.lineTo(Q[1][0],Q[1][1]);N.lineTo(Q[2][0],Q[2][1]);N.fill()}else{if(jQuery.browser.msie||document.namespaces){if(document.namespaces.v==null){document.namespaces.add("v","urn:schemas-microsoft-com:vml")}var M=document.createStyleSheet().owningElement;M.styleSheet.cssText="v\\:*{behavior:url(#default#VML); display: inline-block }";var Q=H[O];var P="m"+Q[0][0]+","+Q[0][1];P+=" l"+Q[1][0]+","+Q[1][1];P+=" "+Q[2][0]+","+Q[2][1];P+=" xe";jQuery(document.createElement("v:shape")).attr("fillcolor",E.stem.color).attr("stroked","false").attr("coordsize","12,12").attr("path",P).css({width:E.stem.size,height:E.stem.size,marginTop:-1}).appendTo(K.stem)}else{return}}if(O.search(/left|right/)!==-1){if(O.search(/Middle/)!==-1){K.stem.css({marginTop:Math.floor((K.tooltip.outerHeight()/2)-(E.stem.size/2))})}else{if(O.search(/Bottom/)!==-1){K.stem.css({marginTop:Math.floor(K.tooltip.outerHeight()-E.stem.size)})}}K.stem.css("float","left");K.content.css("float","left")}else{if(O.search(/top|bottom/)!==-1){if(O.search(/Middle/)!==-1){K.stem.css({marginLeft:Math.floor((K.tooltip.outerWidth()/2)-(E.stem.size/2))})}else{if(O.search(/Right/)!==-1){K.stem.css({marginLeft:Math.floor(K.tooltip.outerWidth()-E.stem.size)})}}}}if(O.search(/left|top/)!==-1){K.stem.prependTo(K.tooltip)}else{K.stem.appendTo(K.tooltip)}},assignEvents:function(){if(!E.hook.mouse){K.root.unbind(E.showOn).bind(E.showOn,function(S){if(E.showOn===E.hideOn){if(K.tooltip.css("display")!=="none"){clearTimeout(I);K.hide(S);return}}if(I!==null){clearTimeout(I)}I=setTimeout(function(){K.show(S)},E.delay);if(E.hideAfter!==false){var R=["click","dblclick","mousedown","mouseup","mousemove","mouseout","mouseenter","mouseleave","mouseover"];function Q(){clearTimeout(D);D=setTimeout(function(){jQuery(R).each(function(){K.root.unbind(this,Q);K.tooltip.unbind(this,Q)});K.hide()},E.hideAfter)}jQuery(R).each(function(){K.root.bind(this,Q);K.tooltip.bind(this,Q)})}});if(typeof E.hideOn=="string"){var M=E.hideOn;if(E.showOn!==M){K.root.unbind(M).bind(M,function(){clearTimeout(I);K.hide()})}K.assignCloseEvents()}else{var N=E.hideOn.element;var M=E.hideOn.event;K.tooltip.find("."+N).unbind(M,K.hide).bind(M,K.hide)}}else{K.root.mousemove(K.updatePos);K.root.bind(E.showOn,K.show);K.root.mouseout(K.hide);K.assignCloseEvents()}K.root.mouseover(K.focus);K.tooltip.mouseover(K.focus);if(E.ajax!==false&&E.ajax.url!==null){var L=E.ajax.url;var O=E.ajax.data;var P=E.ajax.method||"get";K.load(L,O,P)}},assignCloseEvents:function(L){L=L||"close";K.content.find("."+L).mousedown(function(){K.hide();return false})},set:function(L,M){return E[L]=M},getVersion:function(){return[2,0,0,"beta3"]},getTooltip:function(){return K.tooltip},getContent:function(){return K.content},getPos:function(){return K.tooltip.offset()},show:function(L){E.beforeShow.call(K);if(E.hideOthers){K.hideOthers()}K.updatePos(L);if(typeof E.showEffect=="function"){E.showEffect.call(K.tooltip,E.showTime)}else{switch(E.showEffect){case"fade":K.tooltip.fadeIn(E.showTime);break;case"slide":K.tooltip.slideDown(E.showTime,function(){K.updatePos(L)});break;default:case"none":K.tooltip.show();break}}K.tooltip.addClass(E.activeClass);E.onShow.call(K);return K},hide:function(){E.beforeHide.call(K);if(typeof E.hideEffect=="function"){E.hideEffect.call(K.tooltip,E.hideTime)}else{switch(E.hideEffect){case"fade":K.tooltip.fadeOut(E.hideTime);break;case"slide":K.tooltip.slideUp(E.hideTime);break;default:case"none":K.tooltip.hide();break}}K.tooltip.removeClass(E.activeClass);E.onHide.call(K);return K},hideOthers:function(){jQuery("div.simpletip").not(K.tooltip).each(function(){jQuery(this).simpletip().hide()})},focus:function(){jQuery("div.simpletip").not(K.tooltip).each(function(){jQuery(this).css("z-index",6000)});K.tooltip.css("z-index",6001)},update:function(L){K.content.html(L);K.assignEvents();return K},load:function(L,M,N){if(N){if(N.search(/post/i)!==-1&&M.length<0){M=null}else{if(N.search(/get/i)!==-1){M=null}}}E.beforeContentLoad.call(K);K.content.load(L,M,function(){E.onContentLoad.call(K);K.assignCloseEvents();K.updatePos()});return K},viewportCheck:function(Q,O){var N=Q+K.tooltip.outerWidth();var M=O+K.tooltip.outerHeight();var L=jQuery(window).width()+jQuery(window).scrollLeft();var P=jQuery(window).height()+jQuery(window).scrollTop();return{leftMin:(Q<0),leftMax:(N>=L),topMin:(O<jQuery(window).scrollTop()),topMax:(M>=P)}},viewportAdjust:function(P,N,M){var O=K.viewportCheck(P,N);var L=E.stem.corner||E.hook.self.tooltip;if(O.leftMin||O.leftMax){if(O.leftMin){P=(E.hook.mouse)?M.pageX:E.target.offset().left+E.target.outerWidth()}else{if(O.leftMax){if(L.search(/(top|bottom)Middle/)!==-1){P=P-(K.tooltip.outerWidth()/2)-(E.offset[0]*2)}else{P=P-E.target.outerWidth()-K.tooltip.outerWidth()-(E.offset[0]*2)}}}if(E.stem!==false&&E.stem.corner!==false){if(L.search(/(top|bottom)Middle/)!==-1){if(O.leftMin){L=L.replace("Middle","Left")}else{if(O.leftMax){L=L.replace("Middle","Right")}}}else{if(L.search(/right/)!==-1){L=L.replace("right","left")}else{if(L.search(/Right/)!==-1){L=L.replace("Right","Left")}else{if(L.search(/left/)!==-1){L=L.replace("left","right")}else{if(L.search(/Left/)!==-1){L=L.replace("Left","Right")}}}}}}}if(O.topMin||O.topMax){if(O.topMin){N=(E.hook.mouse)?M.pageY:E.target.offset().top+E.target.outerHeight()}else{if(O.topMax){if(L.search(/(left|right)Middle/)!==-1){N=N-(E.target.outerHeight()/2)-(K.tooltip.outerHeight()/2)-(E.offset[1]*2)}else{N=N-E.target.outerHeight()-K.tooltip.outerHeight()-(E.offset[1]*2)}}}if(E.stem!==false&&E.stem.corner!==false){if(L.search(/(left|right)Middle/)!==-1){if(O.topMin){L=L.replace("Middle","Top")}else{if(O.topMax){L=L.replace("Middle","Bottom")}}}else{if(L.search(/top/)!==-1){L=L.replace("top","bottom")}else{if(L.search(/Top/)!==-1){L=L.replace("Top","Bottom")}else{if(L.search(/bottom/)!==-1){L=L.replace("bottom","top")}else{if(L.search(/Bottom/)!==-1){L=L.replace("Bottom","Top")}}}}}}}if(E.stem!==false&&E.stem.corner!==false){if(L!=K.stem.attr("rel")){K.createStem(L)}}return{left:P,top:N}},cornerPos:function(N,M){var L=N.offset();var P=L.left;var O=L.top;if(M.search(/bottom/i)!==-1){O+=N.outerHeight()}if(M.search(/right/i)!==-1){P+=N.outerWidth()}if(M.search(/(left|right)Middle/)!==-1){O+=N.outerHeight()/2}else{if(M.search(/(top|bottom)Middle/)!==-1){P+=N.outerWidth()/2}}return{left:P,top:O}},updatePos:function(M){if(!E.hook.mouse){var P=K.cornerPos(E.target,E.hook.target);var Q=P.left;var O=P.top}else{var Q=M.pageX;var O=M.pageY}if(E.hook.tooltip.search(/bottom/i)!==-1){O-=K.tooltip.outerHeight()}if(E.hook.tooltip.search(/right/i)!==-1){Q-=K.tooltip.outerWidth()}if(E.hook.tooltip.search(/(left|right)Middle/)!==-1){O-=K.tooltip.outerHeight()/2}else{if(E.hook.tooltip.search(/(top|bottom)Middle/)!==-1){Q-=K.tooltip.outerWidth()/2}}Q+=E.offset[0];O+=E.offset[1];if(E.viewport){var L=K.viewportAdjust(Q,O,M);Q=L.left;O=L.top}if(E.hook.mouse){var N=(E.hook.tooltip.search(/top/)!==-1)?5:-5;Q+=N;O+=N}K.tooltip.css({left:Q,top:O});resizing=false;return K}});K.create()}jQuery.fn.simpletip=function(D,E){var C=jQuery(this).eq(typeof conf=="number"?conf:0).data("simpletip");if(C){return C}if(D===null){D=""}var F={target:null,ajax:false,hook:{tooltip:"topLeft",target:"bottomRight",mouse:false},stem:{corner:false,color:"#EBE4B4",size:12},offset:[0,0],viewport:false,hidden:true,showOn:"mousemove",showEffect:"fade",showTime:150,delay:140,hideAfter:false,hideOthers:false,hideOn:"mouseout",hideEffect:"fade",hideTime:150,parentClass:"tooltip",contentClass:"content",stemClass:"stem",activeClass:"active",width:false,beforeShow:function(){},onShow:function(){},beforeHide:function(){},onHide:function(){},beforeContentLoad:function(){},onContentLoad:function(){}};jQuery.extend(true,F,E);this.each(function(){var G=new A(jQuery(this),D,F);jQuery(this).data("simpletip",G)});return this}})();