// +-------------------------------------------------------------------+
// | Copyright (c) 2010 www.svenbartak.de (license@svenbartak.de)      |
// +-------------------------------------------------------------------+
// | Dieses Skript ist keine kostenfreie Software. 					   |
// | Vervielfältigungen und Modifikation brechen die für dieses Skript |
// | geltenden Copyrightbestimmungen und ziehen rechtliche Schritte    |
// | unsererseits nach sich.          								   |
// |																   |
// | Akzeptieren und wahren Sie deshalb die o.g. Copyrightbestimmungen |
// | und ersparen Sie uns und Ihnen viel Aufwand und Aerger.           |
// +-------------------------------------------------------------------+
// | Die aktuellen Copyrightbestimmungen finden sie hier:			   |
// | <http://www.svenbartak.de/termsOfCopyright>                       |
// +-------------------------------------------------------------------+

// Globale Variablen
// Die aktuell aufgerufene Seite
var currentPage = null;

// Bildbereich
var imageFlow = null;

// Mail
var emailFromUser = null;
var emailFromUserIsChecked = false;

// Kontaktholder
var contactName = null;
var contactMail = null;
var contactText = null;

// Loginholder
var loginUsername = null;

function init()
{	
	handleRequest('startseite');
	new Ajax.Request('source/de/svenbartak/core/Util.class.php', { method: 'post', parameters: "copyright=true", onComplete: handeCopyright});
}

function handeCopyright(response)
{
	$('copyright').innerHTML = response.responseText;
}

function initImageFlow()
{
	imageFlow = new ImageFlow();
    imageFlow.init({ 
    	ImageFlowID: 'imageFlowContainer', 
        reflections: false, 
        reflectionP: 0.0, 
        slider: false,
        captions: false,
        onClick: function() 
        { 
        }
	});
}

function showIndicator(show)
{
	if(show == true)
	{
		if($('formLoginSenderContainer') != null)
		{
			$('formLoginSenderContainer').innerHTML = '<img src="images/icons/indicator.gif" width="16" height="16" alt="Icon: Bitte warten..." title="Icon: Bitte warten..." style="margin-right: 2px;" /><span class="text12Wb">Bitte warten ...</span>';
		}
		
		if($('formContactSenderContainer') != null)
		{
			$('formContactSenderContainer').innerHTML = '<img src="images/icons/indicator.gif" width="16" height="16" alt="Icon: Bitte warten..." title="Icon: Bitte warten..." style="margin-right: 2px;" /><span class="text12Wb">Bitte warten ...</span>';
		}
		
		$('indicator').innerHTML = 'Bitte warten, die angeforderte Seite wird geladen...';
	}
	else
	{
		if($('formLoginSenderContainer') != null)
		{
			$('formLoginSenderContainer').innerHTML = '<input type="button" name="formLoginSender" id="formLoginSender" value="Anmelden" onClick="handleRequest(\'login\', \'proceed\'); return false;" />';
		}
		
		if($('formContactSenderContainer') != null)
		{
			$('formContactSenderContainer').innerHTML = '<input type="button" name="formContactSender" id="formContactSender" value="Abschicken" onClick="handleRequest(\'kontakt\', \'proceed\'); return false;" />';
		}
		
		$('indicator').innerHTML = '';
	}
}

function resetErrors()
{
	if($('errorContainer') != null)
	{
		$('errorContainer').style.display = "none";
	}
}

function disableForms()
{
	if($('formName') != null)
	{
		$('formName').disabled = true;
	}
	
	if($('formEMail') != null)
	{
		$('formEMail').disabled = true;
	}
	
	if($('formText') != null)
	{
		$('formText').disabled = true;
	}
	
	if($('formUsername') != null)
	{
		$('formUsername').disabled = true;
	}
}

function enableForms()
{
	if($('formName') != null)
	{
		$('formName').disabled = false;
	}
	
	if($('formEMail') != null)
	{
		$('formEMail').disabled = false;
	}
	
	if($('formText') != null)
	{
		$('formText').disabled = false;
	}
	
	if($('formUsername') != null)
	{
		$('formUsername').disabled = false;
	}
}

function handleNavigation()
{
	var mainNaviNode = $('mainNavigation').getElementsByTagName('LI');
	var subNaviRightNode = $('subNavigationRight').getElementsByTagName('LI');
	
	// Zuruecksetzen der ganzen Navigation
	for(var j=0; j<mainNaviNode.length; j++)
	{	
		if(mainNaviNode[j].id == arguments[0])
		{
			mainNaviNode[j].className = 'active';
		}
		else
		{
			mainNaviNode[j].className = 'inactive';					
		}
	}
	
	for(var j=0; j<subNaviRightNode.length; j++)
	{	
		if(subNaviRightNode[j].id == arguments[0])
		{
			subNaviRightNode[j].className = 'active';
		}
		else
		{
			subNaviRightNode[j].className = 'inactive';					
		}		
	}
}

