function getCalendar(year, month)
{	
	var url 		= '/ajax/change_calendar.php';
	var params 		= 'year=' + year + '&month='+month;
	var ajax 		= new Ajax.Updater( {success: 'calendar'}, url, {method: 'get', parameters: params, onFailure: reportError});
}








function getCalendarForEvent(year, month, museum, raum, exhibition, event)
{	

	var	waitObject		= $('vsscalendar');
	waitObject.update('<div style="height:22px; background:#fff; padding: 3px;"><img src="/img/icon_wait.gif" alt="Bitte Warten Sie, bis die Daten geladen wurde." style="float:left; margin: 2px 5px 5px 0; width:16px; height:16px;" />Daten werden geladen!</div>');

	var	timeObject		= $('vsscalendartimes');
	timeObject.update('<div class="info">Zeitauswahl</div><br/>Bitte w&auml;hlen Sie aus dem nebenstehenend Kalender ein Datum.');	

 	$('auswahl').update('');
// 	if($('personendatendialog')) new Effect.Fade('personendatendialog', {duration:.5});	

	var url 		= '/ajax/change_calendar_for_event.php';
	var params 		= 'year=' + year + '&month='+month + '&museum='+museum+'&raum='+raum+'&exhibition='+exhibition + '&event='+event;
	var ajax 		= new Ajax.Updater( {success: waitObject}, url, {method: 'get', parameters: params, onFailure: reportError});
}








function getCalendarTimesForEvent(museum, raum, exhibition, event, timestamp)
{	

	var	waitObject		= $('vsscalendartimes');
	waitObject.update('<div style="height:22px; background:#fff; padding: 3px;"><img src="/img/icon_wait.gif" alt="Bitte Warten Sie, bis die Daten geladen wurde." style="float:left; margin: 2px 5px 5px 0; width:16px; height:16px;" />Daten werden geladen!</div>');
   	new Effect.Highlight(waitObject, {startcolor:'#990033'});

	$('auswahl').update('');
// 	if($('personendatendialog')) new Effect.Fade('personendatendialog', {duration:.5});	

	var url 		= '/ajax/change_calendar_times_for_event.php';
	var params 		= '&museum='+museum+'&raum='+raum+'&exhibition='+exhibition+'&event='+event+'&timestamp='+timestamp;
	var ajax 		= new Ajax.Updater( {success: waitObject}, url, {method: 'get', parameters: params, onFailure: reportError});
	
}








function setVSStimestamp(exhibition, event, raum, selectObject)
{
	var auswahl		= "false";
    with (selectObject) auswahl = options[selectedIndex].value;

// 	if($('personendatendialog')) new Effect.Fade('personendatendialog', {duration:.5});	
    
    if(auswahl=="false")
    {
    	//	Wenn der erste leere Eintrag gewŠhlt wurde 
    	//	Button vernichten und Zeitauswahl blinken lassen
    	new Effect.Highlight('vsscalendartimes', {startcolor:'#990033'});
    	$('auswahl').update('');
    }
    else
    {
    
		var partSel		= $('participants');
		if(partSel)
		{
	    	with (partSel) participants = options[selectedIndex].value;
    	
    		if(participants== 0)
	    		new Effect.Highlight('minmaxinfo', {startcolor:'#990033'});
    	}
    	
    	new Effect.Highlight('auswahl');
    	if($('cartinfo'))
	   		new Effect.Highlight('cartinfo');
    	$('auswahl').update('<a href="#" onclick="addToCart('+exhibition+', '+event+', '+raum+', '+auswahl+'); return false;" onfocus="blur();" class="kaufen">In den Warenkorb</a>');
    }
}








function changeMinmaxinfo(participantsObject, event)
{
	var selectObject 	= $('vsstimestamp');
	var auswahl 		= "false";
	
	if(selectObject)
	{
	    with (selectObject) timestamp = options[selectedIndex].value;
    
	    if(timestamp=="false")
		   	new Effect.Highlight('vsscalendartimes', {startcolor:'#990033'});
    	else
    	{
			var participants	= 0;
		    with (participantsObject) participants = options[selectedIndex].value;
    
    		if(participants==0)
    		{
	    		new Effect.Highlight('minmaxinfo', {startcolor:'#990033'});
	    	}
    		else
    		{
	    		new Effect.Highlight('auswahl');
		    	if($('cartinfo'))
	    			new Effect.Highlight('cartinfo');
	
				//- mark - Hier dann Preis-Aktualisieren 
				var url 			= '/ajax/getPriceRules.php';
				var params 			= '&event='+event+'&timestamp='+timestamp+'&participants='+participants;
				var ajax 			= new Ajax.Updater( {success: 'priceinfo'}, url, {method: 'get', parameters: params, onFailure: reportError})		    			
	    	}
    	}
    }
    else
    {
	   	new Effect.Highlight('vsscalendartimes', {startcolor:'#990033'});
    }
}














