/* FILE ARCHIVED ON 10:46:50 Feb 15, 2013 AND RETRIEVED FROM THE AN OPENWAYBACK INSTANCE ON 17:14:23 Apr 27, 2024. JAVASCRIPT APPENDED BY OPENWAYBACK, COPYRIGHT INTERNET ARCHIVE. ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C. SECTION 108(a)(3)). */ /** * Version: 1.0 Alpha-1 * Build Date: 13-Nov-2007 * Copyright (c) 2006-2007, Coolite Inc. (https://cybercemetery.unt.edu/archive/oilspill/20130215104650/http://www.coolite.com/). All rights reserved. * License: Licensed under The MIT License. See license.txt and https://cybercemetery.unt.edu/archive/oilspill/20130215104650/http://www.datejs.com/license/. * Website: https://cybercemetery.unt.edu/archive/oilspill/20130215104650/http://www.datejs.com/ or https://cybercemetery.unt.edu/archive/oilspill/20130215104650/http://www.coolite.com/datejs/ */ 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:/^(\+|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*\d\d\d\d?)|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;idate)?1:(this=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(valuemax){ 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/)[2]=="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[0]+r.substr(2); }else{ r=(n+10000).toString(); return"+"+r.substr(1); } }; Date.prototype.getDayName=function(abbrev){ return abbrev?Date.CultureInfo.abbreviatedDayNames[this.getDay()]:Date.CultureInfo.dayNames[this.getDay()]; }; Date.prototype.getMonthName=function(abbrev){ return abbrev?Date.CultureInfo.abbreviatedMonthNames[this.getMonth()]:Date.CultureInfo.monthNames[this.getMonth()]; }; 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": if (self.getHours() == 0) return p(self.getHours()+12); //for the case of 12:00am instead of 00:00am return p(self.getHours()<13?self.getHours():(self.getHours()-12)); case"h": if (self.getHours() == 0) return self.getHours()+12; //for the case of 12:00am instead of 00:00am 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._dateElement]=this; return Date.now().add(c); }; Number.prototype.ago=function(){ var c={}; c[this._dateElement]=this*-1; return Date.now().add(c); }; (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;i0&&!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;j0){ rx[0]=rx[0].concat(p[0]); rx[1]=p[1]; } } if(rx[1].length1){ args=Array.prototype.slice.call(arguments); }else if(arguments[0]instanceof Array){ args=arguments[0]; } if(args){ for(var i=0,px=args.shift();i2)?n:(n+(((n+2000)Date.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