function FormatDate (_date, _formatstring , _lang)  
{
  if (!_lang)
   _lang = "eng";
  
  if ( (_date==null) ||(_date=="") )
      return "";

  var _res;
  var _monthno      = _date.getMonth() + 1;
  var _dayno        = _date.getDay();
  var _m            = _monthno +"";
  var _mm           = _m;  if (_mm.length == 1) _mm = "0" + _mm;;
  var _d            = _date.getDate()+"";;
  var _dd           = _d;  if (_dd.length == 1) _dd = "0" + _dd;;
  var _yyyy         = _date.getFullYear()+"";
  var _hh   	      = _date.getHours()+"";    if (_hh.length == 1) _hh = "0" + _hh;
  var _mi   	      = _date.getMinutes()+"";  if (_mi.length == 1) _mi = "0" + _mi;
  var _ss   	      = _date.getSeconds()+"";  if (_ss.length == 1) _ss = "0" + _ss; 
  
  var _dayshort;
  var _daylong;
  var _monthshort = "";
  var _monthlong  = "";
  var _langno;
  var _monthno;
  var _dayno;  


  _lang = _lang.toLowerCase(); 
  _langno = 2; //eng 
  if (_lang == "ger") _langno=1;
  if (_lang == "eng") _langno=2;


  switch (_langno)
  {
				case 1 : // DEUTSCH
				    switch (_monthno)
				    {				
				    		case 1 : _monthlong = "Januar"; break;
				    		case 2 : _monthlong = "Februar"; break;
				    		case 3 : _monthlong = "März"; break;
				    		case 4 : _monthlong = "April"; break;
				    		case 5 : _monthlong = "Mai"; break;
				    		case 6 : _monthlong = "Juni"; break;
				    		case 7 : _monthlong = "Juli"; break;
				    		case 8 : _monthlong = "August"; break;
				    		case 9 : _monthlong = "September"; break;
				    		case 10: _monthlong = "Oktober"; break;
				    		case 11: _monthlong = "November"; break;
				    		case 12: _monthlong = "Dezember"; break;
				    }						    
				    break;    
				default: // ENGLISCH
				    switch (_monthno)
				    {				
				    		case 1 : _monthlong = "January"; break;
				    		case 2 : _monthlong = "February"; break;
				    		case 3 : _monthlong = "March"; break;
				    		case 4 : _monthlong = "April"; break;
				    		case 5 : _monthlong = "May"; break;
				    		case 6 : _monthlong = "June"; break;
				    		case 7 : _monthlong = "July"; break;
				    		case 8 : _monthlong = "August"; break;
				    		case 9 : _monthlong = "September"; break;
				    		case 10: _monthlong = "October"; break;
				    		case 11: _monthlong = "November"; break;
				    		case 12: _monthlong = "December"; break;
				    }		
  }

  switch (_langno)
  {
				case 1 : // DEUTSCH
				    switch (_dayno)
				    {				
				    		case 1: 
				    		        _daylong = "Montag";
				    		        _dayshort= "Mo";
				    		        break;
				    		case 2: 
				    		        _daylong = "Dienstag";
				    		        _dayshort= "Di";
				    		         break;
				    		case 3: _daylong = "Mittwoch";
				    		        _dayshort= "Mi";  
				    		        break;
				    		case 4: _daylong = "Donnerstag";
				    		        _dayshort= "Do";
				    		          break;
				    		case 5: _daylong = "Freitag";
				    		        _dayshort= "Fr";
				    		         break;
				    		case 6: _daylong = "Samstag";
				    		        _dayshort= "Sa";
				    		         break;
				    		case 0: _daylong = "Sonntag"; 
				    		        _dayshort= "So";
				    		         break;
				    }		
				break;				    
				default: //ENGLISCH
				    switch (_dayno)
				    {
				    		case 1: 
				    		        _daylong = "Monday";
				    		        _dayshort= "Mon";
				    		        break;
				    		case 2: 
				    		        _daylong = "Tuesday";
				    		        _dayshort= "Tue";
				    		         break;
				    		case 3: _daylong = "Wednesday";
				    		        _dayshort= "Wed";  
				    		        break;
				    		case 4: _daylong = "Thursday";
				    		        _dayshort= "Thu";
				    		          break;
				    		case 5: _daylong = "Friday";
				    		        _dayshort= "Fri";
				    		         break;
				    		case 6: _daylong = "Saturday";
				    		        _dayshort= "Sat";
				    		         break;
				    		case 0: _daylong = "Sunday"; 
				    		        _dayshort= "Sun";
				    		         break;
				    }  		         
  }
      
  _monthshort = _monthlong.substr(0,3);


  _res = _formatstring.toLowerCase()
  _res = _res.replace ("#monthlong#", _monthlong);
  _res = _res.replace ("#monthshort#", _monthshort);
  _res = _res.replace ("#daylong#", _daylong);
  _res = _res.replace ("#dayshort#", _dayshort);
  _res = _res.replace ("#yyyy#", _yyyy );
  _res = _res.replace ("#yy#", _yyyy.substr(2,2) );
  _res = _res.replace ("#mm#", _mm);
  _res = _res.replace ("#m#",  _m);
  _res = _res.replace ("#dd#", _dd);
  _res = _res.replace ("#d#",  _d);
  _res = _res.replace ("#hh#",  _hh);
  _res = _res.replace ("#mi#",  _mi);
  _res = _res.replace ("#ss#",  _ss);
  
  return _res
}


function parseGermanDate (dateStr)
{
  //Eingabeformat = d[d].m[m].y[y][y][y]
    
  if ( (dateStr=="") || ((dateStr==null)) )  
      return null;
    
  p1 = dateStr.indexOf(".");
  p2 = dateStr.lastIndexOf(".");  
  
  d = dateStr.substr(0,p1) * 1;
  m = dateStr.substr(p1 + 1 , p2-p1 -1) * 1 -1;
  y = dateStr.substr(p2 +1 ,4) * 1;

  return (new Date(y, m, d) );
}

function SQLDateTimeToDate (_value)
{
  if ( (_value==null) || (_value=="") )
      return null;
      
  return new Date( _value );
}

function DateToSQLDateTime (_date)
{
  if ( (_date==null) || (_date=="") )
      return null;
      
  //return (_date.valueOf() / 1000 /60 /60 /24  +  25570);
  return ( (_date.valueOf() / 1000 /60 /60 +2)  /24  +  25569);
}

function daysBetween(earlyDate,laterDate)
{
   //-- Returns number of days between two date objects.
   var earlySecs=earlyDate.getTime()
   var laterSecs=laterDate.getTime()
   return Math.floor ((((((laterSecs-earlySecs)/1000)/60)/60)/24))
}

function DateAdd(opt, d, value)
{
   var secs = d.getTime();
   if (opt=="day")
   {
      secs = secs + value*1000*60*60*24;
   }
   
   return new Date(secs);
}
