/**
 * jQuery.LocalScroll - Animated scrolling navigation, using anchors.
 * Copyright (c) 2008 Ariel Flesler - aflesler(at)gmail(dot)com
 * Licensed under GPL license (http://www.opensource.org/licenses/gpl-license.php).
 * Date: 2/3/2008
 * @author Ariel Flesler
 * @version 1.2.3
 **/
;(function($){var g=location.href.replace(/#.*/,''),a=$.localScroll=function(a){$('body').localScroll(a)};a.defaults={duration:1e3,axis:'y',event:'click',stop:true};a.hash=function(b){b=$.extend({},a.defaults,b);b.hash=false;if(location.hash)setTimeout(function(){scroll(0,location,b)},0)};$.fn.localScroll=function(b){b=$.extend({},a.defaults,b);return(b.persistent||b.lazy)?this.bind(b.event,function(e){var a=e.target;a=$([a,a.parentNode]).filter(filter)[0];a&&scroll(e,a,b)}):this.find('a').filter(filter).bind(b.event,function(e){scroll(e,this,b)}).end().end();function filter(){var c=this;return!!c.href&&!!c.hash&&c.href.replace(c.hash,'')==g&&(!b.filter||$(c).is(b.filter))}};function scroll(e,a,c){var d=a.hash.slice(1),b=document.getElementById(d)||document.getElementsByName(d)[0];if(b){e&&e.preventDefault();var f=$(c.target||$.scrollTo.window());if(c.lock&&f.is(':animated'))return;if(c.onBefore)c.onBefore.call(a,e,b,f);if(c.stop)f.queue('fx',[]).stop();f.scrollTo(b,c);if(c.hash)f.queue(function(){location=a.hash})}}})(jQuery);

/**
 * jQuery.ScrollTo - Easy element scrolling using jQuery.
 * Copyright (c) 2008 Ariel Flesler - aflesler(at)gmail(dot)com
 * Licensed under GPL license (http://www.opensource.org/licenses/gpl-license.php).
 * Date: 2/8/2008
 * @author Ariel Flesler
 * @version 1.3.2
 */
;(function($){var o=$.scrollTo=function(a,b,c){o.window().scrollTo(a,b,c)};o.defaults={axis:'y',duration:1};o.window=function(){return $($.browser.safari?'body':'html')};$.fn.scrollTo=function(l,m,n){if(typeof m=='object'){n=m;m=0}n=$.extend({},o.defaults,n);m=m||n.speed||n.duration;n.queue=n.queue&&n.axis.length>1;if(n.queue)m/=2;n.offset=j(n.offset);n.over=j(n.over);return this.each(function(){var a=this,b=$(a),t=l,c,d={},w=b.is('html,body');switch(typeof t){case'number':case'string':if(/^([+-]=)?\d+(px)?$/.test(t)){t=j(t);break}t=$(t,this);case'object':if(t.is||t.style)c=(t=$(t)).offset()}$.each(n.axis.split(''),function(i,f){var P=f=='x'?'Left':'Top',p=P.toLowerCase(),k='scroll'+P,e=a[k],D=f=='x'?'Width':'Height';if(c){d[k]=c[p]+(w?0:e-b.offset()[p]);if(n.margin){d[k]-=parseInt(t.css('margin'+P))||0;d[k]-=parseInt(t.css('border'+P+'Width'))||0}d[k]+=n.offset[p]||0;if(n.over[p])d[k]+=t[D.toLowerCase()]()*n.over[p]}else d[k]=t[p];if(/^\d+$/.test(d[k]))d[k]=d[k]<=0?0:Math.min(d[k],h(D));if(!i&&n.queue){if(e!=d[k])g(n.onAfterFirst);delete d[k]}});g(n.onAfter);function g(a){b.animate(d,m,n.easing,a&&function(){a.call(this,l)})};function h(D){var b=w?$.browser.opera?document.body:document.documentElement:a;return b['scroll'+D]-b['client'+D]}})};function j(a){return typeof a=='object'?a:{top:a,left:a}}})(jQuery);

/**
 * jquery.columnhover */
(function($){var q=function(a){var b=a.rows;var d=b.length;var e=[];for(var i=0;i<d;i++){var f=b[i].cells;var g=f.length;for(var j=0;j<g;j++){var c=f[j];var h=c.rowSpan||1;var n=c.colSpan||1;var o=-1;if(!e[i]){e[i]=[]}var m=e[i];while(m[++o]){}c.realIndex=o;for(var k=i;k<i+h;k++){if(!e[k]){e[k]=[]}var p=e[k];for(var l=o;l<o+n;l++){p[l]=1}}}}};$.fn.columnHover=function(e){var f=$.extend({hoverClass:'hover',eachCell:false,includeSpans:true,ignoreCols:[]},e);var g=function(b,c,d){var a=c[b.realIndex];var i=0;if($(f.ignoreCols).index(b.realIndex+1)!=-1){return}while(++i<b.colSpan){a=a.concat(c[b.realIndex+i])}if(d){$(a).addClass(f.hoverClass)}else{$(a).removeClass(f.hoverClass)}};var h=function(a,b){a.bind('mouseover',function(){g(this,b,true)}).bind('mouseout',function(){g(this,b,false)})};return this.each(function(){var a=[];var b=this;var d,row,c,tboI,rowI,cI,rI,s;if(!b.tBodies||!b.tBodies.length||!b.tHead||!f.hoverClass.length){return}q(b);for(tboI=0;tboI<b.tBodies.length;tboI++){d=b.tBodies[tboI];for(rowI=0;rowI<d.rows.length;rowI++){row=d.rows[rowI];for(cI=0;cI<row.cells.length;cI++){c=row.cells[cI];if(!f.includeSpans&&c.colSpan>1){continue}s=(f.includeSpans)?c.colSpan:1;while(--s>=0){rI=c.realIndex+s;if(!a[rI]){a[rI]=[]}a[rI].push(c)}if(f.eachCell){h($(c),a)}}}}h($('td, th',b.tHead),a);if(f.eachCell&&b.tFoot){h($('td, th',b.tFoot),a)}})}})(jQuery);