var Kalender = new Class({
	
	aktuelleBreite 	: 300,
	aktuelleHoehe 	: 300,
	loadModule			: '',
	
	getOptions: function(){
		return {};
	},
	
	initialize: function(options){
		this.setOptions(this.getOptions(), options);
		this.openClosePos = {};
		this.contentObj = {};
		this.opened = false;
	},
	
	openLightbox: function(){
		this.getAllAp();
	},
	
	getAllAp: function(){
								
		MultiBox.implement({
			
			aktuelleMBhoehe		: 600,
			aktuelleMBbreite	: 650,
			loadMBmodule			: '',
			
			setContent: function(){
				this.contentObj = {};
				this.contentObj.width = this.aktuelleMBbreite;
				this.contentObj.height = this.aktuelleMBhoehe;
				this.contentObj.xH = 0;
			},
			
			load: function(){
				
			},
			
			customLoad: function(){
				this.box.addClass('MultiBoxLoading');
				this.setContent();
				this.resize();
			},
			
			showContent: function(){
				this.box.removeClass('MultiBoxLoading');
						
				this.contentContainer = new Element('div').setProperties({id: 'MultiBoxContentContainer'}).setStyles({
					opacity: 0, 
					width: this.contentObj.width+'px',
					height: (Number(this.contentObj.height)+this.contentObj.xH)+'px'
					
				}).injectInside(this.box);
				
				var kalenderinstanz = $(this.loadMBmodule);
				kalenderinstanz.injectInside(this.contentContainer);
				kalenderinstanz.setStyle('display', 'inline');
				
				if($$('.kalender').length > 0){
					$$('.kalender').setStyle('height', (this.aktuelleMBhoehe));
				}
				kalenderinstanz.setStyle('height', (this.aktuelleMBhoehe));
				
				$$('.MultiBoxContainer').setStyle('background', 'url(/typo3conf/ext/ig_cal/res/img/multibox_bg.png) #e3e3e3 repeat top left');
				$('MultiBoxContentContainer').setStyle('background', 'none');
				
				this.contentEffects = new Fx.Morph(this.contentContainer, {duration: 500, transition: Fx.Transitions.linear});
				this.contentEffects.start({
					opacity: 1
				});
				checkscroll();
				$$('.kalendernavi .ip_plz').addEvent('keydown',function(event){
					if (event.enter || event.key == "enter") {
						getSearchresultsFulltext(); return false;
					}
				});
			},
			
			removeContent: function(){
			}
			
		});
		
		this.meineBox = new MultiBox({	});
		
	},
	
	setBoxValues : function(){
		this.meineBox.aktuelleMBhoehe		= this.aktuelleHoehe;
		this.meineBox.aktuelleMBbreite	= this.aktuelleBreite;
		this.meineBox.loadMBmodule			= this.loadModule;
	}
});

Kalender.implement(new Options);
Kalender.implement(new Events);

//////////////////////////////////////////////////////////////////////////////
// Globale Variablen
var ie6		 = 0;
//var albumids = Array();
var aktiverKalender = 0;
var isscrolling = 0;
var numelems = 0;
var maxscroll = 0;
var triggered = 0;
var gettingPHPdata = 0;
var currentURL = '';
var textscrolling = 0;
var aktiverTermin = 1;
var searchOpen = 0;
var showsavedialogue = 0;

//////////////////////////////////////////////////////////////////////////////
// Hooks
onloadHooks.push(function(){
	tx_igcal_onload();
});

//////////////////////////////////////////////////////////////////////////////
// Load-Funktionen
function tx_igcal_onload(){
	$$('.kalender').setStyle('display', 'none');
	checkBrowser();
	$$('.startlink').addEvent('click',function(){
		var albumtempid = this.getProperty('id').split('_');
		var albumid = albumtempid[1];
		checkModules(albumid);
	});
	blurblur($$('.kalender a'));
}

function renderKalender(){
	var neues_album = new Kalender();
	neues_album.loadModule = 'kalender_'+aktiverKalender;
	neues_album.aktuelleBreite = 635;
	neues_album.aktuelleHoehe = 452;
	neues_album.openLightbox();
	neues_album.setBoxValues();
	neues_album.meineBox.customLoad();
	
	$$('.searchresultwrapper').setStyle('display', 'none');
	if(!showsavedialogue){
		$('datasavewrapper_'+aktiverKalender).setStyle('display', 'none');
	}
	checkscroll();
}