function addToCart(exhibition, event, raum, timestamp)
{
	var	cartinfo	= $('auswahl');
	var partSel		= $('participants');
	var grpSel		= $('groupage');
    with (partSel)	participants 	= options[selectedIndex].value;	
    try
    {
    	with (grpSel) 	groupage 		= options[selectedIndex].value;	
    }
    catch (e)
    {
    	groupage		= 0;
    }

	//	Kommentare per url-encode uebergen
	var comment		= $('comment');
	var commentvalue	= Url.encode(comment.value);
	
    
   	if($('personendatendialog')) new Effect.Fade('personendatendialog', {duration:.5});		


	var url 		= '/ajax/addEventToCart.php';
	var params 		= '&timestamp='+timestamp + '&exhibition='+exhibition + '&event='+event+'&raum='+raum+'&participants='+participants+'&groupage='+groupage+'&comment='+commentvalue;
	var ajax 		= new Ajax.Updater( {success: cartinfo}, url, {method: 'get', parameters: params, onSuccess: showMiniCart, onFailure: reportError});	
	

	var	timeObject		= $('vsscalendartimes');
	timeObject.update('<div class="info">Zeitauswahl</div><br/>Bitte w&auml;hlen Sie aus dem nebenstehenend Kalender ein Datum.');	
}


function removeFromCart(cart_uid)
{	   	
	var url 		= '/ajax/deleteItemFromShoppingCart.php';
	var params 		= '&cart_uid='+cart_uid;
	var ajax 		= new Ajax.Updater( {success: 'minicart'}, url, {method: 'get', parameters: params, onFailure: reportError});
	
   	new Effect.Highlight('menucart', {startcolor:'#990033', duration:2.5});
}


function showMiniCart()
{

	var url 		= '/ajax/showMiniCart.php';
	var params 		= '';
	var ajax 		= new Ajax.Updater( {success: 'minicart'}, url, {method: 'get', parameters: params, onFailure: reportError});
	
   	new Effect.Highlight('menucart', {startcolor:'#990033', duration:2.5});
}


function checkout()
{

	var url 		= '/ajax/checkout.php';
	var params 		= '';
	var ajax 		= new Ajax.Updater( {success: 'minicart'}, url, {method: 'get', parameters: params, onFailure: reportError});
	
   	new Effect.Highlight('menucart', {startcolor:'#990033', duration:2.5});
}


















function showPersonendaten(eventid)
{
	var cartinfo = $('cartinfo');
	var personendatendialog = $('personendatendialog');
	
	if(!personendatendialog)
	{
		new Insertion.Top(cartinfo, '<div id="personendatendialog" style="display:none;"><div id="pddclosebottom"><a href="#" onclick="closePersonendaten(); return false;" onfocus="blur();">Dialogfenster schlie&szlig;en</a></div></div>');

		var url 		= '/ajax/showPersonendatenHUD.php';
		var params 		= '&event='+eventid;
		var ajax 		= new Ajax.Updater( {success: 'personendatendialog'}, url, {method: 'get', parameters: params, onFailure: reportError})			
	}
	

	new Effect.toggle('personendatendialog', 'appear', {duration:.5});	
}


function closePersonendaten()
{
	var personendatendialog = $('personendatendialog');
	new Effect.Fade(personendatendialog, {duration:.5});
}


















function setPreisOption(selectObject, event)
{
	var auswahl			= false;
    with (selectObject) auswahl = options[selectedIndex].value;

	var url 			= '/ajax/session_SetPreisOption.php';
	var params 			= '&option='+selectObject.name+"&value="+auswahl;
	var ajax 			= new Ajax.Request(url, {method: 'get', parameters: params, onFailure: reportError});
	

    
	var partSel			= $('participants');
	var participants 	= 0;
	if(partSel)
	{
    	with (partSel) participants = options[selectedIndex].value;
   	
   		if(participants== 0)
    		new Effect.Highlight('minmaxinfo', {startcolor:'#990033'});
   	}	

    
	var partSel			= $('vsstimestamp');
	var timestamp 		= 0;
	if(partSel)
	{
    	with (partSel) timestamp = options[selectedIndex].value;
   	}
   	else
   	{
    	new Effect.Highlight('vsscalendar', {startcolor:'#990033'});
    	new Effect.Highlight('vsscalendartimes', {startcolor:'#990033'});
   	}
   	
   	new Effect.Highlight('priceinfo', {startcolor:'#990033'});	
	
	//- mark - Hier dann Preis-Aktualisieren 
	var url 			= '/ajax/getPriceRules.php';
	var params 			= '&event='+event+'&timestamp='+timestamp+'&participants='+participants;
	var ajax 			= new Ajax.Updater( {success: 'priceinfo'}, url, {method: 'get', parameters: params, onFailure: reportError})		

}













function checkIfMailExistst(obj)
{
	var email = obj.value;
	
	var url 		= '/ajax/check_user_email.php';
	var params 		= '&email='+email;
	var ajax 		= new Ajax.Request(url, {method: 'get', parameters: params, onFailure: reportError, onComplete: utilizeCheckMail});

	
}


