/* * Date picker plugin for jQuery * http://kelvinluck.com/assets/jquery/datePicker * * Copyright (c) 2006 Kelvin Luck (kelvnluck.com) * Licensed under the MIT License: * http://www.opensource.org/licenses/mit-license.php * * $LastChangedDate: 2007-02-13 11:32:41 +0000 (Tue, 13 Feb 2007) $ * $Rev: 1334 $ */ ( function($) { jQuery.datePicker = function() { if (window.console == undefined) { window.console = {log:function(){}}; } var months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']; var days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']; var navLinks = {p:'Prev', n:'Next', c:'Close', b:'Choose date'}; var dateFormat = 'dmy'; var dateSeparator = "/"; var _drawingMonth = false; var _firstDayOfWeek; var _firstDate; var _lastDate; var _selectedDate; var _openCal; var _zeroPad = function(num) { var s = '0'+num; return s.substring(s.length-2) }; var _strToDate = function(dIn) { switch (dateFormat) { case 'ymd': dParts = dIn.split(dateSeparator); return new Date(dParts[0], Number(dParts[1])-1, dParts[2]); case 'dmy': dParts = dIn.split(dateSeparator); return new Date(dParts[2], Number(dParts[1])-1, Number(dParts[0])); case 'dmmy': dParts = dIn.split(dateSeparator); for (var m=0; m<12; m++) { if (dParts[1].toLowerCase() == months[m].substr(0,3).toLowerCase()) { return new Date(Number(dParts[2]), m, Number(dParts[0])); } } return undefined; case 'mdy': default: var parts = parts ? parts : [2, 1, 0]; dParts = dIn.split(dateSeparator); return new Date(dParts[2], Number(dParts[0])-1, Number(dParts[1])); } }; var _dateToStr = function(d) { var dY = d.getFullYear(); var dM = _zeroPad(d.getMonth()+1); var dD = _zeroPad(d.getDate()); switch (dateFormat) { case 'ymd': return dY + dateSeparator + dM + dateSeparator + dD; case 'dmy': return dD + dateSeparator + dM + dateSeparator + dY; case 'dmmy': return dD + dateSeparator + months[d.getMonth()].substr(0,3) + dateSeparator + dY; case 'mdy': default: return dM + dateSeparator + dD + dateSeparator + dY; } }; var _getCalendarDiv = function(dIn) { var today = new Date(); if (dIn == undefined) { d = new Date(today.getFullYear(), today.getMonth(), 1); } else { d = dIn; d.setDate(1); } if ((d.getMonth() < _firstDate.getMonth() && d.getFullYear() == _firstDate.getFullYear()) || d.getFullYear() < _firstDate.getFullYear()) { d = new Date(_firstDate.getFullYear(), _firstDate.getMonth(), 1);; } else if ((d.getMonth() > _lastDate.getMonth() && d.getFullYear() == _lastDate.getFullYear()) || d.getFullYear() > _lastDate.getFullYear()) { d = new Date(_lastDate.getFullYear(), _lastDate.getMonth(), 1);; } var jCalDiv = jQuery("