
(function($){jQuery.fn.bt=function(content,options){if(typeof content!='string'){var contentSelect=true;options=content;content=false;}
else{var contentSelect=false;}
if(jQuery.fn.hoverIntent&&jQuery.bt.defaults.trigger=='hover'){jQuery.bt.defaults.trigger='hoverIntent';}
return this.each(function(index){var opts=jQuery.extend(false,jQuery.bt.defaults,options);opts.spikeLength=numb(opts.spikeLength);opts.spikeGirth=numb(opts.spikeGirth);opts.overlap=numb(opts.overlap);var ajaxTimeout=false;if(opts.killTitle){$(this).find('[title]').andSelf().each(function(){if(!$(this).attr('bt-xTitle')){$(this).attr('bt-xTitle',$(this).attr('title')).attr('title','');}});}
if(typeof opts.trigger=='string'){opts.trigger=[opts.trigger];}
if(opts.trigger[0]=='hoverIntent'){var hoverOpts=$.extend(opts.hoverIntentOpts,{over:function(){this.btOn();},out:function(){this.btOff();}});$(this).hoverIntent(hoverOpts);}
else if(opts.trigger[0]=='hover'){$(this).hover(function(){this.btOn();},function(){this.btOff();});}
else if(opts.trigger[0]=='now'){if($(this).hasClass('bt-active')){this.btOff();}
else{this.btOn();}}
else if(opts.trigger[0]=='none'){}
else if(opts.trigger.length>1&&opts.trigger[0]!=opts.trigger[1]){$(this).bind(opts.trigger[0],function(){this.btOn();}).bind(opts.trigger[1],function(){this.btOff();});}
else{$(this).bind(opts.trigger[0],function(){if($(this).hasClass('bt-active')){this.btOff();}
else{this.btOn();}});}
this.btOn=function(){if(typeof $(this).data('bt-box')=='object'){this.btOff();}
opts.preShow.apply(this);$(jQuery.bt.vars.closeWhenOpenStack).btOff();$(this).addClass('bt-active '+opts.activeClass);if(contentSelect&&opts.ajaxPath==null){if(opts.killTitle){$(this).attr('title',$(this).attr('bt-xTitle'));}
content=eval(opts.contentSelector);if(opts.killTitle){$(this).attr('title','');}}
if(opts.ajaxPath!=null&&content==false){if(typeof opts.ajaxPath=='object'){var url=eval(opts.ajaxPath[0]);url+=opts.ajaxPath[1]?' '+opts.ajaxPath[1]:'';}
else{var url=opts.ajaxPath;}
var off=url.indexOf(" ");if(off>=0){var selector=url.slice(off,url.length);url=url.slice(0,off);}
var cacheData=opts.ajaxCache?$(document.body).data('btCache-'+url.replace(/\./g,'')):null;if(typeof cacheData=='string'){content=selector?jQuery("<div/>").append(cacheData.replace(/<script(.|\s)*?\/script>/g,"")).find(selector):cacheData;}
else{var target=this;var ajaxOpts=jQuery.extend(false,{type:opts.ajaxType,data:opts.ajaxData,cache:opts.ajaxCache,url:url,complete:function(XMLHttpRequest,textStatus){if(textStatus=='success'||textStatus=='notmodified'){if(opts.ajaxCache){$(document.body).data('btCache-'+url.replace(/\./g,''),XMLHttpRequest.responseText);}
ajaxTimeout=false;content=selector?jQuery("<div/>").append(XMLHttpRequest.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find(selector):XMLHttpRequest.responseText;}
else{if(textStatus=='timeout'){ajaxTimeout=true;}
content=opts.ajaxError.replace(/%error/g,XMLHttpRequest.statusText);}
if($(target).hasClass('bt-active')){target.btOn();}}},opts.ajaxData);$.ajax(ajaxOpts);content=opts.ajaxLoading;}}
var offsetParent=$(this).offsetParent();var pos=$(this).btPosition();var top=numb(pos.top)+numb($(this).css('margin-top'));var left=numb(pos.left)+numb($(this).css('margin-left'));var width=$(this).outerWidth();var height=$(this).outerHeight();if(typeof content=='object'){content=$(content).clone(true).show();}
var $text=$('<div class="bt-content"></div>').append(content).css({padding:opts.padding,position:'absolute',width:opts.width,zIndex:opts.textzIndex}).css(opts.cssStyles);var $box=$('<div class="bt-wrapper"></div>').append($text).addClass(opts.cssClass).css({position:'absolute',width:opts.width,zIndex:opts.wrapperzIndex}).appendTo(offsetParent);if($.fn.bgiframe){$text.bgiframe();$box.bgiframe();}
$(this).data('bt-box',$box);var scrollTop=numb($(document).scrollTop());var scrollLeft=numb($(document).scrollLeft());var docWidth=numb($(window).width());var docHeight=numb($(window).height());var winRight=scrollLeft+docWidth;var winBottom=scrollTop+docHeight;var space=new Object();space.top=$(this).offset().top-scrollTop;space.bottom=docHeight-(($(this).offset().top+height)-scrollTop);space.left=$(this).offset().left-scrollLeft;space.right=docWidth-(($(this).offset().left+width)-scrollLeft);var textOutHeight=numb($text.outerHeight());var textOutWidth=numb($text.outerWidth());if(opts.positions.constructor==String){opts.positions=opts.positions.replace(/ /,'').split(',');}
if(opts.positions[0]=='most'){var position='top';for(var pig in space){position=space[pig]>space[position]?pig:position;}}
else{for(var x in opts.positions){var position=opts.positions[x];if((position=='left'||position=='right')&&space[position]>textOutWidth+opts.spikeLength){break;}
else if((position=='top'||position=='bottom')&&space[position]>textOutHeight+opts.spikeLength){break;}}}
var horiz=left+((width-textOutWidth)*.5);var vert=top+((height-textOutHeight)*.5);var animDist=opts.animate?numb(opts.distance):0;var points=new Array();var textTop,textLeft,textRight,textBottom,textTopSpace,textBottomSpace,textLeftSpace,textRightSpace,crossPoint,textCenter,spikePoint;switch(position){case'top':$text.css('margin-bottom',opts.spikeLength+'px');$box.css({top:(top-$text.outerHeight(true)-animDist)+opts.overlap,left:horiz});textRightSpace=(winRight-opts.windowMargin)-($text.offset().left+$text.outerWidth(true));var xShift=0;if(textRightSpace<0){$box.css('left',(numb($box.css('left'))+textRightSpace)+'px');xShift-=textRightSpace;}
textLeftSpace=($text.offset().left+numb($text.css('margin-left')))-(scrollLeft+opts.windowMargin);if(textLeftSpace<0){$box.css('left',(numb($box.css('left'))-textLeftSpace)+'px');xShift+=textLeftSpace;}
textTop=$text.btPosition().top+numb($text.css('margin-top'));textLeft=$text.btPosition().left+numb($text.css('margin-left'));textRight=textLeft+$text.outerWidth();textBottom=textTop+$text.outerHeight();textCenter={x:textLeft+($text.outerWidth()*opts.centerPointX),y:textTop+($text.outerHeight()*opts.centerPointY)};points[points.length]=spikePoint={y:textBottom+opts.spikeLength,x:((textRight-textLeft)*.5)+xShift,type:'spike'};crossPoint=findIntersectX(spikePoint.x,spikePoint.y,textCenter.x,textCenter.y,textBottom);crossPoint.x=crossPoint.x<textLeft+opts.spikeGirth/2+opts.cornerRadius?textLeft+opts.spikeGirth/2+opts.cornerRadius:crossPoint.x;crossPoint.x=crossPoint.x>(textRight-opts.spikeGirth/2)-opts.cornerRadius?(textRight-opts.spikeGirth/2)-opts.CornerRadius:crossPoint.x;points[points.length]={x:crossPoint.x-(opts.spikeGirth/2),y:textBottom,type:'join'};points[points.length]={x:textLeft,y:textBottom,type:'corner'};points[points.length]={x:textLeft,y:textTop,type:'corner'};points[points.length]={x:textRight,y:textTop,type:'corner'};points[points.length]={x:textRight,y:textBottom,type:'corner'};points[points.length]={x:crossPoint.x+(opts.spikeGirth/2),y:textBottom,type:'join'};points[points.length]=spikePoint;break;case'left':$text.css('margin-right',opts.spikeLength+'px');$box.css({top:vert+'px',left:((left-$text.outerWidth(true)-animDist)+opts.overlap)+'px'});textBottomSpace=(winBottom-opts.windowMargin)-($text.offset().top+$text.outerHeight(true));var yShift=0;if(textBottomSpace<0){$box.css('top',(numb($box.css('top'))+textBottomSpace)+'px');yShift-=textBottomSpace;}
textTopSpace=($text.offset().top+numb($text.css('margin-top')))-(scrollTop+opts.windowMargin);if(textTopSpace<0){$box.css('top',(numb($box.css('top'))-textTopSpace)+'px');yShift+=textTopSpace;}
textTop=$text.btPosition().top+numb($text.css('margin-top'));textLeft=$text.btPosition().left+numb($text.css('margin-left'));textRight=textLeft+$text.outerWidth();textBottom=textTop+$text.outerHeight();textCenter={x:textLeft+($text.outerWidth()*opts.centerPointX),y:textTop+($text.outerHeight()*opts.centerPointY)};points[points.length]=spikePoint={x:textRight+opts.spikeLength,y:((textBottom-textTop)*.5)+yShift,type:'spike'};crossPoint=findIntersectY(spikePoint.x,spikePoint.y,textCenter.x,textCenter.y,textRight);crossPoint.y=crossPoint.y<textTop+opts.spikeGirth/2+opts.cornerRadius?textTop+opts.spikeGirth/2+opts.cornerRadius:crossPoint.y;crossPoint.y=crossPoint.y>(textBottom-opts.spikeGirth/2)-opts.cornerRadius?(textBottom-opts.spikeGirth/2)-opts.cornerRadius:crossPoint.y;points[points.length]={x:textRight,y:crossPoint.y+opts.spikeGirth/2,type:'join'};points[points.length]={x:textRight,y:textBottom,type:'corner'};points[points.length]={x:textLeft,y:textBottom,type:'corner'};points[points.length]={x:textLeft,y:textTop,type:'corner'};points[points.length]={x:textRight,y:textTop,type:'corner'};points[points.length]={x:textRight,y:crossPoint.y-opts.spikeGirth/2,type:'join'};points[points.length]=spikePoint;break;case'bottom':$text.css('margin-top',opts.spikeLength+'px');$box.css({top:(top+height+animDist)-opts.overlap,left:horiz});textRightSpace=(winRight-opts.windowMargin)-($text.offset().left+$text.outerWidth(true));var xShift=0;if(textRightSpace<0){$box.css('left',(numb($box.css('left'))+textRightSpace)+'px');xShift-=textRightSpace;}
textLeftSpace=($text.offset().left+numb($text.css('margin-left')))-(scrollLeft+opts.windowMargin);if(textLeftSpace<0){$box.css('left',(numb($box.css('left'))-textLeftSpace)+'px');xShift+=textLeftSpace;}
textTop=$text.btPosition().top+numb($text.css('margin-top'));textLeft=$text.btPosition().left+numb($text.css('margin-left'));textRight=textLeft+$text.outerWidth();textBottom=textTop+$text.outerHeight();textCenter={x:textLeft+($text.outerWidth()*opts.centerPointX),y:textTop+($text.outerHeight()*opts.centerPointY)};points[points.length]=spikePoint={x:((textRight-textLeft)*.5)+xShift,y:0,type:'spike'};crossPoint=findIntersectX(spikePoint.x,spikePoint.y,textCenter.x,textCenter.y,textTop);crossPoint.x=crossPoint.x<textLeft+opts.spikeGirth/2+opts.cornerRadius?textLeft+opts.spikeGirth/2+opts.cornerRadius:crossPoint.x;crossPoint.x=crossPoint.x>(textRight-opts.spikeGirth/2)-opts.cornerRadius?(textRight-opts.spikeGirth/2)-opts.cornerRadius:crossPoint.x;points[points.length]={x:crossPoint.x+opts.spikeGirth/2,y:textTop,type:'join'};points[points.length]={x:textRight,y:textTop,type:'corner'};points[points.length]={x:textRight,y:textBottom,type:'corner'};points[points.length]={x:textLeft,y:textBottom,type:'corner'};points[points.length]={x:textLeft,y:textTop,type:'corner'};points[points.length]={x:crossPoint.x-(opts.spikeGirth/2),y:textTop,type:'join'};points[points.length]=spikePoint;break;case'right':$text.css('margin-left',(opts.spikeLength+'px'));$box.css({top:vert+'px',left:((left+width+animDist)-opts.overlap)+'px'});textBottomSpace=(winBottom-opts.windowMargin)-($text.offset().top+$text.outerHeight(true));var yShift=0;if(textBottomSpace<0){$box.css('top',(numb($box.css('top'))+textBottomSpace)+'px');yShift-=textBottomSpace;}
textTopSpace=($text.offset().top+numb($text.css('margin-top')))-(scrollTop+opts.windowMargin);if(textTopSpace<0){$box.css('top',(numb($box.css('top'))-textTopSpace)+'px');yShift+=textTopSpace;}
textTop=$text.btPosition().top+numb($text.css('margin-top'));textLeft=$text.btPosition().left+numb($text.css('margin-left'));textRight=textLeft+$text.outerWidth();textBottom=textTop+$text.outerHeight();textCenter={x:textLeft+($text.outerWidth()*opts.centerPointX),y:textTop+($text.outerHeight()*opts.centerPointY)};points[points.length]=spikePoint={x:0,y:((textBottom-textTop)*.5)+yShift,type:'spike'};crossPoint=findIntersectY(spikePoint.x,spikePoint.y,textCenter.x,textCenter.y,textLeft);crossPoint.y=crossPoint.y<textTop+opts.spikeGirth/2+opts.cornerRadius?textTop+opts.spikeGirth/2+opts.cornerRadius:crossPoint.y;crossPoint.y=crossPoint.y>(textBottom-opts.spikeGirth/2)-opts.cornerRadius?(textBottom-opts.spikeGirth/2)-opts.cornerRadius:crossPoint.y;points[points.length]={x:textLeft,y:crossPoint.y-opts.spikeGirth/2,type:'join'};points[points.length]={x:textLeft,y:textTop,type:'corner'};points[points.length]={x:textRight,y:textTop,type:'corner'};points[points.length]={x:textRight,y:textBottom,type:'corner'};points[points.length]={x:textLeft,y:textBottom,type:'corner'};points[points.length]={x:textLeft,y:crossPoint.y+opts.spikeGirth/2,type:'join'};points[points.length]=spikePoint;break;}
var canvas=$('<canvas width="'+(numb($text.outerWidth(true))+opts.strokeWidth*2)+'" height="'+(numb($text.outerHeight(true))+opts.strokeWidth*2)+'"></canvas>').appendTo($box).css({position:'absolute',top:$text.btPosition().top,left:$text.btPosition().left,zIndex:opts.boxzIndex}).get(0);if(typeof G_vmlCanvasManager!='undefined'){canvas=G_vmlCanvasManager.initElement(canvas);}
if(opts.cornerRadius>0){var newPoints=new Array();var newPoint;for(var i=0;i<points.length;i++){if(points[i].type=='corner'){newPoint=betweenPoint(points[i],points[(i-1)%points.length],opts.cornerRadius);newPoint.type='arcStart';newPoints[newPoints.length]=newPoint;newPoints[newPoints.length]=points[i];newPoint=betweenPoint(points[i],points[(i+1)%points.length],opts.cornerRadius);newPoint.type='arcEnd';newPoints[newPoints.length]=newPoint;}
else{newPoints[newPoints.length]=points[i];}}
points=newPoints;}
var ctx=canvas.getContext("2d");drawIt.apply(ctx,[points],opts.strokeWidth);ctx.fillStyle=opts.fill;if(opts.shadow){ctx.shadowOffsetX=2;ctx.shadowOffsetY=2;ctx.shadowBlur=5;ctx.shadowColor=opts.shadowColor;}
ctx.closePath();ctx.fill();if(opts.strokeWidth>0){ctx.shadowColor='rgba(0, 0, 0, 0)';ctx.lineWidth=opts.strokeWidth;ctx.strokeStyle=opts.strokeStyle;ctx.beginPath();drawIt.apply(ctx,[points],opts.strokeWidth);ctx.closePath();ctx.stroke();}
if(opts.animate){$box.css({opacity:0.1});}
$box.css({visibility:'visible'});if(opts.overlay){var overlay=$('<div class="bt-overlay"></div>').css({position:'absolute',backgroundColor:'blue',top:top,left:left,width:width,height:height,opacity:'.2'}).appendTo(offsetParent);$(this).data('overlay',overlay);}
var animParams={opacity:1};if(opts.animate){switch(position){case'top':animParams.top=$box.btPosition().top+opts.distance;break;case'left':animParams.left=$box.btPosition().left+opts.distance;break;case'bottom':animParams.top=$box.btPosition().top-opts.distance;break;case'right':animParams.left=$box.btPosition().left-opts.distance;break;}
$box.animate(animParams,{duration:opts.speed,easing:opts.easing});}
if((opts.ajaxPath!=null&&opts.ajaxCache==false)||ajaxTimeout){content=false;}
if(opts.clickAnywhereToClose){jQuery.bt.vars.clickAnywhereStack.push(this);$(document).click(jQuery.bt.docClick);}
if(opts.closeWhenOthersOpen){jQuery.bt.vars.closeWhenOpenStack.push(this);}
opts.postShow.apply(this);};this.btOff=function(){opts.preHide.apply(this);var box=$(this).data('bt-box');var overlay=$(this).data('bt-overlay');if(typeof box=='object'){$(box).remove();$(this).removeData('bt-box');}
if(typeof overlay=='object'){$(overlay).remove();$(this).removeData('bt-overlay');}
jQuery.bt.vars.clickAnywhereStack=arrayRemove(jQuery.bt.vars.clickAnywhereStack,this);jQuery.bt.vars.closeWhenOpenStack=arrayRemove(jQuery.bt.vars.closeWhenOpenStack,this);opts.postHide.apply(this);$(this).removeClass('bt-active '+opts.activeClass);};var refresh=this.btRefresh=function(){this.btOff();this.btOn();};});function drawIt(points,strokeWidth){this.moveTo(points[0].x,points[0].y);for(i=1;i<points.length;i++){if(points[i-1].type=='arcStart'){this.quadraticCurveTo(round5(points[i].x,strokeWidth),round5(points[i].y,strokeWidth),round5(points[(i+1)%points.length].x,strokeWidth),round5(points[(i+1)%points.length].y,strokeWidth));i++;}
else{this.lineTo(round5(points[i].x,strokeWidth),round5(points[i].y,strokeWidth));}}};function round5(num,strokeWidth){var ret;strokeWidth=numb(strokeWidth);if(strokeWidth%2){ret=num;}
else{ret=Math.round(num-.5)+.5;}
return ret;};function numb(num){return parseInt(num)||0;};function arrayRemove(arr,elem){var x,newArr=new Array();for(x in arr){if(arr[x]!=elem){newArr.push(arr[x]);}}
return newArr;};function betweenPoint(point1,point2,dist){var y,x;if(point1.x==point2.x){y=point1.y<point2.y?point1.y+dist:point1.y-dist;return{x:point1.x,y:y};}
else if(point1.y==point2.y){x=point1.x<point2.x?point1.x+dist:point1.x-dist;return{x:x,y:point1.y};}};function centerPoint(arcStart,corner,arcEnd){var x=corner.x==arcStart.x?arcEnd.x:arcStart.x;var y=corner.y==arcStart.y?arcEnd.y:arcStart.y;var startAngle,endAngle;if(arcStart.x<arcEnd.x){if(arcStart.y>arcEnd.y){startAngle=(Math.PI/180)*180;endAngle=(Math.PI/180)*90;}
else{startAngle=(Math.PI/180)*90;endAngle=0;}}
else{if(arcStart.y>arcEnd.y){startAngle=(Math.PI/180)*270;endAngle=(Math.PI/180)*180;}
else{startAngle=0;endAngle=(Math.PI/180)*270;}}
return{x:x,y:y,type:'center',startAngle:startAngle,endAngle:endAngle};};function findIntersect(r1x1,r1y1,r1x2,r1y2,r2x1,r2y1,r2x2,r2y2){if(r2x1==r2x2){return findIntersectY(r1x1,r1y1,r1x2,r1y2,r2x1);}
if(r2y1==r2y2){return findIntersectX(r1x1,r1y1,r1x2,r1y2,r2y1);}
var r1m=(r1y1-r1y2)/(r1x1-r1x2);var r1b=r1y1-(r1m*r1x1);var r2m=(r2y1-r2y2)/(r2x1-r2x2);var r2b=r2y1-(r2m*r2x1);var x=(r2b-r1b)/(r1m-r2m);var y=r1m*x+r1b;return{x:x,y:y};};function findIntersectY(r1x1,r1y1,r1x2,r1y2,x){if(r1y1==r1y2){return{x:x,y:r1y1};}
var r1m=(r1y1-r1y2)/(r1x1-r1x2);var r1b=r1y1-(r1m*r1x1);var y=r1m*x+r1b;return{x:x,y:y};};function findIntersectX(r1x1,r1y1,r1x2,r1y2,y){if(r1x1==r1x2){return{x:r1x1,y:y};}
var r1m=(r1y1-r1y2)/(r1x1-r1x2);var r1b=r1y1-(r1m*r1x1);var x=(y-r1b)/r1m;return{x:x,y:y};};};jQuery.fn.btPosition=function(){function num(elem,prop){return elem[0]&&parseInt(jQuery.curCSS(elem[0],prop,true),10)||0;};var left=0,top=0,results;if(this[0]){var offsetParent=this.offsetParent(),offset=this.offset(),parentOffset=/^body|html$/i.test(offsetParent[0].tagName)?{top:0,left:0}:offsetParent.offset();offset.top-=num(this,'marginTop');offset.left-=num(this,'marginLeft');parentOffset.top+=num(offsetParent,'borderTopWidth');parentOffset.left+=num(offsetParent,'borderLeftWidth');results={top:offset.top-parentOffset.top,left:offset.left-parentOffset.left};}
return results;};jQuery.fn.btOn=function(){return this.each(function(index){if($.isFunction(this.btOn)){this.btOn();}});};jQuery.fn.btOff=function(){return this.each(function(index){if($.isFunction(this.btOff)){this.btOff();}});};jQuery.bt={};jQuery.bt.vars={clickAnywhereStack:[],closeWhenOpenStack:[]};jQuery.bt.docClick=function(e){if(!e){var e=window.event;};if(!$(e.target).parents().andSelf().filter('.bt-wrapper, .bt-active').length){$(jQuery.bt.vars.clickAnywhereStack).btOff();$(document).unbind('click',jQuery.bt.docClick);}};jQuery.bt.defaults={trigger:'hover',clickAnywhereToClose:true,closeWhenOthersOpen:false,width:'200px',padding:'10px',spikeGirth:10,spikeLength:15,overlap:0,overlay:false,killTitle:true,textzIndex:9999,boxzIndex:9998,wrapperzIndex:9997,positions:['most'],fill:"rgb(255, 255, 102)",windowMargin:10,strokeWidth:1,strokeStyle:"#000",cornerRadius:5,centerPointX:.5,centerPointY:.5,shadow:false,shadowOffsetX:2,shadowOffsetY:2,shadowBlur:3,shadowColor:"#000",animate:false,distance:15,easing:'swing',speed:200,cssClass:'',cssStyles:{},activeClass:'bt-active',contentSelector:"$(this).attr('title')",ajaxPath:null,ajaxError:'<strong>ERROR:</strong> <em>%error</em>',ajaxLoading:'<blink>Loading...</blink>',ajaxData:{},ajaxType:'GET',ajaxCache:true,ajaxOpts:{},preShow:function(){return;},postShow:function(){return;},preHide:function(){return;},postHide:function(){return;},hoverIntentOpts:{interval:300,timeout:500}};})(jQuery);(function($){Hover=$.klass({initialize:function(hoverClass){this.hoverClass=hoverClass;},onmouseover:function(){this.element.addClass(this.hoverClass);},onmouseout:function(){this.element.removeClass(this.hoverClass);}});Popup=$.klass({initialize:function(options){this.options=Object.extend({trigger:'hoverIntent',ajaxPath:['this.href'],ajaxLoading:'<div id="popup_item_info"><table><tr align="center"><td><img src="/images/spinner.gif" width="16px" height="16px"/></div></td></tr></table>',fill:'#000',cssStyles:{fontFamily:'Arial, "Helvetica Neue", Helvetica, sans-serif',fontSize:'11px',width:'auto',color:'white'},width:'350px',strokeWidth:1,strokeStyle:'black',hoverIntentOpts:{interval:300,timeout:500},positions:['right'],closeWhenOthersOpen:true},options||{});this.element.bt(this.options);},onclick:function(){this.element.btOff();}});ImagePopup=$.klass({initialize:function(options){this.options=Object.extend({trigger:'hoverIntent',ajaxPath:['this.href'],ajaxLoading:'<div id="image_popup"><table><tr align="center" valign="middle"><td height="360"><img src="/images/spinner.gif" width="16px" height="16px"/></div></td></tr></table>',fill:'#000',cssStyles:{fontFamily:'Arial, "Helvetica Neue", Helvetica, sans-serif',fontSize:'11px',width:'auto',color:'white'},width:'350px',strokeWidth:1,strokeStyle:'black',hoverIntentOpts:{interval:300,timeout:500},positions:['left','right'],closeWhenOthersOpen:true},options||{});this.element.bt(this.options);},onclick:function(){this.element.btOff();}});FormSelectionOnChange=$.klass(Remote.Base,{initialize:function($super,options){if(options.form){this.form=$(options.form);options=$.extend({url:this.form.attr('action'),type:this.form.attr('method')||'get'},options||{});}else{throw('A Form must be defined using form:...');}
if(options.hide){$(options.hide).hide();}
if(options.spinner){this.spinner=$(options.spinner);}
$super(options);},onclick:function(){if(this.spinner){this.spinner.html('<div class="spinner"><img src="/images/spinner.gif" /></div>');}
this.options.data=this.form.serialize();this._makeRequest(this.options);}});RemoteUpdateSelectOnChange=$.klass(Remote.Base,{initialize:function($super,options){if(!options.url){$.fbDebug(function(){console.error('url not defined during bind')});}
options.evalScripts=true;$super(options);},onchange:function(){select_options=this.element.attr('options');opt_sel=select_options[select_options.selectedIndex].value;options=$.extend({data:'type='+opt_sel,method:'get'},this.options);return this._makeRequest(options);}});RemoteUpdateBlindShow=$.klass(Remote.LinkLive,{initialize:function($super,options){$super(options);},onclick:function($super){update=$(this.options.update);update.show();update.html('<div class="spinner"><img src="/images/spinner.gif" /></div>');$super();return false;},onupdate:function($super,data,status){update=$(request.options.update);update.slideToggle(500,function(){$super(data,status);update.slideToggle(500,function(){$.scrollTo(this,500,{offset:-100,onAfter:function(){if(request.options.focus)$(request.options.focus).focus();}});});});}});RemoteUpdateBlindClose=$.klass(Remote.Link,{initialize:function($super,options){this.update=$(options.update);$super(options);},onclick:function(){this.update.slideToggle(500,function(){$.scrollTo(this,500,{offset:-200,onAfter:function(){this.empty();}});});return false;}});})(jQuery);(function($){MarkupShowJSEnabled=$.klass({initialize:function(){this.element.show();}})
MarkupConfirmRemove=$.klass(Remote.Base,{initialize:function($super,options){id=this.element.attr('href').match(/(\d+)$/g);options=options||{};options.control=options.control||'div#comment-';options.update=options.control+id;if($(options.update).length==0){$.fbDebug(function(){console.error('Could not find update %s',options.update)});}
$super(options);},onclick:function(){if(confirm('Are you sure you want to action this item?')){this._makeRequest({url:this.element.attr('href'),type:this.options.method||'post'});}
return false;},onupdate:function(data,status){if(status=='success'){update=$(request.options.update);update.slideToggle(500,function(){update.empty();})}}})
MarkupAreaSlidePreview=$.klass(Remote.Base,{initialize:function($super,options){if(options.control){this.control=$(options.control);if(this.control.length==0){$.fbDebug(function(){console.error(':control %s not found on this page',options.control)})}
options.preview=options.preview||options.control+'_preview';options.update=options.preview+'_target'
options.update_class=options.update_class||'markup-preview';this.preview=$(options.preview);this.update=$(options.update);if(this.update.length==0){$.fbDebug(function(){console.error(':update %s not found on page',options.preview+'_target');})}
if(this.preview.length==0){console.error('update_control %s not found on page',options.preview);}}else{$.fbDebug(function(){console.error('Must supply a control: argument');})}
this.element.show();$super(options);},onclick:function(){if(this.control.attr('value').length>0){this.update.html('<div class="spinner"><img src="/images/spinner.gif" /></div>');this.update.removeClass(this.options.update_class);this.preview.show();this._makeRequest({url:this.element.attr('href'),type:this.options.method||'post',data:this.control.serialize()});}
return false;},onupdate:function($super,data,status){preview=$(request.preview);preview.hide();$super(data,status);request.update.addClass(request.options.update_class);preview.slideToggle('normal',function(){$.scrollTo(this,500,{offset:-200});});}});MarkupAreaSlideCloseClearPreview=$.klass({initialize:function(options){options=options||{}
options=$.extend({target:options.control+'_preview',update:options.control+'_preview_target'},options);if(options.control){this.target=$(options.target);this.update=$(options.update);if(this.target.length==0){$.fbDebug(function(){console.error('target %s not found',options.target);})}
if(this.update.length==0){console.error('update %s not found',options.update);}}else{$.fbDebug(function(){console.error('control: not specified')})}
this.options=options;this.element.show();},onclick:function(){var markup_target=this.update;var control=$(this.options.control);this.target.slideToggle('normal',function(){markup_target.empty();$.scrollTo(control,500,{offset:-250});});return false;}})
MarkupAreaFormPostAndScoll=$.klass(Remote.Form,{initialize:function($super,options){options=options||{};options=$.extend({append_to:options.append_to||'#last_comment',form:this.element},options);$super(options);},onupdate:function(data,status){append_to=$(request.options.append_to);append_to.before(data);request.options.form.clearForm();$.scrollTo(append_to,500,{offset:-150});}})
MarkupAreaFormUpdateSave=$.klass(Remote.Form,{initialize:function($super,options){container=this.element.attr('action').match(/(\d+)$/g)
container='div#comment-'+container;if($(container).length==0){$.fbDebug(function(){console.error('Could not find container %s',container)})}
options=options||{};options=$.extend({form:this.element,update:container,evalScripts:true},options);if(!options.update){$.fbDebug(function(){console.error('Could not find update or not defined - %s',options.update);})}
$super(options);},onupdate:function($super,data,status){container=$(request.options.update);container.slideToggle(500,function(){$super(data,status);container.slideToggle(500,function(){$.scrollTo(container,500);});});}})
AjaxEditArea=$.klass(Remote.Base,{initialize:function(options){if(!options.container){$.fbDebug(function(){console.error('Must specify a container: type i.e. comment, post etc...')})}
target_name=this.element.attr('href').match(/(\d+)$/g)
target_name='#'+options.container+'-'+target_name
this.target=$(target_name);this.options=$.extend({container:options.container,update:target_name,evalScripts:true},options||{});if(this.target.length==0){$.fbDebug(function(){console.error('could not find target %s',target_name)})}},onclick:function(){this_local=this;$(this.options.update).slideToggle(300,function(){this_local.target.html('<div class="spinner"><img src="/images/spinner.gif" /></div>');this_local.target.slideToggle(300,function(){this_local._makeRequest({url:this_local.element.attr('href')});});});return false;},onupdate:function($super,data,status){target=$(request.options.update);target.slideToggle(300,function(){$super(data,status);target.slideToggle(300,function(){$.scrollTo(target,500);});});}});})(jQuery);(function($){RemoteReplyBlindShow=$.klass(RemoteUpdateBlindShow,{initialize:function($super,options){id=this.element.attr('href').match(/(\d+)$/g);block='reply_block_'+id;options=$.extend({url:this.element.attr('href'),type:'GET',id:id,after:'#post'+id,block:block,update:'div#'+block},options||{});$super(options);},onclick:function(){$(this.options.update).remove();$(this.options.after).after('<div id="'+this.options.block+'" style="display: none"><div class="spinner"><img src="/images/spinner.gif" /></div></div>');$(this.options.update).slideToggle();this._makeRequest(this.options);return false;}});})(jQuery);(function($){RemoteGetAndInsertBefore=$.klass(Remote.Base,{initialize:function($super,options){if(!options.before){$.fbDebug(function(){console.error('before not defined during bind')});}
$super(options);},onclick:function(){this._makeRequest({url:this.element.attr('href')});return false;},onupdate:function(data,status){before=$(request.options.before);before.before(data);}});RemoteAbilityChangeGetAndReqObject=$.klass(Remote.Base,{initialize:function($super,options){if(!options.target){$.fbDebug(function(){console.error('target not defined during bind')});}
options.id=this.element.attr('id').match(/([-|\d]+)$/g);options.update=options.target+'_'+options.id;$super(options);},onchange:function(){select_options=this.element.attr('options');opt_sel=select_options[select_options.selectedIndex].value;this._makeRequest({url:'/prereqs/type_objects/'+this.options.id+'/'+opt_sel});}});RemoteGetBasePropertiesForm=$.klass(Remote.Base,{initialize:function($super,options){if(!options.form){$.fbDebug(function(){console.error('form not defined during bind')});}
$super(options);},onchange:function(){select_options=this.element.attr('options');opt_sel=select_options[select_options.selectedIndex].value;options=$.extend({data:$(this.options.form).serializeArray(),method:'GET'},this.options);sub=$(this.options.update);this_local=this;sub.slideToggle(300,function(){sub.html('<div class="spinner"><img src="/images/spinner.gif" /></div>');sub.slideToggle(200,function(){return this_local._makeRequest(options);});});},onupdate:function($super,data,status){target=$(request.options.update);target.slideToggle(300,function(){$super(data,status);target.slideToggle(300,function(){$.scrollTo(target,500);});});}});RemoteGetItemPropertiesForm=$.klass(RemoteGetBasePropertiesForm,{initialize:function($super,options){if(!options.form){$.fbDebug(function(){console.error('form not defined during bind')});}
options.url='/items/properties/';options.evalScripts=true;$super(options);}});RemoteGetSkillPropertiesForm=$.klass(RemoteGetBasePropertiesForm,{initialize:function($super,options){if(!options.form){$.fbDebug(function(){console.error('form not defined during bind')});}
options.url='/skills/properties/';options.evalScripts=false;$super(options);}});RemoteGetMobPropertiesForm=$.klass(RemoteGetBasePropertiesForm,{initialize:function($super,options){if(!options.form){$.fbDebug(function(){console.error('form not defined during bind')});}
options.url='/mobs/properties/';options.evalScripts=false;$super(options);}});})(jQuery);