Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
META-INF.resources.org.richfaces.calendar-utils.js Maven / Gradle / Ivy
(function ($, rf) {
rf.calendarUtils = rf.calendarUtils || {};
var getDefaultMonthNames = function (shortNames)
{
return (shortNames
? ['Jan' ,'Feb' ,'Mar' ,'Apr' ,'May' ,'Jun' ,'Jul' ,'Aug' ,'Sep' ,'Oct' ,'Nov' ,'Dec' ]
: ['January' ,'February' ,'March' ,'April' ,'May' ,'June' ,'July' ,'August' ,'September' ,'October' ,'November' ,'December' ]);
};
$.extend(rf.calendarUtils, {
// TODO: rewrite this function or use the same function if exists
/*clonePosition: function (elements, source )
{
if (!elements.length) elements = [elements];
var offset = Position.cumulativeOffset(source );
offset = {left:offset[0], top:offset[1]};
var offsetTemp;
if (source.style.position!='absolute' )
{
offsetTemp = Position.realOffset(source );
offset.left -= offsetTemp.left;
offset.top -= offsetTemp.top;
offsetTemp = Richfaces.Calendar.getWindowScrollOffset();
offset.left += offsetTemp.left;
offset.top += offsetTemp.top;
}
for (var i=0;i=!:${} ()\[\]\/\\])/g;
var monthNamesStr
var monthNamesShortStr;
if (!monthNames) {
monthNames = getDefaultMonthNames();
monthNamesStr = monthNames.join('|' );
} else {
monthNamesStr = monthNames.join('|' ).replace(re, '\\$1' );
}
if (!monthNamesShort) {
monthNamesShort = getDefaultMonthNames(true );
monthNamesShortStr = monthNamesShort.join('|' );
} else {
monthNamesShortStr = monthNamesShort.join('|' ).replace(re, '\\$1' );
}
var counter=1;
var y,m,d;
var a,h,min,s;
var shortLabel=false ;
pattern = pattern.replace(/([.*+?^<>=!:${} ()|\[\]\/\\])/g, '\\$1' );
pattern = pattern.replace(/(y+|M+|d+|a|H{1,2}|h{1,2}|m{2}|s{2})/g,
function ($1 ) {
switch ($1 ) {
case 'y' :
case 'yy' : y=counter; counter++; return '(\\d{2})' ;
case 'MM' : m=counter; counter++; return '(\\d{2})' ;
case 'M' : m=counter; counter++; return '(\\d{1,2})' ;
case 'd' : d=counter; counter++; return '(\\d{1,2})' ;
case 'MMM' : m=counter; counter++; shortLabel=true ; return '(' +monthNamesShortStr+')' ;
case 'a' : a=counter; counter++; return '(AM|am|PM|pm)?' ;
case 'HH' :
case 'hh' : h=counter; counter++; return '(\\d{2})?' ;
case 'H' :
case 'h' : h=counter; counter++; return '(\\d{1,2})?' ;
case 'mm' : min=counter; counter++; return '(\\d{2})?' ;
case 'ss' : s=counter; counter++; return '(\\d{2})?' ;
}
// y+,M+,d+
var ch = $1 .charAt(0);
if (ch=='y' ) {y=counter; counter++; return '(\\d{3,4})' };
if (ch=='M' ) {m=counter; counter++; return '(' +monthNamesStr+')' };
if (ch=='d' ) {d=counter; counter++; return '(\\d{2})' };
}
);
var re = new RegExp(pattern,'i' );
var match = dateString.match(re);
if (match!=null && y != undefined && m != undefined && d != undefined)
{
// set default century start
var correctYear = false ;
var defaultCenturyStart = new Date();
defaultCenturyStart.setFullYear(defaultCenturyStart.getFullYear()-80);
var yy = parseInt(match[y],10);
if (isNaN(yy)) return null;
else if (yy<100){
// calculate full year if year has only two digits
var defaultCenturyStartYear = defaultCenturyStart.getFullYear();
var ambiguousTwoDigitYear = defaultCenturyStartYear % 100;
correctYear = yy == ambiguousTwoDigitYear;
yy += Math.floor(defaultCenturyStartYear/100)*100 + (yy < ambiguousTwoDigitYear ? 100 : 0);
}
var mm = parseInt(match[m],10); if (isNaN(mm)) mm = this.getMonthByLabel(match[m], shortLabel ? monthNamesShort : monthNames); else if (--mm<0 || mm>11) return null;
var addDay = correctYear ? 1 : 0;
var dd = parseInt(match[d],10); if (isNaN(dd) || dd<1 || dd>this.daysInMonth(yy, mm) + addDay) return null;
var date;
// time parsing
if (min!=undefined && h!=undefined)
{
var hh,mmin,aa;
mmin = parseInt(match[min],10); if (isNaN(mmin) || mmin<0 || mmin>59) return null;
hh = parseInt(match[h],10); if (isNaN(hh)) return null;
if (a!=undefined)
{
aa = match[a];
if (!aa) return null;
aa = aa.toLowerCase();
if ((aa!='am' && aa!='pm' ) || hh<1 || hh>12) return null;
if (aa=='pm' )
{
if (hh!=12) hh+=12;
} else if (hh==12) hh = 0;
}
else if (hh<0 || hh>23) return null;
date = this.createDate(yy, mm, dd, hh, mmin);
if (s!=undefined)
{
sec = parseInt(match[s], 10); if (isNaN(sec) || sec<0 || sec>59) return null;
date.setSeconds(sec);
}
} else {
date = this.createDate(yy, mm, dd);
}
if (correctYear) {
if (date.getTime() < defaultCenturyStart.getTime()) {
date.setFullYear(yy + 100);
}
if (date.getMonth() != mm) return null;
}
return date;
}
return null;
},
formatDate: function (date, pattern, monthNames, monthNamesShort) {
if (!monthNames) monthNames = getDefaultMonthNames();
if (!monthNamesShort) monthNamesShort = getDefaultMonthNames(true );
var mm,dd,hh,min,sec;
var result = pattern.replace(/(\\\\|\\[yMdaHhms])|(y+|M+|d+|a|H{1,2}|h{1,2}|m{2}|s{2})/g,
function ($1 ,$2 ,$3 ) {
if ($2 ) return $2 .charAt(1);
switch ($3 ) {
case 'y' :
case 'yy' : return date.getYear().toString().slice(-2);
case 'M' : return (date.getMonth()+1);
case 'MM' : return ((mm = date.getMonth()+1)<10 ? '0' +mm : mm);
case 'MMM' : return monthNamesShort[date.getMonth()];
case 'd' : return date.getDate();
case 'a' : return (date.getHours()<12 ? 'AM' : 'PM' );
case 'HH' : return ((hh = date.getHours())<10 ? '0' +hh : hh);
case 'H' : return date.getHours();
case 'hh' : return ((hh = date.getHours())==0 ? '12' : (hh<10 ? '0' +hh : (hh>21 ? hh-12 : (hh>12) ? '0' +(hh-12) : hh)));
case 'h' : return ((hh = date.getHours())==0 ? '12' : (hh>12 ? hh-12 : hh));
case 'mm' : return ((min = date.getMinutes())<10 ? '0' +min : min);
case 'ss' : return ((sec = date.getSeconds())<10 ? '0' +sec : sec);
}
// y+,M+,d+
var ch = $3 .charAt(0);
if (ch=='y' ) return date.getFullYear();
if (ch=='M' ) return monthNames[date.getMonth()];
if (ch=='d' ) return ((dd = date.getDate())<10 ? '0' +dd : dd);
}
);
return result;
},
isLeapYear: function (year) {
return new Date(year, 1, 29).getDate()==29;
},
daysInMonth: function (year,month) {
return 32 - new Date(year, month, 32).getDate();
},
daysInMonthByDate: function (date) {
return 32 - new Date(date.getFullYear(), date.getMonth(), 32).getDate();
},
getDay: function (date, firstWeekDay ) {
var value = date.getDay() - firstWeekDay;
if (value < 0) value = 7 + value;
return value;
},
getFirstWeek: function (year, mdifw, fdow) {
var date = new Date(year,0,1);
var firstday = this.getDay(date, fdow);
var weeknumber = (7-firstday