//-------------------------------------------------------------------------------------------------------------------------
// Observer Optimierung
//-------------------------------------------------------------------------------------------------------------------------


	// Update der Werte der Formularfelder "from" und "to" 
	// anhand der Werte der Formularfelder "from_datum" und "dauer"
	function onSubmitSearchBuerstner() {
	
		var strValueFromDatum = document.getElementById("SearchBuerstner_from_datum").value;
		if(strValueFromDatum != "") {
		
			var intValueDauer = document.getElementById("SearchBuerstner_dauer").value;
			if(intValueDauer > 0) {

				var strDateFrom		= strValueFromDatum;			// DD.MM.YYYY
				var strDateFromY	= strDateFrom.substr(6,4);		// YYYY
				var strDateFromM	= strDateFrom.substr(3,2);		// MM
				var strDateFromD	= strDateFrom.substr(0,2);		// DD
				
				var intDateFromY	= strDateFromY * 1;				// YYYY
				var intDateFromM	= strDateFromM * 1 - 1;			// MM		0 ... 11
				var intDateFromD	= strDateFromD * 1;				// DD		1 ... 31
				
				var objDateFrom		= new Date(intDateFromY,intDateFromM,intDateFromD);
				var intTimeFrom		= objDateFrom.getTime();
		
				var intTimeTo		= intTimeFrom + ( intValueDauer * 24 * 60 * 60 * 1000);
				var objDateTo		= new Date(intTimeTo);
				
				var intDateToY		= objDateTo.getFullYear();
				var intDateToM		= objDateTo.getMonth() + 1;
				var intDateToD		= objDateTo.getDate();
				
				var strDateToY		= ''+intDateToY;
				var strDateToM		= ''+intDateToM;
				var strDateToD		= ''+intDateToD;
	
				if(intDateToM < 10) {
					strDateToM = '0' + strDateToM;
				}
				
				if(intDateToD < 10) {
					strDateToD = '0' + strDateToD;
				}
					
				var strDateTo = strDateToY + strDateToM + strDateToD;
				
				SearchBuerstner_objKalender.setFirst  ( 'SearchBuerstner_td_' + strDateFrom );
				SearchBuerstner_objKalender.setSecond ( 'SearchBuerstner_td_' + strDateTo   );
		
				document.getElementById('SearchBuerstner_from').value	= strDateFromY+'-'+strDateFromM+'-'+strDateFromD+' 09:00:00';
				document.getElementById('SearchBuerstner_to').value		= strDateToY+'-'+strDateToM+'-'+strDateToD+' 09:00:00';
	
				SearchBuerstner_objKalender.setZeitraum();
			}
		}
		
		// Sortierung bestimmen
		var mixHtmlElementSort = document.getElementById("SearchBuerstner_sort");
		if(mixHtmlElementSort) {

			var mixHtmlElement = null;

			mixHtmlElement = document.getElementById("SearchBuerstner_plz");
			if(mixHtmlElement && mixHtmlElement.value != '' && mixHtmlElement.value > 0) {
				mixHtmlElementSort.value = "location";
			}
			mixHtmlElement = document.getElementById("SearchBuerstner_from");
			if(mixHtmlElement && mixHtmlElement.value != '') {
				mixHtmlElement = document.getElementById("SearchBuerstner_to");
				if(mixHtmlElement && mixHtmlElement.value != '') {
					mixHtmlElementSort.value = "price";
				}
			}
		}
		
		document.forms["SearchBuerstner"].submit();
		return true;
	}



	/**
	 * Initialisierung des Zeiraumes aus dem selektierten Startdatum und der Dauer.
	 */	
	function SearchBuerstner_updateZeitraum() {

		if(SearchBuerstner_objKalender.first != 0 ){

			var strDateFrom  = SearchBuerstner_objKalender.first.replace('SearchBuerstner_td_','');		// YYYYMMDD
			var strDateFromY = strDateFrom.substr(0,4);					// YYYY
			var strDateFromM = strDateFrom.substr(4,2);					// MM
			var strDateFromD = strDateFrom.substr(6,2);					// DD

			var intDateFromY = strDateFromY * 1;						// YYYY
			var intDateFromM = strDateFromM * 1 - 1;					// MM		0 ... 11
			var intDateFromD = strDateFromD * 1;						// DD		1 ... 31


			var objDateFrom = new Date(intDateFromY,intDateFromM,intDateFromD);
			var intTimeFrom = objDateFrom.getTime();
	
			var intTimeTo   = intTimeFrom + ( (document.getElementById('SearchBuerstner_dauer').value) * 24 * 60 * 60 * 1000);
			var objDateTo   = new Date(intTimeTo);
	

			var intDateToY  = objDateTo.getFullYear();
			var intDateToM  = objDateTo.getMonth() + 1;
			var intDateToD  = objDateTo.getDate();

			var strDateToY  = ''+intDateToY;
			var strDateToM  = ''+intDateToM;
			var strDateToD  = ''+intDateToD;

			if(intDateToM < 10) {
				strDateToM = '0' + strDateToM;
			}
			
			if(intDateToD < 10) {
				strDateToD = '0' + strDateToD;
			}
				
			var strDateTo = strDateToY + strDateToM + strDateToD;
			
			SearchBuerstner_objKalender.setFirst  ( 'SearchBuerstner_td_' + strDateFrom );
			SearchBuerstner_objKalender.setSecond ( 'SearchBuerstner_td_' + strDateTo   );
	
			document.getElementById('SearchBuerstner_from').value        = strDateFromY+'-'+strDateFromM+'-'+strDateFromD+' 09:00:00';
			document.getElementById('SearchBuerstner_from_datum').value  = strDateFromD+'.'+strDateFromM+'.'+strDateFromY;
			
			document.getElementById('SearchBuerstner_to').value          = strDateToY+'-'+strDateToM+'-'+strDateToD+' 09:00:00';
	//		document.getElementById('SearchBuerstner_to_datum').value    = strDateToD+'.'+strDateToM+'.'+strDateToY;

			$('SearchBuerstner_sort').value = "price";
			
			SearchBuerstner_objKalender.setZeitraum();			
		}
	}
	
	
	function SearchBuerstner_getClickElement(event){
		var elem = Event.findElement(event,'TD');
		if(elem.id.indexOf('td') > -1){
			SearchBuerstner_objKalender.setFirst  (0);
			SearchBuerstner_objKalender.setSecond (0);
			SearchBuerstner_updateZeitraum();
			SearchBuerstner_setdatum(elem.id);
		}
	}
	
	function SearchBuerstner_getMouseOverElement(event){
		var elem = Event.findElement(event,'TD');
			
		try{
			if(elem.id.indexOf('td') > -1){
				this.style.cursor='pointer';
			}
		}catch(e){
		
		}
	}
	
	function SearchBuerstner_getMouseOutElement(event){

		var elem = Event.findElement(event,'TD');
		
		try{
			if(elem.id.indexOf('td') > -1){
				this.style.cursor='auto';	
			}
		}catch(e){
			
		}
	}

	function SearchBuerstner_newKalender(richtung){
	
		if(document.getElementById('SearchBuerstner_auswahl_kalender').getElementsByTagName('DIV').length > 0){
			elem = document.getElementById('SearchBuerstner_auswahl_kalender').getElementsByTagName('DIV');
			elem[0].id = elem[0].id.replace('SearchBuerstner_div_kalender_','');
			monat = elem[0].id.substr(0,2);
			
			jahr = elem[0].id.substr(2,4);
			
			// alert(richtung+' '+monat+' '+jahr);
		} else {
			var d = new Date();
			
			jahr = d.getFullYear();
			
			monat = d.getMonth()+1;
		}
		
		SearchBuerstner_getNew(jahr,monat,richtung);	
	}
	

	function SearchBuerstner_showKalender(strElementId) {

		var mixHtmlElement	= document.getElementById("buerstner_trefferseite");
		var intPositionX	= 0;		
		var intPositionY	= 0;		
		
		if(mixHtmlElement) {
			if(mixHtmlElement.value == "0") {
				// Startseite
				intPositionX	=   0;
				intPositionY	=  84;
			} else {
				// Trefferseite
				intPositionX	= -75;
				intPositionY	=  30;
			}
		}


		var pos = cumulativeOffset(document.getElementById(strElementId));

		$('SearchBuerstner_auswahl_kalender').style.left 		= pos[0]+intPositionX+'px';
		$('SearchBuerstner_auswahl_kalender').style.top 		= pos[1]+intPositionY+'px';

		$('SearchBuerstner_auswahl_kalender').style.height		=  130+'px';
		$('SearchBuerstner_auswahl_kalender').style.display 	= 'block';
		$('SearchBuerstner_auswahl_kalender').style.visibility 	= 'visible';
	
	}
	
	
	function SearchBuerstner_closeKalender(){
		SearchBuerstner_updateZeitraum();
		
		$('SearchBuerstner_auswahl_kalender').style.display 		= 'none';
		$('SearchBuerstner_auswahl_kalender').style.visibility 	= 'hidden';
	}
	
	
	function SearchBuerstner_resetKalender() {

		SearchBuerstner_objKalender.setFirst(0);
		SearchBuerstner_objKalender.setSecond(0);

		document.getElementById('SearchBuerstner_from').value        = '';
		document.getElementById('SearchBuerstner_from_datum').value  = '';
			
		document.getElementById('SearchBuerstner_to').value          = '';
//		document.getElementById('SearchBuerstner_to_datum').value    = '';
	}
	
	
	
	function SearchBuerstner_getNew(jahr,monat,richtung){
		
		tmp 	= window.location.href.split('.');
		tmp2 	= window.location.href.split('/');
		
		url_adress = tmp2[0]+'//'+tmp2[2]+'/'+tmp2[3];
		
		var url = url_adress + '/inc.calendar.ajax';
		
		daten = 'jahr='+jahr+'&monat='+monat+'&richtung='+richtung+'&name=SearchBuerstner';
		var myAjax = new Ajax.Request(
			url, 
			{
				method: 'get', 
				parameters: daten,
				onComplete: function(transport){
					if(200 == transport.status){
						xml = transport.responseXML;
						SearchBuerstner_setKalender(xml);	
					}
				}
			});
	}
	
	function SearchBuerstner_setKalender(xml){

		obj_xml = new XMLVerarbeitung();
		obj_xml.setXml(xml);
		obj_xml.getHTML();
		obj_xml.getJava();
		
		if(obj_xml.html != null ){
		
			$('SearchBuerstner_auswahl_kalender').update(obj_xml.html);
		
			// Javscript wurde mit übergeben
			if(obj_xml.java != null){
				
				var scriptElem = document.createElement('SCRIPT');
				
				scriptElem.type = 'text/javascript';
				
				//alert(obj_xml.java);
				
				scriptElem.text = obj_xml.java;
				
				document.body.appendChild(scriptElem);
				
				startObserver();
				
				SearchBuerstner_objKalender.fetchClasses();
				
				
				if(SearchBuerstner_objKalender.first != 0){
					
					SearchBuerstner_objKalender.setFirstColor();
				}
				
				if(SearchBuerstner_objKalender.first != 0 && SearchBuerstner_objKalender.second != 0){
					SearchBuerstner_objKalender.checkFirstSecond();
					SearchBuerstner_objKalender.setZeitraum();
				}
			}
		}
	}

