﻿
	var $monat;
	var	$jahr;
	var $kal_getElement;		// Element in das ausgewählter wert geschrieben wird


	addOnloadHandler(initDatePicker);
	
	function initDatePicker() {
		$a_elements = getElementsByClassName("datepicker");
		for ($x = 0; $x < $a_elements.length; $x++)	 {
			$a_elements[$x].onclick	= kal_getDate;
		}
		$a_elements = getElementsByClassName("timepicker");
		for ($x = 0; $x < $a_elements.length; $x++)	 {
			$a_elements[$x].onclick	= kal_getTime;
		}
		$kalender = document.getElementById("kalender");
		if (isNaN($kalender)) {
			$kalender.onmouseover 	= kalenderOnMouseOver;
			$kalender.onmouseout 	= kalenderOnMouseOut;	
		}
	}



// **********************************************************************************************************
			
//											TIME PICKER

// **********************************************************************************************************
	function kal_getTime() {
		
		$a_id 	= this.id.split("_"),
		$kal_getElement = $a_id[0];
			
		$timepicker = document.getElementById("timepicker");
		if (!isNaN($timepicker)) createTimePicker();
				
		showElementByMaster("timepicker", this.id, 1);	
		document.onmousedown = closeTimePicker;
			
	}

	function createTimePicker() {
		
		$div = document.createElement("div");
		
		$div.id				= "timepicker"
		$div.className 		= "timepicker";

		$div.onmouseover	= timePicker_onmouseover;
		$div.onmouseout		= timePicker_onmouseout;
	
		$step = 30;
			
		for ($xVar = 0; $xVar < 1440; $xVar += $step) {
		
			$stunde = $xVar / 60;
			$stunde = Math.floor($stunde);
			
			$minute = $xVar - ($stunde * 60);
	
			if ($stunde < 0) $stunde = "00";
			if ($stunde < 10) $stunde = "0" + $stunde;
	
			if ($minute < 0) $minute = "00";
			if ($minute < 10) $minute = "0" + $minute;
			
			$time = document.createElement("div");
			$time.className = "timePickerItem";
			
			$time.innerHTML = $stunde + ":" + $minute;
			
			$time.onmouseover 	= timePickerItem_onmouseover;
			$time.onmouseout 	= timePickerItem_onmouseout;
			$time.onclick		= timePickerItem_onclick;
			
			$div.appendChild($time);
						
		}
			
		document.body.appendChild($div);
		
	}

	function timePicker_onmouseover() {
		document.onmousedown = "";
	}

	function timePicker_onmouseout() {
		document.onmousedown = closeTimePicker;
	}

	function timePickerItem_onclick() {
		
		$object = document.getElementById($kal_getElement);
		if (isNaN($object)) $object.value = this.innerHTML;
		closeTimePicker();
	}
	
	function timePickerItem_onmouseover() {
		this.className = "timePickerItem_active";
	}
	
	function timePickerItem_onmouseout() {
		this.className = "timePickerItem"
	}


	function closeTimePicker() {
		document.onmousedown = "";
		$timepicker = document.getElementById("timepicker")
		if (isNaN($timepicker)) $timepicker.style.visibility = "hidden";
	}



// **********************************************************************************************************
			
//											DATE PICKER