function handleRequest()
{ 
	resetErrors();
	disableForms();
	
	var page = '';
	var action = '';
	var params = '';
		
	for (var i=0; i<arguments.length; i++) 
	{
		// Maskiere Seite
		if(i == 0)
		{
			// Filter den ersten Parameter aus den Argumenten.
			// Es ist immer die aktuell angefragte Seite
			params = "page=" + arguments[i];
			
			// Setze die Aktuelle Seite
			page = arguments[i];
			
			// Globale Variable setzen
			currentPage = arguments[i];
			
			// Navigationsverwaltung
			handleNavigation(page);
      	}

		// Maskiere action
		if(i == 1)
		{
			// Filtern des zweiten Parameters aus den Argumenten.
			// Es ist immer die Aktion
			params += "&action=" + arguments[i];
						
			// Setze die Aktion
			action = arguments[i];
		}

      	if(arguments.length > 2 && i > 1)
      	{	
			// Setze weitere Argumente, falls diese vorhanden sind.
        	// Verbindung mittels &
        	params += "&" + arguments[i];
		}  
    }

	// Indikator setzen
	showIndicator(true);
	
	// Holt entsprechende Felder
	params = getFormContents(params, page, action);
	
	// Absetzen der Anfrage
	new Ajax.Request('source/de/svenbartak/core/Dispatcher.class.php', { method: 'post', parameters: params, onComplete: handleResponse});
}

function getFormContents(params, page, action)
{
	// Login
	if(page == 'login')
	{
		// Anmeldung
		if(action == 'proceed')
		{
			if($('formUsername') != null && $('formPassword') != null)
			{
				params += "&username=" + $('formUsername').value;
				loginUsername = $('formUsername').value;
				
				params += "&password=" + $('formPassword').value;
			}
        }	
	}
	else
	{
		if(page == 'kontakt')
		{
			// Anmeldung
			if(action == 'proceed')
			{
				if($('formName') != null && $('formEMail') != null && $('formText') != null)
				{
					params += "&name=" + $('formName').value;
					contactName = $('formName').value;
					
					params += "&email=" + $('formEMail').value;
					contactMail = $('formEMail').value;
					
					params += "&text=" + $('formText').value;
					contactText = $('formText').value;
				}
	        }	
		}
	}
	
	return params;
}
function instantSearch()
{	
	if($('q') != null && $('q').value == '')
	{
		if($('results') != null)
		{
			$('results').innerHTML = '';			
		}
		
	    return false;
	}

	params = "page=instantsearch";
	params+= "&action=search";
	params+= "&search="+$('q').value;
	
	new Ajax.Request('source/de/svenbartak/core/Dispatcher.class.php', { method: 'post', parameters: params, onComplete: handleInstantSearch});	
}

function handleInstantSearch(response)
{
	var responseArray = response.responseText.split('###****###');
	var pageID = responseArray[0];
	var searchResult = responseArray[1];
	searchResult = searchResult.trim();
	var searchResultArray = searchResult.split('###|###');
	
	var resultHtml = '';
	
	if(searchResult.length > 0)
	{
		resultHtml+='<div class="result" style="width:676px;">';
		resultHtml+='<table width="100%" height="100%" style="margin-top: -1px; border: 1px solid black; color: #000000; background: #FFFFFF;">';
		
	    for(i=0; i<searchResultArray.length; i++)
	    {   
	    	if(i+1<searchResultArray.length)
	    	{	
	    		resultHtml+='<tr><td style="border-bottom: 1px dashed black;">';
	    	}
	    	else
	    	{
	    		resultHtml+='<tr><td>';
	    	}

	    	var information = searchResultArray[i].split("*|*");
	    	
	    	resultHtml+= '<a href="'+information[2]+'" target="_self">';
	        resultHtml+= information[0];
	        resultHtml+= " - ";
	        resultHtml+= information[1];
	        resultHtml+= "</a><br />";
	        resultHtml+='<div id="player-holder'+i+'"></div>';                                              
            resultHtml+="</td></tr>";
	    }
	    
	    resultHtml+='</table>';
	}
	else
	{
		resultHtml='Keine Suchergebnisse.';
	}
	
    $('results').innerHTML = resultHtml;
    
    if(searchResult.length > 0)
	{
	    for(i=0; i<searchResultArray.length; i++)
	    { 
	    	var information = searchResultArray[i].split("*|*");
	    	
		    var options = {};
		    options.mediaPath = information[2];
			
			var params = {};
			params.allowScriptAccess = "always";
			
		    swfobject.embedSWF("http://www.frequenzgefluester.de/lib/flashplayer/OriginalThinMusicPlayer.swf", "player-holder"+i, "500", "21", "9.0.0",false, options, params, {});
	    }
	}
}

