window.addEvent('domready', function(){

	/***********************************************
		Initial alle Container ausblenden
		(nur SuchContainer nicht)
	***********************************************/
	var ContentContainer = Array('SuchContainer', 'ResultContainer', 'DetailContainer', 'MerkzettelContainer', 'HelpContainer', 'MapContainer');
	var error = false;
	ContentContainer.each(function(element) {
	
		$(element).fade(0);
		$(element).setStyle('display', 'inline');
		
	});
	var AktuellerContainer = 'SuchContainer'; 
	$(AktuellerContainer).fade(1);
	$('suchwort').focus();
	/***********************************************
		FX foer die Tabs
	***********************************************/
	var Tabs = $$('#TabContainer li');
	var AktuellerTab = 'JS_SuchContainer';

	// Initial Hoehe anpassen
	theHeight = $(AktuellerContainer).getStyle('height').toInt();
	newHeight = theHeight + 100;
	if(newHeight < 620)
		newHeight = 620;
	$('ContentWrapper').setStyle('height', newHeight+'px');
	gotoTop();
	
	Tabs.each(function(element) {

		element.addEvent('click', function(){
	
			NeuerContainer = element.id.replace(/JS_/, "");
			$(AktuellerContainer).setStyle('display', 'inline');

			var fx_alt = new Fx.Morph($(AktuellerContainer), {duration:10, wait:true});
			var fx_neu = new Fx.Morph($(NeuerContainer), {duration:10, wait:true});

			$(AktuellerTab).set({'class': 'std'});
			AktuellerTab = element.id;
			$(AktuellerTab).set({'class': 'act'});

			fx_neu.start({'opacity' : 1});
			fx_alt.start({'opacity' : 0});
			
			AktuellerContainer = NeuerContainer;

			// Hoehe der Seite anpassen
			theHeight = $(AktuellerContainer).getStyle('height').toInt();
			newHeight = theHeight + 100;
			if(newHeight < 620)
				newHeight = 620;
			$('ContentWrapper').setStyle('height', newHeight+'px');
			
			if(WaitWin) 
				WaitWin.destroy();

			if(	AktuellerContainer == 'DetailContainer' ) {
				//new Lightbox({ relString: 'lightboxset' }, $('LightBoxWrapper').getElements('a'));
			}
			
			gotoTop();
		
		});
	
	});

	var dieTips = new Tips($$('.Icon'), {
		showDelay: 1000,
        hideDelay: 250,
		fixed: true,
        offsets: { 'x': 16, 'y': -150 },
		onShow: function(tip){
			tip.setStyle('opacity','.8'); // Fuer den ersten Aufruf
			tip.setStyle('z-index','2000'); // Fuer den ersten Aufruf
			tip.fade(.8);
		}
	});
	
	/***********************************************
		FX fuer die Pictogramme
		Beim ueberfahren der Pictogramme werden diese groesser und
		ein Hinweistext erscheint oberhalb der Pictogramme
	***********************************************/
	var Pictogramme = $$('#ukIcons img');

	Pictogramme.each(function(element,index) {

		var fx = new Fx.Morph(element, {duration:120, wait:false});

		element.addEvent('click', function(e){
			e.stop();
			// isoliere uid vom Pictogramm
			PictoNum = element.id.replace(/icon/, "");

			// Wenn die Uebernahme des Icons erfolgreich war, dann die Grafik
			// in die uswahlbox uebertragen.
			if(addPictoNum($('pictogramme'), PictoNum)) {  
			
				theClone = element.clone();
				theClone.setStyle('width',30);
				theClone.setStyle('height',30);
				theClone.setStyle('margin',0);
				theClone.set('id','selicon'+PictoNum);
				theClone.inject('IconAuswahl');
				
				$$('#IconAuswahl img').each(function(clonedElement) {
					clonedElement.addEvent('click', function(e) {
						clonedElement.destroy();
						SelPictoNum = clonedElement.id.replace(/selicon/, "");

						if(removePictoNum($('pictogramme'), SelPictoNum)) {
							$('IconAuswahl').highlight('#f00','#ffffff');
							$('ToDo').value = 'getQuantity';
                            $('Pointer').value = 0;
							$('SuchFormular').send();
						}

					});
				});
			 
				$('IconAuswahl').highlight('#f00','#ffffff');
				$('ToDo').value = 'getQuantity';
                $('Pointer').value = 0;
				$('SuchFormular').send();
			}
		});

		element.addEvent('mouseenter', function(e){
			e.stop();
			fx.start({
				'margin-top' : -10,
				'width' : 50,
				'height' : 50,
				'margin-left' : -10
			});
			element.setStyle('z-index',10);
		});

		element.addEvent('mouseleave', function(e){
			e.stop();
			fx.start({
				'margin-top' : 0,
				'width' : 30,
				'height' : 30,
				'margin-left' : 0
			});
			element.setStyle('z-index',2);
		});
		
	}); // each
	
	/***********************************************
		Was tun beim abschicken der Formularinhalte
	***********************************************/

	var updateDIV = function() { $('JS_ResultContainer').fireEvent('click') }	
	
	$('SuchFormular').set('send', {
		onSuccess: function(response) {
			if($('ToDo').value == 'getResult') {
				$('ResultContainer').innerHTML = response;
				if($('NewSearch').value == 1) {
					$('JS_ResultContainer').fireEvent('click');
				} else {
					theHeight = $(AktuellerContainer).getStyle('height').toInt();
					newHeight = theHeight + 100;
					if(newHeight < 620) newHeight = 620;
					$('ContentWrapper').setStyle('height', newHeight+'px');
					gotoTop();
				}
			} else {
				$('SuchContainerResult').innerHTML = response;
			}
			$('SuchContainerResult').highlight('#f00');
			$('SuchStatusImg').src = 'typo3conf/ext/wkg_ukadmin/res/connect_idle.gif'
		}
	}).addEvent('submit', function(event) {
		event.preventDefault();
		$('ToDo').value = "getResult";
		$('NewSearch').value = "1";
		$('Pointer').value = "0";
		$('SuchStatusImg').src = 'typo3conf/ext/wkg_ukadmin/res/connect_active.gif'
		showWaitWin('Bitte warten...',unescape("Es werden Unterk%FCnfte gesucht!!!") );
		this.send();
			
	});

	/***********************************************
		Initiales Ermitteln der Anzahl der Datensaetze
	***********************************************/
    if(quicksearch == 1) {
        $('ToDo').value = 'getResult';
    } else {
        $('ToDo').value = 'getQuantity';
    }
	$('SuchFormular').send();

	/***********************************************
		Events f�r die Selects in dem Suchformular
	***********************************************/
	var Selectors = $$('#SuchContainer select');
	Selectors.each(function(element) {
		element.addEvent('change', function(e){
			e.stop();
			$('ToDo').value = 'getQuantity';
            $('Pointer').value = 0;
			$('SuchFormular').send();
		})
	}); // each

	/***********************************************
		Bei Aenderungen in den Formularelementen
		soll der Submit ausgeloest werden
	***********************************************/
	var Inputfields = $$('#SuchContainer input');
	Inputfields.each(function(element) {
		if(element.id != 'suchestarten') {
			element.setStyle('z-index',0);
			element.addEvent('change', function(e){
				//e.stop();
                error = false;
                if(this.id == 'maxpersonen' || this.id == 'maxpreis') {
                    Ergebnis = this.value.match(/\D+/);
                    if (Ergebnis) {
                        //errorMSG("Eingabefehler","Bitte verwenden Sie in diesem\nFeld nur Zahlen","350px");
                        //this.focus();
                        this.value = '';
                        error = true;
                    } else {
                        error = false;
                    }
                }
                if(error == false) {
                    $('ToDo').value = 'getQuantity';
                    $('Pointer').value = 0;
                    $('SuchFormular').send();
                }
			});
		}
	}); // each

	/***********************************************
		Bei einem Click auf ein Icon wird es im
		Hidden-Field eingefuegt (inkl. Ueberpruefung
		auf doppelten Eintrag)
	***********************************************/
	var PictoArray = Array();
	var addPictoNum = function(container,value) {
		PictoArrayPointer = PictoArray.length;
		if(PictoArrayPointer == 0) {
			PictoArray[PictoArrayPointer] = value;
			container.value = PictoArray.join(",");
			return true; 
		} else {
	
			if(PictoArray.indexOf(value) < 0) {
				PictoArray[PictoArrayPointer] = value;
				container.value = PictoArray.join(",");
				return true;
			}
		
			return false;
		
		}
	};

	/***********************************************
		Bei einem Click auf ein Icon wird es im
		Hidden-Field geloescht
	***********************************************/
	var removePictoNum = function(container,value) {
		if(PictoArray.length > 0) {
			PictoArray.erase(value);
			container.value = PictoArray.join(",");
			return true;
		}
		return false;
	};

	/***********************************************
		Datepicker fuer die Datumsfelder auf dem
		Merkzettel
	**********************************************/
	Date.$culture = 'GB';
	new DatePicker('InputDateFrom', {
		showOnInputFocus: false,
		additionalShowLinks:['CalImgFrom'],
  		range: false,
    	format:"%d.%m.%Y",
		setPosition:{ relativeTo: 'Zeitraum' }
	})
	new DatePicker('InputDateTo', {
		showOnInputFocus: false,
		additionalShowLinks:['CalImgTo'],
  		range: false,
    	format:"%d.%m.%Y",
		setPosition:{ relativeTo: 'Zeitraum' }
	})


	
	/***********************************************
		Was tun beim abschicken der Formularinhalte
		des Merkzettels
	***********************************************/
	$('Merkzettel').set('send', {
		onSuccess: function(response) {
			$('MerkzettelContainer').innerHTML = response;
		}
	}).addEvent('submit', function(event) {
		event.preventDefault();       
        if( $('InputName').value.trim().length == 0 || $('InputAnschrift').value.trim().length == 0 || $('InputPLZ').value.trim().length == 0 || $('InputOrt').value.trim().length == 0 || $('InputEmail').value.trim().length == 0 || $('InputDateFrom').value.trim().length == 0 || $('InputDateTo').value.trim().length == 0 || $('InputUnterkuenfte').value.trim().length == 0 ) {
        /*if( $('InputName').value == '' || $('InputAnschrift').value == '' || $('InputPLZ').value == '' || $('InputOrt').value == '' || $('InputEmail').value == '' || $('InputDateFrom').value == '' || $('InputDateTo').value == '' || $('InputUnterkuenfte').value == '' ) {*/
           errorMSG("Eingabefehler","Bitte füllen Sie das\nFormular vollständig aus","350px");
        } else {
            check = Kontrolle01();
	    if(check == true){
		this.send();
	    }else{
		errorMSG("Eingabefehler","Rechenaufgabe falsch!","350px");	
	    }
        }
	});

 	var accordion = new Accordion('h3.atStart', 'div.atStart', {
			opacity: true,
			alwaysHide: true
		}, $('accordion'));	
	
})