// **********************************************************************************************************

	function kalenderOnMouseOver() {
		document.onmousedown = "";
	}
	
	function kalenderOnMouseOut(){
		document.onmousedown = closeKalender;
	}

	function kal_getDate(){

		$a_id 	= this.id.split("_");
		$kal 	= document.getElementById("kalender");
		$date = document.getElementById($a_id[0])
		
		

		/* Datum holen und gugen ob bei monat erste stelle keine 0 */
		$date	= $date.value.split(".");
		
		if ($date.length  == 3) {;
		
			if ($date[1].substr(0,1) == "0") $date[1] = $date[1].substr(1,2);
				
			/* in Integer umwandeln und schauen ob ok sonst ein neues Datum kreieren */		
			$tag	= parseInt($date[0]);
			$monat	= parseInt($date[1]);
			$jahr	= parseInt($date[2]);
		}
	
		else {

			$datum	= 	new Date();
			$tag	= 	$datum.getDate();
			$monat	= 	$datum.getMonth() + 1;
			$jahr 	=	$datum.getFullYear();
		}
		
		// Aktuellen Tag setzen für css-class -> Aktueller Tag
		$akt_tag = $tag + "." + $monat + "." + $jahr;
	
		// Monat Jahr setzen
		kal_setMonth($monat, $jahr);
			
		showKalender();
		
		showElementByMaster("kalender", this.id, 0);	
		document.onmousedown = closeKalender;
			
		$kal_getElement = $a_id[0];
	
		return false;
	}
	


	function kal_getItemData(){
				
		$object = document.getElementById($kal_getElement);
		$object.value = this.data;
		
		closeKalender();
	}


	function closeKalender() {
		document.onmousedown = "";
		$kalender = document.getElementById("kalender")
		if (isNaN($kalender)) $kalender.style.visibility = "hidden";
	}


	function showKalender() {
	

		document.getElementById("kal_btnZurueck").onclick 		= kal_moveNextMonth;
		document.getElementById("kal_btnVor").onclick 			= kal_movePrevMonth;
		
	}
	
	function kal_setItemActive(){
		this.className = "kalenderItem_activ";	
	}

	function kal_setItemInactive() {
		this.className = "kalenderItem";	 
	}
	function kal_setItemAktuellActive(){
		this.className = "kalenderItemAktuell_activ";	
	}

	function kal_setItemAktuellInactive() {
		this.className = "kalenderItemAktuell";	 
	}
	function kal_setItemAktuellJetztActive(){
		this.className = "kalenderItemJetzt_activ";	
	}

	function kal_setItemAktuellJetztInactive() {
		this.className = "kalenderItemAktuellJetzt";	 
	}
	function kal_setItemJetztActive(){
		this.className = "kalenderItemJetzt_activ";	
	}

	function kal_setItemJetztInactive() {
		this.className = "kalenderItemJetzt";	 
	}
	
	function kal_moveNextMonth() {
		$monat = $monat - 1;
		if($monat < 1) {
		 	$monat 	= 12;
		 	$jahr 	= $jahr - 1;
		} 
		kal_setMonth($monat, $jahr)	
	}

	function kal_movePrevMonth(){
		$monat = $monat + 1;
		if($monat > 12) {
		 	$monat 	= 1;
		 	$jahr 	= $jahr + 1;
		} 
		kal_setMonth($monat, $jahr)
	}

	function kal_setMonth($monat, $jahr) {
	
		$a_Monate = new Array("Januar","Februar","M&auml;rz","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember");
	
		document.getElementById("kalenderHeadText").innerHTML = $a_Monate[$monat-1] + " " + $jahr;
		
		// Jetziges Datum holen
		$datum_jetzt	= new Date();
		$jetzt_tag		= $datum_jetzt.getDate();
		$jetzt_monat	= $datum_jetzt.getMonth() + 1;
		$jetzt_jahr		= $datum_jetzt.getFullYear();
		$datum_jetzt	= $jetzt_tag + "." + $jetzt_monat + "." + $jetzt_jahr;
				
		$datum 	= new Date($jahr, $monat - 1, 1);
		$start	= $datum.getDay();
		$stop	= getDaysOfMonth($monat, $jahr);
		
		if ($start == 0) $start = 7;			
		$stop = $stop + $start;
		
		// Bis zum ersten Wochentag Element leer setzen
		for ($xVar = 1; $xVar < $start; $xVar++) {
			document.getElementById("kalenderItem_" + $xVar).innerHTML = "";
			document.getElementById("kalenderItem_" + $xVar).data = "";
			document.getElementById("kalenderItem_" + $xVar).className = "kalenderItem_leer";		}
		
		// Tage nummerieren und Element f?llen
		$tag = 1;
		for ($xVar; $xVar < $stop; $xVar++) {
			
			// Laufvariable Tag
			$xTag = $tag + "." + $monat + "." + $jahr;
					
			document.getElementById("kalenderItem_" + $xVar).innerHTML = $tag;
			document.getElementById("kalenderItem_" + $xVar).data = $tag + "." + $monat + "." + $jahr;
			
			
			
			// Falls aktueller Tag zutrifft, dann css-class vergeben für aktuellen Tag
			if ($akt_tag == $xTag) {
				// Falls aktueller Tag auch jetziges Datum
				if ($xTag == $datum_jetzt) document.getElementById("kalenderItem_" + $xVar).className = "kalenderItemAktuellJetzt";
				else document.getElementById("kalenderItem_" + $xVar).className = "kalenderItemAktuell";
			}
			else if ($xTag == $datum_jetzt) document.getElementById("kalenderItem_" + $xVar).className = "kalenderItemJetzt";
			else document.getElementById("kalenderItem_" + $xVar).className = "kalenderItem";

			$tag++;
		}
		
		// Restlichen Elemente leer setzen
		for ($xVar; $xVar <= 42; $xVar++) {
			document.getElementById("kalenderItem_" + $xVar).innerHTML = "";
			document.getElementById("kalenderItem_" + $xVar).data = "";
			document.getElementById("kalenderItem_" + $xVar).className = "kalenderItem_leer";	
		}

		$a_elements = getElementsByClassName("kalenderItem");
		for ($x = 0; $x < $a_elements.length; $x++)	 {
			$a_elements[$x].onmouseover 	= kal_setItemActive;
			$a_elements[$x].onmouseout 		= kal_setItemInactive;
			$a_elements[$x].onclick 		= kal_getItemData;
		}
		
		$a_elements = getElementsByClassName("kalenderItemAktuell");
		for ($x = 0; $x < $a_elements.length; $x++)	 {
			$a_elements[$x].onmouseover 	= kal_setItemAktuellActive;
			$a_elements[$x].onmouseout 		= kal_setItemAktuellInactive;
			$a_elements[$x].onclick 		= kal_getItemData;
		}
		
		$a_elements = getElementsByClassName("kalenderItemAktuellJetzt");
		for ($x = 0; $x < $a_elements.length; $x++)	 {
			$a_elements[$x].onmouseover 	= kal_setItemAktuellJetztActive;
			$a_elements[$x].onmouseout 		= kal_setItemAktuellJetztInactive;
			$a_elements[$x].onclick 		= kal_getItemData;
		}
		
		$a_elements = getElementsByClassName("kalenderItemJetzt");
		for ($x = 0; $x < $a_elements.length; $x++)	 {
			$a_elements[$x].onmouseover 	= kal_setItemJetztActive;
			$a_elements[$x].onmouseout 		= kal_setItemJetztInactive;
			$a_elements[$x].onclick 		= kal_getItemData;
		}
		
		$a_elements = getElementsByClassName("kalenderItem_leer");
		for ($x = 0; $x < $a_elements.length; $x++)	 {
			$a_elements[$x].onmouseover 	= "";
			$a_elements[$x].onmouseout 		= "";
			$a_elements[$x].onclick 		= "";
		}

	}
	