function utilizeCheckMail(originalRequest)
{
	if(originalRequest.responseText)
	{
		var accountform_email = $('accountform_email');
	   	new Effect.Highlight(accountform_email, {startcolor:'#990033'});
		alert(originalRequest.responseText);
	}
}


function checkPasswords()
{
	var pass1 = $('accountform_password');
	var pass2 = $('accountform_password2');
	
	if(pass1.value=="" && pass2.value!="")
	{
	   	new Effect.Highlight(pass1, {startcolor:'#990033'});
		alert("Achtung\n\nGeben Sie bitte Ihr Passwort ein!")
	}
	else if(pass1.value!=pass2.value && pass2.value!="")
	{
	   	new Effect.Highlight(pass2, {startcolor:'#990033'});
		alert("Achtung\n\nDie Passwörter stimmen nicht überein!");
	}
	
}













function show_museum_menu(museum)
{
	var backtooverview = $('backtooverview');
	var museumsoverview = $('museumsoverview');
	
	if(!museumsoverview)
	{
		new Insertion.Top(backtooverview, '<div id="museumsoverview" style="display:none;"><div style="height:25px; padding: 3px;"><img src="/img/icon_wait.gif" alt="Bitte Warten Sie, bis die Daten geladen wurde." style="float:left; margin: 2px 5px 5px 0; width:16px; height:16px;" />Daten werden geladen!</div></div>');

		var url 		= '/ajax/showMuseumsOverviewHUD.php';
		var params 		= '&museum='+museum;
		var ajax 		= new Ajax.Updater( {success: 'museumsoverview'}, url, {method: 'get', parameters: params, onFailure: reportError})			
	}
	

	new Effect.toggle('museumsoverview', 'appear', {duration:.5});	
}













function showWaitInfo(obj)
{
	var	waitObject		= $(obj);
	waitObject.update('<div style="height:25px; padding: 3px;"><img src="/img/icon_wait.gif" alt="Bitte Warten Sie, bis die Daten geladen wurde." style="float:left; margin: 2px 5px 5px 0; width:16px; height:16px;" />Daten werden geladen!</div>');
	
	new Effect.BlindDown(waitObject);
	

	var liste			= $$('.eventactive');	
	for(var i=0; i<liste.length; i++)
	{
		new Effect.BlindUp(liste[i]);
	}	
	
}



function getToursByExhibitionId(exhibitionID)
{
	var url 			= '/ajax/getToursByExhibitionId.php';
	var params 			= 'exhibitionID=' + exhibitionID;
	
	var	eventObject		= $('showexhibition'+exhibitionID);
	
	eventObject.update('<div id="ewait'+exhibitionID+'"><img src="/img/icon_wait.gif" alt="Bitte Warten Sie, bis die Daten geladen wurde." style="float:left; margin: 0 15px 15px 0;" />Daten werden geladen!</div><div id="einfo'+exhibitionID+'" class="response" style="display:none;">&nbsp;</div>');
	
	
//	var ajax 			= new Ajax.Updater( {success: 'einfo'+exhibitionID}, url, {method: 'get', parameters: params, onComplete: getToursByExhibitionIdCompleate(exhibitionID), onFailure: reportError});
	var ajax 			= new Ajax.Updater( 'einfo'+exhibitionID, 
											url, 
											{
												method: 'get', 
												parameters: params, 
												onSuccess: getToursByExhibitionIdCompleate(exhibitionID), 
												onFailure: reportError
											} );
	
}


function getToursByExhibitionIdCompleate(exhibitionID)
{
	var eventInfo		= $('einfo'+exhibitionID);
	var eventWait		= $('ewait'+exhibitionID);
	
	var liste			= $$('.response');	
	
	for(var i=0; i<liste.length; i++)
	{
		if(liste[i].id != 'einfo'+exhibitionID)
			new Effect.BlindUp(liste[i]);
	}

	
	
	new Effect.BlindDown(eventInfo, 'blind');
	new Effect.BlindUp(eventWait, 'blind');
}




function reportError(request) 
{
	var url 		= '/ajax/error.php';
	var params 		= '&status='+request.status+'&text='+request.statusText;
	var ajax 		= new Ajax.Request(url, {method: 'get', parameters: params});
		
	alert("Die Anfrage konnte nicht durchgeführt werden!\n\nEine E-Mail mit einer Fehlerbeschreibbung wurde soeben an die Administration gesendet.\nBitte wenden Sie sich im Zweifelsfall telefonisch an den Museumsdienst Hamburg um Tickets zu buchen.\n\nDER MUSEUMSDIENST HAMBURG\nGlockengießerwall 5a\n20095 Hamburg\nTelefon: 040 / 42 8 13 10");
}




/**
 * @param strChk      String to be cleaned
 * @param strFind     String to replace
 * @param strReplace  String to insert
 * @return            String without unwanted characters/strings
 */
function str_replace(strFind, strReplace, strChk) {
  var strOut = strChk;
  while (strOut.indexOf(strFind) > -1) {
    strOut = strOut.replace(strFind, strReplace);
  }
  return strOut;
}