
// usage: log('inside coolFunc', this, arguments);
// paulirish.com/2009/log-a-lightweight-wrapper-for-consolelog/
window.log = function(){
  log.history = log.history || [];   // store logs to an array for reference
  log.history.push(arguments);
  if(this.console) {
    arguments.callee = arguments.callee.caller;
    var newarr = [].slice.call(arguments);
    (typeof console.log === 'object' ? log.apply.call(console.log, console, newarr) : console.log.apply(console, newarr));
  }
};

// make it safe to use console.log always
(function(b){function c(){}for(var d="assert,count,debug,dir,dirxml,error,exception,group,groupCollapsed,groupEnd,info,log,timeStamp,profile,profileEnd,time,timeEnd,trace,warn".split(","),a;a=d.pop();){b[a]=b[a]||c}})((function(){try
{console.log();return window.console;}catch(err){return window.console={};}})());


// place any jQuery/helper plugins in here, instead of separate, slower script files.

/**
 * @author Henri MEDOT
 * @version last revision 2009-12-01
 */

$.fn.extend({scrollbarPaper:function(){this.each(function(){var a=$(this),b=a.data("paper");if(b==null){var d=function(){var a=$('<div style="width:50px;height:50px;overflow:hidden;position:absolute;top:-200px;left:-200px;"><div style="height:100px;"></div></div>');$("body").append(a);var b=$("div",a).innerWidth();a.css("overflow-y","scroll");var c=$("div",a).innerWidth();a.remove();return Math.max(b-c,17)}.call();a.before('<div class="scrollbarpaper-container" style="width:'+d+'px"><div class="scrollbarpaper-track"><div class="scrollbarpaper-drag"><div class="scrollbarpaper-drag-top"></div><div class="scrollbarpaper-drag-bottom"></div></div></div></div>');
b=a.prev();a.append('<div style="clear:both;"></div>');var c=$("> :first",a);c.css("overflow","hidden");a.data("barWidth",d);a.data("paper",b);a.data("track",$(".scrollbarpaper-track",b));a.data("drag",$(".scrollbarpaper-drag",b));a.data("dragTop",$(".scrollbarpaper-drag-top",b));a.data("dragBottom",$(".scrollbarpaper-drag-bottom",b));a.data("content",c);a.data("clearer",$("> :last",a));b.hide()}d=a.data("barWidth");a.data("track");var e=a.data("drag"),m=a.data("dragTop"),n=a.data("dragBottom"),c=
a.data("content"),g=a.data("clearer"),h=g.position().top-c.position().top;a.data("height",a.height());a.data("contentHeight",h);a.data("offset",a.offset());a.unbind();var f=a.height()/h;if(f<1){b.show();c.addClass("scrollbarpaper-visible");c.width(a.width()-c.innerWidth()+c.width()-d);b.height(a.height());d=a.offset();b.css("left",d.left+a.innerWidth()-b.width()+"px").css("top",d.top);var i=Math.max(Math.round(a.height()*f),m.height()+n.height());e.height(i);var j=function(){e.css("top",Math.min(Math.round(a.scrollTop()*
f),a.height()-i)+"px")};j();a.scroll(function(){j()});var k=function(){$("html").unbind("mousemove.scrollbarpaper")};e.mousedown(function(b){k();var c=b.pageY-e.offset().top;$("html").bind("mousemove.scrollbarpaper",function(b){a.scrollTop((b.pageY-a.offset().top-c)/f);return false}).mouseup(k);return false})}else a.unbind(),b.hide(),c.removeClass("scrollbarpaper-visible"),c.width(a.width()-c.innerWidth()+c.width());var l=function(){window.setTimeout(function(){var b=a.offset(),d=a.data("offset");
a.height()!=a.data("height")||g.position().top-c.position().top!=a.data("contentHeight")||b.top!=d.top||b.left!=d.left?a.scrollbarPaper():l()},200)};l()})}});
