function DateControl(){
	XPlatform.call(this);
	this._DAY    = "day";
	this._MONTH  = "month";
	this._YEAR   = "year";
	this._HOUR   = "hour";
	this._MINUTE = "minute";
	this._pos   = 0;
	// Code nur einmal ausfhren
	//
	if( typeof DateControl._initialized == "undefined" ){
	

	
	
		/**
		 * Methode als Event-Listener für Tastatureingaben
		 * ber den Input-Feldern. 
		 */
		DateControl.prototype.keyDown = function(oEvent){
			var event = (typeof oEvent == "undefined") ? window.event : oEvent;
            event.returnValue=true;
            var tgt = event.target
			var key = event.keyCode;
			var sControlerId = this.getCrtlId(tgt.id);
			var sType = this.getType(tgt.id);
			switch(key){
                case  8: // Backspace
                         if(sType == this._MONTH && tgt.value==""){
                             document.getElementById(sControlerId+'.'+this._DAY).focus();
                         }else if(sType == this._YEAR && tgt.value==""){
                             document.getElementById(sControlerId+'.'+this._MONTH).focus();
                         }
                         /*
                         else if(sType == this._HOUR && tgt.value==""){
                             document.getElementById(sControlerId+'.'+this._YEAR).focus();
                         }else if(sType == this._MINUTE && tgt.value==""){
                             document.getElementById(sControlerId+'.'+this._HOUR).focus();
                         }
                         */
                         
                         break;
                case  9: // Tab
                         txt = document.getElementById(sControlerId+"."+this._DAY).value;
                         break;
			    case 13: // Enter
			             sendMessage(sControlerId, "actEnter", this.getDate(sControlerId));
			             break;
			    case 35: // Ende
                         if(this.isTimestamp(sControlerId))
	                         document.getElementById(sControlerId+"."+this._MINUTE).focus();
	                     else
	                         document.getElementById(sControlerId+"."+this._YEAR).focus();
                         break;
			    case 36: // Pos1
			             document.getElementById(sControlerId+"."+this._DAY).focus();
			             break;
			    case 37: // Left arrow
						 break;			    
			    case 39: // Right arrow
						 break;
				case 38: //Up arrow 
						 if(sType == this._DAY){
							 sendMessage(sControlerId, "actKeyUpDay", this.getDate(sControlerId));
						 }else if(sType == this._MONTH){
							 sendMessage(sControlerId, "actKeyUpMonth", this.getDate(sControlerId));
						 }else if(sType == this._YEAR){
							 sendMessage(sControlerId, "actKeyUpYear", this.getDate(sControlerId));
						 }else if(sType == this._HOUR){
						 	 sendMessage(sControlerId, "actKeyUpHour", this.getDate(sControlerId));
						 }else if(sType == this._MINUTE){
						 	 sendMessage(sControlerId, "actKeyUpMinute", this.getDate(sControlerId));
						 }
				         break;
				case 40: // Down arrow
						 if(sType == this._DAY){
							 sendMessage(sControlerId, "actKeyDownDay", this.getDate(sControlerId));
						 }else if(sType == this._MONTH){
							 sendMessage(sControlerId, "actKeyDownMonth", this.getDate(sControlerId));
						 }else if(sType == this._YEAR){
							 sendMessage(sControlerId, "actKeyDownYear", this.getDate(sControlerId));
						 }else if(sType == this._HOUR){
						 	 sendMessage(sControlerId, "actKeyDownHour", this.getDate(sControlerId));
						 }else if(sType == this._MINUTE){
						 	 sendMessage(sControlerId, "actKeyDownMinute", this.getDate(sControlerId));
						 }
				         break;
				case 48: // Ziffer 0
				case 49: // Ziffer 1
				case 50: // Ziffer 2
				case 51: // Ziffer 3
				case 52: // Ziffer 4
				case 53: // Ziffer 5
				case 54: // Ziffer 6
				case 55: // Ziffer 7
				case 56: // Ziffer 8
				case 57: // Ziffer 9
						 if(sType == this._DAY){
							 sendMessage(sControlerId, "actNumberDay", tgt.value);
						 }else if(sType == this._MONTH){
							 sendMessage(sControlerId, "actNumberMonth", tgt.value);
						 }else if(sType == this._YEAR){
							 sendMessage(sControlerId, "actNumberYear", tgt.value);
						 }else if(sType == this._HOUR){
						 	 sendMessage(sControlerId, "actNumberHour", tgt.value);
						 }else if(sType == this._MINUTE){
						 	 sendMessage(sControlerId, "actNumberMinute", tgt.value);
						 }
						 break;
                default:
                         return false;
			}
			return true;
		}	
		
		DateControl.prototype.getCrtlId = function(sId){
			var aSplit = sId.split(".");
			return aSplit[0];		
		}
		DateControl.prototype.getType = function(sId){
			var aSplit = sId.split(".");
			return aSplit[1];
		}
		
		DateControl.prototype.isTimestamp = function(sCrtlId){
			if((this.getElementById(sCrtlId+'.'+this._HOUR) != null) && 
 			   (this.getElementById(sCrtlId+'.'+this._MINUTE) != null))
 			   return true;
 			return false;
		}
		
		DateControl.prototype.getDate = function(sCrtlId){
			var isTimestamp = false;
			var oDate = new Date();
 			var d = this.getElementById(sCrtlId+'.'+this._DAY).value;
 			if(d.length==0){
 				 d = oDate.getDate();
 				 document.getElementById(sCrtlId+'.'+this._DAY).value = d;
 			}
			var m = this.getElementById(sCrtlId+'.'+this._MONTH).value;
			if(m.length==0){
				 m = oDate.getMonth()+1;
				 document.getElementById(sCrtlId+'.'+this._MONTH).value= m;
			}
			var y = this.getElementById(sCrtlId+'.'+this._YEAR).value;
			if(y.length==0){
				 y = oDate.getFullYear();
				 document.getElementById(sCrtlId+'.'+this._YEAR).value=y;
			}
			if(this.isTimestamp(sCrtlId)){
				var hh=this.getElementById(sCrtlId+'.'+this._HOUR).value;
				if(hh.length==0){
					hh = oDate.getHours();
				 	document.getElementById(sCrtlId+'.'+this._HOUR).value=hh;
				}
				var mm=this.getElementById(sCrtlId+'.'+this._MINUTE).value;
				if(mm.length==0){
					mm = oDate.getHours();
				 	document.getElementById(sCrtlId+'.'+this._MINUTE).value=mm;
				}
				isTimestamp = true;				
			}
			if(isTimestamp) return d+"."+m+"."+y+", "+hh+":"+mm;
			return d+"."+m+"."+y;
		}
		
	DateControl._initialized = true;
	}// END if(typeof DateCrtl._initialized == "undefined")
	
}// END DateControl
DateControl.prototype = new XPlatform();
oDateControl = new DateControl();
