debug=false;function get_stack_trace(e){var ANON,i,j=0;if(e.stack){return e.stack.replace(/(?:\n@:0)?\s+$/m,'').replace(/^\(/gm,'{anonymous}(').split("\n");}else if(window.opera){var lines=e.message.split("\n"),lineRE=/Line\s+(\d+).*?in\s+(http\S+)(?:.*?in\s+function\s+(\S+))?/i,len;ANON='{anonymous}';for(i=4,j=0,len=lines.length;i<len;i+=2){if(lineRE.test(lines[i])){lines[j++]=(RegExp.$3?RegExp.$3+'()@'+RegExp.$2+RegExp.$1:ANON+RegExp.$2+':'+RegExp.$1)+' -- '+lines[i+1].replace(/^\s+/,'');}}
lines.splice(j,lines.length-j);return lines;}else{var curr=arguments.callee.caller,FUNC='function',fnRE=/function\s*([\w\-$]+)?\s*\(/i,stack=[],fn,args;ANON="{anonymous}";var limit=20;while(curr&&(limit>0)){fn=fnRE.test(curr.toString())?RegExp.$1||ANON:ANON;args=stack.slice.call(curr['arguments']);i=args.length;while(i--){switch(typeof args[i]){case'string':args[i]='"'+args[i].replace(/"/g,'\\"')+'"';break;case'function':args[i]=FUNC;break;}}
stack[j++]=fn+'('+args.join()+')';curr=curr.caller;limit--;}
return stack;}}
(function($){function errorcatch(cb){var that=this;return function(){try{return cb.apply(this,arguments);}catch(e){if(e.pf_handled){throw e;}
try{var trace=get_stack_trace(e);$(document).trigger('error_trace',[e,trace]);}catch(e2){}
e.pf_handled=true;throw(e);}};}
function callbackWrap(object,property,wrapperFactory){var original=object[property];if(original!==undefined){object[property]=function(){var wrapped_args=$.map(arguments,function(n){return $.isFunction(n)?wrapperFactory(n):n;});if(original.apply){return original.apply(this,wrapped_args);}else{original(wrapped_args);}};}
return original;}
setInterval(function(){},100000);$(document).bind('error_trace',function(event,error,trace){if(Math.random()*100.0>10.0){return;}
try{var err_data={'url':document.location.href,'trace':trace.join("\n"),'error':error.toString()};try{$.extend(err_data,{'ua':navigator.userAgent,'build_id':navigator.buildID,'cookies_enabled':navigator.cookieEnabled,'platform':navigator.oscpu+' / '+navigator.platform});}catch(e){}
$.post('/a/xhr/log_js_error',err_data);}catch(e2){}});})(jQuery);timer=function(){var time=0;return{wrap:function(callback,name){name=name||'anon';return function(){var start=new Date().getTime();callback.apply(this,arguments);var end=new Date().getTime();var diff=(end-start);time=time+diff;if(window.console){var label=name+': ';var pad=[];for(var i=(36-label.length);i>0;i--){pad.push(' ');}
window.console.log(label+pad.join('')+diff+' ('+time+')');}};}};}();if(debug){(function(){var old_doc_ready=$.fn.ready;$.fn.ready=function(callback){old_doc_ready.call(this,timer.wrap(callback));};}());}
tb_pathToImage='http://c.pfcdn.net/static/images/loadingAnimation.gif?2bb50e';site_media_url='http://pfcdn.net/site/';static_media_url='http://pfcdn.net/static/';loading_image_url='http://a.pfcdn.net/static/images/xhrloading.gif?d0f693';delete_hover_url='http://a.pfcdn.net/static/images/cross_on.gif?facab1';if(!Array.indexOf){Array.prototype.indexOf=function(obj){for(var i=0;i<this.length;i++){if(this[i]==obj){return i;}}
return-1;};}
if(!window.Node){Node={ELEMENT_NODE:1,ATTRIBUTE_NODE:2,TEXT_NODE:3,CDATA_SECTION_NODE:4,ENTITY_REFERENCE_NODE:5,ENTITY_NODE:6,PROCESSING_INSTRUCTION_NODE:7,COMMENT_NODE:8,DOCUMENT_NODE:9,DOCUMENT_TYPE_NODE:10,DOCUMENT_FRAGMENT_NODE:11,NOTATION_NODE:12};}
jQuery.preloadImages=function(){for(var i=0;i<arguments.length;i++){jQuery("<img>").attr("src",arguments[i]);}};function randomString(string_length){var chars="0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";if(typeof string_length==='undefined'){string_length=5;}
var randomstring='';for(var i=0;i<string_length;i++){var rnum=Math.floor(Math.random()*chars.length);randomstring+=chars.substring(rnum,rnum+1);}
return randomstring;}
function array_equal(a,b){if(a==b){return true;}
if(!$.isArray(a)||!$.isArray(b)||a.length!=b.length){return false;}else{for(var i=0;i<a.length;i++){if(a[i]!=b[i]){return false;}}
return true;}}
(function(){var features={page:{},global:[]};jQuery.feature=function(body_class,callback){if(!features.page[body_class]){features.page[body_class]=[];}
features.page[body_class].push(callback);};jQuery.site_feature=function(name,callback){features.global.push({name:name,func:callback});};jQuery.feature_enabled=function(feature){return $('body').hasClass(feature);};var run_feature=function(name,cb){if(debug){timer.wrap(cb,name)();}else{cb();}};$(function(){var body=$('body');var body_class;for(body_class in features.page){if(body.hasClass(body_class)){var fs=features.page[body_class];for(var i=0;i<fs.length;i++){run_feature(body_class,fs[i]);}}}
$.each(features.global,function(){run_feature(this.name,this.func);});});}());$.site_feature('preload_images',function(){$.preloadImages(loading_image_url,delete_hover_url);});window.features={};$.feature('f_make_cycler',function(){make_cycler=function(){var c=0;var args=arguments;return function(){var val=args[c];c=(c+1)%args.length;return val;};};});String.prototype.capitalize=function(){return this.charAt(0).toUpperCase()+this.slice(1);};function make_loading_anim(){return $('<img src="'+loading_image_url+'" alt="loading">');}
function add_loading_animation(rel_pos,element){var anim=null;if(rel_pos==='after'||rel_pos==='before'||rel_pos==='append'||rel_pos==='prepend'){if(element.length<1){return;}
anim=make_loading_anim();element[rel_pos](anim);return anim;}else if(rel_pos.side){var pos=null;if(rel_pos.side==='left'||rel_pos.side==='right'){pos=element.offset_side(rel_pos.side,rel_pos.left,rel_pos.top);}else if(rel_pos.side==='absolute'){pos=rel_pos;}else{throw('Bad side argument: '+rel_pos.side+'.  Allowed are "left", "right", and "absolute".');}
anim=make_loading_anim().css({position:'absolute',top:pos.top,left:pos.left});anim.appendTo("body");return anim;}else{throw('Bad rel_pos: '+rel_pos+'.  Allowed are "before", "after", "append", "prepend" and an absolute offset object.');}}
(function(){function liveConvert(type,selector){return["live",type,selector.replace(/\./g,"`").replace(/ /g,"&")].join(".");}
$.live=function(selector,type,data,fn){if(type==='mouseover'){throw("Live mouseover has a bug in jquery 1.4.1 -- it breaks in some browsers "+"when you also use live mouseenter.  Please try to avoid it; use mouseenter instead.");}
if(jQuery.isFunction(data)){fn=data;data=undefined;}
jQuery(document).bind(liveConvert(type,selector),{data:data,selector:selector,live:type},fn);};var fb_handler=function(type,event){event=window.event?window.event:event;var target=event.srcElement||event.target;var dat=$(document).data(type+'_live_events');for(var i=0;i<dat.length;i++){var hand=dat[i];if($(target).is(hand.selector)){return hand.callback.apply($(target),[event]);}}};var livefocusblur=function(event,selector,callback){var dat=$(document).data(event+'_live_events');if(dat===undefined){dat=[];$(document).data(event+'_live_events',dat);}
dat.push({selector:selector,callback:callback});var wrapper_func=function(e){return fb_handler(event,e);};document[event=='focus'?'onfocusin':'onfocusout']=wrapper_func;if(document.addEventListener){document.addEventListener(event,wrapper_func,true);}};$.livefocus=function(selector,callback){return livefocusblur('focus',selector,callback);};$.liveblur=function(selector,callback){return livefocusblur('blur',selector,callback);};$.livehover=function(selector,over_fn,out_fn){$.live(selector,'mouseenter',over_fn);$.live(selector,'mouseleave',out_fn);};})();$.extend({ajaxPost:function(options){var dataType=options.dataType||'json';var anim=null;var loading_anim=options.loading_anim;if(loading_anim){anim=add_loading_animation(loading_anim.pos,loading_anim.element);}
$.ajax({url:options.url,data:options.data,dataType:dataType,type:'POST',timeout:options.timeout||10000,error:function(xhr,textStatus,errorThrown){if(options.error){options.error(xhr,textStatus,errorThrown);}},success:function(data,textStatus){if(options.success){options.success(data,textStatus);}},complete:function(xhr,textStatus){if(anim){anim.remove();}
if(options.complete){options.complete();}}});},trim_ws:function(st){return st.replace(/^\s*|\s*$/g,'');},set_query_param:function(url,name,value){url=url+'';name=escape(name);var pair=name+'='+escape(value);if(url.search(new RegExp('\\?.*\\b'+name+'\\b'))>=0){return url.replace(new RegExp('\\b'+name+'\\b(=[^&]*)'),pair);}else{return url+(url.search('\\?')>=0?'&':'?')+pair;}},render_string:function(string,args,missing_ok){return string.replace(/%\((\w+)\)s/g,function(match,varname){var s=args[varname];if(s===undefined){if(missing_ok){s='';}else{throw"No such variable '"+varname+"' when rendering template.";}}
return s;});}});$.fn.extend({offset_center:function(){if(this[0]){var off=this.offset();return{top:off.top+(this.height()/2),left:off.left+(this.width()/2)};}},offset_side:function(direction,extra_x,extra_y){if(this[0]){var pos=this.offset();if(direction==='right'){pos.left+=this.width();}else if(direction==='left'){}else{throw"Invalid direction: "+direction;}
if(extra_x){pos.left+=extra_x;}
if(extra_y){pos.top+=extra_y;}
return pos;}},check:function(mode){mode=mode||'on';return this.each(function(){switch(mode){case'on':this.checked=true;break;case'off':this.checked=false;break;case'toggle':this.checked=!this.checked;break;}});},copy_to_form_and_submit:function(form){if(this[0]){form=$(form);var holder=$('#control-holding-area',form);if(holder.length===0){form.append('<div id="control-holding-area" style="display: none;"></div>');holder=$('#control-holding-area',form);}else{holder.empty();}
var elements=form[0].elements;this.each(function(){var el=$(this);if(el.attr('type')=='file'){el.appendTo(holder);}else{holder.append('<input type="hidden" name="'+el.attr('name')+'" value="'+el.val()+'" />');}});form.submit();}},lock:function(){this.attr('readonly',1).css({'background-color':'#CCC'});},unlock:function(){this.removeAttr('readonly').css('background','white');}});function getOffset(o){var top=0,left=0;while(o.offsetParent){top+=o.offsetTop||0;left+=o.offsetLeft||0;o=o.offsetParent;}
return[left,top];}
jQuery.fn.paginate=function(callback){var block=$(this);block.find('.pagination_block').prepend('<img style="padding: 5px;" src="http://b.pfcdn.net/static/images/xhrloading_off.gif?05d10e" />').append('<img style="padding: 5px;" class="loader-image" src="http://b.pfcdn.net/static/images/xhrloading_off.gif?05d10e" />');block.find('.pagination_block').find('a').click(function(){block.find('.loader-image').attr('src',loading_image_url);var url=$(this).attr('href');if(url.indexOf('?')>=0){url=url+'&xhr=true';}else{url=url+'?xhr=true';}
$.get(url,function(content){block.html(content);if(typeof(callback)=='undefined'){block.paginate();}else{block.paginate(callback);callback(block);}});return false;});};$.fn.addOption=function()
{var add=function(el,v,t,sO)
{var option=document.createElement("option");option.value=v;option.text=t;var o=el.options;var oL=o.length;if(!el.cache)
{el.cache={};for(var i=0;i<oL;i++)
{el.cache[o[i].value]=i;}}
if(typeof el.cache[v]=="undefined"){el.cache[v]=oL;}
el.options[el.cache[v]]=option;if(sO)
{option.selected=true;}};var a=arguments;if(a.length===0){return this;}
var sO=true;var m=false;var items,v,t;if(typeof a[0]=="object"){m=true;items=a[0];}
if(a.length>=2)
{if(typeof a[1]=="boolean"){sO=a[1];}else if(typeof a[2]=="boolean"){sO=a[2];}
if(!m)
{v=a[0];t=a[1];}}
this.each(function()
{if(this.nodeName.toLowerCase()!="select"){return;}
if(m){for(var item in items){add(this,item,items[item],sO);}}else{add(this,v,t,sO);}});return this;};jQuery.toggleEditor=function(id){if(tinyMCE.getInstanceById(id)===null){tinyMCE.execCommand('mceAddControl',false,id);}else{tinyMCE.execCommand('mceRemoveControl',false,id);}};jQuery.advancedEditor=function(id){tinyMCE.execCommand('mceAddControl',false,id);};function open_thickbox_iframe(url,params,width,height){var cb_params=$.extend({},params,{cache_buster:randomString()});function tb_params(width,height){return $.param({TB_iframe:'true'})+'&'+
$.param({height:height,width:width});}
var full_url=url+'?'+
$.param(cb_params)+'&'+tb_params(width,height);tb_show('',full_url,false);}
function standard_popup(url,w,h,scr,res){var win=window.open(url,'g4mer','toolbar=no, width='+w+', height='+h+', directories=no, status=no, scrollbars='+scr+', resizable='+res+', menubar=no, location=no, left=30, top=50');if(window.focus){win.focus();}}
$.site_feature('popups',function(){$.live("a[rel=external]",'click',function(){standard_popup($(this).attr('href'),400,500);return false;});});$.site_feature('default_text',function(e){$(".default_text textarea, .default_text input, .default_text").focus(function(e){var $this=$(this);$this.val('').unbind('focus');$this.removeClass('default_text').parent().removeClass('default_text');});});function login_register_box(tb_id,form_id){var that={id:tb_id,reg_box:$('#'+tb_id),form:$('#'+form_id),reg_form:$('#tb-registration-form')};that.show=function(){tb_show('Register now!','#TB_inline?height=460&amp;width=855&amp;inlineId='+tb_id,false);};that.before_submit=function(){that.show();return false;};$.each(['method','action','enctype','poop'],function(){var name=this.toString();var val=that.form.attr(name);if(val!==undefined){that.reg_form.attr(name,val);}});that.form.bind('submit',that.before_submit);$('.submit-action').click(function(){that.form.find('input, select').copy_to_form_and_submit(that.reg_form);});$('#return_to_editing').click(tb_remove);that.switch_to_login_form=function(){$('input[name=credentials-type]').val('existing');$('#email-field').css('display','none');$('#login-option').css('display','none');$('#create-option').css('display','block');return false;};that.switch_to_create_form=function(){$('input[name=credentials-type]').val('create');$('#email-field').css('display','block');$('#login-option').css('display','block');$('#create-option').css('display','none');return false;};$('#switch-to-login-form').click(that.switch_to_login_form);$('#switch-to-create-form').click(that.switch_to_create_form);var stt=that.reg_form.find('input[name="straight_to_thickbox"]');if(stt.val()){var cred=$('input[name=credentials-type]').val();if(cred=='existing'){that.switch_to_login_form();}else{that.switch_to_create_form();}
that.show();}else{that.switch_to_create_form();}
return that;}
$.site_feature('js_new_window',function(){$.live('a.js_new_window','click',function(){window.open(this.href);return false;});});function close_edit_post_area(link,post_content,post_id){var newdiv=$('#edit_post-'+post_id);newdiv.hide();var opera_force_reflow=newdiv.height();post_content.show();link.data('open',false);}
function open_edit_post_area(link,post_content,post_id,submit_url){post_content.hide();var newdiv=$('#edit_post-'+post_id);if(!newdiv.length){post_content.parent().hide();var orig_val_input=$('input[name=original_value]',post_content);var orig_title_input=$('input[name=original_title]',post_content);var editor_id='js_post_editor-'+post_id;var title_html='';var title_editor_id='';var has_title=false;if(orig_title_input.size()>0){has_title=true;title_editor_id='js_title_editor-'+post_id;title_html='<textarea id="'+title_editor_id+'" rows="1" cols="40">'+orig_title_input.val()+'</textarea>';}
var content_html='<textarea id="'+editor_id+'" rows="4" cols="40">'+orig_val_input.val()+'</textarea>';var save='<input type="image" class="post_submit_button" src="http://b.pfcdn.net/static/images/save_changes_button.gif?e426c2" />';var newdiv_html='<div id="edit_post-'+post_id+'" class="edit_post">'+title_html+content_html+save+'</div>';post_content.after(newdiv_html);newdiv=$('#edit_post-'+post_id);post_content.parent().show();tinyMCE.execCommand('mceAddControl',false,editor_id);var post_submit_button=$(".post_submit_button",newdiv);var submit_changes;submit_changes=function(){post_submit_button.unbind();$('.xhr_status',newdiv).remove();var loading_html_image='<img class="xhr_status" src="http://a.pfcdn.net/static/images/xhrloading.gif?d0f693" />';post_submit_button.after(loading_html_image);var te=tinyMCE.get(editor_id);if(te){te.save();}
var content_body=$('#'+editor_id).val();var data={'body':content_body,'id':post_id};if(has_title){data.title=$('#'+title_editor_id).val();}
var reset=function(){$('.xhr_status',newdiv).remove();post_submit_button.click(submit_changes);};var handle_error=function(message){reset();post_submit_button.after('<span class="xhr_status">'+message+'</span>');};$.ajax({type:"POST",url:submit_url,data:data,dataType:'json',success:function(response,textStatus){if(response.status=='success'){var content_to_replace=post_content.find('.thread_post_body');if(content_to_replace.length===0){content_to_replace=post_content;}
content_to_replace.html(response.body_html);link.data('open',false);reset();}else{handle_error(response.errors.body||'Bad form data');}
close_edit_post_area(link,post_content,post_id);},error:function(xhr,textStatus,errorThrown){handle_error('Oops! That\'s broken.');}});return false;};post_submit_button.click(submit_changes);}
newdiv.show();link.data('open',true);}$.fn.extend({do_once:function(task){var me=this.eq(0);if(me.data('_do_once_lock')){return false;}
me.data('_do_once_lock',true);return task();},reset_after:function(callback){var me=this.eq(0);var wrapper=function(){try{callback.apply(this,arguments);me.removeData('_do_once_lock');}catch(e){me.removeData('_do_once_lock');throw e;}};return wrapper;}});FV=function(){var Field=function(args){$.extend(this,args);if(args.elem===undefined||args.elem===null||args.elem.length!==1){throw new Error("A Field object requires exactly one jQuery DOM element, passed as property <elem>");}
if(!$.isFunction(args.check)){throw new Error("A Field object requires a <check> method, like: "+"function (field) { if (ok) return message; else throw {message: 'booo'}; }");}};var BoundField=function(form,field){this.form=form;this.field=field;this.status=null;this.touched=false;};BoundField.prototype.set_status=function(status,message){this.status=status;this.message=message;if(this.status){this.form.set_message(this.field,message,'ok');}else{this.form.set_message(this.field,message,'error');}};var Form=function(options,fields){var me=this;$.extend(me,options);if(options.on_change_status===undefined){throw new Error("Form option on_change_status is required: function (form_is_valid:bool) {}");}
me.valid=false;me.fields={};me.bound_fields={};var checkme=function(){me.check();};var touchme=function(){me.bound_fields[$(this).data('VF.fieldname')].touched=true;};for(name in fields){var f=fields[name];var bf=new BoundField(me,f);me.fields[name]=f;me.bound_fields[name]=bf;f.elem.data('VF.fieldname',name);f.elem.bind('change keyup',touchme);f.elem.bind(f.events,checkme);}
me.check();};Form.prototype.check=function(){for(name in this.bound_fields){var bf=this.bound_fields[name];if(!bf.touched&&bf.field.elem.is('input[type=text], input[type=password], input[type=checkbox]')&&bf.field.elem.val()){bf.touched=true;}
if(!bf.touched){continue;}
try{bf.set_status(true,bf.field.check(bf.field));}
catch(e){bf.set_status(false,e.message);}}
var valid=true;for(name in this.bound_fields){var status=this.bound_fields[name].status;if(!status){valid=false;break;}}
this.valid=valid;this.on_change_status(this.valid);};return{'Form':Form,'Field':Field};}();(function($){var notify;$.growl=function(title,message,image,priority){notify(title,message,image,priority);};$.growl.version="1.0.0-b2";function create(rebuild){var instance=document.getElementById('growlDock');if(!instance||rebuild){instance=$(jQuery.growl.settings.dockTemplate).attr('id','growlDock').addClass('growl');if(jQuery.growl.settings.defaultStylesheet){$('head').append('<link rel="stylesheet" type="text/css" href="'+jQuery.growl.settings.defaultStylesheet+'" />');}}else{instance=$(instance);}
return instance;}
function r(text,expr,val){while(expr.test(text)){text=text.replace(expr,val);}
return text;}
notify=function(title,message,image,priority){var instance=create();var html=jQuery.growl.settings[image+'Template'];if(!html){html=jQuery.growl.settings.noticeTemplate;}
if(typeof(html)=='object'){html=$(html).html();}
html=r(html,/%message%/,(message?message:''));html=r(html,/%title%/,(title?title:''));html=r(html,/%image%/,(image?image:jQuery.growl.settings.defaultImage));if(priority){jQuery.each(priority,function(k,v){html=html.replace('%'+k+'%',v);});}
var notice=$(html).hide().css(jQuery.growl.settings.noticeCss).fadeIn(jQuery.growl.settings.notice);$.growl.settings.noticeDisplay(notice);instance.append(notice);$('a[rel="close"]',notice).click(function(){jQuery.growl.settings.noticeRemove(notice,function(){notice.remove();});});if($.growl.settings.displayTimeout>0){setTimeout(function(){jQuery.growl.settings.noticeRemove(notice,function(){notice.remove();});},jQuery.growl.settings.displayTimeout);}};$.growl.settings={dockTemplate:'<div></div>',dockCss:{position:'fixed',top:'10px',right:'10px',width:'300px',zIndex:50000},noticeTemplate:'<div class="notice">'+' <h3 style="margin-top: 15px">%title%</h3>'+' <p>%message%</p>'+'</div>',noticeCss:{opacity:0.75,backgroundColor:'#333333',color:'#ffffff'},noticeDisplay:function(notice){notice.css({'opacity':'0'}).fadeIn(jQuery.growl.settings.noticeFadeTimeout);},noticeRemove:function(notice,callback){notice.animate({opacity:'0',height:'0px'},{duration:jQuery.growl.settings.noticeFadeTimeout,complete:callback});},noticeFadeTimeout:'slow',displayTimeout:3500,defaultImage:'growl.jpg',defaultStylesheet:null,noticeElement:function(el){$.growl.settings.noticeTemplate=$(el);}};})(jQuery);(function($){$.fn.lazyload=function(options){var settings={threshold:0,failurelimit:0,event:"scroll",effect:"show",container:window};if(options){$.extend(settings,options);}
var elements=this;if("scroll"==settings.event){$(settings.container).bind("scroll",function(event){var counter=0;elements.each(function(){if($.abovethetop(this,settings)||$.leftofbegin(this,settings)){}else if(!$.belowthefold(this,settings)&&!$.rightoffold(this,settings)){$(this).trigger("appear");}else{if(counter++>settings.failurelimit){return false;}}});var temp=$.grep(elements,function(element){return!element.loaded;});elements=$(temp);});}
this.each(function(){var self=this;if(undefined==$(self).attr("original")){$(self).attr("original",$(self).attr("src"));}
if("scroll"!=settings.event||undefined==$(self).attr("src")||settings.placeholder==$(self).attr("src")||($.abovethetop(self,settings)||$.leftofbegin(self,settings)||$.belowthefold(self,settings)||$.rightoffold(self,settings))){if(settings.placeholder){$(self).attr("src",settings.placeholder);}
self.loaded=false;}else{self.loaded=true;}
$(self).one("appear",function(){if(!this.loaded){$("<img />").bind("load",function(){$(self).hide().attr("src",$(self).attr("original"))
[settings.effect](settings.effectspeed);self.loaded=true;}).attr("src",$(self).attr("original"));};});if("scroll"!=settings.event){$(self).bind(settings.event,function(event){if(!self.loaded){$(self).trigger("appear");}});}});$(settings.container).trigger(settings.event);return this;};$.belowthefold=function(element,settings){if(settings.container===undefined||settings.container===window){var fold=$(window).height()+$(window).scrollTop();}else{var fold=$(settings.container).offset().top+$(settings.container).height();}
return fold<=$(element).offset().top-settings.threshold;};$.rightoffold=function(element,settings){if(settings.container===undefined||settings.container===window){var fold=$(window).width()+$(window).scrollLeft();}else{var fold=$(settings.container).offset().left+$(settings.container).width();}
return fold<=$(element).offset().left-settings.threshold;};$.abovethetop=function(element,settings){if(settings.container===undefined||settings.container===window){var fold=$(window).scrollTop();}else{var fold=$(settings.container).offset().top;}
return fold>=$(element).offset().top+settings.threshold+$(element).height();};$.leftofbegin=function(element,settings){if(settings.container===undefined||settings.container===window){var fold=$(window).scrollLeft();}else{var fold=$(settings.container).offset().left;}
return fold>=$(element).offset().left+settings.threshold+$(element).width();};$.extend($.expr[':'],{"below-the-fold":"$.belowthefold(a, {threshold : 0, container: window})","above-the-fold":"!$.belowthefold(a, {threshold : 0, container: window})","right-of-fold":"$.rightoffold(a, {threshold : 0, container: window})","left-of-fold":"!$.rightoffold(a, {threshold : 0, container: window})"});})(jQuery);jQuery.preload=function(items,finished){var remaining=items.length;var cb=function(){if((--remaining===0)&&finished){finished();}};for(var i=0;i<items.length;++i){var img=new Image();img.onload=cb;img.onerror=cb;img.src=items[i];}};Signal=function(providing_args){this.receivers=[];this.connect=function(callback){this.receivers.push(callback);};this.send=function(sender,args){for(var i=0;i<providing_args.length;i++){if(typeof args[providing_args[i]]==='undefined'){throw"Cannot send signal -- missing arg: "+providing_args[i];}}
for(var j=0;j<this.receivers.length;j++){this.receivers[j].apply(sender,[args]);}};return this;};Signal.debug=function(data){if(window.console){window.console.log('Signal sent to',this,':',data);}};signals={};