/**
* Version: 1.0 Alpha-1 * Build Date: 13-Nov-2007 * Copyright (c) 2006-2007, Coolite Inc. (http://www.coolite.com/). All rights reserved. * License: Licensed under The MIT License. See license.txt and http://www.datejs.com/license/. * Website: http://www.datejs.com/ or http://www.coolite.com/datejs/ */
Date.CultureInfo={name:“en-US”,englishName:“English (United States)”,nativeName:“English (United States)”,dayNames:,abbreviatedDayNames:,shortestDayNames:,firstLetterDayNames:,monthNames:,abbreviatedMonthNames:,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:/^(+|after|from)/i,subtract:/^(-|before|ago)/i,yesterday:/^yesterday/i,today:/^t(oday)?/i,tomorrow:/^tomorrow/i,now:/^n(ow)?/i,millisecond:/^ms|milli(second)?s?/i,second:/^sec(ond)?s?/i,minute:/^min(ute)?s?/i,hour:/^h(ou)?rs?/i,week:/^w(ee)?k/i,month:/^m(o(nth)?s?)?/i,day:/^d(ays?)?/i,year:/^y((ea)?rs?)?/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*dddd?)|gmt)/i,ordinalSuffix:/^s*(st|nd|rd|th)/i,timeContext:/^s*(:|a|p)/i},abbreviatedTimeZoneStandard:{GMT:“-000”,EST:“-0400”,CST:“-0500”,MST:“-0600”,PST:“-0700”},abbreviatedTimeZoneDST:{GMT:“-000”,EDT:“-0500”,CDT:“-0600”,MDT:“-0700”,PDT:“-0800”}}; Date.getMonthNumberFromName=function(name){var n=Date.CultureInfo.monthNames,m=Date.CultureInfo.abbreviatedMonthNames,s=name.toLowerCase();for(var i=0;i<n.length;i++){if(n.toLowerCase()==s||m.toLowerCase()==s){return i;}} return-1;};Date.getDayNumberFromName=function(name){var n=Date.CultureInfo.dayNames,m=Date.CultureInfo.abbreviatedDayNames,o=Date.CultureInfo.shortestDayNames,s=name.toLowerCase();for(var i=0;i<n.length;i++){if(n.toLowerCase()==s||m.toLowerCase()==s){return i;}} return-1;};Date.isLeapYear=function(year){return(((year%4===0)&&(year%100!==0))||(year%400===0));};Date.getDaysInMonth=function(year,month){return[month];};Date.getTimezoneOffset=function(s,dst){return(dst||false)?Date.CultureInfo.abbreviatedTimeZoneDST:Date.CultureInfo.abbreviatedTimeZoneStandard;};Date.getTimezoneAbbreviation=function(offset,dst){var n=(dst||false)?Date.CultureInfo.abbreviatedTimeZoneDST:Date.CultureInfo.abbreviatedTimeZoneStandard,p;for(p in n){if(n===offset){return p;}} return null;};Date.prototype.clone=function(){return new Date(this.getTime());};Date.prototype.compareTo=function(date){if(isNaN(this)){throw new Error(this);} if(date instanceof Date&&!isNaN(date)){return(this>date)?1:(this<date)?-1:0;}else{throw new TypeError(date);}};Date.prototype.equals=function(date){return(this.compareTo(date)===0);};Date.prototype.between=function(start,end){var t=this.getTime();return t>=start.getTime()&&t<=end.getTime();};Date.prototype.addMilliseconds=function(value){this.setMilliseconds(this.getMilliseconds()+value);return this;};Date.prototype.addSeconds=function(value){return this.addMilliseconds(value*1000);};Date.prototype.addMinutes=function(value){return this.addMilliseconds(value*60000);};Date.prototype.addHours=function(value){return this.addMilliseconds(value*3600000);};Date.prototype.addDays=function(value){return this.addMilliseconds(value*86400000);};Date.prototype.addWeeks=function(value){return this.addMilliseconds(value*604800000);};Date.prototype.addMonths=function(value){var n=this.getDate();this.setDate(1);this.setMonth(this.getMonth()+value);this.setDate(Math.min(n,this.getDaysInMonth()));return this;};Date.prototype.addYears=function(value){return this.addMonths(value*12);};Date.prototype.add=function(config){if(typeof config==“number”){this._orient=config;return this;} var x=config;if(x.millisecond||x.milliseconds){this.addMilliseconds(x.millisecond||x.milliseconds);} if(x.second||x.seconds){this.addSeconds(x.second||x.seconds);} if(x.minute||x.minutes){this.addMinutes(x.minute||x.minutes);} if(x.hour||x.hours){this.addHours(x.hour||x.hours);} if(x.month||x.months){this.addMonths(x.month||x.months);} if(x.year||x.years){this.addYears(x.year||x.years);} if(x.day||x.days){this.addDays(x.day||x.days);} return this;};Date._validate=function(value,min,max,name){if(typeof value!=“number”){throw new TypeError(value+“ is not a Number.”);}else if(value<min||value>max){throw new RangeError(value+“ is not a valid value for ”name
“.”);} return true;};Date.validateMillisecond=function(n){return Date._validate(n,0,999,“milliseconds”);};Date.validateSecond=function(n){return Date._validate(n,0,59,“seconds”);};Date.validateMinute=function(n){return Date._validate(n,0,59,“minutes”);};Date.validateHour=function(n){return Date._validate(n,0,23,“hours”);};Date.validateDay=function(n,year,month){return Date._validate(n,1,Date.getDaysInMonth(year,month),“days”);};Date.validateMonth=function(n){return Date._validate(n,0,11,“months”);};Date.validateYear=function(n){return Date._validate(n,1,9999,“seconds”);};Date.prototype.set=function(config){var x=config;if(!x.millisecond&&x.millisecond!==0){x.millisecond=-1;} if(!x.second&&x.second!==0){x.second=-1;} if(!x.minute&&x.minute!==0){x.minute=-1;} if(!x.hour&&x.hour!==0){x.hour=-1;} if(!x.day&&x.day!==0){x.day=-1;} if(!x.month&&x.month!==0){x.month=-1;} if(!x.year&&x.year!==0){x.year=-1;} if(x.millisecond!=-1&&Date.validateMillisecond(x.millisecond)){this.addMilliseconds(x.millisecond-this.getMilliseconds());} if(x.second!=-1&&Date.validateSecond(x.second)){this.addSeconds(x.second-this.getSeconds());} if(x.minute!=-1&&Date.validateMinute(x.minute)){this.addMinutes(x.minute-this.getMinutes());} if(x.hour!=-1&&Date.validateHour(x.hour)){this.addHours(x.hour-this.getHours());} if(x.month!==-1&&Date.validateMonth(x.month)){this.addMonths(x.month-this.getMonth());} if(x.year!=-1&&Date.validateYear(x.year)){this.addYears(x.year-this.getFullYear());} if(x.day!=-1&&Date.validateDay(x.day,this.getFullYear(),this.getMonth())){this.addDays(x.day-this.getDate());} if(x.timezone){this.setTimezone(x.timezone);} if(x.timezoneOffset){this.setTimezoneOffset(x.timezoneOffset);} return this;};Date.prototype.clearTime=function(){this.setHours(0);this.setMinutes(0);this.setSeconds(0);this.setMilliseconds(0);return this;};Date.prototype.isLeapYear=function(){var y=this.getFullYear();return(((y%4===0)&&(y%100!==0))||(y%400===0));};Date.prototype.isWeekday=function(){return!(this.is().sat()||this.is().sun());};Date.prototype.getDaysInMonth=function(){return Date.getDaysInMonth(this.getFullYear(),this.getMonth());};Date.prototype.moveToFirstDayOfMonth=function(){return this.set({day:1});};Date.prototype.moveToLastDayOfMonth=function(){return this.set({day:this.getDaysInMonth()});};Date.prototype.moveToDayOfWeek=function(day,orient){var diff=(day-this.getDay()+7*(orient||+1))%7;return this.addDays((diff===0)?diff+=7*(orient||+1):diff);};Date.prototype.moveToMonth=function(month,orient){var diff=(month-this.getMonth()+12*(orient||+1))%12;return this.addMonths((diff===0)?diff+=12*(orient||+1):diff);};Date.prototype.getDayOfYear=function(){return Math.floor((this-new Date(this.getFullYear(),0,1))/86400000);};Date.prototype.getWeekOfYear=function(firstDayOfWeek){var y=this.getFullYear(),m=this.getMonth(),d=this.getDate();var dow=firstDayOfWeek||Date.CultureInfo.firstDayOfWeek;var offset=7+1-new Date(y,0,1).getDay();if(offset==8){offset=1;} var daynum=((Date.UTC(y,m,d,0,0,0)-Date.UTC(y,0,1,0,0,0))/86400000)+1;var w=Math.floor((daynum-offset+7)/7);if(w===dow){y–;var prevOffset=7+1-new Date(y,0,1).getDay();if(prevOffset==2||prevOffset==8){w=53;}else{w=52;}} return w;};Date.prototype.isDST=function(){console.log('isDST');return this.toString().match(/(E|C|M|P)(S|D)T/)==“D”;};Date.prototype.getTimezone=function(){return Date.getTimezoneAbbreviation(this.getUTCOffset,this.isDST());};Date.prototype.setTimezoneOffset=function(s){var here=this.getTimezoneOffset(),there=Number(s)*-6/10;this.addMinutes(there-here);return this;};Date.prototype.setTimezone=function(s){return this.setTimezoneOffset(Date.getTimezoneOffset(s));};Date.prototype.getUTCOffset=function(){var n=this.getTimezoneOffset()*-10/6,r;if(n<0){r=(n-10000).toString();return r+r.substr(2);}else{r=(n+10000).toString();return“+”+r.substr(1);}};Date.prototype.getDayName=function(abbrev){return abbrev?Date.CultureInfo.abbreviatedDayNames:Date.CultureInfo.dayNames;};Date.prototype.getMonthName=function(abbrev){return abbrev?Date.CultureInfo.abbreviatedMonthNames:Date.CultureInfo.monthNames;};Date.prototype._toString=Date.prototype.toString;Date.prototype.toString=function(format){var self=this;var p=function p(s){return(s.toString().length==1)?“0”+s:s;};return format?format.replace(/dd?d?d?|MM?M?M?|yy?y?y?|hh?|HH?|mm?|ss?|tt?|zz?z?/g,function(format){switch(format){case“hh”:return p(self.getHours()<13?self.getHours():(self.getHours()-12));case“h”:return self.getHours()<13?self.getHours():(self.getHours()-12);case“HH”:return p(self.getHours());case“H”:return self.getHours();case“mm”:return p(self.getMinutes());case“m”:return self.getMinutes();case“ss”:return p(self.getSeconds());case“s”:return self.getSeconds();case“yyyy”:return self.getFullYear();case“yy”:return self.getFullYear().toString().substring(2,4);case“dddd”:return self.getDayName();case“ddd”:return self.getDayName(true);case“dd”:return p(self.getDate());case“d”:return self.getDate().toString();case“MMMM”:return self.getMonthName();case“MMM”:return self.getMonthName(true);case“MM”:return p((self.getMonth()+1));case“M”:return self.getMonth()+1;case“t”:return self.getHours()<12?Date.CultureInfo.amDesignator.substring(0,1):Date.CultureInfo.pmDesignator.substring(0,1);case“tt”:return self.getHours()<12?Date.CultureInfo.amDesignator:Date.CultureInfo.pmDesignator;case“zzz”:case“zz”:case“z”:return“”;}}):this._toString();}; Date.now=function(){return new Date();};Date.today=function(){return Date.now().clearTime();};Date.prototype._orient=+1;Date.prototype.next=function(){this._orient=+1;return this;};Date.prototype.last=Date.prototype.prev=Date.prototype.previous=function(){this._orient=-1;return this;};Date.prototype._is=false;Date.prototype.is=function(){this._is=true;return this;};Number.prototype._dateElement=“day”;Number.prototype.fromNow=function(){var c={};c=this;return Date.now().add©;};Number.prototype.ago=function(){var c={};c=this*-1;return Date.now().add©;};(function(){var $D=Date.prototype,$N=Number.prototype;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/),de;var df=function(n){return function(){if(this._is){this._is=false;return this.getDay()==n;} return this.moveToDayOfWeek(n,this._orient);};};for(var i=0;i<dx.length;i++){$D[dx]=$D[dx.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);};};for(var j=0;j<mx.length;j++){$D[mx]=$D[mx.substring(0,3)]=mf(j);} var ef=function(j){return function(){if(j.substring(j.length-1)!=“s”){j+=“s”;} return this(this._orient);};};var nf=function(n){return function(){this._dateElement=n;return this;};};for(var k=0;k<px.length;k++){de=px.toLowerCase();$D=$D=ef(px);$N=$N=nf(de);}}());Date.prototype.toJSONString=function(){return this.toString(“yyyy-MM-ddThh:mm:ssZ”);};Date.prototype.toShortDateString=function(){return this.toString(Date.CultureInfo.formatPatterns.shortDatePattern);};Date.prototype.toLongDateString=function(){return this.toString(Date.CultureInfo.formatPatterns.longDatePattern);};Date.prototype.toShortTimeString=function(){return this.toString(Date.CultureInfo.formatPatterns.shortTimePattern);};Date.prototype.toLongTimeString=function(){return this.toString(Date.CultureInfo.formatPatterns.longTimePattern);};Date.prototype.getOrdinal=function(){switch(this.getDate()){case 1:case 21:case 31:return“st”;case 2:case 22:return“nd”;case 3:case 23:return“rd”;default:return“th”;}}; (function(){Date.Parsing={Exception:function(s){this.message=“Parse error at '”+s.substring(0,10)+“ …'”;}};var $P=Date.Parsing;var _=$P.Operators={rtoken:function®{return function(s){var mx=s.match®;if(mx){return([mx,s.substring(mx.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);s=rx;continue;} break;} return;};},many:function(p){return function(s){var rx=[],r=null;while(s.length){try{r=p.call(this,s);}catch(e){return;} rx.push(r);s=r;} return;};},optional:function(p){return function(s){var r=null;try{r=p.call(this,s);}catch(e){return;} return[r,r];};},not:function(p){return function(s){try{p.call(this,s);}catch(e){return;} throw new $P.Exception(s);};},ignore:function(p){return p?function(s){var r=null;r=p.call(this,s);return[null,r];}:null;},product:function(){var px=arguments,qx=Array.prototype.slice.call(arguments,1),rx=[];for(var i=0;i<px.length;i++){rx.push(_.each(px,qx));} return rx;},cache:function(rule){var cache={},r=null;return function(s){try{r=cache=(cache||rule.call(this,s));}catch(e){r=cache=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==null){continue;} try{r=(px.call(this,s));}catch(e){r=null;} if®{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==null){continue;} try{r=(px.call(this,s));}catch(e){throw new $P.Exception(s);} rx.push(r);s=r;} return;};},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;} return function(s){var r=null,q=null;var rx=[];for(var i=0;i<px.length;i++){try{r=px.call(this,s);}catch(e){break;} rx.push(r);try{q=d.call(this,r);}catch(ex){q=null;break;} s=q;} if(!r){throw new $P.Exception(s);} if(q){throw new $P.Exception(q);} if©{try{r=c.call(this,r);}catch(ey){throw new $P.Exception(r);}} return[rx,(r?r: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],r[2]],rx];};},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©):.each(.many(_.each(p,_.ignore(d))),px,_.ignore©));},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.call(this,s);}catch(e){continue;} rx=[[r],r];if(r.length>0&&!last){try{q=d.call(this,r);}catch(ex){last=true;}}else{last=true;} if(!last&&q.length===0){last=true;} if(!last){var qx=[];for(var j=0;j<px.length;j++){if(i!=j){qx.push(px);}} p=_.set(qx,d).call(this,q);if(p.length>0){rx=rx.concat(p);rx=p;}} if(rx.length