function handleResponse(response)
{	
	// Die Antwort teilt sich immer wie folgt auf
	// [0] => Seiten ID (siehe Konstante oben)
	// [1] => linker Bereich der Seite
	// [2] => rechter Bereich der Seite
	// [3] => error text
	var responseArray = response.responseText.split('###****###');
	
	var pageID = responseArray[0];
	var pageContentLeft = responseArray[1];
	var pageContentRight = responseArray[2];
	var pageErrorText = responseArray[3];	
	
	// Seitenauswahl
	switch(pageID)
	{
		case 'startseite':
			changeBGImage('upcomming.jpg');
		break;
		
		case 'ueberuns':
			changeBGImage('welt.jpg');
		break;
		
		case 'veranstaltungen':
			changeBGImage('veranstaltungen.jpg');
		break;
		
		case 'bildergalerie':
			changeBGImage('dance.jpg');
		break;
		
		case 'booking':
			changeBGImage('booking.jpg');
		break;
		
		case 'artists':
			changeBGImage('booking.jpg');
		break;
		
		case 'kontakt':
			changeBGImage('kontakt.jpg');
		break;
		
		case 'login':
			changeBGImage('stein.jpg');
		break;
			
		case 'impressum':
			changeBGImage('stein.jpg');
		break;
		
		case 'datenschutz':
			changeBGImage('stein.jpg');
		break;
		
		default:
			changeBGImage('upcomming.jpg');
		break;
	}
	
	// Inhalt setzen 
	changeContent(pageID, pageContentLeft, pageContentRight, pageErrorText);
	
	// Indikator zuruecksetzen
	showIndicator(false);
	
	enableForms();
}

function changeBGImage()
{	
	if(arguments.length > 0)
	{	
		$('contentContainer').style.backgroundImage = "url('./images/" + arguments[0] + "')";
	}
	else
	{
		$('contentContainer').style.backgroundImage = "none";
	}
}

function changeContent()
{
	if(arguments.length > 0)
	{
		// arguments[0] ist immer die page id
		// arguments[1] ist immer der linke Inhalt
		// arguments[2] ist immer der rechte Inhalt
		// arguments[3] ist immer der error Inhalt
		
		$('leftContentContainerInline').innerHTML = arguments[1];
		$('rightContentContainerInline').innerHTML = arguments[2];
		
		if(arguments[3] != null)
		{
			if(arguments[3].length > 0)
			{	
				if(currentPage == 'kontakt')
				{
					if($('formName') != null)
					{
						$('formName').value = contactName;
					}
					
					if($('formEMail') != null)
					{
						$('formEMail').value = contactMail;
					}
					
					if($('formText') != null)
					{
						$('formText').value = contactText;
					}
				}
				else
				{
					if(currentPage == 'login')
					{
						if($('formUsername') != null)
						{
							$('formUsername').value = loginUsername;
						}
					}
				}	
				
				 	$('errorContainer').style.display = "block";
					$('errorContainer').className = "error";
					$('errorContainer').innerHTML = arguments[3];
			}
		}
		
		if(arguments[0] != null)
		{
			if(arguments[0].length > 0)
			{
				if(arguments[0] == 'bildergalerie')
				{
					if($('imageFlowContainer') != null)
					{
						initImageFlow();	
					}	
				}	
			}
		}
	}
}

function clearField(obj, value)
{	
	if(obj.value == value)
	{
		obj.value = '';	
	}
}

