
bbcjs.lib.date={dateFromNow:function(s){bbcjs.trace("dateFromNow: pattern: '"+s+"'",5);var today=new Date();var expdate=new Date();var multi=1;var md=s.match(/([\+\-]{1})(\d+)([smhdwMy]{1})/i);if(md[1]=="-")multi=-1;if((md.length)&&(md.length==4)){var diff=multi*(parseInt(md[2]));if(md[3]!="M")md[3]=md[3].toLowerCase();switch(md[3]){case"s":expdate.setSeconds(today.getSeconds()+diff);break;case"m":expdate.setMinutes(today.getMinutes()+diff);break;case"h":expdate.setHours(today.getHours()+diff);break;case"d":expdate.setDate(today.getDate()+diff);break;case"w":expdate.setDate(today.getDate()+(diff*7));break;case"M":expdate.setMonth(today.getMonth()+diff);break;case"y":expdate.setFullYear(today.getFullYear()+diff);break;default:expdate=today;break;}
bbcjs.trace("dateFromNow: new date is: "+expdate,5);}
else bbcjs.trace("bbcjs.lib.date.dateFromNow:: ERROR - pattern does not match required.",1);return expdate;}};bbcjs.trace('<b><font color="green">jst_date.js</font> was included.</b>',2);new function(){bbcjs.date={months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat","Sun"],msInWeek:(1000*60*60*24*7),getOrdinal:bbcjs.math.getOrdinal};bbcjs.extend(Date.prototype,{getWeek:function(sow){var today=Date.UTC(this.getFullYear(),this.getMonth(),this.getDate()+1);var nyd=new Date(this.getFullYear(),0,1);var nydDay=nyd.getDay();(nydDay>3)?(nydDay-=4):(nydDay+=3);var wknum=Math.round((((today-nyd.getTime())/86400000)+nydDay)/7);if(wknum===0){var lastweek=new Date(this.getFullYear(),this.getMonth(),this.getDate()-7);wknum=lastweek.getWeek()+1;}
return wknum;},isSameDayAs:function(other){if(typeof(other)!="object")bbcjs.trace("jst_date: Date.isSameDayAs() expects a Date object",1);else{if((this.getDate()==other.getDate())&&(this.getMonth()==other.getMonth())&&(this.getYear()==other.getYear())){return true;}}
return false;},dayInArray:function(arr){var dayFound=false;bbcjs.forEach(arr,function(o){if(o.isSameDayAs(this))dayFound=true;},this);return dayFound;}});}();