';
this.fullDateInputInsertHTML = $( fullDateInputHTML );
return this.fullDateInputInsertHTML;
},
editTemplate: function(value) {
var display_day_of_month = '';
var display_year = '';
var display_month = 0;
var dateValue, dateFormat;
// These both sometimes happen.
if ( value === undefined || value === '' ) {
value = null;
}
if ( value === null ) {
dateValue = null;
} else if ( mw.config.get('wgAmericanDates') ) { //check for date-style format.
dateValue = value;
if ( /^\d+$/.test( dateValue ) && dateValue.length < 8 ){
dateFormat = 1; //Year only
// Add a fake day and month that will be ignored later
// so that it's a valid date format in javascript
dateValue = "January 01," + dateValue;
} else {
var spaceCount = ( dateValue.match(/ /g) || [] ).length;
if ( spaceCount === 1 ) {
dateFormat = 2; //Month and Year only
// Add a fake day that will be ignored later
// so that it's a valid date format in javascript
var temp = dateValue.split(' ');
dateValue = temp.join(' 01,');
} else {
dateFormat = 3; //Complete date
}
}
} else {
dateValue = value.replace( /\//g, '-' );
if ( /^\d+$/.test( dateValue ) && dateValue.length < 8 ){
dateFormat = 1; //Year only
// Add a fake day and month that will be ignored later
// so that it's a valid date format in javascript
dateValue = dateValue + "-01-01";
} else {
var hyphenCount = ( dateValue.match(/-/g) || [] ).length;
if ( hyphenCount === 1 ) {
dateFormat = 2; //Month and Year only
// Add a fake day that will be ignored later
// so that it's a valid date format in javascript
dateValue = dateValue + "-01";
} else {
dateFormat = 3; //Complete date
}
}
}
if ( value !== null ) {
var dateObject = new Date( dateValue );
display_day_of_month = dateObject.getDate();
display_year = dateObject.getFullYear();
display_month = dateObject.getMonth();
}
var fullDateInputHTML = '
';
var monthElement;
var dayElement;
if ( value === null ) {
dayElement = '';
monthElement = multiPageEditBuildSelect(0);
} else if ( dateFormat === 1 ) {
dayElement = '';
monthElement = multiPageEditBuildSelect(0);
} else if ( dateFormat === 2 ) {
dayElement = '';
monthElement = multiPageEditBuildSelect(display_month + 1);
} else {
dayElement = display_day_of_month;
monthElement = multiPageEditBuildSelect(display_month + 1);
}
var html_day = '';
var html_month = '