//Include all jquery plugins into closure to avoid any janky plugin causing issues
(function($){
	
/*
 * jquery.tools 1.1.2 - The missing UI library for the Web
 * 
 * [tools.scrollable-1.1.2, tools.overlay-1.1.2, tools.overlay.apple-1.0.1]
 * 
 * Copyright (c) 2009 Tero Piirainen
 * http://flowplayer.org/tools/
 *
 * Dual licensed under MIT and GPL 2+ licenses
 * http://www.opensource.org/licenses
 * 
 * -----
 * 
 * File generated: Thu Apr 08 21:49:43 GMT 2010
 */
(function(b){b.tools=b.tools||{};b.tools.scrollable={version:"1.1.2",conf:{size:5,vertical:false,speed:400,keyboard:true,keyboardSteps:null,disabledClass:"disabled",hoverClass:null,clickable:true,activeClass:"active",easing:"swing",loop:false,items:".items",item:null,prev:".prev",next:".next",prevPage:".prevPage",nextPage:".nextPage",api:false}};var c;function a(o,m){var r=this,p=b(this),d=!m.vertical,e=o.children(),k=0,i;if(!c){c=r}b.each(m,function(s,t){if(b.isFunction(t)){p.bind(s,t)}});if(e.length>1){e=b(m.items,o)}function l(t){var s=b(t);return m.globalNav?s:o.parent().find(t)}o.data("finder",l);var f=l(m.prev),h=l(m.next),g=l(m.prevPage),n=l(m.nextPage);b.extend(r,{getIndex:function(){return k},getClickIndex:function(){var s=r.getItems();return s.index(s.filter("."+m.activeClass))},getConf:function(){return m},getSize:function(){return r.getItems().size()},getPageAmount:function(){return Math.ceil(this.getSize()/m.size)},getPageIndex:function(){return Math.ceil(k/m.size)},getNaviButtons:function(){return f.add(h).add(g).add(n)},getRoot:function(){return o},getItemWrap:function(){return e},getItems:function(){return e.children(m.item)},getVisibleItems:function(){return r.getItems().slice(k,k+m.size)},seekTo:function(s,w,t){if(s<0){s=0}if(k===s){return r}if(b.isFunction(w)){t=w}if(s>r.getSize()-m.size){return m.loop?r.begin():this.end()}var u=r.getItems().eq(s);if(!u.length){return r}var v=b.Event("onBeforeSeek");p.trigger(v,[s]);if(v.isDefaultPrevented()){return r}if(w===undefined||b.isFunction(w)){w=m.speed}function x(){if(t){t.call(r,s)}p.trigger("onSeek",[s])}if(d){e.animate({left:-u.position().left},w,m.easing,x)}else{e.animate({top:-u.position().top},w,m.easing,x)}c=r;k=s;v=b.Event("onStart");p.trigger(v,[s]);if(v.isDefaultPrevented()){return r}f.add(g).toggleClass(m.disabledClass,s===0);h.add(n).toggleClass(m.disabledClass,s>=r.getSize()-m.size);return r},move:function(u,t,s){i=u>0;return this.seekTo(k+u,t,s)},next:function(t,s){return this.move(1,t,s)},prev:function(t,s){return this.move(-1,t,s)},movePage:function(w,v,u){i=w>0;var s=m.size*w;var t=k%m.size;if(t>0){s+=(w>0?-t:m.size-t)}return this.move(s,v,u)},prevPage:function(t,s){return this.movePage(-1,t,s)},nextPage:function(t,s){return this.movePage(1,t,s)},setPage:function(t,u,s){return this.seekTo(t*m.size,u,s)},begin:function(t,s){i=false;return this.seekTo(0,t,s)},end:function(t,s){i=true;var u=this.getSize()-m.size;return u>0?this.seekTo(u,t,s):r},reload:function(){p.trigger("onReload");return r},focus:function(){c=r;return r},click:function(u){var v=r.getItems().eq(u),s=m.activeClass,t=m.size;if(u<0||u>=r.getSize()){return r}if(t==1){if(m.loop){return r.next()}if(u===0||u==r.getSize()-1){i=(i===undefined)?true:!i}return i===false?r.prev():r.next()}if(t==2){if(u==k){u--}r.getItems().removeClass(s);v.addClass(s);return r.seekTo(u,time,fn)}if(!v.hasClass(s)){r.getItems().removeClass(s);v.addClass(s);var x=Math.floor(t/2);var w=u-x;if(w>r.getSize()-t){w=r.getSize()-t}if(w!==u){return r.seekTo(w)}}return r},bind:function(s,t){p.bind(s,t);return r},unbind:function(s){p.unbind(s);return r}});b.each("onBeforeSeek,onStart,onSeek,onReload".split(","),function(s,t){r[t]=function(u){return r.bind(t,u)}});f.addClass(m.disabledClass).click(function(){r.prev()});h.click(function(){r.next()});n.click(function(){r.nextPage()});if(r.getSize()<m.size){h.add(n).addClass(m.disabledClass)}g.addClass(m.disabledClass).click(function(){r.prevPage()});var j=m.hoverClass,q="keydown."+Math.random().toString().substring(10);r.onReload(function(){if(j){r.getItems().hover(function(){b(this).addClass(j)},function(){b(this).removeClass(j)})}if(m.clickable){r.getItems().each(function(s){b(this).unbind("click.scrollable").bind("click.scrollable",function(t){if(b(t.target).is("a")){return}return r.click(s)})})}if(m.keyboard){b(document).unbind(q).bind(q,function(t){if(t.altKey||t.ctrlKey){return}if(m.keyboard!="static"&&c!=r){return}var u=m.keyboardSteps;if(d&&(t.keyCode==37||t.keyCode==39)){r.move(t.keyCode==37?-u:u);return t.preventDefault()}if(!d&&(t.keyCode==38||t.keyCode==40)){r.move(t.keyCode==38?-u:u);return t.preventDefault()}return true})}else{b(document).unbind(q)}});r.reload()}b.fn.scrollable=function(d){var e=this.eq(typeof d=="number"?d:0).data("scrollable");if(e){return e}var f=b.extend({},b.tools.scrollable.conf);d=b.extend(f,d);d.keyboardSteps=d.keyboardSteps||d.size;this.each(function(){e=new a(b(this),d);b(this).data("scrollable",e)});return d.api?e:this}})(jQuery);

/* ------------------------------------------------------------------------
	Class: prettyPhoto
	Use: Lightbox clone for jQuery
	Author: Stephane Caron (http://www.no-margin-for-errors.com)
	Version: 2.4.3
------------------------------------------------------------------------- */

var $pp_pic_holder;var $ppt;(function(A){A.fn.prettyPhoto=function(W){var E=true;var K=false;var O=[];var D=0;var R;var S;var V;var Y;var F="image";var Z;var M=G();A(window).scroll(function(){M=G();C()});A(window).resize(function(){C();U()});A(document).keypress(function(c){switch(c.keyCode){case 37:if(D==1){return }N("previous");break;case 39:if(D==setCount){return }N("next");break;case 27:L();break}});W=jQuery.extend({animationSpeed:"normal",padding:40,opacity:0.8,showTitle:true,allowresize:true,counter_separator_label:"/",theme:"light_rounded",callback:function(){}},W);if(A.browser.msie&&A.browser.version==6){W.theme="light_square"}A(this).each(function(){var e=false;var d=false;var f=0;var c=0;O[O.length]=this;A(this).bind("click",function(){J(this);return false})});function J(c){Z=A(c);theRel=Z.attr("rel");galleryRegExp=/\[(?:.*)\]/;theGallery=galleryRegExp.exec(theRel);isSet=false;setCount=0;b();for(i=0;i<O.length;i++){if(A(O[i]).attr("rel").indexOf(theGallery)!=-1){setCount++;if(setCount>1){isSet=true}if(A(O[i]).attr("href")==Z.attr("href")){D=setCount;arrayPosition=i}}}X();$pp_pic_holder.find("p.currentTextHolder").text(D+W.counter_separator_label+setCount);C();A("#pp_full_res").hide();$pp_pic_holder.find(".pp_loaderIcon").show()}showimage=function(f,c,j,h,g,d,e){A(".pp_loaderIcon").hide();if(A.browser.opera){windowHeight=window.innerHeight;windowWidth=window.innerWidth}else{windowHeight=A(window).height();windowWidth=A(window).width()}$pp_pic_holder.find(".pp_content").animate({height:g},W.animationSpeed);projectedTop=M.scrollTop+((windowHeight/2)-(h/2));if(projectedTop<0){projectedTop=0+$pp_pic_holder.find(".ppt").height()}$pp_pic_holder.animate({top:projectedTop,left:((windowWidth/2)-(j/2)),width:j},W.animationSpeed,function(){$pp_pic_holder.width(j);$pp_pic_holder.find(".pp_hoverContainer,#fullResImage").height(c).width(f);$pp_pic_holder.find("#pp_full_res").fadeIn(W.animationSpeed,function(){A(this).find("object,embed").css("visibility","visible")});I();if(e){A("a.pp_expand,a.pp_contract").fadeIn(W.animationSpeed)}})};function I(){if(isSet&&F=="image"){$pp_pic_holder.find(".pp_hoverContainer").fadeIn(W.animationSpeed)}else{$pp_pic_holder.find(".pp_hoverContainer").hide()}$pp_pic_holder.find(".pp_details").fadeIn(W.animationSpeed);if(W.showTitle&&hasTitle){$ppt.css({top:$pp_pic_holder.offset().top-22,left:$pp_pic_holder.offset().left+(W.padding/2),display:"none"});$ppt.fadeIn(W.animationSpeed)}}function Q(){$pp_pic_holder.find(".pp_hoverContainer,.pp_details").fadeOut(W.animationSpeed);$pp_pic_holder.find("#pp_full_res object,#pp_full_res embed").css("visibility","hidden");$pp_pic_holder.find("#pp_full_res").fadeOut(W.animationSpeed,function(){A(".pp_loaderIcon").show();a()});$ppt.fadeOut(W.animationSpeed)}function N(c){if(c=="previous"){arrayPosition--;D--}else{arrayPosition++;D++}if(!E){E=true}Q();A("a.pp_expand,a.pp_contract").fadeOut(W.animationSpeed,function(){A(this).removeClass("pp_contract").addClass("pp_expand")})}function L(){$pp_pic_holder.find("object,embed").css("visibility","hidden");A("div.pp_pic_holder,div.ppt").fadeOut(W.animationSpeed);A("div.pp_overlay").fadeOut(W.animationSpeed,function(){A("div.pp_overlay,div.pp_pic_holder,div.ppt").remove();if(A.browser.msie&&A.browser.version==6){A("select").css("visibility","visible")}W.callback()});E=true}function H(){if(D==setCount){$pp_pic_holder.find("a.pp_next").css("visibility","hidden");$pp_pic_holder.find("a.pp_arrow_next").addClass("disabled").unbind("click")}else{$pp_pic_holder.find("a.pp_next").css("visibility","visible");$pp_pic_holder.find("a.pp_arrow_next.disabled").removeClass("disabled").bind("click",function(){N("next");return false})}if(D==1){$pp_pic_holder.find("a.pp_previous").css("visibility","hidden");$pp_pic_holder.find("a.pp_arrow_previous").addClass("disabled").unbind("click")}else{$pp_pic_holder.find("a.pp_previous").css("visibility","visible");$pp_pic_holder.find("a.pp_arrow_previous.disabled").removeClass("disabled").bind("click",function(){N("previous");return false})}$pp_pic_holder.find("p.currentTextHolder").text(D+W.counter_separator_label+setCount);Z=(isSet)?A(O[arrayPosition]):Z;b();if(Z.attr("title")){$pp_pic_holder.find(".pp_description").show().html(unescape(Z.attr("title")))}else{$pp_pic_holder.find(".pp_description").hide().text("")}if(Z.find("img").attr("alt")&&W.showTitle){hasTitle=true;$ppt.html(unescape(Z.find("img").attr("alt")))}else{hasTitle=false}}function P(d,c){hasBeenResized=false;T(d,c);imageWidth=d;imageHeight=c;windowHeight=A(window).height();windowWidth=A(window).width();if(((Y>windowWidth)||(V>windowHeight))&&E&&W.allowresize&&!K){hasBeenResized=true;notFitting=true;while(notFitting){if((Y>windowWidth)){imageWidth=(windowWidth-200);imageHeight=(c/d)*imageWidth}else{if((V>windowHeight)){imageHeight=(windowHeight-200);imageWidth=(d/c)*imageHeight}else{notFitting=false}}V=imageHeight;Y=imageWidth}T(imageWidth,imageHeight)}return{width:imageWidth,height:imageHeight,containerHeight:V,containerWidth:Y,contentHeight:R,contentWidth:S,resized:hasBeenResized}}function T(d,c){$pp_pic_holder.find(".pp_details").width(d).find(".pp_description").width(d-parseFloat($pp_pic_holder.find("a.pp_close").css("width")));R=c+$pp_pic_holder.find(".pp_details").height()+parseFloat($pp_pic_holder.find(".pp_details").css("marginTop"))+parseFloat($pp_pic_holder.find(".pp_details").css("marginBottom"));S=d;V=R+$pp_pic_holder.find(".ppt").height()+$pp_pic_holder.find(".pp_top").height()+$pp_pic_holder.find(".pp_bottom").height();Y=d+W.padding}function b(){if(Z.attr("href").match(/youtube\.com\/watch/i)){F="youtube"}else{if(Z.attr("href").indexOf(".mov")!=-1){F="quicktime"}else{if(Z.attr("href").indexOf(".swf")!=-1){F="flash"}else{if(Z.attr("href").indexOf("iframe")!=-1){F="iframe"}else{F="image"}}}}}function C(){if($pp_pic_holder){if($pp_pic_holder.size()==0){return }}else{return }if(A.browser.opera){windowHeight=window.innerHeight;windowWidth=window.innerWidth}else{windowHeight=A(window).height();windowWidth=A(window).width()}if(E){$pHeight=$pp_pic_holder.height();$pWidth=$pp_pic_holder.width();$tHeight=$ppt.height();projectedTop=(windowHeight/2)+M.scrollTop-($pHeight/2);if(projectedTop<0){projectedTop=0+$tHeight}$pp_pic_holder.css({top:projectedTop,left:(windowWidth/2)+M.scrollLeft-($pWidth/2)});$ppt.css({top:projectedTop-$tHeight,left:(windowWidth/2)+M.scrollLeft-($pWidth/2)+(W.padding/2)})}}function a(){H();if(F=="image"){imgPreloader=new Image();nextImage=new Image();if(isSet&&D>setCount){nextImage.src=A(O[arrayPosition+1]).attr("href")}prevImage=new Image();if(isSet&&O[arrayPosition-1]){prevImage.src=A(O[arrayPosition-1]).attr("href")}pp_typeMarkup='<img id="fullResImage" src="" />';$pp_pic_holder.find("#pp_full_res")[0].innerHTML=pp_typeMarkup;$pp_pic_holder.find(".pp_content").css("overflow","hidden");$pp_pic_holder.find("#fullResImage").attr("src",Z.attr("href"));imgPreloader.onload=function(){var c=P(imgPreloader.width,imgPreloader.height);imgPreloader.width=c.width;imgPreloader.height=c.height;showimage(imgPreloader.width,imgPreloader.height,c.containerWidth,c.containerHeight,c.contentHeight,c.contentWidth,c.resized)};imgPreloader.src=Z.attr("href")}else{movie_width=(parseFloat(B("width",Z.attr("href"))))?B("width",Z.attr("href")):"425";movie_height=(parseFloat(B("height",Z.attr("href"))))?B("height",Z.attr("href")):"344";if(movie_width.indexOf("%")!=-1||movie_height.indexOf("%")!=-1){movie_height=(A(window).height()*parseFloat(movie_height)/100)-100;movie_width=(A(window).width()*parseFloat(movie_width)/100)-100;parsentBased=true}else{movie_height=parseFloat(movie_height);movie_width=parseFloat(movie_width)}if(F=="quicktime"){movie_height+=13}correctSizes=P(movie_width,movie_height);if(F=="youtube"){pp_typeMarkup='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="'+correctSizes.width+'" height="'+correctSizes.height+'"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://www.youtube.com/v/'+B("v",Z.attr("href"))+'&rel=0" /><embed src="http://www.youtube.com/v/'+B("v",Z.attr("href"))+'&rel=0" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="'+correctSizes.width+'" height="'+correctSizes.height+'"></embed></object>'}else{if(F=="quicktime"){pp_typeMarkup='<object classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" codebase="http://www.apple.com/qtactivex/qtplugin.cab" height="'+correctSizes.height+'" width="'+correctSizes.width+'"><param name="src" value="'+Z.attr("href")+'"><param name="autoplay" value="true"><param name="type" value="video/quicktime"><embed src="'+Z.attr("href")+'" height="'+correctSizes.height+'" width="'+correctSizes.width+'" autoplay="true" type="video/quicktime" pluginspage="http://www.apple.com/quicktime/download/"></embed></object>'}else{if(F=="flash"){flash_vars=Z.attr("href");flash_vars=flash_vars.substring(Z.attr("href").indexOf("flashvars")+10,Z.attr("href").length);filename=Z.attr("href");filename=filename.substring(0,filename.indexOf("?"));pp_typeMarkup='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="'+correctSizes.width+'" height="'+correctSizes.height+'"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="'+filename+"?"+flash_vars+'" /><embed src="'+filename+"?"+flash_vars+'" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="'+correctSizes.width+'" height="'+correctSizes.height+'"></embed></object>'}else{if(F=="iframe"){movie_url=Z.attr("href");movie_url=movie_url.substr(0,movie_url.indexOf("iframe")-1);pp_typeMarkup='<iframe src ="'+movie_url+'" width="'+(correctSizes.width-10)+'" height="'+(correctSizes.height-10)+'" frameborder="no"></iframe>'}}}}$pp_pic_holder.find("#pp_full_res")[0].innerHTML=pp_typeMarkup;showimage(correctSizes.width,correctSizes.height,correctSizes.containerWidth,correctSizes.containerHeight,correctSizes.contentHeight,correctSizes.contentWidth,correctSizes.resized)}}function G(){if(self.pageYOffset){scrollTop=self.pageYOffset;scrollLeft=self.pageXOffset}else{if(document.documentElement&&document.documentElement.scrollTop){scrollTop=document.documentElement.scrollTop;scrollLeft=document.documentElement.scrollLeft}else{if(document.body){scrollTop=document.body.scrollTop;scrollLeft=document.body.scrollLeft}}}return{scrollTop:scrollTop,scrollLeft:scrollLeft}}function U(){A("div.pp_overlay").css({height:A(document).height(),width:A(window).width()})}function X(){toInject="";toInject+="<div class='pp_overlay'></div>";if(F=="image"){pp_typeMarkup='<img id="fullResImage" src="" />'}else{pp_typeMarkup=""}toInject+='<div class="pp_pic_holder"><div class="pp_top"><div class="pp_left"></div><div class="pp_middle"></div><div class="pp_right"></div></div><div class="pp_content"><a href="#" class="pp_expand" title="Expand the image">Expand</a><div class="pp_loaderIcon"></div><div class="pp_hoverContainer"><a class="pp_next" href="#">next</a><a class="pp_previous" href="#">previous</a></div><div id="pp_full_res">'+pp_typeMarkup+'</div><div class="pp_details group"><a class="pp_close" href="#">Close</a><p class="pp_description"></p><div class="pp_nav"><a href="#" class="pp_arrow_previous">Previous</a><p class="currentTextHolder">0'+W.counter_separator_label+'0</p><a href="#" class="pp_arrow_next">Next</a></div></div></div><div class="pp_bottom"><div class="pp_left"></div><div class="pp_middle"></div><div class="pp_right"></div></div></div>';toInject+='<div class="ppt"></div>';A("body").append(toInject);$pp_pic_holder=A(".pp_pic_holder");$ppt=A(".ppt");A("div.pp_overlay").css("height",A(document).height()).bind("click",function(){L()});$pp_pic_holder.css({opacity:0}).addClass(W.theme);A("a.pp_close").bind("click",function(){L();return false});A("a.pp_expand").bind("click",function(){$this=A(this);if($this.hasClass("pp_expand")){$this.removeClass("pp_expand").addClass("pp_contract");E=false}else{$this.removeClass("pp_contract").addClass("pp_expand");E=true}Q();$pp_pic_holder.find(".pp_hoverContainer, #pp_full_res, .pp_details").fadeOut(W.animationSpeed,function(){a()});return false});$pp_pic_holder.find(".pp_previous, .pp_arrow_previous").bind("click",function(){N("previous");return false});$pp_pic_holder.find(".pp_next, .pp_arrow_next").bind("click",function(){N("next");return false});$pp_pic_holder.find(".pp_hoverContainer").css({"margin-left":W.padding/2});if(!isSet){$pp_pic_holder.find(".pp_hoverContainer,.pp_nav").hide()}if(A.browser.msie&&A.browser.version==6){A("body").addClass("ie6");A("select").css("visibility","hidden")}A("div.pp_overlay").css("opacity",0).fadeTo(W.animationSpeed,W.opacity,function(){$pp_pic_holder.css("opacity",0).fadeIn(W.animationSpeed,function(){$pp_pic_holder.attr("style","left:"+$pp_pic_holder.css("left")+";top:"+$pp_pic_holder.css("top")+";");a()})})}};function B(E,D){E=E.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");var C="[\\?&]"+E+"=([^&#]*)";var G=new RegExp(C);var F=G.exec(D);if(F==null){return""}else{return F[1]}}})(jQuery);
	
})(window.jQuery);

//usage: log('inside coolFunc',this,arguments);
//http://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){
	 console.log( Array.prototype.slice.call(arguments) );
	}
};
