months_short = new Array();
	months_short['de'] = new Array("Jan", "Feb", "Mär", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez");
	months_short['en'] = new Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec");
	months_short['fr'] = new Array("Jan", "Fev", "Mar", "Avr", "Mai", "Jui", "Jul", "Aou", "Sep", "Oct", "Nov", "Dec");
months_long = new Array();
	months_long['de'] = new Array("Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember");
	months_long['en'] = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
	months_long['fr'] = new Array("Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre");
calendar_title = new Array();
	calendar_title['de'] = 'Start- und Enddatum';
	calendar_title['en'] = 'select start and end';
	calendar_title['fr'] = 'Dates de début et fin';
if (  'undefined' != typeof(YAHOO) ) {
    YAHOO.namespace("fofi"); 
    function set_aDate (type, args, cal) {
      var date = args[0][0];
      /* TODO:
      Groups richtig unterstützen:
      eigene Methoden in Calender.prototype oder extend 
      und dann hier sowas:
      cal = cal.pages?cal.pages[0]:cal;
      TODO DisplayString an FF::Util::parse_date anpassen
      */
      sel_date = cal._toDate(args[0][0]);
      if ( cal.startdate && cal.enddate ) {
        delete cal.startdate;
        delete cal.enddate;
           
      }
      if ( !cal.startdate ) {
        cal.startdate = sel_date;
        cal._renderStack = [];
        cal.resetRenderers();
        document.getElementById('search_startdate').value = cal.toDisplayString(sel_date);
        return;
      } 
      else {
        if ( !cal.enddate ) {
        cal.enddate = sel_date;
        }
      }
      if ( cal.enddate.valueOf() < cal.startdate.valueOf() ) {
        tmpdate = cal.enddate;
        cal.enddate = cal.startdate;
        cal.startdate = tmpdate;
        delete tmpdate;
      }
      var startstr = cal.toDateString(cal.startdate);
      var endstr = cal.toDateString(cal.enddate);
      cal.addRenderer(startstr+"-"+endstr, cal.renderCellStyleSelected);     
      cal.render();
      document.getElementById('search_startdate').value = cal.toDisplayString(cal.startdate);
      document.getElementById('search_enddate').value = cal.toDisplayString(cal.enddate);
      window.setTimeout('YAHOO.fofi.cal1.hide()', 1000);   
      
    }
    function pageChanged() {
      
      var cfgPageDate = this.cfg.getProperty(YAHOO.widget.Calendar._DEFAULT_CONFIG.PAGEDATE.key);
      //var myPageDate = this._DEFAULT_CONFIG.PAGEDATE.key;
      //alert ("pageDate:" + cfgPageDate +"\n" );
    }
    function show_calendar (lang) {
      if (  'undefined' != typeof(YAHOO) ) { //können wir überhaupt?
        if ( 'undefined' == typeof(YAHOO.fofi.cal1) ) { // nur wenn wir nicht schon einen haben:
          init_calendar(lang);
      	} // Ende es gibt schon einen
      	YAHOO.fofi.cal1.show();      
      	if (document.all) { YAHOO.fofi.cal1.render()};
      } // Ende überhaupt
      else {
        //overlib('');
      }
      return false;
    }
    function hide_calendar() {
      if ( "undefined" != typeof(YAHOO) ) {
        YAHOO.fofi.cal1.hide();
      } 
      return false;
    }
  function init_calendar(lang) {
    var myrenderFooter = function(html){
                              	var colSpan = 7;
                              	var defCfg = YAHOO.widget.Calendar._DEFAULT_CONFIG;
                              	if (this.cfg.getProperty(defCfg.SHOW_WEEK_HEADER.key)) {
                              	  colSpan += 1;
                              	}
                              	if (this.cfg.getProperty(defCfg.SHOW_WEEK_FOOTER.key)) {
                              	  colSpan += 1;
                              	}
                              	var selDate = this.cfg.getProperty(YAHOO.widget.Calendar._DEFAULT_CONFIG.PAGEDATE.key).getFullYear();
                              	var maxjahr = this.cfg.getProperty(YAHOO.widget.Calendar._DEFAULT_CONFIG.MAXDATE.key).getFullYear();
                              	var minjahr = this.cfg.getProperty(YAHOO.widget.Calendar._DEFAULT_CONFIG.MINDATE.key).getFullYear();
                              	
                                html[html.length] = '<tfoot>';
                                html[html.length] = '<tr><td colspan=' + colSpan  + '">';
                                html[html.length] =				'<div class="' + this.Style.CSS_FOOTER + '">';
                                if ( minjahr < selDate ) {
                                  html[html.length] = '<a class="calnavleft" onclick="YAHOO.fofi.cal1.previousYear();return false;">&nbsp;</a>';
                                }
                                html[html.length] = '<select onchange="YAHOO.fofi.cal1.setYear(parseInt(this.value));YAHOO.fofi.cal1.render();return false;" id="cal_years">';
                                for(var jahr=maxjahr;jahr>=minjahr;jahr--) {
                                  if ( jahr == selDate) {
                                    html[html.length] = '<option value="' + jahr + '" selected ="selected">' + jahr + '</option>';
                                  } 
                                  else {
                                  html[html.length] = '<option value="' + jahr + '">' + jahr + '</option>';
                                  }
                                }
                                html[html.length] = '</select>';
                                if ( selDate < maxjahr ) {
                                  html[html.length] = '<a class="calnavright" onclick="YAHOO.fofi.cal1.nextYear();return false;">&nbsp;</a>';
                                }
                                html[html.length] = '</div>\n</td></tr>';
                                html[html.length] = '</tfoot>';
                                return html;
                               }
          
          YAHOO.fofi.cal1 = new YAHOO.widget.Calendar("cal1","calendar_div",
                                                        { close:        true,
                                                          title: calendar_title[lang],
                                                          HIDE_BLANK_WEEKS: true,
                                                          MULTI_SELECT: false,
                                                          SHOW_WEEKDAYS: false,
                                                          MONTHS_SHORT: months_short[lang],
                                                          MONTHS_LONG: months_long[lang]
                                                        }); 
          YAHOO.fofi.cal1.renderFooter = myrenderFooter;
          YAHOO.fofi.cal1.selectEvent.subscribe(set_aDate, YAHOO.fofi.cal1); 
          //YAHOO.fofi.cal1.changePageEvent.subscribe(pageChanged, YAHOO.fofi.cal1, true);
          YAHOO.fofi.cal1.toDateString = function(date) { 
                                            var dateArray = new Array(date.getMonth()+1, date.getDate(), date.getFullYear());
                                            
                                            return dateArray.join(this.Locale.DATE_FIELD_DELIMITER);
                                          };
          YAHOO.fofi.cal1.toDisplayString = function(date, delim) {
                                            var tmp_date = date.getDate();
                                            var tmp_month = date.getMonth()+1;
                                            tmp_date = tmp_date<10?'0' + tmp_date:tmp_date; 
                                            tmp_month = tmp_month<10?'0' + tmp_month:tmp_month; 
                                            var dateArray = new Array(tmp_date, tmp_month,  date.getFullYear());
                                            var delim = delim || this.Locale.DATE_FIELD_DELIMITER;
                                            return dateArray.join(delim);
                                          };
          
          var maxdate = YAHOO.fofi.cal1.toDateString(new Date());
          var mindate = YAHOO.fofi.cal1.toDateString(new Date(2000, 1, 1));
          YAHOO.fofi.cal1.cfg.setProperty(YAHOO.widget.Calendar._DEFAULT_CONFIG.MAXDATE.key, maxdate);
          YAHOO.fofi.cal1.cfg.setProperty(YAHOO.widget.Calendar._DEFAULT_CONFIG.MINDATE.key, mindate);
          
          YAHOO.fofi.cal1.oDomContainer.style.left = YAHOO.util.Dom.getX('search_startdate')+"px";
          YAHOO.fofi.cal1.oDomContainer.style.top = YAHOO.util.Dom.getY('search_startdate') + $('search_startdate').getHeight() + "px";
      	  YAHOO.fofi.cal1.render();
  }
 }
 