function resetPrivacy()
{
	$('inlinePrivacyContent').innerHTML = '<span style="font-size: 16px; font-weight: bold; color: #000000;">Datenschutzerkl&auml;rung</span><br /><br /> Bevor wir Dir einen Newsletter an Deine angegebene E-Mail senden d&uuml;rfen, bedarf es Deiner Zustimmung der nachfolgenden Datenschutzerkl&auml;rung.<br /><br />	<b>Grundsatz</b><br />	Wir nehmen den Schutz Ihrer pers&ouml;nlichen Daten sehr ernst und behandeln Ihre personenbezogenen Daten vertraulich und entsprechend der gesetzlichen Datenschutzvorschriften sowie dieser Datenschutzerkl&auml;rung.	<br /><br />	<b>Erheben von Daten</b><br />	Wir erheben und verarbeiten personenbezogene Daten nur, soweit diese f&uuml;r die Begr&uuml;ndung und inhaltliche Ausgestaltung oder &Auml;nderung des Rechtsverh&auml;ltnisses erforderlich sind (Bestandsdaten). Personenbezogene Daten &uuml;ber die Inanspruchnahme unserer Internetseiten (Nutzungsdaten) erheben, verarbeiten und nutzen wir nur, soweit dies erforderlich ist, um die Inanspruchnahme des Dienstes zu erm&ouml;glichen oder abzurechnen.	<br /><br />	<b>&Uuml;bermitteln von Daten</b><br />	Eine &Uuml;bermittlung Ihrer Daten an Dritte, etwa zu Zwecken der Werbung, erfolgt nicht.	<br /><br />	<b>Datenverarbeitung auf dieser Internetseite</b><br />	Wir erheben und speichern automatisch Informationen in Log-Dateien, die Ihr Browser automatisch an uns &uuml;bermittelt. Dies sind Browsertyp bzw. Browserversion, verwendetes Betriebssystem, Referrer-URL und  Uhrzeit der Serveranfrage. Diese Daten sind nicht bestimmten Personen zuordenbar. Eine Zusammenf&uuml;hrung dieser Daten mit anderen Datenquellen wird nicht vorgenommen.	<br /><br />	<b>Cookies</b><br />	Die Internetseiten verwenden teilweise so genannte Cookies. Diese dienen dazu, unser Angebot nutzerfreundlicher, effektiver und sicherer zu machen. Cookies sind kleine Textdateien, die auf Ihrem Rechner abgelegt werden und die Ihr Browser speichert. Die meisten der von uns verwendeten Cookies sind so genannte Session-Cookies. Sie werden nach Ende Ihres Besuchs automatisch gel&ouml;scht. Cookies richten auf Ihrem Rechner keinen Schaden an und enthalten keine Viren.	<br /><br />	<b>Newsletter</b><br />	Wenn Sie den auf der Webseite angebotenen Newsletter beziehen m&ouml;chten, ben&ouml;tigen wir von Ihnen eine g&uuml;ltige E-Mail-Adresse. Den Newsletter k&ouml;nnen Sie jederzeit abbestellen.	<br /><br />	<b>Auskunftsrecht</b><br />	Sie haben jederzeit das Recht auf Auskunft &uuml;ber die gespeicherten personenbezogenen Daten, deren Herkunft und Empf&auml;nger sowie den Zweck der Datenverarbeitung. Wenn Sie Fragen hierzu haben, die Ihnen diese Datenschutzerkl&auml;rung nicht beantworten konnte, k&ouml;nnen Sie sich jederzeit an uns wenden.	<br /><br />	<input type="checkbox" id="chkPrivacyPoliceAccept" name="chkPrivacyContent" value="accept"/>&nbsp;Ich akzeptiere die o.g. Bestimmung und m&ouml;chte den Newsletter bestellen.<br /><br />	<input type="button" name="sendNewsletter" value="Newsletter bestellen" onclick="checkPrivacyPolice($(\'chkPrivacyPoliceAccept\'));"/><br />';
}

function checkUserMail(mailaddy)
{
	resetPrivacy();
	emailFromUser = mailaddy;
	params = "checkmail=true&mail=" + emailFromUser;
	new Ajax.Request('source/de/svenbartak/core/Util.class.php', { method: 'post', parameters: params, onComplete: handleCheckUserMail});
}

function handleCheckUserMail(response)
{
	var mailaddy = null;
	
	if(response.responseText == true)
	{
		emailFromUserIsChecked = true;
	}
	else
	{
		if(response.responseText == 2)
		{
			mailaddy = prompt("Die E-Mailadresse ist bereits registriert.\nBitte gib erneut Deine E-Mailadresse ein.", "");
		}
		else
		{
			mailaddy = prompt("Die E-Mailadresse scheint fehlerhaft zu sein.\nBitte gib erneut Deine E-Mailadresse ein.", "");
		}
		
		emailFromUserIsChecked = false;
		
		if(mailaddy != null)
		{
			checkUserMail(mailaddy);
		}
	}
}

function checkPrivacyPolice(obj)
{
	if(obj.checked == true)
	{
		if(emailFromUserIsChecked == true)
		{
			params = "insertnews=true&mail=" + emailFromUser;
			new Ajax.Request('source/de/svenbartak/core/Util.class.php', { method: 'post', parameters: params});
			$('inlinePrivacyContent').innerHTML = "Du wurdest erfolgreich in unseren Verteiler aufgenommen.<br />Vielen Dank f&uuml;r Dein Interesse.";			
		}
		else
		{
			mailaddy = prompt("Bitte gib erneut Deine E-Mailadresse ein.", "");
			emailFromUserIsChecked = false;
		
			if(mailaddy != null)
			{
				checkUserMail(mailaddy);
			}
		}
	}
	else
	{
		alert(unescape("Ohne Deine Zustimmung unserer Datenschutzerkl%E4rung\nk%F6nnen wir Dir den Service unseres Nachrichtverteilers nicht anbieten."));
	}
}
