window.log = function(){
  log.history = log.history || [];
  log.history.push(arguments);
  arguments.callee = arguments.callee.caller;
  if(this.console) console.log( Array.prototype.slice.call(arguments) );
};
(function(b){function c(){}for(var d="assert,count,debug,dir,dirxml,error,exception,group,groupCollapsed,groupEnd,info,log,markTimeline,profile,profileEnd,time,timeEnd,trace,warn".split(","),a;a=d.pop();)b[a]=b[a]||c})(window.console=window.console||{});

(function(a,b){var c;c=function(b){var d,e,f;e="ql",f=a.extend({},c.defaults,b),d={initialize:function(b){var c,d,e,g,h,i;b=a(b),b.find(".slide").length===0&&b.children().each(function(b,c){return a(c).addClass("slide")}),c=b.children(".slide"),b.find(".current").length===0&&(c.eq(0).addClass("current"),c.eq(1).addClass("future"),c.eq(c.length-1).addClass("past"));if(f.controls){e=function(c){if(c["class"]!=="play"||f.play!==!1)return a("<a>",c).appendTo(b)},i=f.controls;for(g=0,h=i.length;g<h;g++)d=i[g],e(d)}return b},advance:function(b,c){var d,e,f,g,h,i,j,k;d=a(b.target),e=a(".current",this),k=d.children(".slide").length,c?(h="future",j="past",g=a(".future",this).index()+1===k?0:a(".future",this).index()+1):(h="past",j="future",g=a(".past",this).index()===0?k-1:a(".past",this).index()-1),i=a("."+j),f=a("."+h),e.addClass(j).removeClass("current"),f.removeClass(h).addClass("current"),i.removeClass(j);return d.children(".slide").eq(g).addClass(h)}};return this.each(function(){var b;b=d.initialize(this),b.bind("next."+e,function(a){return d.advance.apply(this,[a,!0])}).bind("prev."+e,function(a){return d.advance.apply(this,[a,!1])}).delegate("a","click",function(c){var d;d=a(c.target),d.hasClass("back")&&b.trigger("prev."+e);if(d.hasClass("next"))return b.trigger("next."+e)});return this})},c.defaults={play:!1,controls:[{href:"#back","class":"back",text:"Back"},{href:"#next","class":"next",text:"Next"},{href:"#play","class":"play",text:"Play"}]};return a===jQuery?a.fn.quallery=c:b.quallery=c})(jQuery||$,window)

// $('img.photo',this).imagesLoaded(myFunction)
// execute a callback when all images have loaded.
// needed because .load() doesn't work on cached images

// mit license. paul irish. 2010.
// webkit fix from Oren Solomianik. thx!

// callback function is passed the last image to load
//   as an argument, and the collection as `this`


$.fn.imagesLoaded = function(callback){
  var elems = this.filter('img'),
      len   = elems.length,
      blank = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==";

  elems.bind('load',function(){
      if (--len <= 0 && this.src !== blank){ callback.call(elems,this); }
  }).each(function(){
     // cached images don't fire load sometimes, so we reset src.
     if (this.complete || this.complete === undefined){
        var src = this.src;
        // webkit hack from http://groups.google.com/group/jquery-dev/browse_thread/thread/eee6ab7b2da50e1f
        // data uri bypasses webkit log warning (thx doug jones)
        this.src = blank;
        this.src = src;
     }
  });
  return this;
};

