String.prototype.lambda=function(){var g=[],f=this,h=f.ECMAsplit(/\s*->\s*/m);if(h.length>1){while(h.length){f=h.pop();g=h.pop().split(/\s*,\s*|\s+/m);h.length&&h.push("(function("+g+"){return ("+f+")})")}}else{if(f.match(/\b_\b/)){g="_"}else{var d=f.match(/^\s*(?:[+*\/%&|\^\.=<>]|!=)/m),b=f.match(/[+\-*\/%&|\^\.=<>!]\s*$/m);if(d||b){if(d){g.push("$1");f="$1"+f}if(b){g.push("$2");f=f+"$2"}}else{var e=this.replace(/(?:\b[A-Z]|\.[a-zA-Z_$])[a-zA-Z_$\d]*|[a-zA-Z_$][a-zA-Z_$\d]*\s*:|this|arguments|'(?:[^'\\]|\\.)*'|"(?:[^"\\]|\\.)*"/g,"").match(/([a-z_$][a-z_$\d]*)/gi)||[];for(var c=0,a;a=e[c++];){g.indexOf(a)>=0||g.push(a)}}}}return new Function(g,"return ("+f+")")};String.prototype.lambda.cache=function(){var c=String.prototype,a={},d=c.lambda,b=function(){var e="#"+this;return a[e]||(a[e]=d.call(this))};b.cached=function(){};b.uncache=function(){c.lambda=d};c.lambda=b};String.prototype.apply=function(a,b){return this.toFunction().apply(a,b)};String.prototype.call=function(){return this.toFunction().apply(arguments[0],Array.prototype.slice.call(arguments,1))};String.prototype.toFunction=function(){var a=this;if(a.match(/\breturn\b/)){return new Function(this)}return this.lambda()};Function.prototype.toFunction=function(){return this};Function.toFunction=function(a){return a.toFunction()};String.prototype.ECMAsplit=("ab".split(/a*/).length>1?String.prototype.split:function(f,b){if(typeof b!="undefined"){throw"ECMAsplit: limit is unimplemented"}var a=this.split.apply(this,arguments),e=RegExp(f),d=e.lastIndex,c=e.exec(this);if(c&&c.index==0){a.unshift("")}e.lastIndex=d;return a});typeof window=="undefined"&&(window={});var Functional=window.Functional||{};Functional.install=function(b){var c=Functional,d=window;for(var a in c){a=="install"||a.charAt(0)=="_"||b&&a in b||{}[a]||(d[a]=c[a])}};Functional.map=function(e,f,c){e=Function.toFunction(e);var b=f.length,a=new Array(b);for(var d=0;d<b;d++){a[d]=e.apply(c,[f[d],d])}return a};Functional.invoke=function(a){var b=Array.slice(arguments,1);return function(c){return c[a].apply(c,Array.slice(arguments,1).concat(b))}};Functional.pluck=function(a){return function(b){return b[a]}};Functional.zip=function(){var d=Math.min.apply(null,Functional.map(".length",arguments));var c=new Array(d);for(var b=0;b<d;b++){var a=String(b);c[a]=Functional.map(pluck(a),arguments)}return c};Functional._startRecordingMethodChanges=function(c){var b={};for(var a in c){b[a]=c[a]}return{getChangedMethods:function(){var e={};for(var d in c){if(c[d]!=b[d]){e[d]=c[d]}}return e}}};Functional._attachMethodDelegates=function(a){for(var b in a){Functional[b]=Functional[b]||(function(c){var d=a[c];return function(e){return d.apply(Function.toFunction(e),Array.slice(arguments,1))}})(b)}};Functional.__initalFunctionState=Functional._startRecordingMethodChanges(Function.prototype);Function.prototype.curry=function(){var b=this;var a=Array.slice(arguments,0);return function(){return b.apply(this,a.concat(Array.slice(arguments,0)))}};Functional.I=function(a){return a};Functional.K=function(a){return function(){return a}};Functional.id=Functional.I;Functional.constfn=Functional.K;Functional._attachMethodDelegates(Functional.__initalFunctionState.getChangedMethods());delete Functional.__initalFunctionState;Function.toFunction=Function.toFunction||Functional.K;if(!Array.slice){Array.slice=(function(a){return function(b){return a.apply(b,a.call(arguments,1))}})(Array.prototype.slice)}jQuery.cookie=function(b,j,m){if(typeof j!="undefined"){m=m||{};if(j===null){j="";m.expires=-1}var e="";if(m.expires&&(typeof m.expires=="number"||m.expires.toUTCString)){var f;if(typeof m.expires=="number"){f=new Date();f.setTime(f.getTime()+(m.expires*24*60*60*1000))}else{f=m.expires}e="; expires="+f.toUTCString()}var l=m.path?"; path="+(m.path):"";var g=m.domain?"; domain="+(m.domain):"";var a=m.secure?"; secure":"";document.cookie=[b,"=",encodeURIComponent(j),e,l,g,a].join("")}else{var d=null;if(document.cookie&&document.cookie!=""){var k=document.cookie.split(";");for(var h=0;h<k.length;h++){var c=jQuery.trim(k[h]);if(c.substring(0,b.length+1)==(b+"=")){d=decodeURIComponent(c.substring(b.length+1));break}}}return d}};function loginPopup(){var a=$("#head-bar");$('<div id="login-popup"><a class="close-button"><span>×</span></a><form action="/member/login" method="post"><table><tbody><tr><th><label>Username:</label></th><td><input type="text" name="fval0"/></td></tr><tr><th><label>Password:</label></th><td><input type="password" name="fval1"/></td></tr></tbody></table><input type="submit" value="Login"/></form></div>').insertAfter(a).css("top",a.offset().top+a.outerHeight()).css("left",a.offset().left+a.outerWidth()-$("#login-popup").outerWidth()-3).find(".close-button").click(function(){$(this).parent().remove()})}$(document).ready(function(){Functional.install();try{var a=_gat._getTracker("UA-73938-2");a._trackPageview()}catch(b){}$("#login-button").click(function(){if($("#login-popup").length){$("#login-popup").remove()}else{loginPopup()}})});function object(b){function a(){}a.prototype=b;return new a()}function authTokenPart(c){var b=$.cookie("auth");if(b){var a=b.match(new RegExp(c+"=([^&]+)"));if(a){return a[1]}else{return null}}else{return null}}function memberName(){return authTokenPart("name")}function memberGravatar(){var a=authTokenPart("grav");if(a){return"http://www.gravatar.com/avatar.php?gravatar_id="+a+"&size=60&default=wavatar"}else{return null}};