function renderTermine(){
	var neues_album = new Kalender();
	neues_album.loadModule = 'kalender_termine_'+aktiverKalender;
	neues_album.aktuelleBreite = 635;
	neues_album.aktuelleHoehe = 452;
	neues_album.openLightbox();
	neues_album.setBoxValues();
	neues_album.meineBox.customLoad();
	setTerminEvents();
	checkscroll();
}

function blurblur(those){
	those.addEvents({'focus': function(e) {
			this.blur();
	}});
}

function tx_igcal_showSaveDialogue(){
	$('datasavewrapper_'+aktiverKalender).setStyle('display', 'block');
	checkscroll();
}

//////////////////////////////////////////////////////////////////////////////
// Startup-Funktionen
function checkModules(albumid){
	aktiverKalender = albumid;
	switch(module['show']){
		case 'kalender':				renderKalender(); break; //module['show']);			break;
		case 'eigenetermine':		renderTermine();										break;
		case 'details':					renderDetails();										break;
		default:								renderKalender();
	}
}

function checkBrowser(){
	var browser = navigator.userAgent.toLowerCase();
  var ganzzahl = parseInt(navigator.appVersion);
  var genauezahl = parseFloat(navigator.appVersion);
  var explorer = ((browser.indexOf("msie") != -1) && (browser.indexOf("opera") == -1));
	var explorer6 = (explorer && (ganzzahl == 4) && (browser.indexOf("msie 6.0") !=-1));
	
	if(explorer6){
		ie6 = 1;
	}
}

function setTerminEvents(){
	$$('.inp, .tea').addEvent('focus', function(){
		this.setStyle('color', '#000000');
		if(this.value == 'Max 30 Zeichen' || this.value == 'Max 2000 Zeichen' || this.value == 'Max 80 Zeichen'){
			this.value = '';
		}
	});
	
	$$('.inp, .tea').addEvent('keyup', function(){
		if(this.value != ''){
			this.setStyle('color', '#000000');
			this.setStyle('border', '1px solid #E2E2E2');
		}
	});
	
	$('data_bistum_'+aktiverKalender).addEvent('change', function(){
		if(this.value != 0){
			this.setStyle('color', '#000000');
			this.blur();
		}
	});
	
}

//////////////////////////////////////////////////////////////////////////////
// Allgemeine Funktionen
function terminVorher(){
	if(aktiverTermin > 1){
		aktiverTermin--;
		var endePos			= (aktiverTermin-1)*(-215);
		var startPos		= (aktiverTermin)*(-215);
		$$('.naechster').setStyle('display', 'inline');
		
		MorphIn = new Fx.Morph($('listitemswrap_'+aktiverKalender), {duration:250, transition:'sine:in', fps:50});
		MorphIn.addEvent('complete', function(){		});
		MorphIn.start({			'left': [startPos, endePos]		});
	}
	if(aktiverTermin == 1){
		$$('.vorherige').setStyle('display', 'none');
	}
}

function closeSaveData(){
	$('datasavewrapper_'+aktiverKalender).setStyle('display', 'none');
}

function terminNacher(){
	if(aktiverTermin < $$('.listitem_'+aktiverKalender).length){
		var endePos			= (aktiverTermin)*(-215);
		var startPos		= (aktiverTermin-1)*(-215);
		aktiverTermin++;
		$$('.vorherige').setStyle('display', 'inline');
		
		MorphIn = new Fx.Morph($('listitemswrap_'+aktiverKalender), {duration:250, transition:'sine:in', fps:50});
		MorphIn.addEvent('complete', function(){		});
		MorphIn.start({			'left': [startPos, endePos]		});
	}
	if(aktiverTermin < $$('.listitem_'+aktiverKalender).length){
		$$('.naechster').setStyle('display', 'inline');
	}else{
		$$('.naechster').setStyle('display', 'none');
	}
}

