partialDatePicker = {
 monthNames: ['January','February','March','April','May','June',
	      'July','August','September','October','November','December'], // Names of months for drop-down and formatting
 monthStatus: 'Show a different month', // Status text for selecting a month
 yearStatus: 'Show a different year', // Status text for selecting a year
 yearNumber: 11,
 yearOffset: -5,
 
 generateDate: function (event){
    var widget = $(event.target).parents(".widget"),
    datepicker = $('.inner .date-picker .datetimepicker_wrap .extended-date-pick', widget)
    var $input = false;
    $(datepicker).each(function (index, date){
	if ($(date).attr('id').indexOf($(widget).attr('id')) != -1){
	  $input = $(date);
	  }
      });

    $month = $(".partialpicker_month", widget).val(),
    $year = $(".partialpicker_year", widget).val();
    //update inputfield with datestring and trigger onChange event
    $input.val($year + "-" + $month);
    $input.trigger('change');
  },
 

 generateYearSelector: function (currentYear){
    //generate year with current choosen if not given
    if (!currentYear ){
      var today = new Date();
      today = new Date(today.getFullYear(), today.getMonth(), today.getDate()); // clear time
      var currentYear = parseInt(today.getFullYear());
    }else{
      currentYear = parseInt(currentYear);
    }
    var html = '<select class="partialpicker_year" ' +
    'onchange="partialDatePicker.redrawYearSelector(event)"' +
    'onclick="" >';
    
    var startingYear = currentYear + partialDatePicker.yearOffset;
    for (var year = 0; year < partialDatePicker.yearNumber; year++) {
      var cYear = startingYear + year;
      html += '<option value="' + cYear + '"' + ((cYear == currentYear) ? ' selected="selected"' : '') + '>' + cYear + '</option>';
      }
    
    html += '</select>';
    
    return html;
  },

 redrawYearSelector: function(event){
    var widget = $(event.target).parents(".widget")[0],
    $year = $(".partialpicker_year", widget);

    year = $year.val();
    var html = partialDatePicker.generateYearSelector(year);
    $year.replaceWith(html);
  },
 
 generateMonthSelector: function(){
    //generate month with current choosen
    var today = new Date();
    today = new Date(today.getFullYear(), today.getMonth(), today.getDate()); // clear time
    
    var html = '<select class="partialpicker_month" ' +
    'onchange="" ' +
    'onclick="" >';
    
    for (var month = 0; month < 12; month++) {
      var rmonth = month + 1
      html += '<option value="' + rmonth + '"' +
	(month == today.getMonth() ? ' selected="selected"' : '') + '>' + partialDatePicker.monthNames[month] + '</option>';
      }
    
    html += '</select>';
    return html;
  },

  generateWidget : function (){
    var html = '<div class="ppicker">';
    html += partialDatePicker.generateMonthSelector();
    html += partialDatePicker.generateYearSelector(false);
    html += '<input type="button" class="partSelectorButton" onclick="partialDatePicker.generateDate(event)" value="select">';
    html += "</div>";

    return html;
  }
 
};

