(function ( $ ) { $.fn.DateChoose = function ( options ) { $this = this; $this.hide(); var opts = $.extend( {}, { startDate: 1920, endDate: new Date().getFullYear(), className: 'date_of_birth', insertAfter: $this, id_prefix: "", field_ids: ['dob-day', 'dob-month', 'dob-year'], value: "", onSelect: function () {} }, options); var _days = new Array(); for (i=1; i<=31; i++) { _days.push([i.toString(), i.toString()]); } var _years = new Array(); for (i=opts.endDate; i>=opts.startDate; i--) { _years.push([i.toString(), i.toString()]); } defaults = new Array(); defaults["dob-year"] = parseInt(opts.value.split("-")[0]); defaults["dob-month"] = parseInt(opts.value.split("-")[1]); defaults["dob-day"] = parseInt(opts.value.split("-")[2]); _daySelect = $.fn.DateChoose.putAsSelect( _days, opts.id_prefix + opts.field_ids[0], "dob-day", "Day" ); _monthSelect = $.fn.DateChoose.putAsSelect( $.fn.DateChoose._months, opts.id_prefix + opts.field_ids[1], "dob-month", "Month" ); _yearSelect = $.fn.DateChoose.putAsSelect( _years, opts.id_prefix + opts.field_ids[2], "dob-year", "Year" ); $( _daySelect ).find('select').change(function () { $.fn.DateChoose.validate($this); opts.onSelect(); }); $( _monthSelect ).find('select').change(function () { $.fn.DateChoose.validate($this); opts.onSelect(); }); $( _yearSelect ).find('select').change(function () { $.fn.DateChoose.validate($this); opts.onSelect(); }); var _obj = $( '
' ); opts.insertAfter.after( _obj ); _obj.append( _daySelect ); _obj.append( _monthSelect ); _obj.append( _yearSelect ); return $this; }; $.fn.DateChoose._months = [ [1, "January"], [2, "February"], [3, "March"], [4, "April"], [5, "May"], [6, "June"], [7, "July"], [8, "August"], [9, "September"], [10, "October"], [11, "November"], [12, "December"] ]; $.fn.DateChoose.putAsSelect = function ( _data, _id, _class, _head ) { var _string = ""; var containerEl = $('
'); containerEl.attr('class', 'register-box-group'); containerEl.append(''); var newEl = $('