function setFormDate(jahr, monat, tag){
	$('data_jahr_'+aktiverKalender).value = jahr;
	$('data_monat_'+aktiverKalender).value = monat;
	$('data_tag_'+aktiverKalender).value = tag;
	$$('.kalenderlink').setStyle('background', '#ffffff');
	$$('.kalenderlink').setStyle('color', '#000000');
	$('kalenderlink_'+tag+'_'+aktiverKalender).setStyle('background', '#f68400');
	$('kalenderlink_'+tag+'_'+aktiverKalender).setStyle('color', '#ffffff');
	$$('.tag').setStyle('border', '1px solid #E2E2E2');
}

function send_form(){
	var Err			= 0;
	var dateErr = 0;
	
	if($('data_name_'+aktiverKalender).value == 'Max 30 Zeichen' || $('data_name_'+aktiverKalender).value == ''){
		$('data_name_'+aktiverKalender).value = '';
		$('data_name_'+aktiverKalender).setStyle('color', '#000000');
	}
	if($('data_email_'+aktiverKalender).value == 'Max 30 Zeichen' || $('data_email_'+aktiverKalender).value == ''){
		$('data_email_'+aktiverKalender).value = '';
		$('data_email_'+aktiverKalender).setStyle('color', '#000000');
	}
	if($('data_titel_'+aktiverKalender).value == 'Max 80 Zeichen' || $('data_titel_'+aktiverKalender).value == ''){
		$('data_titel_'+aktiverKalender).value = '';
		$('data_titel_'+aktiverKalender).setStyle('color', '#000000');
	}
	if($('data_beschr_'+aktiverKalender).value == 'Max 2000 Zeichen' || $('data_beschr_'+aktiverKalender).value == ''){
		$('data_beschr_'+aktiverKalender).value = '';
		$('data_beschr_'+aktiverKalender).setStyle('color', '#000000');
	}
	if($('data_plz_'+aktiverKalender).value == ''){
		$('data_plz_'+aktiverKalender).setStyle('color', '#000000');
	}
	if($('data_ort_'+aktiverKalender).value == 'Max 30 Zeichen' || $('data_ort_'+aktiverKalender).value == ''){
		$('data_ort_'+aktiverKalender).value = '';
		$('data_ort_'+aktiverKalender).setStyle('color', '#000000');
	}
	if($('data_bistum_'+aktiverKalender).value == '0'){
		$('data_bistum_'+aktiverKalender).value = '0';
		$('data_bistum_'+aktiverKalender).setStyle('color', '#760E43');
		Err++;
	}else{
		$('data_bistum_'+aktiverKalender).setStyle('color', '#000000');
	}
	
	Err += validateElem($('data_name_'+aktiverKalender),{lengthmin:1,lengthmax:30});
	Err += validateElem($('data_email_'+aktiverKalender),{lengthmin:1,lengthmax:30,re:'email'});
	Err += validateElem($('data_titel_'+aktiverKalender),{lengthmin:1,lengthmax:80});
	Err += validateElem($('data_beschr_'+aktiverKalender),{lengthmin:1,lengthmax:2000});
	Err += validateElem($('data_plz_'+aktiverKalender),{lengthmin:5,lengthmax:5,re:'numonly'});
	Err += validateElem($('data_ort_'+aktiverKalender),{lengthmin:1,lengthmax:30});
	
	
	dateErr += validateElem($('data_jahr_'+aktiverKalender),{lengthmin:4,lengthmax:4,re:'numonly'});
	dateErr += validateElem($('data_monat_'+aktiverKalender),{lengthmin:1,lengthmax:2,re:'numonly'});
	dateErr += validateElem($('data_tag_'+aktiverKalender),{lengthmin:1,lengthmax:2,re:'numonly'});
	
	if(dateErr){
		$$('.tag').setStyle('border', '1px solid #760E43');
	}else{
		$$('.tag').setStyle('border', '1px solid #E2E2E2');
	}
	if(!Err && !dateErr){
		$('eg_termin_form_'+aktiverKalender).submit();
	}
}

function getMonth(){
	datum = $('search_month_'+aktiverKalender).value.split(",");
	jahr = datum[0];
	monat = datum[1];
	tag = datum[2];
	getNewMonth(jahr,monat,tag);
	
}

