/* Date patterns for Date instance methods v2.0 (http://kendsnyder.com/sandbox/date/)
 * 2008-04-21 by Ken Snyder (ken d snyder at gmail dot com)
 * Creative Commons Attribution License 3.0 (http://creativecommons.org/licenses/by/3.0/) */
Date.create.patterns=Date.create.patterns.concat([function(str){var match=str.match(/(\d+)\s+(year|month|week|day|hour|minute|second)s?\s+ago/i);if(match)return new Date().add(-1*match[1],match[2]);},function(str){var match=str.match(/(\d+)\s+(year|month|week|day|hour|minute|second)s?\s+(before|from|after)\s+(.+)/i);if(match){var fromDate=Date.create(match[4]);if(fromDate instanceof Date){return fromDate.add((match[3].toLowerCase()=='before'?-1:1)*match[1],match[2]);}}},function(str){var match=str.match(/^(tod|now|tom|yes)/i);if(match){switch(match[1].toLowerCase()){case'tod':case'now':return new Date();case'tom':return new Date().add(1,'day');case'yes':return new Date().add(-1,'day');}}},function(str){var match=str.match(/(this|next|last)\s+(.{3,20})/i);if(match){var multiplier=match[1].toLowerCase()=='last'?-1:1;var monthOrDay=match[2].substring(3).toLowerCase();var months=Date.ABBR_MONTHNAMES;for(var i=0;i<months.length;i++){if(monthOrDay==months[i].toLowerCase()){var now=new Date();return now.add(multiplier*(now.getDay()-i+1),'month');}}
var days=Date.ABBR_DAYNAMES;for(i=0;i<days.length;i++){if(monthOrDay==days[i].toLowerCase()){var now=new Date();return now.add(multiplier*(now.getDay()-i+1),'day');}}}},function(str){var match=str.match(/^(?:(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)[a-z]*\s+)?(?:the\s+)?(\d+)(?:st|nd|rd|th)?$/i);if(match&&match[2]){var d=new Date();if(match[1]){d.setMonth(Date.ABBR_MONTHNAMES.map(function(s){return s.toLowerCase}).indexOf(match[1].toLowerCase()));}
d.setDate(match[2]);return d;}}]);