/***********************************************
	F�ge Unterkunft zum Merkzettel hinzu
***********************************************/
var uidArray = Array();
var addtoNotepad = function(uid, showString) {
	uidArrayPointer = uidArray.length;
	if(uidArrayPointer == 0) {
		uidArray[uidArrayPointer] = uid;
		$('InputUnterkuenfte').value = showString;
		$('JS_MerkzettelContainer').highlight('#f00');
        errorMSG("Hinzugefügt","Die Unterkunft wurde für die\nBuchungsanfrage notiert","350px");
		return true; 
	} else {
		if(uidArray.indexOf(uid) < 0) {
			uidArray[uidArrayPointer] = uid;
			$('InputUnterkuenfte').value += "\n"+showString;
			$('JS_MerkzettelContainer').highlight('#f00');
            errorMSG("Hinzugefügt","Die Unterkunft wurde für die\nBuchungsanfrage notiert","350px");
			return true;
		}
		errorMSG("Achtung","Diese Unterkunft wurde bereits\nfür die Buchungsanfrage notiert","350px");
		return false;
	}
};

/***********************************************
	Details zu einer Unterkunft holen
***********************************************/
var showUKDetail = function(typo3url) {
	new Request.HTML( {
		url: typo3url,
		method: 'get',
		update: 'DetailContainer',
        evalScripts: true,
		onComplete: function() {
                $('JS_DetailContainer').fireEvent('click');
                dummy = new Lightbox({ relString: 'lightboxset' }, $('LightBoxWrapper').getElements('a'));
        }
	}).send();
};