//////////////////////////////////////////////////////////////////////////////
// AJAX-Funktionen
function getNewMonth(jahr, monat, tag){
	if(!gettingPHPdata){
		gettingPHPdata = 1;
		
		var myHTMLRequest = new Request.HTML({
			url					: 		currentURL+'getnewcalmonth='+jahr+'_'+monat,
			encoding			: 		'iso-8859-1',
			onSuccess 	: 		function(responseTree, responseElements, responseHTML, responseJavaScript){ 
				gettingPHPdata = 0;
				$('kalenderwrap_'+aktiverKalender).set('html', responseHTML);
				$('kalenderwrap_'+aktiverKalender).setStyle('opacity', 0); 
				MorphIn = new Fx.Morph($('kalenderwrap_'+aktiverKalender), {
					duration:100, 
					transition:'sine:in',
					fps:50
				});
				MorphIn.addEvent('complete', function(){
					$$('.kalenderloaderwrap').setStyle('background-image', 'none');
					getNewDay(jahr, monat, tag);
				});
				MorphIn.start({
					'opacity': [0, 1]
				});
			}, 
			onFailure: function() {
				gettingPHPdata = 0;
			}
		});
		
		$$('.kalenderloaderwrap').setStyle('background', 'url(/typo3conf/ext/ig_cal/res/img/ajax-loader_trans.gif) no-repeat center center');
		MorphOut = new Fx.Morph($('kalenderwrap_'+aktiverKalender), {
			duration:100,
			transition:'sine:in',
			fps:50
		});
		MorphOut.addEvent('complete', function(){
			$('kalenderwrap_'+aktiverKalender).getChildren()[0].destroy();
			myHTMLRequest.send();
		});
		MorphOut.start({
			'opacity': [1, 0]
		});
	}
}

function getNewMonth2(jahr, monat, tag){
	if(!gettingPHPdata){
		gettingPHPdata = 1;
		
		var myHTMLRequest = new Request.HTML({
			url					: 		currentURL+'getnewcalmonth2='+jahr+'_'+monat,
			encoding			: 		'iso-8859-1',
			onSuccess 	: 		function(responseTree, responseElements, responseHTML, responseJavaScript){ 
				gettingPHPdata = 0;
				$('auswahlkalender_wrap_'+aktiverKalender).set('html', 	responseHTML);
				$('auswahlkalender_wrap_'+aktiverKalender).setStyle('opacity', 0); 
				MorphIn = new Fx.Morph($('auswahlkalender_wrap_'+aktiverKalender), {
					duration:100, 
					transition:'sine:in',
					fps:50
				});
				MorphIn.addEvent('complete', function(){
					$$('.kalenderloaderwrap').setStyle('background-image', 'none');
					$$('.tag').setStyle('border', '1px solid #E2E2E2');
					$('data_jahr_'+aktiverKalender).value = '';
					$('data_monat_'+aktiverKalender).value = '';
					$('data_tag_'+aktiverKalender).value = '';
				});
				MorphIn.start({
					'opacity': [0, 1]
				});
			}, 
			onFailure: function() {
				gettingPHPdata = 0;
			}
		});
		
		$$('.kalenderloaderwrap').setStyle('background', 'url(/fileadmin/templates/img/loader.gif) no-repeat center center');
		MorphOut = new Fx.Morph($('auswahlkalender_wrap_'+aktiverKalender), {
			duration:100,
			transition:'sine:in',
			fps:50
		});
		MorphOut.addEvent('complete', function(){
			$('auswahlkalender_wrap_'+aktiverKalender).getChildren()[0].destroy();
			myHTMLRequest.send();
		});
		MorphOut.start({
			'opacity': [1, 0]
		});
	}
}

