Added automatic TOC; improved CSS borders. * Closes #18.
@@ -322,16 +322,6 @@ Even if you're particularly devoted to one of the languages mentioned above, it is normal to be curious about what else is out there. As the end of the year approaches, I find myself thinking about learning – or at least become acquainted with – some less known, more experimental, programming languages.
I was originally planning on learning another programming language as a New Year's Resolution, which is quite common among programmers. The most difficult task turned out to be _choosing_ a particular language: there are so many out there which makes it very hard to decide. This article deals with ten possible candidates, and it's far from being an exhaustive list. The programming languages described henceforth are very different from each other, but they all have one thing in common: they all stimulate my curiosity in their own, very different ways. -* "Haskell":#haskell -* "Erlang":#erlang -* "Io":#io -* "PLT Scheme":#plt-scheme -* "Clojure":#clojure -* "Squeak":#squeak -* "OCaml":#ocaml -* "Factor":#factor -* "Lua":#lua -* "Scala":#scala h3(#haskell). Haskell
@@ -4,7 +4,7 @@ @import definitions
.highlight +code_font - +double_border + +default_border padding: 5px margin: 5px 0 overflow: auto
@@ -6,8 +6,8 @@ !red = #A4282D
!gray = #555 // Mixins -=double_border - border = 3px "double" !red +=default_border + border = 1px "dashed" !gray =button_img(!img) background: url(../images/theme/buttons/#{!img}.png)
@@ -176,7 +176,7 @@ .tag
font-weight: bold .project-data - border-left = 3px "double" !red + border-left = 1px "dashed" !gray padding: 0 1em 1em 1.5em margin: 0 0 0 1.5em height: 300px@@ -196,6 +196,41 @@ border = 1px "solid" !gray
background: #fff padding: 5px 0 +#toc + float: right + width: 250px + padding: 10px + margin: 0 0 10px 15px + +default_border + + ol + + li + margin-left: 0.5 + + li + margin-left: 1em + + li + margin-left: 1.5em + + li + margin-left: 2em + + li + margin-left: 2.5em + + li + line-height: 1.2em + +#toctitle + font-variant: small-caps + font-weight: bold + +.toc-top-link + font-size: 13px + margin-left: 15px + #content .article-buttons li font-family: "Arial", "Sans-serif" font-size: 0.8em@@ -225,7 +260,7 @@ background: #121212
padding: 5px table - +double_border + +default_border table &#timeline, &#taglist@@ -235,11 +270,11 @@ tr, td, th
padding: 5px td - border-left = 1px "solid" !red - border-right = 1px "solid" !red + border-left = 1px "dashed" !gray + border-right = 1px "dashed" !gray th - border = 1px "solid" !red + +default_border #taglist, #timeline width: 100%
@@ -1,187 +1,776 @@
----- ----- -$(function(){$( -'#gallery a' -).lightBox();});function delicious_counter(data){var posts=data[0].total_posts;if (!posts) return;var text=posts+ -" bookmarks" -;if (posts==1){text=posts+ -" bookmark" -};$( -'#delcounter' -).text(text);} -$(document).ready(function(){$( -'.timeago' -).timeago(); -var first_paragraph=$( -'#content-body p:first' +(function($){$.timeago=function(timestamp){if (timestamp instanceof Date) return inWords(timestamp);else if (typeof timestamp== +"string" +) return inWords($.timeago.parse(timestamp));else return inWords($.timeago.parse($(timestamp).attr( +"title" +)));};var $t=$.timeago;$.extend($.timeago,{settings:{refreshMillis:60000,allowFuture:false,strings:{prefixAgo:null,prefixFromNow:null,suffixAgo: +"ago" +,suffixFromNow: +"from now" +,ago:null, +fromNow:null, +seconds: +"less than a minute" +,minute: +"about a minute" +,minutes: +"%d minutes" +,hour: +"about an hour" +,hours: +"about %d hours" +,day: +"a day" +,days: +"%d days" +,month: +"about a month" +,months: +"%d months" +,year: +"about a year" +,years: +"%d years" +}},inWords:function(distanceMillis){var $l=this.settings.strings;var prefix=$l.prefixAgo;var suffix=$l.suffixAgo||$l.ago;if (this.settings.allowFuture){if (distanceMillis<0){prefix=$l.prefixFromNow;suffix=$l.suffixFromNow||$l.fromNow;} +distanceMillis=Math.abs(distanceMillis);} +var seconds=distanceMillis / 1000;var minutes=seconds / 60;var hours=minutes / 60;var days=hours / 24;var years=days / 365;var words=seconds<45&&substitute($l.seconds,Math.round(seconds))||seconds<90&&substitute($l.minute,1)||minutes<45&&substitute($l.minutes,Math.round(minutes))||minutes<90&&substitute($l.hour,1)||hours<24&&substitute($l.hours,Math.round(hours))||hours<48&&substitute($l.day,1)||days<30&&substitute($l.days,Math.floor(days))||days<60&&substitute($l.month,1)||days<365&&substitute($l.months,Math.floor(days / 30))||years<2&&substitute($l.year,1)||substitute($l.years,Math.floor(years));return $.trim([prefix,words,suffix].join( +" " +));},parse:function(iso8601){var s=$.trim(iso8601);s=s.replace( +/-/, +"/" +).replace( +/-/, +"/" +);s=s.replace( +/T/, +" " +).replace( +/Z/, +" UTC" +);s=s.replace( +/([\+-]\d\d)\:?(\d\d)/, +" $1$2" ); -if (!first_paragraph) return false;var t=first_paragraph.html();var first_letter=t.substr(0,1);if (first_letter.match( -/[a-z]/i)){first_paragraph.html(t.slice(1,t.length));$( -'<span></span>' -).addClass( -'dropcap' -).html(first_letter).prependTo(first_paragraph);}});----------function format_date(d){return $.timeago(Date.parse(d));} -function get_json_data(uri,options){$.getJSON(uri,function(data){var list=$( -"<ul></ul>" -);for (var i=0;i<options.max;i++){switch(options.element){case -"#backtype" -:var item=backtype_entry(data.comments[i]) -break;case -"#delicious" -:var item=delicious_entry(data[i]) -break;case -"#twitter" -:var item=twitter_entry(data[i]) -break;case -"#github" -:var item=github_entry(data.commits[i],options.repo) +return new Date(s);}});$.fn.timeago=function(){var self=this;self.each(refresh);var $s=$t.settings;if ($s.refreshMillis>0){setInterval(function(){self.each(refresh);},$s.refreshMillis);} +return self;};function refresh(){var date=$t.parse(this.title);if (!isNaN(date)){$(this).text(inWords(date));} +return this;} +function inWords(date){return $t.inWords(distance(date));} +function distance(date){return (new Date().getTime()-date.getTime());} +function substitute(stringOrFunction,value){var string=$.isFunction(stringOrFunction)?stringOrFunction(value):stringOrFunction;return string.replace( +/%d/i,value);} +document.createElement( +'abbr' +);})(jQuery);---------- +Date.CultureInfo={name: +"en-US" +,englishName: +"English (United States)" +,nativeName: +"English (United States)" +,dayNames:[ +"Sunday" +, +"Monday" +, +"Tuesday" +, +"Wednesday" +, +"Thursday" +, +"Friday" +, +"Saturday" +],abbreviatedDayNames:[ +"Sun" +, +"Mon" +, +"Tue" +, +"Wed" +, +"Thu" +, +"Fri" +, +"Sat" +],shortestDayNames:[ +"Su" +, +"Mo" +, +"Tu" +, +"We" +, +"Th" +, +"Fr" +, +"Sa" +],firstLetterDayNames:[ +"S" +, +"M" +, +"T" +, +"W" +, +"T" +, +"F" +, +"S" +],monthNames:[ +"January" +, +"February" +, +"March" +, +"April" +, +"May" +, +"June" +, +"July" +, +"August" +, +"September" +, +"October" +, +"November" +, +"December" +],abbreviatedMonthNames:[ +"Jan" +, +"Feb" +, +"Mar" +, +"Apr" +, +"May" +, +"Jun" +, +"Jul" +, +"Aug" +, +"Sep" +, +"Oct" +, +"Nov" +, +"Dec" +],amDesignator: +"AM" +,pmDesignator: +"PM" +,firstDayOfWeek:0,twoDigitYearMax:2029,dateElementOrder: +"mdy" +,formatPatterns:{shortDate: +"M/d/yyyy" +,longDate: +"dddd, MMMM dd, yyyy" +,shortTime: +"h:mm tt" +,longTime: +"h:mm:ss tt" +,fullDateTime: +"dddd, MMMM dd, yyyy h:mm:ss tt" +,sortableDateTime: +"yyyy-MM-ddTHH:mm:ss" +,universalSortableDateTime: +"yyyy-MM-dd HH:mm:ssZ" +,rfc1123: +"ddd, dd MMM yyyy HH:mm:ss GMT" +,monthDay: +"MMMM dd" +,yearMonth: +"MMMM, yyyy" +},regexPatterns:{jan: +/^jan(uary)?/i,feb: +/^feb(ruary)?/i,mar: +/^mar(ch)?/i,apr: +/^apr(il)?/i,may: +/^may/i,jun: +/^jun(e)?/i,jul: +/^jul(y)?/i,aug: +/^aug(ust)?/i,sep: +/^sep(t(ember)?)?/i,oct: +/^oct(ober)?/i,nov: +/^nov(ember)?/i,dec: +/^dec(ember)?/i,sun: +/^su(n(day)?)?/i,mon: +/^mo(n(day)?)?/i,tue: +/^tu(e(s(day)?)?)?/i,wed: +/^we(d(nesday)?)?/i,thu: +/^th(u(r(s(day)?)?)?)?/i,fri: +/^fr(i(day)?)?/i,sat: +/^sa(t(urday)?)?/i,future: +/^next/i,past: +/^last|past|prev(ious)?/i,add: +/^(\+|aft(er)?|from|hence)/i,subtract: +/^(\-|bef(ore)?|ago)/i,yesterday: +/^yes(terday)?/i,today: +/^t(od(ay)?)?/i,tomorrow: +/^tom(orrow)?/i,now: +/^n(ow)?/i,millisecond: +/^ms|milli(second)?s?/i,second: +/^sec(ond)?s?/i,minute: +/^mn|min(ute)?s?/i,hour: +/^h(our)?s?/i,week: +/^w(eek)?s?/i,month: +/^m(onth)?s?/i,day: +/^d(ay)?s?/i,year: +/^y(ear)?s?/i,shortMeridian: +/^(a|p)/i,longMeridian: +/^(a\.?m?\.?|p\.?m?\.?)/i,timezone: +/^((e(s|d)t|c(s|d)t|m(s|d)t|p(s|d)t)|((gmt)?\s*(\+|\-)\s*\d\d\d\d?)|gmt|utc)/i,ordinalSuffix: +/^\s*(st|nd|rd|th)/i,timeContext: +/^\s*(\:|a(?!u|p)|p)/i},timezones:[{name: +"UTC" +,offset: +"-000" +},{name: +"GMT" +,offset: +"-000" +},{name: +"EST" +,offset: +"-0500" +},{name: +"EDT" +,offset: +"-0400" +},{name: +"CST" +,offset: +"-0600" +},{name: +"CDT" +,offset: +"-0500" +},{name: +"MST" +,offset: +"-0700" +},{name: +"MDT" +,offset: +"-0600" +},{name: +"PST" +,offset: +"-0800" +},{name: +"PDT" +,offset: +"-0700" +}]};(function(){var $D=Date,$P=$D.prototype,$C=$D.CultureInfo,p=function(s,l){if(!l){l=2;} +return( +"000" ++s).slice(l*-1);};$P.clearTime=function(){this.setHours(0);this.setMinutes(0);this.setSeconds(0);this.setMilliseconds(0);return this;};$P.setTimeToNow=function(){var n=new Date();this.setHours(n.getHours());this.setMinutes(n.getMinutes());this.setSeconds(n.getSeconds());this.setMilliseconds(n.getMilliseconds());return this;};$D.today=function(){return new Date().clearTime();};$D.compare=function(date1,date2){if(isNaN(date1)||isNaN(date2)){throw new Error(date1+ +" - " ++date2);}else if(date1 instanceof Date&&date2 instanceof Date){return(date1<date2)?-1:(date1>date2)?1:0;}else{throw new TypeError(date1+ +" - " ++date2);}};$D.equals=function(date1,date2){return(date1.compareTo(date2)===0);};$D.getDayNumberFromName=function(name){var n=$C.dayNames,m=$C.abbreviatedDayNames,o=$C.shortestDayNames,s=name.toLowerCase();for(var i=0;i<n.length;i++){if(n[i].toLowerCase()==s||m[i].toLowerCase()==s||o[i].toLowerCase()==s){return i;}} +return-1;};$D.getMonthNumberFromName=function(name){var n=$C.monthNames,m=$C.abbreviatedMonthNames,s=name.toLowerCase();for(var i=0;i<n.length;i++){if(n[i].toLowerCase()==s||m[i].toLowerCase()==s){return i;}} +return-1;};$D.isLeapYear=function(year){return((year%4===0&&year%100!==0)||year%400===0);};$D.getDaysInMonth=function(year,month){return[31,($D.isLeapYear(year)?29:28),31,30,31,30,31,31,30,31,30,31][month];};$D.getTimezoneAbbreviation=function(offset){var z=$C.timezones,p;for(var i=0;i<z.length;i++){if(z[i].offset===offset){return z[i].name;}} +return null;};$D.getTimezoneOffset=function(name){var z=$C.timezones,p;for(var i=0;i<z.length;i++){if(z[i].name===name.toUpperCase()){return z[i].offset;}} +return null;};$P.clone=function(){return new Date(this.getTime());};$P.compareTo=function(date){return Date.compare(this,date);};$P.equals=function(date){return Date.equals(this,date||new Date());};$P.between=function(start,end){return this.getTime()>=start.getTime()&&this.getTime()<=end.getTime();};$P.isAfter=function(date){return this.compareTo(date||new Date())===1;};$P.isBefore=function(date){return(this.compareTo(date||new Date())===-1);};$P.isToday=function(){return this.isSameDay(new Date());};$P.isSameDay=function(date){return this.clone().clearTime().equals(date.clone().clearTime());};$P.addMilliseconds=function(value){this.setMilliseconds(this.getMilliseconds()+value);return this;};$P.addSeconds=function(value){return this.addMilliseconds(value*1000);};$P.addMinutes=function(value){return this.addMilliseconds(value*60000);};$P.addHours=function(value){return this.addMilliseconds(value*3600000);};$P.addDays=function(value){this.setDate(this.getDate()+value);return this;};$P.addWeeks=function(value){return this.addDays(value*7);};$P.addMonths=function(value){var n=this.getDate();this.setDate(1);this.setMonth(this.getMonth()+value);this.setDate(Math.min(n,$D.getDaysInMonth(this.getFullYear(),this.getMonth())));return this;};$P.addYears=function(value){return this.addMonths(value*12);};$P.add=function(config){if(typeof config== +"number" +){this._orient=config;return this;} +var x=config;if(x.milliseconds){this.addMilliseconds(x.milliseconds);} +if(x.seconds){this.addSeconds(x.seconds);} +if(x.minutes){this.addMinutes(x.minutes);} +if(x.hours){this.addHours(x.hours);} +if(x.weeks){this.addWeeks(x.weeks);} +if(x.months){this.addMonths(x.months);} +if(x.years){this.addYears(x.years);} +if(x.days){this.addDays(x.days);} +return this;};var $y,$m,$d;$P.getWeek=function(){var a,b,c,d,e,f,g,n,s,w;$y=(!$y)?this.getFullYear():$y;$m=(!$m)?this.getMonth()+1:$m;$d=(!$d)?this.getDate():$d;if($m<=2){a=$y-1;b=(a +/4|0)-(a/100|0)+(a +/400|0);c=((a-1)/4|0)-((a-1) +/100|0)+((a-1)/400|0);s=b-c;e=0;f=$d-1+(31*($m-1));}else{a=$y;b=(a +/4|0)-(a/100|0)+(a +/400|0);c=((a-1)/4|0)-((a-1) +/100|0)+((a-1)/400|0);s=b-c;e=s+1;f=$d+((153*($m-3)+2)/5)+58+s;} +g=(a+b)%7;d=(f+g-e)%7;n=(f+3-d)|0;if(n<0){w=53-((g-s) +/5|0);}else if(n>364+s){w=1;}else{w=(n/7|0)+1;} +$y=$m=$d=null;return w;};$P.getISOWeek=function(){$y=this.getUTCFullYear();$m=this.getUTCMonth()+1;$d=this.getUTCDate();return p(this.getWeek());};$P.setWeek=function(n){return this.moveToDayOfWeek(1).addWeeks(n-this.getWeek());};$D._validate=function(n,min,max,name){if(typeof n== +"undefined" +){return false;}else if(typeof n!= +"number" +){throw new TypeError(n+ +" is not a Number." +);}else if(n<min||n>max){throw new RangeError(n+ +" is not a valid value for " ++name+ +"." +);} +return true;};$D.validateMillisecond=function(value){return $D._validate(value,0,999, +"millisecond" +);};$D.validateSecond=function(value){return $D._validate(value,0,59, +"second" +);};$D.validateMinute=function(value){return $D._validate(value,0,59, +"minute" +);};$D.validateHour=function(value){return $D._validate(value,0,23, +"hour" +);};$D.validateDay=function(value,year,month){return $D._validate(value,1,$D.getDaysInMonth(year,month), +"day" +);};$D.validateMonth=function(value){return $D._validate(value,0,11, +"month" +);};$D.validateYear=function(value){return $D._validate(value,0,9999, +"year" +);};$P.set=function(config){if($D.validateMillisecond(config.millisecond)){this.addMilliseconds(config.millisecond-this.getMilliseconds());} +if($D.validateSecond(config.second)){this.addSeconds(config.second-this.getSeconds());} +if($D.validateMinute(config.minute)){this.addMinutes(config.minute-this.getMinutes());} +if($D.validateHour(config.hour)){this.addHours(config.hour-this.getHours());} +if($D.validateMonth(config.month)){this.addMonths(config.month-this.getMonth());} +if($D.validateYear(config.year)){this.addYears(config.year-this.getFullYear());} +if($D.validateDay(config.day,this.getFullYear(),this.getMonth())){this.addDays(config.day-this.getDate());} +if(config.timezone){this.setTimezone(config.timezone);} +if(config.timezoneOffset){this.setTimezoneOffset(config.timezoneOffset);} +if(config.week&&$D._validate(config.week,0,53, +"week" +)){this.setWeek(config.week);} +return this;};$P.moveToFirstDayOfMonth=function(){return this.set({day:1});};$P.moveToLastDayOfMonth=function(){return this.set({day:$D.getDaysInMonth(this.getFullYear(),this.getMonth())});};$P.moveToNthOccurrence=function(dayOfWeek,occurrence){var shift=0;if(occurrence>0){shift=occurrence-1;} +else if(occurrence===-1){this.moveToLastDayOfMonth();if(this.getDay()!==dayOfWeek){this.moveToDayOfWeek(dayOfWeek,-1);} +return this;} +return this.moveToFirstDayOfMonth().addDays(-1).moveToDayOfWeek(dayOfWeek,+1).addWeeks(shift);};$P.moveToDayOfWeek=function(dayOfWeek,orient){var diff=(dayOfWeek-this.getDay()+7*(orient||+1))%7;return this.addDays((diff===0)?diff+=7*(orient||+1):diff);};$P.moveToMonth=function(month,orient){var diff=(month-this.getMonth()+12*(orient||+1))%12;return this.addMonths((diff===0)?diff+=12*(orient||+1):diff);};$P.getOrdinalNumber=function(){return Math.ceil((this.clone().clearTime()-new Date(this.getFullYear(),0,1)) +/86400000)+1;};$P.getTimezone=function(){return $D.getTimezoneAbbreviation(this.getUTCOffset());};$P.setTimezoneOffset=function(offset){var here=this.getTimezoneOffset(),there=Number(offset)*-6/10;return this.addMinutes(there-here);};$P.setTimezone=function(offset){return this.setTimezoneOffset($D.getTimezoneOffset(offset));};$P.hasDaylightSavingTime=function(){return(Date.today().set({month:0,day:1}).getTimezoneOffset()!==Date.today().set({month:6,day:1}).getTimezoneOffset());};$P.isDaylightSavingTime=function(){return(this.hasDaylightSavingTime()&&new Date().getTimezoneOffset()===Date.today().set({month:6,day:1}).getTimezoneOffset());};$P.getUTCOffset=function(){var n=this.getTimezoneOffset()*-10/6,r;if(n<0){r=(n-10000).toString();return r.charAt(0)+r.substr(2);}else{r=(n+10000).toString();return +"+" ++r.substr(1);}};$P.getElapsed=function(date){return(date||new Date())-this;};if(!$P.toISOString){$P.toISOString=function(){function f(n){return n<10? +'0' ++n:n;} +return +'"' ++this.getUTCFullYear()+ +'-' ++f(this.getUTCMonth()+1)+ +'-' ++f(this.getUTCDate())+ +'T' ++f(this.getUTCHours())+ +':' ++f(this.getUTCMinutes())+ +':' ++f(this.getUTCSeconds())+ +'Z"' +;};} +$P._toString=$P.toString;$P.toString=function(format){var x=this;if(format&&format.length==1){var c=$C.formatPatterns;x.t=x.toString;switch(format){case +"d" +:return x.t(c.shortDate);case +"D" +:return x.t(c.longDate);case +"F" +:return x.t(c.fullDateTime);case +"m" +:return x.t(c.monthDay);case +"r" +:return x.t(c.rfc1123);case +"s" +:return x.t(c.sortableDateTime);case +"t" +:return x.t(c.shortTime);case +"T" +:return x.t(c.longTime);case +"u" +:return x.t(c.universalSortableDateTime);case +"y" +:return x.t(c.yearMonth);}} +var ord=function(n){switch(n*1){case 1:case 21:case 31:return +"st" +;case 2:case 22:return +"nd" +;case 3:case 23:return +"rd" +;default:return +"th" +;}};return format?format.replace( +/(\\)?(dd?d?d?|MM?M?M?|yy?y?y?|hh?|HH?|mm?|ss?|tt?|S)/g,function(m){if(m.charAt(0)=== +"\\" +){return m.replace( +"\\" +, +"" +);} +x.h=x.getHours;switch(m){case +"hh" +:return p(x.h()<13?(x.h()===0?12:x.h()):(x.h()-12));case +"h" +:return x.h()<13?(x.h()===0?12:x.h()):(x.h()-12);case +"HH" +:return p(x.h());case +"H" +:return x.h();case +"mm" +:return p(x.getMinutes());case +"m" +:return x.getMinutes();case +"ss" +:return p(x.getSeconds());case +"s" +:return x.getSeconds();case +"yyyy" +:return p(x.getFullYear(),4);case +"yy" +:return p(x.getFullYear());case +"dddd" +:return $C.dayNames[x.getDay()];case +"ddd" +:return $C.abbreviatedDayNames[x.getDay()];case +"dd" +:return p(x.getDate());case +"d" +:return x.getDate();case +"MMMM" +:return $C.monthNames[x.getMonth()];case +"MMM" +:return $C.abbreviatedMonthNames[x.getMonth()];case +"MM" +:return p((x.getMonth()+1));case +"M" +:return x.getMonth()+1;case +"t" +:return x.h()<12?$C.amDesignator.substring(0,1):$C.pmDesignator.substring(0,1);case +"tt" +:return x.h()<12?$C.amDesignator:$C.pmDesignator;case +"S" +:return ord(x.getDate());default:return m;}}):this._toString();};}());(function(){var $D=Date,$P=$D.prototype,$C=$D.CultureInfo,$N=Number.prototype;$P._orient=+1;$P._nth=null;$P._is=false;$P._same=false;$P._isSecond=false;$N._dateElement= +"day" +;$P.next=function(){this._orient=+1;return this;};$D.next=function(){return $D.today().next();};$P.last=$P.prev=$P.previous=function(){this._orient=-1;return this;};$D.last=$D.prev=$D.previous=function(){return $D.today().last();};$P.is=function(){this._is=true;return this;};$P.same=function(){this._same=true;this._isSecond=false;return this;};$P.today=function(){return this.same().day();};$P.weekday=function(){if(this._is){this._is=false;return(!this.is().sat()&&!this.is().sun());} +return false;};$P.at=function(time){return(typeof time=== +"string" +)?$D.parse(this.toString( +"d" +)+ +" " ++time):this.set(time);};$N.fromNow=$N.after=function(date){var c={};c[this._dateElement]=this;return((!date)?new Date():date.clone()).add(c);};$N.ago=$N.before=function(date){var c={};c[this._dateElement]=this*-1;return((!date)?new Date():date.clone()).add(c);};var dx=( +"sunday monday tuesday wednesday thursday friday saturday" +).split( +/\s/),mx=( +"january february march april may june july august september october november december" +).split( +/\s/),px=( +"Millisecond Second Minute Hour Day Week Month Year" +).split( +/\s/),pxf=( +"Milliseconds Seconds Minutes Hours Date Week Month FullYear" +).split( +/\s/),nth=( +"final first second third fourth fifth" +).split( +/\s/),de;$P.toObject=function(){var o={};for(var i=0;i<px.length;i++){o[px[i].toLowerCase()]=this[ +"get" ++pxf[i]]();} +return o;};$D.fromObject=function(config){config.week=null;return Date.today().set(config);};var df=function(n){return function(){if(this._is){this._is=false;return this.getDay()==n;} +if(this._nth!==null){if(this._isSecond){this.addSeconds(this._orient*-1);} +this._isSecond=false;var ntemp=this._nth;this._nth=null;var temp=this.clone().moveToLastDayOfMonth();this.moveToNthOccurrence(n,ntemp);if(this>temp){throw new RangeError($D.getDayName(n)+ +" does not occur " ++ntemp+ +" times in the month of " ++$D.getMonthName(temp.getMonth())+ +" " ++temp.getFullYear()+ +"." +);} +return this;} +return this.moveToDayOfWeek(n,this._orient);};};var sdf=function(n){return function(){var t=$D.today(),shift=n-t.getDay();if(n===0&&$C.firstDayOfWeek===1&&t.getDay()!==0){shift=shift+7;} +return t.addDays(shift);};};for(var i=0;i<dx.length;i++){$D[dx[i].toUpperCase()]=$D[dx[i].toUpperCase().substring(0,3)]=i;$D[dx[i]]=$D[dx[i].substring(0,3)]=sdf(i);$P[dx[i]]=$P[dx[i].substring(0,3)]=df(i);} +var mf=function(n){return function(){if(this._is){this._is=false;return this.getMonth()===n;} +return this.moveToMonth(n,this._orient);};};var smf=function(n){return function(){return $D.today().set({month:n,day:1});};};for(var j=0;j<mx.length;j++){$D[mx[j].toUpperCase()]=$D[mx[j].toUpperCase().substring(0,3)]=j;$D[mx[j]]=$D[mx[j].substring(0,3)]=smf(j);$P[mx[j]]=$P[mx[j].substring(0,3)]=mf(j);} +var ef=function(j){return function(){if(this._isSecond){this._isSecond=false;return this;} +if(this._same){this._same=this._is=false;var o1=this.toObject(),o2=(arguments[0]||new Date()).toObject(),v= +"" +,k=j.toLowerCase();for(var m=(px.length-1);m>-1;m--){v=px[m].toLowerCase();if(o1[v]!=o2[v]){return false;} +if(k==v){break;}} +return true;} +if(j.substring(j.length-1)!= +"s" +){j+= +"s" +;} +return this[ +"add" ++j](this._orient);};};var nf=function(n){return function(){this._dateElement=n;return this;};};for(var k=0;k<px.length;k++){de=px[k].toLowerCase();$P[de]=$P[de+ +"s" +]=ef(px[k]);$N[de]=$N[de+ +"s" +]=nf(de);} +$P._ss=ef( +"Second" +);var nthfn=function(n){return function(dayOfWeek){if(this._same){return this._ss(arguments[0]);} +if(dayOfWeek||dayOfWeek===0){return this.moveToNthOccurrence(dayOfWeek,n);} +this._nth=n;if(n===2&&(dayOfWeek===undefined||dayOfWeek===null)){this._isSecond=true;return this.addSeconds(this._orient);} +return this;};};for(var l=0;l<nth.length;l++){$P[nth[l]]=(l===0)?nthfn(-1):nthfn(l);}}());(function(){Date.Parsing={Exception:function(s){this.message= +"Parse error at '" ++s.substring(0,10)+ +" ...'" +;}};var $P=Date.Parsing;var _=$P.Operators={rtoken:function(r){return function(s){var mx=s.match(r);if(mx){return([mx[0],s.substring(mx[0].length)]);}else{throw new $P.Exception(s);}};},token:function(s){return function(s){return _.rtoken(new RegExp( +"^\s*" ++s+ +"\s*" +))(s);};},stoken:function(s){return _.rtoken(new RegExp( +"^" ++s));},until:function(p){return function(s){var qx=[],rx=null;while(s.length){try{rx=p.call(this,s);}catch(e){qx.push(rx[0]);s=rx[1];continue;} break;} - item.appendTo(list);} -list.appendTo(options.element).fadeIn(1000);});} -function backtype_entry(comment){var c=$( -"<li></li>" -).addClass( -'feed-item' -);var dt=$( -"<span></span>" -).addClass( -'feed-item-date' -).html(format_date(comment.comment.date+ -" GMT" -)+ -":" -);var tx=$( -"<span>» </span>" -).addClass( -'feed-item-text' -).append($( -'<a></a>' -).attr( -'href' -,comment.comment.url).html(comment.post.title));c.append(dt);c.append(tx);return c} -function twitter_entry(tweet){var it=$( -"<li></li>" -).addClass( -'feed-item' -);var content=tweet.text -.replace( -/^h3rald:/, -'' -) -.replace( -/((http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%& -/~\+#])?)/g, -'<a href="$1">$1</a>' -) -.replace( -/@([a-zA-Z1-9_]*)/g, -'<a href="http://www.twitter.com/$1">@$1</a>' -) -.replace( -/#([a-zA-Z1-9_]*)/g, -'<a href="http://www.twitter.com/search?q=%23$1">#$1</a>' -) -var dt=$( -"<span></span>" -).addClass( -'feed-item-date' -).html(format_date(tweet.created_at)+ -":" -);var tx=$( -"<span>» </span>" -).addClass( -'feed-item-text' -).html(content);it.append(dt);it.append(tx);return it} -function delicious_entry(bookmark){var it=$( -"<li></li>" -).addClass( -'feed-item' -);var content= -"<a href='" -+bookmark.u+ -"'>" -+bookmark.d+ -"</a>" -;content+= -"<br />tags: " -;var categories=Array();for (i=0;i<bookmark.t.length;i++){categories[i]= -"<a href='http://delicious.com/h3rald/" -+bookmark.t[i]+ -"'>" -+bookmark.t[i]+ -"</a>" +return[qx,s];};},many:function(p){return function(s){var rx=[],r=null;while(s.length){try{r=p.call(this,s);}catch(e){return[rx,s];} +rx.push(r[0]);s=r[1];} +return[rx,s];};},optional:function(p){return function(s){var r=null;try{r=p.call(this,s);}catch(e){return[null,s];} +return[r[0],r[1]];};},not:function(p){return function(s){try{p.call(this,s);}catch(e){return[null,s];} +throw new $P.Exception(s);};},ignore:function(p){return p?function(s){var r=null;r=p.call(this,s);return[null,r[1]];}:null;},product:function(){var px=arguments[0],qx=Array.prototype.slice.call(arguments,1),rx=[];for(var i=0;i<px.length;i++){rx.push(_.each(px[i],qx));} +return rx;},cache:function(rule){var cache={},r=null;return function(s){try{r=cache[s]=(cache[s]||rule.call(this,s));}catch(e){r=cache[s]=e;} +if(r instanceof $P.Exception){throw r;}else{return r;}};},any:function(){var px=arguments;return function(s){var r=null;for(var i=0;i<px.length;i++){if(px[i]==null){continue;} +try{r=(px[i].call(this,s));}catch(e){r=null;} +if(r){return r;}} +throw new $P.Exception(s);};},each:function(){var px=arguments;return function(s){var rx=[],r=null;for(var i=0;i<px.length;i++){if(px[i]==null){continue;} +try{r=(px[i].call(this,s));}catch(e){throw new $P.Exception(s);} +rx.push(r[0]);s=r[1];} +return[rx,s];};},all:function(){var px=arguments,_=_;return _.each(_.optional(px));},sequence:function(px,d,c){d=d||_.rtoken( +/^\s*/);c=c||null;if(px.length==1){return px[0];} +return function(s){var r=null,q=null;var rx=[];for(var i=0;i<px.length;i++){try{r=px[i].call(this,s);}catch(e){break;} +rx.push(r[0]);try{q=d.call(this,r[1]);}catch(ex){q=null;break;} +s=q[1];} +if(!r){throw new $P.Exception(s);} +if(q){throw new $P.Exception(q[1]);} +if(c){try{r=c.call(this,r[1]);}catch(ey){throw new $P.Exception(r[1]);}} +return[rx,(r?r[1]:s)];};},between:function(d1,p,d2){d2=d2||d1;var _fn=_.each(_.ignore(d1),p,_.ignore(d2));return function(s){var rx=_fn.call(this,s);return[[rx[0][0],r[0][2]],rx[1]];};},list:function(p,d,c){d=d||_.rtoken( +/^\s*/);c=c||null;return(p instanceof Array?_.each(_.product(p.slice(0,-1),_.ignore(d)),p.slice(-1),_.ignore(c)):_.each(_.many(_.each(p,_.ignore(d))),px,_.ignore(c)));},set:function(px,d,c){d=d||_.rtoken( +/^\s*/);c=c||null;return function(s){var r=null,p=null,q=null,rx=null,best=[[],s],last=false;for(var i=0;i<px.length;i++){q=null;p=null;r=null;last=(px.length==1);try{r=px[i].call(this,s);}catch(e){continue;} +rx=[[r[0]],r[1]];if(r[1].length>0&&!last){try{q=d.call(this,r[1]);}catch(ex){last=true;}}else{last=true;} +if(!last&&q[1].length===0){last=true;} +if(!last){var qx=[];for(var j=0;j<px.length;j++){if(i!=j){qx.push(px[j]);}} +p=_.set(qx,d).call(this,q[1]);if(p[0].length>0){rx[0]=rx[0].concat(p[0]);rx[1]=p[1];}} +if(rx[1].length<best[1].length){best=rx;} +if(best[1].length===0){break;}} +if(best[0].length===0){return best;} +if(c){try{q=c.call(this,best[1]);}catch(ey){throw new $P.Exception(best[1]);} +best[1]=q[1];} +return best;};},forward:function(gr,fname){return function(s){return gr[fname].call(this,s);};},replace:function(rule,repl){return function(s){var r=rule.call(this,s);return[repl,r[1]];};},process:function(rule,fn){return function(s){var r=rule.call(this,s);return[fn.call(this,r[0]),r[1]];};},min:function(min,rule){return function(s){var rx=rule.call(this,s);if(rx[0].length<min){throw new $P.Exception(s);} +return rx;};}};var _generator=function(op){return function(){var args=null,rx=[];if(arguments.length>1){args=Array.prototype.slice.call(arguments);}else if(arguments[0]instanceof Array){args=arguments[0];} +if(args){for(var i=0,px=args.shift();i<px.length;i++){args.unshift(px[i]);rx.push(op.apply(null,args));args.shift();return rx;}}else{return op.apply(null,arguments);}};};var gx= +"optional not ignore cache" +.split( +/\s/);for(var i=0;i<gx.length;i++){_[gx[i]]=_generator(_[gx[i]]);} +var _vector=function(op){return function(){if(arguments[0]instanceof Array){return op.apply(null,arguments[0]);}else{return op.apply(null,arguments);}};};var vx= +"each any all" +.split( +/\s/);for(var j=0;j<vx.length;j++){_[vx[j]]=_vector(_[vx[j]]);}}());(function(){var $D=Date,$P=$D.prototype,$C=$D.CultureInfo;var flattenAndCompact=function(ax){var rx=[];for(var i=0;i<ax.length;i++){if(ax[i]instanceof Array){rx=rx.concat(flattenAndCompact(ax[i]));}else{if(ax[i]){rx.push(ax[i]);}}} +return rx;};$D.Grammar={};$D.Translator={hour:function(s){return function(){this.hour=Number(s);};},minute:function(s){return function(){this.minute=Number(s);};},second:function(s){return function(){this.second=Number(s);};},meridian:function(s){return function(){this.meridian=s.slice(0,1).toLowerCase();};},timezone:function(s){return function(){var n=s.replace( +/[^\d\+\-]/g, +"" +);if(n.length){this.timezoneOffset=Number(n);}else{this.timezone=s.toLowerCase();}};},day:function(x){var s=x[0];return function(){this.day=Number(s.match( +/\d+/)[0]);};},month:function(s){return function(){this.month=(s.length==3)? +"jan feb mar apr may jun jul aug sep oct nov dec" +.indexOf(s)/4:Number(s)-1;};},year:function(s){return function(){var n=Number(s);this.year=((s.length>2)?n:(n+(((n+2000)<$C.twoDigitYearMax)?2000:1900)));};},rday:function(s){return function(){switch(s){case +"yesterday" +:this.days=-1;break;case +"tomorrow" +:this.days=1;break;case +"today" +:this.days=0;break;case +"now" +:this.days=0;this.now=true;break;}};},finishExact:function(x){x=(x instanceof Array)?x:[x];for(var i=0;i<x.length;i++){if(x[i]){x[i].call(this);}} +var now=new Date();if((this.hour||this.minute)&&(!this.month&&!this.year&&!this.day)){this.day=now.getDate();} +if(!this.year){this.year=now.getFullYear();} +if(!this.month&&this.month!==0){this.month=now.getMonth();} +if(!this.day){this.day=1;} +if(!this.hour){this.hour=0;} +if(!this.minute){this.minute=0;} +if(!this.second){this.second=0;} +if(this.meridian&&this.hour){if(this.meridian== +"p" +&&this.hour<12){this.hour=this.hour+12;}else if(this.meridian== +"a" +&&this.hour==12){this.hour=0;}} +if(this.day>$D.getDaysInMonth(this.year,this.month)){throw new RangeError(this.day+ +" is not a valid value for days." +);} +var r=new Date(this.year,this.month,this.day,this.hour,this.minute,this.second);if(this.timezone){r.set({timezone:this.timezone});}else if(this.timezoneOffset){r.set({timezoneOffset:this.timezoneOffset});} +return r;},finish:function(x){x=(x instanceof Array)?flattenAndCompact(x):[x];if(x.length===0){return null;} +for(var i=0;i<x.length;i++){if(typeof x[i]== +"function" +){x[i].call(this);}} +var today=$D.today();if(this.now&&!this.unit&&!this.operator){return new Date();}else if(this.now){today=new Date();} +var expression=!!(this.days&&this.days!==null||this.orient||this.operator);var gap,mod,orient;orient=((this.orient== +"past" +||this.operator== +"subtract" +)?-1:1);if(!this.now&& +"hour minute second" +.indexOf(this.unit)!=-1){today.setTimeToNow();} +if(this.month||this.month===0){if( +"year day hour minute second" +.indexOf(this.unit)!=-1){this.value=this.month+1;this.month=null;expression=true;}} +if(!expression&&this.weekday&&!this.day&&!this.days){var temp=Date[this.weekday]();this.day=temp.getDate();if(!this.month){this.month=temp.getMonth();} +this.year=temp.getFullYear();} +if(expression&&this.weekday&&this.unit!= +"month" +){this.unit= +"day" +;gap=($D.getDayNumberFromName(this.weekday)-today.getDay());mod=7;this.days=gap?((gap+(orient*mod))%mod):(orient*mod);} +if(this.month&&this.unit== +"day" +&&this.operator){this.value=(this.month+1);this.month=null;} +if(this.value!=null&&this.month!=null&&this.year!=null){this.day=this.value*1;} +if(this.month&&!this.day&&this.value){today.set({day:this.value*1});if(!expression){this.day=this.value*1;}} +if(!this.month&&this.value&&this.unit== +"month" +&&!this.now){this.month=this.value;expression=true;} +if(expression&&(this.month||this.month===0)&&this.unit!= +"year" +){this.unit= +"month" +;gap=(this.month-today.getMonth());mod=12;this.months=gap?((gap+(orient*mod))%mod):(orient*mod);this.month=null;} +if(!this.unit){this.unit= +"day" ;} -content+=categories.join( -', ' -).replace( -/ $/, -'' -);var dt=$( -"<span></span>" -).addClass( -'feed-item-date' -).html(format_date(bookmark.dt)+ +if(!this.value&&this.operator&&this.operator!==null&&this[this.unit+ +"s" +]&&this[this.unit+ +"s" +]!==null){this[this.unit+ +"s" +]=this[this.unit+ +"s" +]+((this.operator== +"add" +)?1:-1)+(this.value||0)*orient;}else if(this[this.unit+ +"s" +]==null||this.operator!=null){if(!this.value){this.value=1;} +this[this.unit+ +"s" +]=this.value*orient;} +if(this.meridian&&this.hour){if(this.meridian== +"p" +&&this.hour<12){this.hour=this.hour+12;}else if(this.meridian== +"a" +&&this.hour==12){this.hour=0;}} +if(this.weekday&&!this.day&&!this.days){var temp=Date[this.weekday]();this.day=temp.getDate();if(temp.getMonth()!==today.getMonth()){this.month=temp.getMonth();}} +if((this.month||this.month===0)&&!this.day){this.day=1;} +if(!this.orient&&!this.operator&&this.unit== +"week" +&&this.value&&!this.day&&!this.month){return Date.today().setWeek(this.value);} +if(expression&&this.timezone&&this.day&&this.days){this.day=this.days;} +return(expression)?today.add(this):today.set(this);}};var _=$D.Parsing.Operators,g=$D.Grammar,t=$D.Translator,_fn;g.datePartDelimiter=_.rtoken( +/^([\s\-\.\,\/\x27]+)/);g.timePartDelimiter=_.stoken( ":" -);var tx=$( -"<span>» </span>" -).addClass( -'feed-item-text' -).html(content);it.append(dt);it.append(tx);return it} -function github_entry(commit,repo){var it=$( -"<li></li>" -).addClass( -'commit-data' -);var dt=$( -"<span></span>" -).addClass( -'commit-date' -).html(format_date(commit.committed_date)+ -" · " -);var link=$( -"<span></span><br />" -).addClass( -'commit-link' -).append($( -'<a></a>' -).attr( -'href' -,commit.url).html( -"View" -));var tx=$( -"<span></span>" -).addClass( -'commit-text' -).html(commit.message -.replace( -/(closes) #(\d+)/ig, -"$1 <a href='http://github.com/h3rald/" -+repo+ -"/issues/#issue/$2'>#$2</a>" -)+ -"<br />" -);it.append(tx);it.append(dt);it.append(link);return it} -function display_opinions(max){get_json_data( -"/data/opinions.json" -,{max:max,element: -'#backtype' -})} -function display_tweets(max){get_json_data( -"/data/tweets.json" -,{max:max,element: -'#twitter' -})} -function display_bookmarks(max){get_json_data( -"/data/bookmarks.json" -,{max:max,element: -'#delicious' -})} -function display_commits(max,repo){get_json_data( -"/data/" -+repo+ -".json" -,{max:max,element: -'#github' -,repo:repo})}---------- +);g.whiteSpace=_.rtoken( +/^\s*/);g.generalDelimiter=_.rtoken( +/^(([\s\,]|at|@|on)+)/);var _C={};g.ctoken=function(keys){var fn=_C[keys];if(!fn){var c=$C.regexPatterns;var kx=keys.split( +/\s+/),px=[];for(var i=0;i<kx.length;i++){px.push(_.replace(_.rtoken(c[kx[i]]),kx[i]));} +fn=_C[keys]=_.any.apply(null,px);} +return fn;};g.ctoken2=function(key){return _.rtoken($C.regexPatterns[key]);};g.h=_.cache(_.process(_.rtoken( +/^(0[0-9]|1[0-2]|[1-9])/),t.hour));g.hh=_.cache(_.process(_.rtoken( +/^(0[0-9]|1[0-2])/),t.hour));g.H=_.cache(_.process(_.rtoken( +/^([0-1][0-9]|2[0-3]|[0-9])/),t.hour));g.HH=_.cache(_.process(_.rtoken( +/^([0-1][0-9]|2[0-3])/),t.hour));g.m=_.cache(_.process(_.rtoken( +/^([0-5][0-9]|[0-9])/),t.minute));g.mm=_.cache(_.process(_.rtoken( +/^[0-5][0-9]/),t.minute));g.s=_.cache(_.process(_.rtoken( +/^([0-5][0-9]|[0-9])/),t.second));g.ss=_.cache(_.process(_.rtoken( +/^[0-5][0-9]/),t.second));g.hms=_.cache(_.sequence([g.H,g.m,g.s],g.timePartDelimiter));g.t=_.cache(_.process(g.ctoken2( +"shortMeridian" +),t.meridian));g.tt=_.cache(_.process(g.ctoken2( +"longMeridian" +),t.meridian));g.z=_.cache(_.process(_.rtoken( +/^((\+|\-)\s*\d\d\d\d)|((\+|\-)\d\d\:?\d\d)/),t.timezone));g.zz=_.cache(_.process(_.rtoken( +/^((\+|\-)\s*\d\d\d\d)|((\+|\-)\d\d\:?\d\d)/),t.timezone));g.zzz=_.cache(_.process(g.ctoken2( +"timezone" +),t.timezone));g.timeSuffix=_.each(_.ignore(g.whiteSpace),_.set([g.tt,g.zzz]));g.time=_.each(_.optional(_.ignore(_.stoken( +"T" +))),g.hms,g.timeSuffix);g.d=_.cache(_.process(_.each(_.rtoken( +/^([0-2]\d|3[0-1]|\d)/),_.optional(g.ctoken2( +"ordinalSuffix" +))),t.day));g.dd=_.cache(_.process(_.each(_.rtoken( +/^([0-2]\d|3[0-1])/),_.optional(g.ctoken2( +"ordinalSuffix" +))),t.day));g.ddd=g.dddd=_.cache(_.process(g.ctoken( +"sun mon tue wed thu fri sat" +),function(s){return function(){this.weekday=s;};}));g.M=_.cache(_.process(_.rtoken( +/^(1[0-2]|0\d|\d)/),t.month));g.MM=_.cache(_.process(_.rtoken( +/^(1[0-2]|0\d)/),t.month));g.MMM=g.MMMM=_.cache(_.process(g.ctoken( +"jan feb mar apr may jun jul aug sep oct nov dec" +),t.month));g.y=_.cache(_.process(_.rtoken( +/^(\d\d?)/),t.year));g.yy=_.cache(_.process(_.rtoken( +/^(\d\d)/),t.year));g.yyy=_.cache(_.process(_.rtoken( +/^(\d\d?\d?\d?)/),t.year));g.yyyy=_.cache(_.process(_.rtoken( +/^(\d\d\d\d)/),t.year));_fn=function(){return _.each(_.any.apply(null,arguments),_.not(g.ctoken2( +"timeContext" +)));};g.day=_fn(g.d,g.dd);g.month=_fn(g.M,g.MMM);g.year=_fn(g.yyyy,g.yy);g.orientation=_.process(g.ctoken( +"past future" +),function(s){return function(){this.orient=s;};});g.operator=_.process(g.ctoken( +"add subtract" +),function(s){return function(){this.operator=s;};});g.rday=_.process(g.ctoken( +"yesterday tomorrow today now" +),t.rday);g.unit=_.process(g.ctoken( +"second minute hour day week month year" +),function(s){return function(){this.unit=s;};});g.value=_.process(_.rtoken( +/^\d\d?(st|nd|rd|th)?/),function(s){return function(){this.value=s.replace( +/\D/g, +"" +);};});g.expression=_.set([g.rday,g.operator,g.value,g.unit,g.orientation,g.ddd,g.MMM]);_fn=function(){return _.set(arguments,g.datePartDelimiter);};g.mdy=_fn(g.ddd,g.month,g.day,g.year);g.ymd=_fn(g.ddd,g.year,g.month,g.day);g.dmy=_fn(g.ddd,g.day,g.month,g.year);g.date=function(s){return((g[$C.dateElementOrder]||g.mdy).call(this,s));};g.format=_.process(_.many(_.any(_.process(_.rtoken( +/^(dd?d?d?|MM?M?M?|yy?y?y?|hh?|HH?|mm?|ss?|tt?|zz?z?)/),function(fmt){if(g[fmt]){return g[fmt];}else{throw $D.Parsing.Exception(fmt);}}),_.process(_.rtoken( +/^[^dMyhHmstz]+/),function(s){return _.ignore(_.stoken(s));}))),function(rules){return _.process(_.each.apply(null,rules),t.finishExact);});var _F={};var _get=function(f){return _F[f]=(_F[f]||g.format(f)[0]);};g.formats=function(fx){if(fx instanceof Array){var rx=[];for(var i=0;i<fx.length;i++){rx.push(_get(fx[i]));} +return _.any.apply(null,rx);}else{return _get(fx);}};g._formats=g.formats([ +"\"yyyy-MM-ddTHH:mm:ssZ\"" +, +"yyyy-MM-ddTHH:mm:ssZ" +, +"yyyy-MM-ddTHH:mm:ssz" +, +"yyyy-MM-ddTHH:mm:ss" +, +"yyyy-MM-ddTHH:mmZ" +, +"yyyy-MM-ddTHH:mmz" +, +"yyyy-MM-ddTHH:mm" +, +"ddd, MMM dd, yyyy H:mm:ss tt" +, +"ddd MMM d yyyy HH:mm:ss zzz" +, +"MMddyyyy" +, +"ddMMyyyy" +, +"Mddyyyy" +, +"ddMyyyy" +, +"Mdyyyy" +, +"dMyyyy" +, +"yyyy" +, +"Mdyy" +, +"dMyy" +, +"d" +]);g._start=_.process(_.set([g.date,g.time,g.expression],g.generalDelimiter,g.whiteSpace),t.finish);g.start=function(s){try{var r=g._formats.call({},s);if(r[1].length===0){return r;}}catch(e){} +return g._start.call({},s);};$D._parse=$D.parse;$D.parse=function(s){var r=null;if(!s){return null;} +if(s instanceof Date){return s;} +try{r=$D.Grammar.start.call({},s.replace( +/^\s*(\S*(\s+\S+)*)\s*$/, +"$1" +));}catch(e){return null;} +return((r[1].length===0)?r[0]:null);};$D.getParseFunction=function(fx){var fn=$D.Grammar.formats(fx);return function(s){var r=null;try{r=fn.call({},s);}catch(e){return null;} +return((r[1].length===0)?r[0]:null);};};$D.parseExact=function(s,fx){return $D.getParseFunction(fx)(s);};}());---------- (function(){var window=this, undefined,@@ -2345,777 +2934,284 @@ "string"
?size:size+ "px" );};});})();---------- -(function($){$.timeago=function(timestamp){if (timestamp instanceof Date) return inWords(timestamp);else if (typeof timestamp== -"string" -) return inWords($.timeago.parse(timestamp));else return inWords($.timeago.parse($(timestamp).attr( -"title" -)));};var $t=$.timeago;$.extend($.timeago,{settings:{refreshMillis:60000,allowFuture:false,strings:{prefixAgo:null,prefixFromNow:null,suffixAgo: -"ago" -,suffixFromNow: -"from now" -,ago:null, -fromNow:null, -seconds: -"less than a minute" -,minute: -"about a minute" -,minutes: -"%d minutes" -,hour: -"about an hour" -,hours: -"about %d hours" -,day: -"a day" -,days: -"%d days" -,month: -"about a month" -,months: -"%d months" -,year: -"about a year" -,years: -"%d years" -}},inWords:function(distanceMillis){var $l=this.settings.strings;var prefix=$l.prefixAgo;var suffix=$l.suffixAgo||$l.ago;if (this.settings.allowFuture){if (distanceMillis<0){prefix=$l.prefixFromNow;suffix=$l.suffixFromNow||$l.fromNow;} -distanceMillis=Math.abs(distanceMillis);} -var seconds=distanceMillis / 1000;var minutes=seconds / 60;var hours=minutes / 60;var days=hours / 24;var years=days / 365;var words=seconds<45&&substitute($l.seconds,Math.round(seconds))||seconds<90&&substitute($l.minute,1)||minutes<45&&substitute($l.minutes,Math.round(minutes))||minutes<90&&substitute($l.hour,1)||hours<24&&substitute($l.hours,Math.round(hours))||hours<48&&substitute($l.day,1)||days<30&&substitute($l.days,Math.floor(days))||days<60&&substitute($l.month,1)||days<365&&substitute($l.months,Math.floor(days / 30))||years<2&&substitute($l.year,1)||substitute($l.years,Math.floor(years));return $.trim([prefix,words,suffix].join( -" " -));},parse:function(iso8601){var s=$.trim(iso8601);s=s.replace( -/-/, -"/" -).replace( -/-/, -"/" -);s=s.replace( -/T/, -" " -).replace( -/Z/, -" UTC" -);s=s.replace( -/([\+-]\d\d)\:?(\d\d)/, -" $1$2" -); -return new Date(s);}});$.fn.timeago=function(){var self=this;self.each(refresh);var $s=$t.settings;if ($s.refreshMillis>0){setInterval(function(){self.each(refresh);},$s.refreshMillis);} -return self;};function refresh(){var date=$t.parse(this.title);if (!isNaN(date)){$(this).text(inWords(date));} -return this;} -function inWords(date){return $t.inWords(distance(date));} -function distance(date){return (new Date().getTime()-date.getTime());} -function substitute(stringOrFunction,value){var string=$.isFunction(stringOrFunction)?stringOrFunction(value):stringOrFunction;return string.replace( -/%d/i,value);} -document.createElement( -'abbr' -);})(jQuery);---------- -Date.CultureInfo={name: -"en-US" -,englishName: -"English (United States)" -,nativeName: -"English (United States)" -,dayNames:[ -"Sunday" -, -"Monday" -, -"Tuesday" -, -"Wednesday" -, -"Thursday" -, -"Friday" -, -"Saturday" -],abbreviatedDayNames:[ -"Sun" -, -"Mon" -, -"Tue" -, -"Wed" -, -"Thu" -, -"Fri" -, -"Sat" -],shortestDayNames:[ -"Su" -, -"Mo" -, -"Tu" -, -"We" -, -"Th" -, -"Fr" -, -"Sa" -],firstLetterDayNames:[ -"S" -, -"M" -, -"T" -, -"W" -, -"T" -, -"F" -, -"S" -],monthNames:[ -"January" -, -"February" -, -"March" -, -"April" -, -"May" -, -"June" -, -"July" -, -"August" -, -"September" -, -"October" -, -"November" -, -"December" -],abbreviatedMonthNames:[ -"Jan" -, -"Feb" -, -"Mar" -, -"Apr" -, -"May" -, -"Jun" -, -"Jul" +(function($){$.TableOfContents=function(el,scope,options){var base=this;base.$el=$(el);base.el=el;base.toc= +"" +;base.listStyle=null;base.tags=[ +"h1" , -"Aug" +"h2" , -"Sep" +"h3" , -"Oct" +"h4" , -"Nov" +"h5" , -"Dec" -],amDesignator: -"AM" -,pmDesignator: -"PM" -,firstDayOfWeek:0,twoDigitYearMax:2029,dateElementOrder: -"mdy" -,formatPatterns:{shortDate: -"M/d/yyyy" -,longDate: -"dddd, MMMM dd, yyyy" -,shortTime: -"h:mm tt" -,longTime: -"h:mm:ss tt" -,fullDateTime: -"dddd, MMMM dd, yyyy h:mm:ss tt" -,sortableDateTime: -"yyyy-MM-ddTHH:mm:ss" -,universalSortableDateTime: -"yyyy-MM-dd HH:mm:ssZ" -,rfc1123: -"ddd, dd MMM yyyy HH:mm:ss GMT" -,monthDay: -"MMMM dd" -,yearMonth: -"MMMM, yyyy" -},regexPatterns:{jan: -/^jan(uary)?/i,feb: -/^feb(ruary)?/i,mar: -/^mar(ch)?/i,apr: -/^apr(il)?/i,may: -/^may/i,jun: -/^jun(e)?/i,jul: -/^jul(y)?/i,aug: -/^aug(ust)?/i,sep: -/^sep(t(ember)?)?/i,oct: -/^oct(ober)?/i,nov: -/^nov(ember)?/i,dec: -/^dec(ember)?/i,sun: -/^su(n(day)?)?/i,mon: -/^mo(n(day)?)?/i,tue: -/^tu(e(s(day)?)?)?/i,wed: -/^we(d(nesday)?)?/i,thu: -/^th(u(r(s(day)?)?)?)?/i,fri: -/^fr(i(day)?)?/i,sat: -/^sa(t(urday)?)?/i,future: -/^next/i,past: -/^last|past|prev(ious)?/i,add: -/^(\+|aft(er)?|from|hence)/i,subtract: -/^(\-|bef(ore)?|ago)/i,yesterday: -/^yes(terday)?/i,today: -/^t(od(ay)?)?/i,tomorrow: -/^tom(orrow)?/i,now: -/^n(ow)?/i,millisecond: -/^ms|milli(second)?s?/i,second: -/^sec(ond)?s?/i,minute: -/^mn|min(ute)?s?/i,hour: -/^h(our)?s?/i,week: -/^w(eek)?s?/i,month: -/^m(onth)?s?/i,day: -/^d(ay)?s?/i,year: -/^y(ear)?s?/i,shortMeridian: -/^(a|p)/i,longMeridian: -/^(a\.?m?\.?|p\.?m?\.?)/i,timezone: -/^((e(s|d)t|c(s|d)t|m(s|d)t|p(s|d)t)|((gmt)?\s*(\+|\-)\s*\d\d\d\d?)|gmt|utc)/i,ordinalSuffix: -/^\s*(st|nd|rd|th)/i,timeContext: -/^\s*(\:|a(?!u|p)|p)/i},timezones:[{name: -"UTC" -,offset: -"-000" -},{name: -"GMT" -,offset: -"-000" -},{name: -"EST" -,offset: -"-0500" -},{name: -"EDT" -,offset: -"-0400" -},{name: -"CST" -,offset: -"-0600" -},{name: -"CDT" -,offset: -"-0500" -},{name: -"MST" -,offset: -"-0700" -},{name: -"MDT" -,offset: -"-0600" -},{name: -"PST" -,offset: -"-0800" -},{name: -"PDT" -,offset: -"-0700" -}]};(function(){var $D=Date,$P=$D.prototype,$C=$D.CultureInfo,p=function(s,l){if(!l){l=2;} -return( -"000" -+s).slice(l*-1);};$P.clearTime=function(){this.setHours(0);this.setMinutes(0);this.setSeconds(0);this.setMilliseconds(0);return this;};$P.setTimeToNow=function(){var n=new Date();this.setHours(n.getHours());this.setMinutes(n.getMinutes());this.setSeconds(n.getSeconds());this.setMilliseconds(n.getMilliseconds());return this;};$D.today=function(){return new Date().clearTime();};$D.compare=function(date1,date2){if(isNaN(date1)||isNaN(date2)){throw new Error(date1+ -" - " -+date2);}else if(date1 instanceof Date&&date2 instanceof Date){return(date1<date2)?-1:(date1>date2)?1:0;}else{throw new TypeError(date1+ -" - " -+date2);}};$D.equals=function(date1,date2){return(date1.compareTo(date2)===0);};$D.getDayNumberFromName=function(name){var n=$C.dayNames,m=$C.abbreviatedDayNames,o=$C.shortestDayNames,s=name.toLowerCase();for(var i=0;i<n.length;i++){if(n[i].toLowerCase()==s||m[i].toLowerCase()==s||o[i].toLowerCase()==s){return i;}} -return-1;};$D.getMonthNumberFromName=function(name){var n=$C.monthNames,m=$C.abbreviatedMonthNames,s=name.toLowerCase();for(var i=0;i<n.length;i++){if(n[i].toLowerCase()==s||m[i].toLowerCase()==s){return i;}} -return-1;};$D.isLeapYear=function(year){return((year%4===0&&year%100!==0)||year%400===0);};$D.getDaysInMonth=function(year,month){return[31,($D.isLeapYear(year)?29:28),31,30,31,30,31,31,30,31,30,31][month];};$D.getTimezoneAbbreviation=function(offset){var z=$C.timezones,p;for(var i=0;i<z.length;i++){if(z[i].offset===offset){return z[i].name;}} -return null;};$D.getTimezoneOffset=function(name){var z=$C.timezones,p;for(var i=0;i<z.length;i++){if(z[i].name===name.toUpperCase()){return z[i].offset;}} -return null;};$P.clone=function(){return new Date(this.getTime());};$P.compareTo=function(date){return Date.compare(this,date);};$P.equals=function(date){return Date.equals(this,date||new Date());};$P.between=function(start,end){return this.getTime()>=start.getTime()&&this.getTime()<=end.getTime();};$P.isAfter=function(date){return this.compareTo(date||new Date())===1;};$P.isBefore=function(date){return(this.compareTo(date||new Date())===-1);};$P.isToday=function(){return this.isSameDay(new Date());};$P.isSameDay=function(date){return this.clone().clearTime().equals(date.clone().clearTime());};$P.addMilliseconds=function(value){this.setMilliseconds(this.getMilliseconds()+value);return this;};$P.addSeconds=function(value){return this.addMilliseconds(value*1000);};$P.addMinutes=function(value){return this.addMilliseconds(value*60000);};$P.addHours=function(value){return this.addMilliseconds(value*3600000);};$P.addDays=function(value){this.setDate(this.getDate()+value);return this;};$P.addWeeks=function(value){return this.addDays(value*7);};$P.addMonths=function(value){var n=this.getDate();this.setDate(1);this.setMonth(this.getMonth()+value);this.setDate(Math.min(n,$D.getDaysInMonth(this.getFullYear(),this.getMonth())));return this;};$P.addYears=function(value){return this.addMonths(value*12);};$P.add=function(config){if(typeof config== -"number" -){this._orient=config;return this;} -var x=config;if(x.milliseconds){this.addMilliseconds(x.milliseconds);} -if(x.seconds){this.addSeconds(x.seconds);} -if(x.minutes){this.addMinutes(x.minutes);} -if(x.hours){this.addHours(x.hours);} -if(x.weeks){this.addWeeks(x.weeks);} -if(x.months){this.addMonths(x.months);} -if(x.years){this.addYears(x.years);} -if(x.days){this.addDays(x.days);} -return this;};var $y,$m,$d;$P.getWeek=function(){var a,b,c,d,e,f,g,n,s,w;$y=(!$y)?this.getFullYear():$y;$m=(!$m)?this.getMonth()+1:$m;$d=(!$d)?this.getDate():$d;if($m<=2){a=$y-1;b=(a -/4|0)-(a/100|0)+(a -/400|0);c=((a-1)/4|0)-((a-1) -/100|0)+((a-1)/400|0);s=b-c;e=0;f=$d-1+(31*($m-1));}else{a=$y;b=(a -/4|0)-(a/100|0)+(a -/400|0);c=((a-1)/4|0)-((a-1) -/100|0)+((a-1)/400|0);s=b-c;e=s+1;f=$d+((153*($m-3)+2)/5)+58+s;} -g=(a+b)%7;d=(f+g-e)%7;n=(f+3-d)|0;if(n<0){w=53-((g-s) -/5|0);}else if(n>364+s){w=1;}else{w=(n/7|0)+1;} -$y=$m=$d=null;return w;};$P.getISOWeek=function(){$y=this.getUTCFullYear();$m=this.getUTCMonth()+1;$d=this.getUTCDate();return p(this.getWeek());};$P.setWeek=function(n){return this.moveToDayOfWeek(1).addWeeks(n-this.getWeek());};$D._validate=function(n,min,max,name){if(typeof n== +"h6" +];base.init=function(){base.options=$.extend({},$.TableOfContents.defaultOptions,options);if(typeof(scope)== "undefined" -){return false;}else if(typeof n!= -"number" -){throw new TypeError(n+ -" is not a Number." -);}else if(n<min||n>max){throw new RangeError(n+ -" is not a valid value for " -+name+ -"." -);} -return true;};$D.validateMillisecond=function(value){return $D._validate(value,0,999, -"millisecond" -);};$D.validateSecond=function(value){return $D._validate(value,0,59, -"second" -);};$D.validateMinute=function(value){return $D._validate(value,0,59, -"minute" -);};$D.validateHour=function(value){return $D._validate(value,0,23, -"hour" -);};$D.validateDay=function(value,year,month){return $D._validate(value,1,$D.getDaysInMonth(year,month), -"day" -);};$D.validateMonth=function(value){return $D._validate(value,0,11, -"month" -);};$D.validateYear=function(value){return $D._validate(value,0,9999, -"year" -);};$P.set=function(config){if($D.validateMillisecond(config.millisecond)){this.addMilliseconds(config.millisecond-this.getMilliseconds());} -if($D.validateSecond(config.second)){this.addSeconds(config.second-this.getSeconds());} -if($D.validateMinute(config.minute)){this.addMinutes(config.minute-this.getMinutes());} -if($D.validateHour(config.hour)){this.addHours(config.hour-this.getHours());} -if($D.validateMonth(config.month)){this.addMonths(config.month-this.getMonth());} -if($D.validateYear(config.year)){this.addYears(config.year-this.getFullYear());} -if($D.validateDay(config.day,this.getFullYear(),this.getMonth())){this.addDays(config.day-this.getDate());} -if(config.timezone){this.setTimezone(config.timezone);} -if(config.timezoneOffset){this.setTimezoneOffset(config.timezoneOffset);} -if(config.week&&$D._validate(config.week,0,53, -"week" -)){this.setWeek(config.week);} -return this;};$P.moveToFirstDayOfMonth=function(){return this.set({day:1});};$P.moveToLastDayOfMonth=function(){return this.set({day:$D.getDaysInMonth(this.getFullYear(),this.getMonth())});};$P.moveToNthOccurrence=function(dayOfWeek,occurrence){var shift=0;if(occurrence>0){shift=occurrence-1;} -else if(occurrence===-1){this.moveToLastDayOfMonth();if(this.getDay()!==dayOfWeek){this.moveToDayOfWeek(dayOfWeek,-1);} -return this;} -return this.moveToFirstDayOfMonth().addDays(-1).moveToDayOfWeek(dayOfWeek,+1).addWeeks(shift);};$P.moveToDayOfWeek=function(dayOfWeek,orient){var diff=(dayOfWeek-this.getDay()+7*(orient||+1))%7;return this.addDays((diff===0)?diff+=7*(orient||+1):diff);};$P.moveToMonth=function(month,orient){var diff=(month-this.getMonth()+12*(orient||+1))%12;return this.addMonths((diff===0)?diff+=12*(orient||+1):diff);};$P.getOrdinalNumber=function(){return Math.ceil((this.clone().clearTime()-new Date(this.getFullYear(),0,1)) -/86400000)+1;};$P.getTimezone=function(){return $D.getTimezoneAbbreviation(this.getUTCOffset());};$P.setTimezoneOffset=function(offset){var here=this.getTimezoneOffset(),there=Number(offset)*-6/10;return this.addMinutes(there-here);};$P.setTimezone=function(offset){return this.setTimezoneOffset($D.getTimezoneOffset(offset));};$P.hasDaylightSavingTime=function(){return(Date.today().set({month:0,day:1}).getTimezoneOffset()!==Date.today().set({month:6,day:1}).getTimezoneOffset());};$P.isDaylightSavingTime=function(){return(this.hasDaylightSavingTime()&&new Date().getTimezoneOffset()===Date.today().set({month:6,day:1}).getTimezoneOffset());};$P.getUTCOffset=function(){var n=this.getTimezoneOffset()*-10/6,r;if(n<0){r=(n-10000).toString();return r.charAt(0)+r.substr(2);}else{r=(n+10000).toString();return -"+" -+r.substr(1);}};$P.getElapsed=function(date){return(date||new Date())-this;};if(!$P.toISOString){$P.toISOString=function(){function f(n){return n<10? -'0' -+n:n;} -return -'"' -+this.getUTCFullYear()+ -'-' -+f(this.getUTCMonth()+1)+ -'-' -+f(this.getUTCDate())+ -'T' -+f(this.getUTCHours())+ -':' -+f(this.getUTCMinutes())+ -':' -+f(this.getUTCSeconds())+ -'Z"' -;};} -$P._toString=$P.toString;$P.toString=function(format){var x=this;if(format&&format.length==1){var c=$C.formatPatterns;x.t=x.toString;switch(format){case -"d" -:return x.t(c.shortDate);case -"D" -:return x.t(c.longDate);case -"F" -:return x.t(c.fullDateTime);case -"m" -:return x.t(c.monthDay);case -"r" -:return x.t(c.rfc1123);case -"s" -:return x.t(c.sortableDateTime);case -"t" -:return x.t(c.shortTime);case -"T" -:return x.t(c.longTime);case -"u" -:return x.t(c.universalSortableDateTime);case -"y" -:return x.t(c.yearMonth);}} -var ord=function(n){switch(n*1){case 1:case 21:case 31:return -"st" -;case 2:case 22:return -"nd" -;case 3:case 23:return -"rd" -;default:return -"th" -;}};return format?format.replace( -/(\\)?(dd?d?d?|MM?M?M?|yy?y?y?|hh?|HH?|mm?|ss?|tt?|S)/g,function(m){if(m.charAt(0)=== -"\\" -){return m.replace( -"\\" -, +||scope==null)scope=document.body;base.$scope=$(scope);var $first=base.$scope.find(base.tags.join( +', ' +)).filter( +':first' +);if($first.length!=1)return;base.starting_depth=base.options.startLevel;if(base.options.depth<1)base.options.depth=1;var filtered_tags=base.tags.splice(base.options.startLevel-1,base.options.depth);base.$headings=base.$scope.find(filtered_tags.join( +', ' +));if(base.options.topLinks!==false){var id=$(document.body).attr( +'id' +);if(id== "" -);} -x.h=x.getHours;switch(m){case -"hh" -:return p(x.h()<13?(x.h()===0?12:x.h()):(x.h()-12));case -"h" -:return x.h()<13?(x.h()===0?12:x.h()):(x.h()-12);case -"HH" -:return p(x.h());case -"H" -:return x.h();case -"mm" -:return p(x.getMinutes());case -"m" -:return x.getMinutes();case -"ss" -:return p(x.getSeconds());case -"s" -:return x.getSeconds();case -"yyyy" -:return p(x.getFullYear(),4);case -"yy" -:return p(x.getFullYear());case -"dddd" -:return $C.dayNames[x.getDay()];case -"ddd" -:return $C.abbreviatedDayNames[x.getDay()];case -"dd" -:return p(x.getDate());case -"d" -:return x.getDate();case -"MMMM" -:return $C.monthNames[x.getMonth()];case -"MMM" -:return $C.abbreviatedMonthNames[x.getMonth()];case -"MM" -:return p((x.getMonth()+1));case -"M" -:return x.getMonth()+1;case -"t" -:return x.h()<12?$C.amDesignator.substring(0,1):$C.pmDesignator.substring(0,1);case -"tt" -:return x.h()<12?$C.amDesignator:$C.pmDesignator;case -"S" -:return ord(x.getDate());default:return m;}}):this._toString();};}());(function(){var $D=Date,$P=$D.prototype,$C=$D.CultureInfo,$N=Number.prototype;$P._orient=+1;$P._nth=null;$P._is=false;$P._same=false;$P._isSecond=false;$N._dateElement= -"day" -;$P.next=function(){this._orient=+1;return this;};$D.next=function(){return $D.today().next();};$P.last=$P.prev=$P.previous=function(){this._orient=-1;return this;};$D.last=$D.prev=$D.previous=function(){return $D.today().last();};$P.is=function(){this._is=true;return this;};$P.same=function(){this._same=true;this._isSecond=false;return this;};$P.today=function(){return this.same().day();};$P.weekday=function(){if(this._is){this._is=false;return(!this.is().sat()&&!this.is().sun());} -return false;};$P.at=function(time){return(typeof time=== -"string" -)?$D.parse(this.toString( -"d" -)+ -" " -+time):this.set(time);};$N.fromNow=$N.after=function(date){var c={};c[this._dateElement]=this;return((!date)?new Date():date.clone()).add(c);};$N.ago=$N.before=function(date){var c={};c[this._dateElement]=this*-1;return((!date)?new Date():date.clone()).add(c);};var dx=( -"sunday monday tuesday wednesday thursday friday saturday" -).split( -/\s/),mx=( -"january february march april may june july august september october november december" -).split( -/\s/),px=( -"Millisecond Second Minute Hour Day Week Month Year" -).split( -/\s/),pxf=( -"Milliseconds Seconds Minutes Hours Date Week Month FullYear" -).split( -/\s/),nth=( -"final first second third fourth fifth" -).split( -/\s/),de;$P.toObject=function(){var o={};for(var i=0;i<px.length;i++){o[px[i].toLowerCase()]=this[ -"get" -+pxf[i]]();} -return o;};$D.fromObject=function(config){config.week=null;return Date.today().set(config);};var df=function(n){return function(){if(this._is){this._is=false;return this.getDay()==n;} -if(this._nth!==null){if(this._isSecond){this.addSeconds(this._orient*-1);} -this._isSecond=false;var ntemp=this._nth;this._nth=null;var temp=this.clone().moveToLastDayOfMonth();this.moveToNthOccurrence(n,ntemp);if(this>temp){throw new RangeError($D.getDayName(n)+ -" does not occur " -+ntemp+ -" times in the month of " -+$D.getMonthName(temp.getMonth())+ -" " -+temp.getFullYear()+ -"." -);} -return this;} -return this.moveToDayOfWeek(n,this._orient);};};var sdf=function(n){return function(){var t=$D.today(),shift=n-t.getDay();if(n===0&&$C.firstDayOfWeek===1&&t.getDay()!==0){shift=shift+7;} -return t.addDays(shift);};};for(var i=0;i<dx.length;i++){$D[dx[i].toUpperCase()]=$D[dx[i].toUpperCase().substring(0,3)]=i;$D[dx[i]]=$D[dx[i].substring(0,3)]=sdf(i);$P[dx[i]]=$P[dx[i].substring(0,3)]=df(i);} -var mf=function(n){return function(){if(this._is){this._is=false;return this.getMonth()===n;} -return this.moveToMonth(n,this._orient);};};var smf=function(n){return function(){return $D.today().set({month:n,day:1});};};for(var j=0;j<mx.length;j++){$D[mx[j].toUpperCase()]=$D[mx[j].toUpperCase().substring(0,3)]=j;$D[mx[j]]=$D[mx[j].substring(0,3)]=smf(j);$P[mx[j]]=$P[mx[j].substring(0,3)]=mf(j);} -var ef=function(j){return function(){if(this._isSecond){this._isSecond=false;return this;} -if(this._same){this._same=this._is=false;var o1=this.toObject(),o2=(arguments[0]||new Date()).toObject(),v= +){id=base.options.topBodyId;document.body.id=id};base.topLinkId=id};if(base.$el.is( +'ul' +)){base.listStyle= +'ul' +}else if(base.$el.is( +'ol' +)){base.listStyle= +'ol' +};base.buildTOC();if(base.options.proportionateSpacing===true&&!base.tieredList()){base.addSpacing()};return base};base.tieredList=function(){return(base.listStyle== +'ul' +||base.listStyle== +'ol' +)};base.buildTOC=function(){base.current_depth=base.starting_depth;base.$headings.each(function(i,element){var depth=this.nodeName.toLowerCase().substr(1,1);if(i>0||(i==0&&depth!=base.current_depth)){base.changeDepth(depth)};base.toc+=base.formatLink(this,depth,i)+ +"\n" +;if(base.options.topLinks!==false)base.addTopLink(this)});base.changeDepth(base.starting_depth,true);if(base.tieredList())base.toc= +"<li>\n" ++base.toc+ +"</li>\n" +;base.$el.html(base.toc)};base.addTopLink=function(element){var text=(base.options.topLinks===true? +"Top" +:base.options.topLinks);var $a=$( +"<a href='#" ++base.topLinkId+ +"' class='" ++base.options.topLinkClass+ +"'></a>" +).html(text);$(element).append($a)};base.formatLink=function(element,depth,index){var id=element.id;if(id== "" -,k=j.toLowerCase();for(var m=(px.length-1);m>-1;m--){v=px[m].toLowerCase();if(o1[v]!=o2[v]){return false;} -if(k==v){break;}} -return true;} -if(j.substring(j.length-1)!= -"s" -){j+= -"s" -;} -return this[ -"add" -+j](this._orient);};};var nf=function(n){return function(){this._dateElement=n;return this;};};for(var k=0;k<px.length;k++){de=px[k].toLowerCase();$P[de]=$P[de+ -"s" -]=ef(px[k]);$N[de]=$N[de+ -"s" -]=nf(de);} -$P._ss=ef( -"Second" -);var nthfn=function(n){return function(dayOfWeek){if(this._same){return this._ss(arguments[0]);} -if(dayOfWeek||dayOfWeek===0){return this.moveToNthOccurrence(dayOfWeek,n);} -this._nth=n;if(n===2&&(dayOfWeek===undefined||dayOfWeek===null)){this._isSecond=true;return this.addSeconds(this._orient);} -return this;};};for(var l=0;l<nth.length;l++){$P[nth[l]]=(l===0)?nthfn(-1):nthfn(l);}}());(function(){Date.Parsing={Exception:function(s){this.message= -"Parse error at '" -+s.substring(0,10)+ -" ...'" -;}};var $P=Date.Parsing;var _=$P.Operators={rtoken:function(r){return function(s){var mx=s.match(r);if(mx){return([mx[0],s.substring(mx[0].length)]);}else{throw new $P.Exception(s);}};},token:function(s){return function(s){return _.rtoken(new RegExp( -"^\s*" -+s+ -"\s*" -))(s);};},stoken:function(s){return _.rtoken(new RegExp( -"^" -+s));},until:function(p){return function(s){var qx=[],rx=null;while(s.length){try{rx=p.call(this,s);}catch(e){qx.push(rx[0]);s=rx[1];continue;} +){id=base.buildSlug($(element).text());element.id=id};var a= +"<a href='#" ++id+ +"'" +;if(!base.tieredList())a+= +" class='" ++base.depthClass(depth)+ +"'" +;a+= +">" ++base.options.levelText.replace( +'%' +,$(element).text())+ +'</a>' +;return a};base.changeDepth=function(new_depth,last){if(last!==true)last=false;if(!base.tieredList()){base.current_depth=new_depth;return true};if(new_depth>base.current_depth){var opening_tags=[];for(var i=base.current_depth;i<new_depth;i++){opening_tags.push( +'<' ++base.listStyle+ +'>' ++ +"\n" +)};var li= +"<li>\n" +;base.toc+=opening_tags.join(li)+li}else if(new_depth<base.current_depth){var closing_tags=[];for(var i=base.current_depth;i>new_depth;i--){closing_tags.push( +'</' ++base.listStyle+ +'>' ++ +"\n" +)};base.toc+= +"</li>\n" ++closing_tags.join( +'</li>' ++ +"\n" +);if(!last){base.toc+= +"</li>\n<li>\n" +}}else{if(!last){base.toc+= +"</li>\n<li>\n" +}};base.current_depth=new_depth};base.buildSlug=function(text){text=text.toLowerCase().replace( +/[^a-z0-9 -]/gi, +'' +).replace( +/ /gi, +'-' +);text=text.substr(0,50);return text};base.depthClass=function(depth){return base.options.levelClass.replace( +'%' +,(depth-(base.starting_depth-1)))};base.addSpacing=function(){var start=base.$headings.filter( +':first' +).position().top;base.$headings.each(function(i,el){var $a=base.$el.find( +'a:eq(' ++i+ +')' +);var pos=(($(this).position().top-start)/(base.$scope.height()-start))*base.$el.height();$a.css({position: +"absolute" +,top:pos})})};return base.init()};$.TableOfContents.defaultOptions={startLevel:1,depth:3,levelClass: +"toc-depth-%" +,levelText: +"%" +,topLinks:false,topLinkClass: +"toc-top-link" +,topBodyId: +"toc-top" +,proportionateSpacing:false};$.fn.tableOfContents=function(scope,options){return this.each(function(){var toc=new $.TableOfContents(this,scope,options);delete toc})}})(jQuery);----------function format_date(d){return $.timeago(Date.parse(d));} +function get_json_data(uri,options){$.getJSON(uri,function(data){var list=$( +"<ul></ul>" +);for (var i=0;i<options.max;i++){switch(options.element){case +"#backtype" +:var item=backtype_entry(data.comments[i]) +break;case +"#delicious" +:var item=delicious_entry(data[i]) +break;case +"#twitter" +:var item=twitter_entry(data[i]) +break;case +"#github" +:var item=github_entry(data.commits[i],options.repo) break;} -return[qx,s];};},many:function(p){return function(s){var rx=[],r=null;while(s.length){try{r=p.call(this,s);}catch(e){return[rx,s];} -rx.push(r[0]);s=r[1];} -return[rx,s];};},optional:function(p){return function(s){var r=null;try{r=p.call(this,s);}catch(e){return[null,s];} -return[r[0],r[1]];};},not:function(p){return function(s){try{p.call(this,s);}catch(e){return[null,s];} -throw new $P.Exception(s);};},ignore:function(p){return p?function(s){var r=null;r=p.call(this,s);return[null,r[1]];}:null;},product:function(){var px=arguments[0],qx=Array.prototype.slice.call(arguments,1),rx=[];for(var i=0;i<px.length;i++){rx.push(_.each(px[i],qx));} -return rx;},cache:function(rule){var cache={},r=null;return function(s){try{r=cache[s]=(cache[s]||rule.call(this,s));}catch(e){r=cache[s]=e;} -if(r instanceof $P.Exception){throw r;}else{return r;}};},any:function(){var px=arguments;return function(s){var r=null;for(var i=0;i<px.length;i++){if(px[i]==null){continue;} -try{r=(px[i].call(this,s));}catch(e){r=null;} -if(r){return r;}} -throw new $P.Exception(s);};},each:function(){var px=arguments;return function(s){var rx=[],r=null;for(var i=0;i<px.length;i++){if(px[i]==null){continue;} -try{r=(px[i].call(this,s));}catch(e){throw new $P.Exception(s);} -rx.push(r[0]);s=r[1];} -return[rx,s];};},all:function(){var px=arguments,_=_;return _.each(_.optional(px));},sequence:function(px,d,c){d=d||_.rtoken( -/^\s*/);c=c||null;if(px.length==1){return px[0];} -return function(s){var r=null,q=null;var rx=[];for(var i=0;i<px.length;i++){try{r=px[i].call(this,s);}catch(e){break;} -rx.push(r[0]);try{q=d.call(this,r[1]);}catch(ex){q=null;break;} -s=q[1];} -if(!r){throw new $P.Exception(s);} -if(q){throw new $P.Exception(q[1]);} -if(c){try{r=c.call(this,r[1]);}catch(ey){throw new $P.Exception(r[1]);}} -return[rx,(r?r[1]:s)];};},between:function(d1,p,d2){d2=d2||d1;var _fn=_.each(_.ignore(d1),p,_.ignore(d2));return function(s){var rx=_fn.call(this,s);return[[rx[0][0],r[0][2]],rx[1]];};},list:function(p,d,c){d=d||_.rtoken( -/^\s*/);c=c||null;return(p instanceof Array?_.each(_.product(p.slice(0,-1),_.ignore(d)),p.slice(-1),_.ignore(c)):_.each(_.many(_.each(p,_.ignore(d))),px,_.ignore(c)));},set:function(px,d,c){d=d||_.rtoken( -/^\s*/);c=c||null;return function(s){var r=null,p=null,q=null,rx=null,best=[[],s],last=false;for(var i=0;i<px.length;i++){q=null;p=null;r=null;last=(px.length==1);try{r=px[i].call(this,s);}catch(e){continue;} -rx=[[r[0]],r[1]];if(r[1].length>0&&!last){try{q=d.call(this,r[1]);}catch(ex){last=true;}}else{last=true;} -if(!last&&q[1].length===0){last=true;} -if(!last){var qx=[];for(var j=0;j<px.length;j++){if(i!=j){qx.push(px[j]);}} -p=_.set(qx,d).call(this,q[1]);if(p[0].length>0){rx[0]=rx[0].concat(p[0]);rx[1]=p[1];}} -if(rx[1].length<best[1].length){best=rx;} -if(best[1].length===0){break;}} -if(best[0].length===0){return best;} -if(c){try{q=c.call(this,best[1]);}catch(ey){throw new $P.Exception(best[1]);} -best[1]=q[1];} -return best;};},forward:function(gr,fname){return function(s){return gr[fname].call(this,s);};},replace:function(rule,repl){return function(s){var r=rule.call(this,s);return[repl,r[1]];};},process:function(rule,fn){return function(s){var r=rule.call(this,s);return[fn.call(this,r[0]),r[1]];};},min:function(min,rule){return function(s){var rx=rule.call(this,s);if(rx[0].length<min){throw new $P.Exception(s);} -return rx;};}};var _generator=function(op){return function(){var args=null,rx=[];if(arguments.length>1){args=Array.prototype.slice.call(arguments);}else if(arguments[0]instanceof Array){args=arguments[0];} -if(args){for(var i=0,px=args.shift();i<px.length;i++){args.unshift(px[i]);rx.push(op.apply(null,args));args.shift();return rx;}}else{return op.apply(null,arguments);}};};var gx= -"optional not ignore cache" -.split( -/\s/);for(var i=0;i<gx.length;i++){_[gx[i]]=_generator(_[gx[i]]);} -var _vector=function(op){return function(){if(arguments[0]instanceof Array){return op.apply(null,arguments[0]);}else{return op.apply(null,arguments);}};};var vx= -"each any all" -.split( -/\s/);for(var j=0;j<vx.length;j++){_[vx[j]]=_vector(_[vx[j]]);}}());(function(){var $D=Date,$P=$D.prototype,$C=$D.CultureInfo;var flattenAndCompact=function(ax){var rx=[];for(var i=0;i<ax.length;i++){if(ax[i]instanceof Array){rx=rx.concat(flattenAndCompact(ax[i]));}else{if(ax[i]){rx.push(ax[i]);}}} -return rx;};$D.Grammar={};$D.Translator={hour:function(s){return function(){this.hour=Number(s);};},minute:function(s){return function(){this.minute=Number(s);};},second:function(s){return function(){this.second=Number(s);};},meridian:function(s){return function(){this.meridian=s.slice(0,1).toLowerCase();};},timezone:function(s){return function(){var n=s.replace( -/[^\d\+\-]/g, -"" -);if(n.length){this.timezoneOffset=Number(n);}else{this.timezone=s.toLowerCase();}};},day:function(x){var s=x[0];return function(){this.day=Number(s.match( -/\d+/)[0]);};},month:function(s){return function(){this.month=(s.length==3)? -"jan feb mar apr may jun jul aug sep oct nov dec" -.indexOf(s)/4:Number(s)-1;};},year:function(s){return function(){var n=Number(s);this.year=((s.length>2)?n:(n+(((n+2000)<$C.twoDigitYearMax)?2000:1900)));};},rday:function(s){return function(){switch(s){case -"yesterday" -:this.days=-1;break;case -"tomorrow" -:this.days=1;break;case -"today" -:this.days=0;break;case -"now" -:this.days=0;this.now=true;break;}};},finishExact:function(x){x=(x instanceof Array)?x:[x];for(var i=0;i<x.length;i++){if(x[i]){x[i].call(this);}} -var now=new Date();if((this.hour||this.minute)&&(!this.month&&!this.year&&!this.day)){this.day=now.getDate();} -if(!this.year){this.year=now.getFullYear();} -if(!this.month&&this.month!==0){this.month=now.getMonth();} -if(!this.day){this.day=1;} -if(!this.hour){this.hour=0;} -if(!this.minute){this.minute=0;} -if(!this.second){this.second=0;} -if(this.meridian&&this.hour){if(this.meridian== -"p" -&&this.hour<12){this.hour=this.hour+12;}else if(this.meridian== -"a" -&&this.hour==12){this.hour=0;}} -if(this.day>$D.getDaysInMonth(this.year,this.month)){throw new RangeError(this.day+ -" is not a valid value for days." -);} -var r=new Date(this.year,this.month,this.day,this.hour,this.minute,this.second);if(this.timezone){r.set({timezone:this.timezone});}else if(this.timezoneOffset){r.set({timezoneOffset:this.timezoneOffset});} -return r;},finish:function(x){x=(x instanceof Array)?flattenAndCompact(x):[x];if(x.length===0){return null;} -for(var i=0;i<x.length;i++){if(typeof x[i]== -"function" -){x[i].call(this);}} -var today=$D.today();if(this.now&&!this.unit&&!this.operator){return new Date();}else if(this.now){today=new Date();} -var expression=!!(this.days&&this.days!==null||this.orient||this.operator);var gap,mod,orient;orient=((this.orient== -"past" -||this.operator== -"subtract" -)?-1:1);if(!this.now&& -"hour minute second" -.indexOf(this.unit)!=-1){today.setTimeToNow();} -if(this.month||this.month===0){if( -"year day hour minute second" -.indexOf(this.unit)!=-1){this.value=this.month+1;this.month=null;expression=true;}} -if(!expression&&this.weekday&&!this.day&&!this.days){var temp=Date[this.weekday]();this.day=temp.getDate();if(!this.month){this.month=temp.getMonth();} -this.year=temp.getFullYear();} -if(expression&&this.weekday&&this.unit!= -"month" -){this.unit= -"day" -;gap=($D.getDayNumberFromName(this.weekday)-today.getDay());mod=7;this.days=gap?((gap+(orient*mod))%mod):(orient*mod);} -if(this.month&&this.unit== -"day" -&&this.operator){this.value=(this.month+1);this.month=null;} -if(this.value!=null&&this.month!=null&&this.year!=null){this.day=this.value*1;} -if(this.month&&!this.day&&this.value){today.set({day:this.value*1});if(!expression){this.day=this.value*1;}} -if(!this.month&&this.value&&this.unit== -"month" -&&!this.now){this.month=this.value;expression=true;} -if(expression&&(this.month||this.month===0)&&this.unit!= -"year" -){this.unit= -"month" -;gap=(this.month-today.getMonth());mod=12;this.months=gap?((gap+(orient*mod))%mod):(orient*mod);this.month=null;} -if(!this.unit){this.unit= -"day" + item.appendTo(list);} +list.appendTo(options.element).fadeIn(1000);});} +function backtype_entry(comment){var c=$( +"<li></li>" +).addClass( +'feed-item' +);var dt=$( +"<span></span>" +).addClass( +'feed-item-date' +).html(format_date(comment.comment.date+ +" GMT" +)+ +":" +);var tx=$( +"<span>» </span>" +).addClass( +'feed-item-text' +).append($( +'<a></a>' +).attr( +'href' +,comment.comment.url).html(comment.post.title));c.append(dt);c.append(tx);return c} +function twitter_entry(tweet){var it=$( +"<li></li>" +).addClass( +'feed-item' +);var content=tweet.text +.replace( +/^h3rald:/, +'' +) +.replace( +/((http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%& +/~\+#])?)/g, +'<a href="$1">$1</a>' +) +.replace( +/@([a-zA-Z1-9_]*)/g, +'<a href="http://www.twitter.com/$1">@$1</a>' +) +.replace( +/#([a-zA-Z1-9_]*)/g, +'<a href="http://www.twitter.com/search?q=%23$1">#$1</a>' +) +var dt=$( +"<span></span>" +).addClass( +'feed-item-date' +).html(format_date(tweet.created_at)+ +":" +);var tx=$( +"<span>» </span>" +).addClass( +'feed-item-text' +).html(content);it.append(dt);it.append(tx);return it} +function delicious_entry(bookmark){var it=$( +"<li></li>" +).addClass( +'feed-item' +);var content= +"<a href='" ++bookmark.u+ +"'>" ++bookmark.d+ +"</a>" +;content+= +"<br />tags: " +;var categories=Array();for (i=0;i<bookmark.t.length;i++){categories[i]= +"<a href='http://delicious.com/h3rald/" ++bookmark.t[i]+ +"'>" ++bookmark.t[i]+ +"</a>" ;} -if(!this.value&&this.operator&&this.operator!==null&&this[this.unit+ -"s" -]&&this[this.unit+ -"s" -]!==null){this[this.unit+ -"s" -]=this[this.unit+ -"s" -]+((this.operator== -"add" -)?1:-1)+(this.value||0)*orient;}else if(this[this.unit+ -"s" -]==null||this.operator!=null){if(!this.value){this.value=1;} -this[this.unit+ -"s" -]=this.value*orient;} -if(this.meridian&&this.hour){if(this.meridian== -"p" -&&this.hour<12){this.hour=this.hour+12;}else if(this.meridian== -"a" -&&this.hour==12){this.hour=0;}} -if(this.weekday&&!this.day&&!this.days){var temp=Date[this.weekday]();this.day=temp.getDate();if(temp.getMonth()!==today.getMonth()){this.month=temp.getMonth();}} -if((this.month||this.month===0)&&!this.day){this.day=1;} -if(!this.orient&&!this.operator&&this.unit== -"week" -&&this.value&&!this.day&&!this.month){return Date.today().setWeek(this.value);} -if(expression&&this.timezone&&this.day&&this.days){this.day=this.days;} -return(expression)?today.add(this):today.set(this);}};var _=$D.Parsing.Operators,g=$D.Grammar,t=$D.Translator,_fn;g.datePartDelimiter=_.rtoken( -/^([\s\-\.\,\/\x27]+)/);g.timePartDelimiter=_.stoken( +content+=categories.join( +', ' +).replace( +/ $/, +'' +);var dt=$( +"<span></span>" +).addClass( +'feed-item-date' +).html(format_date(bookmark.dt)+ ":" -);g.whiteSpace=_.rtoken( -/^\s*/);g.generalDelimiter=_.rtoken( -/^(([\s\,]|at|@|on)+)/);var _C={};g.ctoken=function(keys){var fn=_C[keys];if(!fn){var c=$C.regexPatterns;var kx=keys.split( -/\s+/),px=[];for(var i=0;i<kx.length;i++){px.push(_.replace(_.rtoken(c[kx[i]]),kx[i]));} -fn=_C[keys]=_.any.apply(null,px);} -return fn;};g.ctoken2=function(key){return _.rtoken($C.regexPatterns[key]);};g.h=_.cache(_.process(_.rtoken( -/^(0[0-9]|1[0-2]|[1-9])/),t.hour));g.hh=_.cache(_.process(_.rtoken( -/^(0[0-9]|1[0-2])/),t.hour));g.H=_.cache(_.process(_.rtoken( -/^([0-1][0-9]|2[0-3]|[0-9])/),t.hour));g.HH=_.cache(_.process(_.rtoken( -/^([0-1][0-9]|2[0-3])/),t.hour));g.m=_.cache(_.process(_.rtoken( -/^([0-5][0-9]|[0-9])/),t.minute));g.mm=_.cache(_.process(_.rtoken( -/^[0-5][0-9]/),t.minute));g.s=_.cache(_.process(_.rtoken( -/^([0-5][0-9]|[0-9])/),t.second));g.ss=_.cache(_.process(_.rtoken( -/^[0-5][0-9]/),t.second));g.hms=_.cache(_.sequence([g.H,g.m,g.s],g.timePartDelimiter));g.t=_.cache(_.process(g.ctoken2( -"shortMeridian" -),t.meridian));g.tt=_.cache(_.process(g.ctoken2( -"longMeridian" -),t.meridian));g.z=_.cache(_.process(_.rtoken( -/^((\+|\-)\s*\d\d\d\d)|((\+|\-)\d\d\:?\d\d)/),t.timezone));g.zz=_.cache(_.process(_.rtoken( -/^((\+|\-)\s*\d\d\d\d)|((\+|\-)\d\d\:?\d\d)/),t.timezone));g.zzz=_.cache(_.process(g.ctoken2( -"timezone" -),t.timezone));g.timeSuffix=_.each(_.ignore(g.whiteSpace),_.set([g.tt,g.zzz]));g.time=_.each(_.optional(_.ignore(_.stoken( -"T" -))),g.hms,g.timeSuffix);g.d=_.cache(_.process(_.each(_.rtoken( -/^([0-2]\d|3[0-1]|\d)/),_.optional(g.ctoken2( -"ordinalSuffix" -))),t.day));g.dd=_.cache(_.process(_.each(_.rtoken( -/^([0-2]\d|3[0-1])/),_.optional(g.ctoken2( -"ordinalSuffix" -))),t.day));g.ddd=g.dddd=_.cache(_.process(g.ctoken( -"sun mon tue wed thu fri sat" -),function(s){return function(){this.weekday=s;};}));g.M=_.cache(_.process(_.rtoken( -/^(1[0-2]|0\d|\d)/),t.month));g.MM=_.cache(_.process(_.rtoken( -/^(1[0-2]|0\d)/),t.month));g.MMM=g.MMMM=_.cache(_.process(g.ctoken( -"jan feb mar apr may jun jul aug sep oct nov dec" -),t.month));g.y=_.cache(_.process(_.rtoken( -/^(\d\d?)/),t.year));g.yy=_.cache(_.process(_.rtoken( -/^(\d\d)/),t.year));g.yyy=_.cache(_.process(_.rtoken( -/^(\d\d?\d?\d?)/),t.year));g.yyyy=_.cache(_.process(_.rtoken( -/^(\d\d\d\d)/),t.year));_fn=function(){return _.each(_.any.apply(null,arguments),_.not(g.ctoken2( -"timeContext" -)));};g.day=_fn(g.d,g.dd);g.month=_fn(g.M,g.MMM);g.year=_fn(g.yyyy,g.yy);g.orientation=_.process(g.ctoken( -"past future" -),function(s){return function(){this.orient=s;};});g.operator=_.process(g.ctoken( -"add subtract" -),function(s){return function(){this.operator=s;};});g.rday=_.process(g.ctoken( -"yesterday tomorrow today now" -),t.rday);g.unit=_.process(g.ctoken( -"second minute hour day week month year" -),function(s){return function(){this.unit=s;};});g.value=_.process(_.rtoken( -/^\d\d?(st|nd|rd|th)?/),function(s){return function(){this.value=s.replace( -/\D/g, -"" -);};});g.expression=_.set([g.rday,g.operator,g.value,g.unit,g.orientation,g.ddd,g.MMM]);_fn=function(){return _.set(arguments,g.datePartDelimiter);};g.mdy=_fn(g.ddd,g.month,g.day,g.year);g.ymd=_fn(g.ddd,g.year,g.month,g.day);g.dmy=_fn(g.ddd,g.day,g.month,g.year);g.date=function(s){return((g[$C.dateElementOrder]||g.mdy).call(this,s));};g.format=_.process(_.many(_.any(_.process(_.rtoken( -/^(dd?d?d?|MM?M?M?|yy?y?y?|hh?|HH?|mm?|ss?|tt?|zz?z?)/),function(fmt){if(g[fmt]){return g[fmt];}else{throw $D.Parsing.Exception(fmt);}}),_.process(_.rtoken( -/^[^dMyhHmstz]+/),function(s){return _.ignore(_.stoken(s));}))),function(rules){return _.process(_.each.apply(null,rules),t.finishExact);});var _F={};var _get=function(f){return _F[f]=(_F[f]||g.format(f)[0]);};g.formats=function(fx){if(fx instanceof Array){var rx=[];for(var i=0;i<fx.length;i++){rx.push(_get(fx[i]));} -return _.any.apply(null,rx);}else{return _get(fx);}};g._formats=g.formats([ -"\"yyyy-MM-ddTHH:mm:ssZ\"" -, -"yyyy-MM-ddTHH:mm:ssZ" -, -"yyyy-MM-ddTHH:mm:ssz" -, -"yyyy-MM-ddTHH:mm:ss" -, -"yyyy-MM-ddTHH:mmZ" -, -"yyyy-MM-ddTHH:mmz" -, -"yyyy-MM-ddTHH:mm" -, -"ddd, MMM dd, yyyy H:mm:ss tt" -, -"ddd MMM d yyyy HH:mm:ss zzz" -, -"MMddyyyy" -, -"ddMMyyyy" -, -"Mddyyyy" -, -"ddMyyyy" -, -"Mdyyyy" -, -"dMyyyy" -, -"yyyy" -, -"Mdyy" -, -"dMyy" -, -"d" -]);g._start=_.process(_.set([g.date,g.time,g.expression],g.generalDelimiter,g.whiteSpace),t.finish);g.start=function(s){try{var r=g._formats.call({},s);if(r[1].length===0){return r;}}catch(e){} -return g._start.call({},s);};$D._parse=$D.parse;$D.parse=function(s){var r=null;if(!s){return null;} -if(s instanceof Date){return s;} -try{r=$D.Grammar.start.call({},s.replace( -/^\s*(\S*(\s+\S+)*)\s*$/, -"$1" -));}catch(e){return null;} -return((r[1].length===0)?r[0]:null);};$D.getParseFunction=function(fx){var fn=$D.Grammar.formats(fx);return function(s){var r=null;try{r=fn.call({},s);}catch(e){return null;} -return((r[1].length===0)?r[0]:null);};};$D.parseExact=function(s,fx){return $D.getParseFunction(fx)(s);};}());----------google.load( +);var tx=$( +"<span>» </span>" +).addClass( +'feed-item-text' +).html(content);it.append(dt);it.append(tx);return it} +function github_entry(commit,repo){var it=$( +"<li></li>" +).addClass( +'commit-data' +);var dt=$( +"<span></span>" +).addClass( +'commit-date' +).html(format_date(commit.committed_date)+ +" · " +);var link=$( +"<span></span><br />" +).addClass( +'commit-link' +).append($( +'<a></a>' +).attr( +'href' +,commit.url).html( +"View" +));var tx=$( +"<span></span>" +).addClass( +'commit-text' +).html(commit.message +.replace( +/(closes) #(\d+)/ig, +"$1 <a href='http://github.com/h3rald/" ++repo+ +"/issues/#issue/$2'>#$2</a>" +)+ +"<br />" +);it.append(tx);it.append(dt);it.append(link);return it} +function display_opinions(max){get_json_data( +"/data/opinions.json" +,{max:max,element: +'#backtype' +})} +function display_tweets(max){get_json_data( +"/data/tweets.json" +,{max:max,element: +'#twitter' +})} +function display_bookmarks(max){get_json_data( +"/data/bookmarks.json" +,{max:max,element: +'#delicious' +})} +function display_commits(max,repo){get_json_data( +"/data/" ++repo+ +".json" +,{max:max,element: +'#github' +,repo:repo})}----------google.load( 'search' , '1'@@ -3129,7 +3225,33 @@ 'h3rald.com'
);var search_options=new google.search.SearcherOptions();search_options.setExpandMode(google.search.SearchControl.EXPAND_MODE_OPEN);searchControl.addSearcher(webSearch,search_options);searchControl.setResultSetSize(google.search.Search.LARGE_RESULTSET);searchControl.draw(document.getElementById( "search_results" ),draw_options);} -google.setOnLoadCallback(OnLoad);---------- +google.setOnLoadCallback(OnLoad);----------$(function(){$( +'#gallery a' +).lightBox();});function delicious_counter(data){var posts=data[0].total_posts;if (!posts) return;var text=posts+ +" bookmarks" +;if (posts==1){text=posts+ +" bookmark" +};$( +'#delcounter' +).text(text);} +$(document).ready(function(){$( +'.timeago' +).timeago(); +$( +"#toc ol" +).tableOfContents( +"#content-body" +,{startLevel:3,depth:6,topLinks: +"[top]" +}); +var first_paragraph=$( +'#content-body p:first' +);if (!first_paragraph) return false;var t=first_paragraph.html();var first_letter=t.substr(0,1);if (first_letter.match( +/[a-z]/i)){first_paragraph.html(t.slice(1,t.length));$( +'<span></span>' +).addClass( +'dropcap' +).html(first_letter).prependTo(first_paragraph);}});---------- (function($){ $.fn.lightBox=function(settings){ settings=jQuery.extend({
@@ -12,9 +12,10 @@ $('#delcounter').text(text);
} $(document).ready(function() { $('.timeago').timeago(); + // TOC + $("#toc ol").tableOfContents("#content-body", {startLevel: 3, depth: 6, topLinks: "[top]"}); // Drop Caps var first_paragraph = $('#content-body p:first'); - //first_paragraph.addClass('first-p'); if (!first_paragraph) return false; var t = first_paragraph.html(); var first_letter = t.substr(0,1);
@@ -0,0 +1,14 @@
+----- +----- +/* + TableOfContents Plugin for jQuery (by Doug Neiner) + + Version: 0.8 + + Based on code and concept by Janko Jovanovic + in his article: http://www.jankoatwarpspeed.com/post/2009/08/20/Table-of-contents-using-jQuery.aspx + + This plugin is offered under the MIT license. + (c) 2009 by Doug Neiner, http://dougneiner.com +*/ +(function($){$.TableOfContents=function(el,scope,options){var base=this;base.$el=$(el);base.el=el;base.toc="";base.listStyle=null;base.tags=["h1","h2","h3","h4","h5","h6"];base.init=function(){base.options=$.extend({},$.TableOfContents.defaultOptions,options);if(typeof(scope)=="undefined"||scope==null)scope=document.body;base.$scope=$(scope);var $first=base.$scope.find(base.tags.join(', ')).filter(':first');if($first.length!=1)return;base.starting_depth=base.options.startLevel;if(base.options.depth<1)base.options.depth=1;var filtered_tags=base.tags.splice(base.options.startLevel-1,base.options.depth);base.$headings=base.$scope.find(filtered_tags.join(', '));if(base.options.topLinks!==false){var id=$(document.body).attr('id');if(id==""){id=base.options.topBodyId;document.body.id=id};base.topLinkId=id};if(base.$el.is('ul')){base.listStyle='ul'}else if(base.$el.is('ol')){base.listStyle='ol'};base.buildTOC();if(base.options.proportionateSpacing===true&&!base.tieredList()){base.addSpacing()};return base};base.tieredList=function(){return(base.listStyle=='ul'||base.listStyle=='ol')};base.buildTOC=function(){base.current_depth=base.starting_depth;base.$headings.each(function(i,element){var depth=this.nodeName.toLowerCase().substr(1,1);if(i>0||(i==0&&depth!=base.current_depth)){base.changeDepth(depth)};base.toc+=base.formatLink(this,depth,i)+"\n";if(base.options.topLinks!==false)base.addTopLink(this)});base.changeDepth(base.starting_depth,true);if(base.tieredList())base.toc="<li>\n"+base.toc+"</li>\n";base.$el.html(base.toc)};base.addTopLink=function(element){var text=(base.options.topLinks===true?"Top":base.options.topLinks);var $a=$("<a href='#"+base.topLinkId+"' class='"+base.options.topLinkClass+"'></a>").html(text);$(element).append($a)};base.formatLink=function(element,depth,index){var id=element.id;if(id==""){id=base.buildSlug($(element).text());element.id=id};var a="<a href='#"+id+"'";if(!base.tieredList())a+=" class='"+base.depthClass(depth)+"'";a+=">"+base.options.levelText.replace('%',$(element).text())+'</a>';return a};base.changeDepth=function(new_depth,last){if(last!==true)last=false;if(!base.tieredList()){base.current_depth=new_depth;return true};if(new_depth>base.current_depth){var opening_tags=[];for(var i=base.current_depth;i<new_depth;i++){opening_tags.push('<'+base.listStyle+'>'+"\n")};var li="<li>\n";base.toc+=opening_tags.join(li)+li}else if(new_depth<base.current_depth){var closing_tags=[];for(var i=base.current_depth;i>new_depth;i--){closing_tags.push('</'+base.listStyle+'>'+"\n")};base.toc+="</li>\n"+closing_tags.join('</li>'+"\n");if(!last){base.toc+="</li>\n<li>\n"}}else{if(!last){base.toc+="</li>\n<li>\n"}};base.current_depth=new_depth};base.buildSlug=function(text){text=text.toLowerCase().replace(/[^a-z0-9 -]/gi,'').replace(/ /gi,'-');text=text.substr(0,50);return text};base.depthClass=function(depth){return base.options.levelClass.replace('%',(depth-(base.starting_depth-1)))};base.addSpacing=function(){var start=base.$headings.filter(':first').position().top;base.$headings.each(function(i,el){var $a=base.$el.find('a:eq('+i+')');var pos=(($(this).position().top-start)/(base.$scope.height()-start))*base.$el.height();$a.css({position:"absolute",top:pos})})};return base.init()};$.TableOfContents.defaultOptions={startLevel:1,depth:3,levelClass:"toc-depth-%",levelText:"%",topLinks:false,topLinkClass:"toc-top-link",topBodyId:"toc-top",proportionateSpacing:false};$.fn.tableOfContents=function(scope,options){return this.each(function(){var toc=new $.TableOfContents(this,scope,options);delete toc})}})(jQuery);
@@ -82,6 +82,12 @@ </div>
<% end %> <hr /> <div id="content-body"> + <% if @item[:toc] then %> + <div id="toc"> + <span id="toctitle">Table of Contents</span> + <ol></ol> + </div> + <% end %> <%= yield %> </div> <div id="content-footer">@@ -134,6 +140,7 @@ <% if @site.config[:dev] = true then %>
<script src="/js/jquery.js" type="text/javascript"></script> <script src="/js/jquery-timeago.js" type="text/javascript"></script> <script src="/js/jquery-lightbox.js" type="text/javascript"></script> + <script src="/js/jquery-toc.js" type="text/javascript"></script> <script src="/js/date.js" type="text/javascript"></script> <script src="/js/feeds.js" type="text/javascript"></script> <script src="/js/search.js" type="text/javascript"></script>