/**********************************************
class Ctime
Basisklasse für die Verarbeitung von Datum 
und Uhrzeit nach Deutschen Verhältnissen
**********************************************/
//--- Konstruktion ----------------------------
function Ctime(){
	//--- Membervariable (Eigenschaften) ---
	this.d		=0; //tag der woche (startet mit 0!!)
	this.D		=0; //tag des monats
	this.M		=0; //monat (startet mit 0!!)
	this.Y		=0; //jahr
	this.h		=0; //stunde
	this.m		=0; //minute
	this.s		=0; //sekunde
	this.sj		=false; //Schaltjahr?
	this.r_monat_lang = ['Januar','Februar','März','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember'];
	this.r_monat_kurz = ['Jan','Feb','Mar','Apr','Mai','Jun','Jul','Aug','Sep','Okt','Nov','Dez'];
	this.r_tage_lang  = ['Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'];
	this.r_tage_kurz  = ['So','Mo','Di','Mi','Do','Fr','Sa'];
	this.r_dom		  = [31,28,31,30,31,30,31,31,30,31,30,31]; //tage/monat;
	//--- initialisierung ------
	this.set_time_now();
}
//--- Memberfunktionen (Methoden) -------------
Ctime.prototype.set_date_time=function(date){ 			//standardinitialisierung ; beliebiges Datum
	
	this.d		=date.getDay(); 
	this.D		=date.getDate(); 			
	this.M		=date.getMonth(); 
	this.Y		=date.getFullYear(); 
	this.h		=date.getHours();
	this.m		=date.getMinutes();
	this.s		=date.getSeconds();
	this.sj		=this.schaltjahr(this.Y);
}
Ctime.prototype.schaltjahr=function(jahr){				//ist das übergebene Jahr ein Schaltjahr?
	if(jahr%400==0||(jahr%4==0&&jahr%100!=0)) return true;
	return false;
}
Ctime.prototype.set_time_now=function(){
	date= new Date();
	this.set_date_time(date);
}
Ctime.prototype.set_date=function(Jahr,Monat,Tag){
	var date = new Date(Jahr, Monat, Tag);
	this.set_date_time(date);
}
Ctime.prototype.find_month=function(monthstring){
	for(i=0;i<12;i++){
		if(monthstring==this.r_monat_lang[i]) return i;
	}
	for(i=0;i<12;i++){
		if(monthstring==this.r_monat_kurz[i]) return i;
	}
	allert("Fehler bei der Interpretation des Monatsnamens");
	return false;
}
Ctime.prototype.set_date_string=function(datestring){
	r=datestring.split(" ");
	tag=0;
	monat=0;
	jahr=0;
	ok=true;
	switch(r.length){
		case 1:
			r=datestring.split(".");
			tag		=Number(r[0]);
			monat	=Number(r[1])-1;
			jahr	=Number(r[2]);
			break;
		case 2:
			jahr	=Number(r[1]);
			r=datestring.split(".");
			tag		=Number(r[0]);
			r=r[1].split(" ");
			monat	=this.find_month(r[0]);
			
			break;
		case 3:
			jahr	=Number(r[2]);
			r=r[1].split(".");
			tag		=Number(r[0]);
			monat	=this.find_month(r[1]);
			break;
		default:
			alert("Fehler bei der Datumsauswertung");
			ok=false;
	}	
	this.set_date(jahr,monat,tag);
}
Ctime.prototype.timestring=function(){
	hh=this.h; 
	mm =this.m; 
	ss =this.s; 
    if(hh < 10)hh="0"+hh;
    if(mm < 10)mm="0"+mm;
    if(ss < 10)ss="0"+ss;
	res=hh+":"+mm+":"+ss;
	return res;
}
Ctime.prototype.datestring_lang=function(){
	wd=this.r_tage_lang[this.d];
		dd=this.D; 
	mm =this.r_monat_lang[this.M] 
	yy =this.Y; 
    if(dd < 10)dd="0"+dd;
    res=wd+" "+dd+"."+mm+" "+yy;
	return res;
}
Ctime.prototype.datestring=function(){
	dd=this.D; 
	mm =this.M+1; 
	yy =this.Y; 
    if(dd < 10)dd="0"+dd;
    if(mm < 10)mm="0"+mm;
	res=dd+"."+mm+"."+yy;
	return res;
}