function getNewDay(jahr, monat, tag){
	if(!gettingPHPdata){
		gettingPHPdata = 1;
		var myHTMLRequest = new Request.HTML({
			url					: currentURL+'getnewdaylist='+jahr+'_'+monat+'_'+tag,
			encoding			: 		'iso-8859-1',
			onSuccess 	: function(responseTree, responseElements, responseHTML, responseJavaScript){ 
				gettingPHPdata = 0;
				$('terminlistwrap_'+aktiverKalender).set('html', responseHTML);
				$('terminlistwrap_'+aktiverKalender).getChildren()[0].setStyle('opacity', 0);
				MorphIn = new Fx.Morph($('terminlistwrap_'+aktiverKalender).getChildren()[0], {duration:100, transition:'sine:in', fps:50});
				MorphIn.addEvent('complete', function(){
					checkscroll();
					if($$('.kalenderlink').hasClass('aktuell')){
						$$('.kalenderlink').removeClass('aktuell');
					}
					$$('.kalenderlink').each(function(el,i,els){
					if(!(oldKalLink = el.getChildren('span')[1]))
						oldKalLink = el.getChildren('span')[0];
						
						oldKalLink.getParent().setStyles({'border':'0','width':'52px','height':'52px'});
						if (el.hasClass('aktiv'))
							oldKalLink.setStyle('color', '#ffffff');
						else oldKalLink.setStyle('color', '#646464');
					});	
						
					if(!(newKalLink = $('kalenderlink_'+tag+'_'+aktiverKalender).getChildren('span')[1]))
						newKalLink = $('kalenderlink_'+tag+'_'+aktiverKalender).getChildren('span')[0];
					else newKalLink.getParent().setStyles({'border':'1px solid #eaaa06','width':'50px','height':'50px'});
						
						newKalLink.setStyle('color','#eb274b');
					
					var listitems = $$('.listitem_'+aktiverKalender);
					var lpos = 0;
					for(var i = 1; i <= listitems.length; i++){
						$$('listitem_'+aktiverKalender+'_'+i).setStyle('left', lpos);
						lpos += 265;
					}
					$$('.vorherige').setStyle('display', 'none');
					if(listitems.length > 1){
						$$('.naechster').setStyle('display', 'inline');
					}else{
						$$('.naechster').setStyle('display', 'none');
					}
				});
				MorphIn.start({
					'opacity': [0, 1]
				});
			},
			onFailure: function() {
				gettingPHPdata = 0;
				alert('Fehler in Bistums-Suche, auf die gewünschte Ressource kann nicht zugegriffen werden');
			}
		});
		aktiverTermin = 1;
		MorphOut = new Fx.Morph($('terminlistwrap_'+aktiverKalender).getChildren()[0], {duration:100, transition:'sine:in', fps:50});
		MorphOut.addEvent('complete', function(){
			$('terminlistwrap_'+aktiverKalender).getChildren()[0].destroy();
			myHTMLRequest.send();
		});
		MorphOut.start({
			'opacity': [1, 0]
		});
	}
}

function getSearchresultsPLZ(){
	$('search_bistum_'+aktiverKalender).blur();
	$('search_plz_'+aktiverKalender).blur();
	if(!gettingPHPdata){
		var plz = $('search_plz_'+aktiverKalender).value;
		if(plz == '') {
			plz='Alle';
			$('search_plz_'+aktiverKalender).setProperty('value',plz);
		} else if (plz != '') {
			var searchresultdiv = $('searchresultwrap_'+aktiverKalender);
			gettingPHPdata = 1;
			var myHTMLRequest = new Request.HTML({
				url					: currentURL+'getsearchresultsplz='+plz,
				encoding			: 'iso-8859-1',
				onSuccess 	: function(responseTree, responseElements, responseHTML, responseJavaScript){
					gettingPHPdata = 0;
					searchresultdiv.set('html', responseHTML);
					MorphIn = new Fx.Morph(searchresultdiv.getChildren()[0], {duration:200, transition:'sine:in', fps:50});
					MorphIn.addEvent('complete', function(){
						checkscroll();
						blurblur($$('#searchresultwrap_'+aktiverKalender+' a'));
					});
					MorphIn.start({
						'opacity': [0, 1]
					});
				},
				onFailure: function() {
					gettingPHPdata = 0;
					alert('Fehler in PLZ-Suche, auf die gewünschte Ressource kann nicht zugegriffen werden');
				}
			});
			searchresultdiv.setStyle('display', 'block');
			
			if(!searchOpen){
				searchOpen = 1;
				MorphZoomIn = new Fx.Morph(searchresultdiv, {duration:200, transition:'sine:in', fps:50});
				MorphZoomIn.addEvent('complete', function(){
					if(searchresultdiv.getChildren()[0]){
						searchresultdiv.getChildren()[0].destroy();
						myHTMLRequest.send();
					}else{
						myHTMLRequest.send();
					}
				});
				
				MorphZoomIn.start({
					'top': [455, 0],
					'left': [415, 167],
					'width': [10, 300],
					'height': [10, 452]
				});
			}else{
				if(searchresultdiv.getChildren()[0]){
					$('searchresultwrap_'+aktiverKalender).getChildren()[0].setStyle('opacity', '0');
				}
				myHTMLRequest.send();
			}
		}else{
			gettingPHPdata = 0;
		}
	}
	
}