/***********************************************
	Googlemaps
***********************************************/
var showGoogleMap = function(typo3url) {
	new Request.HTML( {
		url: typo3url,
		method: 'get',
		update: 'MapContainer',
		evalScripts: true,
		onComplete: function() { $('JS_MapContainer').fireEvent('click'); }
	}).send();
};

var showGoogleMaphidden = function(typo3url) {
	new Request.HTML( {
		url: typo3url,
		method: 'get',
		update: 'MapContainer',
		evalScripts: true,
		onComplete: function() {  }
	}).send();
};


/***********************************************
	Diverse Funktionen fuer Ausgaben, Scrollen usw
***********************************************/
var gotoTop = function() {
	var scroller = new Fx.Scroll(window);
	scroller.toElement( $('ContentWrapper') );
	//scroller.toTop();
}

var errorMSG = function(header, message, width) {
	new StickyWin({
  		content: StickyWin.ui(header, message, {
    		width: width,
    		buttons: [{
	      		text: 'OK' 
    		}]
  		})
	});
}

var WaitWin = null;
var showWaitWin = function(header,message) {
	WaitWin = new StickyWin({
	    content: StickyWin.ui(header, message)
    });
}

var updatePointer = function(value) {
    
}

var quicksearch = function() {
    $('ToDo').value = "getResult";
    $('SuchFormular').send();
}



