  function init_date_fields()
  {
    var inputs = document.getElementsByTagName('input');
    for(var i = 0; i < inputs.length; i++)
    {
      if(inputs[i].className.match(/(date|time|date_time|timestamp)Field/))
      {
        // Got one.
        var fmt = '';
        var selectTime = true;
        
        if(typeof jscalendar_date_formats != 'undefined')
        {
          switch(RegExp.$1)
          {
            case 'date': 
              fmt = jscalendar_date_formats.date;
              selectTime = false;
            break;
            
            case 'date_time': 
            case 'timestamp': 
              fmt = jscalendar_date_formats.date_time;
                
            break;
            case 'time': fmt = jscalendar_date_formats.time; break;
          } 
          
        }
        else
        { // Must assume Y-m-d format
          switch(RegExp.$1)
          {
            case 'date': 
              fmt =  '%Y-%m-%d';
              selectTime = false;
            break;
            
            case 'date_time': 
            case 'timestamp': 
              fmt = '%Y-%m-%d %H:%M:%S';
                
            break;
            case 'time': fmt = '%H:%M:%s';break;
          }
        }
        
        var butty = inputs[i];
        if(inputs[i].className.match(/(date|time|date_time|timestamp)FieldWithButton/))
        {
          butty = document.createElement('input');
          butty.type = 'image';
          butty.src  = '/__classpath/jscalendar/img.gif';
          butty.value  = 'cal';
          inputs[i].parentNode.insertBefore(butty,inputs[i].nextSibling);
        }
        
        Calendar.setup
        (
          {
            inputField: inputs[i].id,
            ifFormat  : fmt,
            button: butty,
            eventName: butty == inputs[i] ? 'focus' : 'click',
            showsTime: selectTime
          }
        );
      }
    }
  }
  