function getSearchresultsFulltext(){
	$('search_bistum_'+aktiverKalender).blur();
	$('search_plz_'+aktiverKalender).blur();
	if(!gettingPHPdata){
		var fulltext = $('search_plz_'+aktiverKalender).value;
		if(fulltext != '') {
			var searchresultdiv = $('searchresultwrap_'+aktiverKalender);
			gettingPHPdata = 1;
			var myHTMLRequest = new Request.HTML({
				url					: currentURL+'getsearchresultsfulltext='+fulltext,
				encoding			: 		'iso-8859-1',
				onSuccess 	: function(responseTree, responseElements, responseHTML, responseJavaScript){
					gettingPHPdata = 0;
					searchresultdiv.set('html', responseHTML);
					MorphIn = new Fx.Morph(searchresultdiv.getChildren()[0], {duration:200, transition:'sine:in', fps:50});
					MorphIn.addEvent('complete', function(){
						checkscroll();
						blurblur($$('#searchresultwrap_'+aktiverKalender+' a'));
					});
					MorphIn.start({
						'opacity': [0, 1]
					});
				},
				onFailure: function() {
					gettingPHPdata = 0;
					alert('Fehler in Volltext-Suche, auf die gewünschte Ressource kann nicht zugegriffen werden');
				}
			});
			searchresultdiv.setStyle('display', 'block');
			
			if(!searchOpen){
				searchOpen = 1;
				MorphZoomIn = new Fx.Morph(searchresultdiv, {duration:200, transition:'sine:in', fps:50});
				MorphZoomIn.addEvent('complete', function(){
					if(searchresultdiv.getChildren()[0]){
						searchresultdiv.getChildren()[0].destroy();
						myHTMLRequest.send();
					}else{
						myHTMLRequest.send();
					}
				});
				
				MorphZoomIn.start({
					'top': [455, 0],
					'left': [415, 167],
					'width': [10, 300],
					'height': [10, 452]
				});
			}else{
				if(searchresultdiv.getChildren()[0]){
					$('searchresultwrap_'+aktiverKalender).getChildren()[0].setStyle('opacity', '0');
				}
				myHTMLRequest.send();
			}
		}else{
			gettingPHPdata = 0;
		}
	}
	
}

function getSearchresultsBistum(){
	$('search_bistum_'+aktiverKalender).blur();
	$('search_plz_'+aktiverKalender).blur();
	if(!gettingPHPdata){
		var bistum = $('search_bistum_'+aktiverKalender).value;
		if(bistum != 0){
			var searchresultdiv = $('searchresultwrap_'+aktiverKalender);
			gettingPHPdata = 1;
			var myHTMLRequest = new Request.HTML({
				url					: currentURL+'getsearchresultsbistum='+bistum,
				encoding			: 		'iso-8859-1',
				onSuccess 	: function(responseTree, responseElements, responseHTML, responseJavaScript){
					gettingPHPdata = 0;
					searchresultdiv.set('html', responseHTML);
					MorphIn = new Fx.Morph(searchresultdiv.getChildren()[0], {duration:200, transition:'sine:in', fps:50});
					MorphIn.addEvent('complete', function(){
						checkscroll();
						blurblur($$('#searchresultwrap_'+aktiverKalender+' a'));
					});
					MorphIn.start({
						'opacity': [0, 1]
					});
				},
				onFailure: function() {
					gettingPHPdata = 0;
					alert('Fehler in PLZ-Suche, auf die gewünschte Ressource kann nicht zugegriffen werden');
				}
			});
			searchresultdiv.setStyle('display', 'block');
			
			if(!searchOpen){
				searchOpen = 1;
				MorphZoomIn = new Fx.Morph(searchresultdiv, {duration:200, transition:'sine:in', fps:50});
				MorphZoomIn.addEvent('complete', function(){
					if(searchresultdiv.getChildren()[0]){
						searchresultdiv.getChildren()[0].destroy();
						myHTMLRequest.send();
					}else{
						myHTMLRequest.send();
					}
				});
				
				MorphZoomIn.start({
					'top': [455, 0],
					'left': [415, 167],
					'width': [10, 300],
					'height': [10, 452]
				});
			}else{
				if(searchresultdiv.getChildren()[0]){
					$('searchresultwrap_'+aktiverKalender).getChildren()[0].setStyle('opacity', '0');
				}
				myHTMLRequest.send();
			}
		}else{
			gettingPHPdata = 0;
		}
	}
}

function goToDay(jahr, monat, tag){
	$('search_bistum_'+aktiverKalender).value = 0;
	closeSearch();
	getNewMonth(jahr, monat, tag);
}

function closeSearch(){
	searchOpen = 0;
	$('search_bistum_'+aktiverKalender).value = 0;
	var searchresultdiv = $('searchresultwrap_'+aktiverKalender);
	MorphZoomOut = new Fx.Morph(searchresultdiv, {duration:200, transition:'sine:in', fps:50});
	MorphZoomOut.addEvent('complete', function(){
		searchresultdiv.setStyle('display', 'none');
	});
	
	MorphZoomOut.start({
		'top': [20, 455],
		'left': [200, 415],
		'width': [300, 10],
		'height': [470, 10]
	});
}

//////////////////////////////////////////////////////////////////////////////
// Submit und Validierung

function validateElem(elem,vObj){
	var valid = validateInput(elem.value,vObj);
	if(!valid){
		elem.setStyle("border","1px solid #760E43");
	}else{
		elem.setStyle("border","1px solid #E2E2E2");
	}
	return valid?0:1;
}


function checkCaptcha(captchavalue){
	$('ecard_captcha_'+aktiverKalender).setStyle('background', 'url(typo3conf/ext/ig_cal/res/img/ajax-loader_4.gif) no-repeat center center');
	var myHTMLRequest = new Request.HTML({
		url					: currentURL+'captchacheck='+captchavalue,
		encoding			: 		'iso-8859-1',
		onSuccess 	: function(responseTree, responseElements, responseHTML, responseJavaScript){
			$('ecard_captcha_'+aktiverKalender).setStyle('background', 'none');
			var resp = responseHTML.toString().toInt();
			if(resp == 0){
				$('ecard_form_form_'+aktiverKalender).submit();
			}else{
				$('ecard_captcha_'+aktiverKalender).setStyle("border","1px solid #760E43");
			}
		},
		onFailure: function() {
			$('ecard_captcha_'+aktiverKalender).setStyle('background', 'none');
			$('ecard_captcha_'+aktiverKalender).setStyle("border","1px solid #760E43");
		}
	});
	myHTMLRequest.send();
}

 
function validateInput(vStr, vObj){
	var re = [], valid = true;
	re['textonly'] = /^[0-9A-Za-z ÄÜÖäöüßéáàèóòÈÉÁÀÒÓîÎùúÚÙûÛôÔâÂêÊ-]*$/;
	re['numonly'] = /^[0-9]*$/;
	re['tel'] = /^[0-9 +-]*$/;
	re['email'] = /^[^@]+@[^@]+.[a-z]{2,}$/i;
	re['hasvalue'] = /^[0-9A-Za-z ÄÜÖäöüßéáàèóòÈÉÁÀÒÓîÎùúÚÙûÛôÔâÂêÊ-]*$/;
 
	if(vObj.re && vStr.search(re[vObj.re]) == -1)valid = false;
	if(vObj.lengthmin && vStr.length < vObj.lengthmin)valid = false;
	if(vObj.lengthmax && vStr.length > vObj.lengthmax)valid = false;
 
	return valid;
}


			
