var loading = false;

window.addEvent('domready', function(){
	// tiggr-buttons aktivieren
	$$('div.VoteBox').each(function(el, i) {
		if (el.getElement('div.VoteButton').hasClass("disabled") == false)
		{
			el.getElement('div.VoteButton').addEvent('click', function()
			{
					tiggrn(el.id.substr(6));
			});
		} 
	});
	
	// overlays schliessen
	$('OverlayBackground').addEvent('click', function(e){closeOverlays();});
	
	// login
	if ($('loginform'))
	{
		$('loginform').addEvent('submit', function(e)
		{
			new Event(e).stop();
			$('LoginScreen').removeClass("active");
			$('LoadingScreen').addClass("active");
			loading = true;
			this.send(
			{
				onComplete: function()
				{
					if (submitForm(this.response.text, 'LoginScreen'))
					{
						alert("Sie wurden erfolgreich eingeloggt.");
						(function(){window.location.reload();}).delay(500);
					}
				}
			});
		});
	}
	
	// add reise
	if ($('addreiseform'))
	{
		$('addreiseform').addEvent('submit', function(e)
		{
			new Event(e).stop();
			$('AddScreen').removeClass("active");
			$('LoadingScreen').addClass("active");
			loading = true;
			this.send(
			{
				onComplete: function()
				{
					var responses = this.response.text.split(";");
					if (submitForm(responses[0], 'AddScreen'))
					{
						(function()
						{
							if(responses.length > 1)
							{
								alert("Reise erfolgreich gespeichert.");
								window.location.href = responses[1];
							}
						}).delay(500);
					}
				}
			});
		});
	}

	// activation
	if ($('activationform'))
	{
		$('activationform').addEvent('submit', function(e)
		{
			new Event(e).stop();
			$('ActivationScreen').removeClass("active");
			$('LoadingScreen').addClass("active");
			loading = true;
			this.send(
			{
				onComplete: function()
				{
					if (submitForm(this.response.text, 'ActivationScreen'))
						(function()
						{
							alert("Die Aktivierung Ihres Accounts wurde erfolgreich abgeschlossen.");
							window.location.href=$('webroot').href;
						}).delay(500);
				}
			});
		});
	}
	
	// comment
	if ($('commentform'))
	{
		$('commentform').addEvent('submit', function(e)
		{
			new Event(e).stop();
			$('CommentScreen').removeClass("active");
			$('LoadingScreen').addClass("active");
			loading = true;
			this.send(
			{
				onComplete: function()
				{
					if (submitForm(this.response.text, 'CommentScreen'))
					{
						alert("Ihr Kommentar wurde hinzugefügt.");
						window.location.reload();
					}
				}
			});
		});
	}
	
	// registrieren
	if ($('registerform'))
	{
		$('registerform').addEvent('submit', function(e)
		{
			new Event(e).stop();
			$('veranstalter_typen').setStyle("visibility", "hidden");
			$('RegisterScreen').removeClass("active");
			$('LoadingScreen').addClass("active");
			loading = true;
			this.send(
			{
				onComplete: function()
				{
					if (submitForm(this.response.text, 'RegisterScreen'))
					{
						alert("Sie wurden erfolgreich registriert und bekommen von uns in Kürze eine Email mit Aktivierungs-Code.");
						document.location.href = $('webroot').href + "activate";
					}
					else
					{
						$$('#veranstalter_selector input').each(function(node)
						{
							//alert(node);
							node.checked = false;
						});
					}
				}
			});
		});
		
		// registrier-formular vorbereiten
		
		if ($('veranstalter_ja'))
			$('veranstalter_ja').checked = false;
			
		if ($('veranstalter_nein'))
			$('veranstalter_nein').checked = false;
	}
	
	// navigator aktivieren
	$$('div.ReiseNavigator div').each(function(node)
	{
		var page = $$('div.ReiseNavigator')[0].getProperty("page");
		if (node.getProperty("page") == page)
		{
			node.addClass("selected");
		}
		else
		{
			if (node.getProperty("page") >= 0)
			{
				node.addEvent('mouseover', function(e){this.addClass("hover");});
				node.addEvent('mouseout', function(e){this.removeClass("hover");});
				node.addEvent('click', function(e)
				{
					if (node.getProperty("page") == "0")
						document.location.href=$('webroot').getProperty("pageroot") + $('webroot').getProperty("pagetail");
					else
					{
						document.location.href=$('webroot').getProperty("pageroot") 
												+ this.getProperty("page") 
												+ "/" + $('webroot').getProperty("pagetail");
					}
				});
			}
			else
				node.addClass("disabled");
		}
	});
	
	// listenhöhe
	if ($('MainContent'))
	{
		var minheight = 240;
		var rightblock = 0;
		if ($('HilfeBox'))
			rightblock += 200;
		if ($('GoogleAd') != null)
			rightblock += 610;
//		if ($('kommentare') != null)
//			minheight += $('kommentare').getSize().size.y;
		
		minheight = Math.max(rightblock, minheight);
		
		var listheight = Math.max($('Liste').getSize().size.y, minheight);
		//$('MainContent').setStyle("height", listheight)
		var mc_height = new Fx.Style('MainContent', 'height', {duration:listheight});
		mc_height.start(0, listheight);
	}
	/*
	// userlinks deaktivieren
	$$('div.ItemPoster a.trPoster, div.ItemDescription a.trPoster').each(function(node)
	{
		node.addEvent('click', function(e)
		{
			new Event(e).stop();
			alert("Die Benutzerseiten sind zur Zeit noch nicht verfügbar!\n");
		});
	});
	*/
});

function submitForm(responseText, screen)
{
	var result = false;
	resetFormErrors(screen);
	if (responseText == "ok")
	{
		closeOverlayWindow();
		$('LoadingScreen').removeClass("active");
		result = true;
	}
	else
	{
		// something wrong
		r_parts = responseText.split("|");
		//alert(responseText);
		if (r_parts.length > 1 && r_parts[0] == "error")
		{
			for (i=1;i<r_parts.length;i++)
				eval(r_parts[i]);
		}
		else
			alert(responseText);
		
		$('LoadingScreen').removeClass("active");
		$(screen).addClass("active");
	}
	loading = false;
	
	return result;
}

function formError(fieldname, errormessage)
{
	if (!$('label_' + fieldname) || !$('errortext_' + fieldname))
		alert(errormessage);
	
	if ($('label_' + fieldname)) 
		$('label_' + fieldname).addClass("formError");
		
	if ($('errortext_' + fieldname))
		$('errortext_' + fieldname).innerHTML = errormessage;
}

function resetFormErrors(screen)
{
	$$("#" + screen + " .formError").each(function(node)
	{
		node.removeClass("formError");
	});

	$$("#" + screen + " .errorText").each(function(node)
	{
		node.innerHTML = "";
	});
}

function closeOverlays()
{
	if (!loading)
	{
		closeOverlayWindow();
		(function(){test = $('OverlayBackground').setStyle("visibility", "hidden");}).delay(500);
	}
}

function tiggrn(id)
{
	var count_node = $("tiggr_"+id).getElement("div.VotesCount");
	var button_node = $("tiggr_"+id).getElement("div.VoteButton");
	
	if (count_node != null)
	{
		var url = $('webroot').href  + "ajax/tiggr.php?id=" + id;
		
		var ajax = new Ajax(url, {
				method: 'get', 
				onComplete: function()
				{
					//alert(this.response.text);
					if (this.response.text == "-1")
						alert("Sie haben diese Reise bereits getiggrt!");
					else
						count_node.innerHTML = this.response.text;
					
					if (button_node != null)
					{
						button_node.removeEvents('click');
						button_node.addClass('disabled');
					}
				}
		}).request();
	}
}

function showOverlayWindow()
{
	$('OverlayBackground').setStyle("visibility", "visible");
	$$('html').setStyle("overflow", "hidden");
	$('OverlayBackground').setStyle("top", window.getScrollTop());
	$('OverlayBackground').setStyle("width", window.getWidth());
	$('OverlayBackground').setStyle("height", window.getHeight());
	
	$('OverlayWindow').setStyle("visibility", "visible");
	$('OverlayWindow').setStyle("top", window.getScrollTop() + window.getHeight()/2 - $('OverlayWindow').getSize().size.y/2);
	var alertboxLeft = new Fx.Style('OverlayWindow', 'left', {duration:500});
	alertboxLeft.start(-500, ((window.getWidth() - $('OverlayWindow').getSize().size.x)/2));
}

function login()
{
	$('LoginScreen').addClass("active");
	showOverlayWindow();
}

function register()
{
	$('RegisterScreen').addClass("active");
	showOverlayWindow();
}

function activate()
{
	$('ActivationScreen').addClass("active");
	showOverlayWindow();
}

function new_comment()
{
	$('CommentScreen').addClass("active");
	showOverlayWindow();
}

function addreise()
{
	if ($('AddScreen') != null)
	{
		$$('#AddScreen div.title')[0].innerHTML = "Reise eintragen:";
		$$('#AddScreen input.button')[0].value = "hinzufügen";
		
		$$('#AddScreen form input.tiID')[0].value = "0";
		$$('#AddScreen form input.tiTitle')[0].value = "";
		$$('#AddScreen form input.tiURL')[0].value = "";
		$$('#AddScreen form textarea.tiDescription')[0].value = "";
		$$('#AddScreen form input.tiTagList')[0].value = "";
		
		$('AddScreen').addClass("active");
		showOverlayWindow();
	}
}

function editreise(id)
{
	if ($('AddScreen') != null)
	{
		$$('#AddScreen div.title')[0].innerHTML = "Reise ändern:";
		$$('#AddScreen input.button')[0].value = "aktualisieren";
		
		var idtag = '#tr' + id;
		if ($$(idtag).length == 1)
		{
			var title = $$(idtag + ' a.trTitle')[0].innerHTML;
			var url = $$(idtag + ' a.trURL')[0].href;
			var beschreibung = $$(idtag + ' div.trDescription')[0].innerHTML;
			var tags = new Array();
			var tag_string = idtag + ' div.trTags a.tagList';
			
			for (var i=0; i<$$(tag_string).length; i++)
			{
				tags[i] = $$(tag_string)[i].innerHTML;
			}
			
			//alert("reise-id: " + id + "\ntitle: " + title + "\nurl: " + url + "\nBeschreibung: " + beschreibung + "\nTags: " + tags.join(", "));
			
			$$('#AddScreen form input.tiID')[0].value = id;
			$$('#AddScreen form input.tiTitle')[0].value = title;
			$$('#AddScreen form input.tiURL')[0].value = url;
			$$('#AddScreen form textarea.tiDescription')[0].value = beschreibung;
			$$('#AddScreen form input.tiTagList')[0].value = tags.join(", ");
		
			$('AddScreen').addClass("active");
			showOverlayWindow();
		}
		else
			alert("Fehler: Reise mit ID '" + id + "' nicht gefunden!");
	}
}

function deletereise(id)
{
	if (confirm("Wollen Sie dieses Angebot wirklich löschen?"))
		document.location.href = $('webroot').getProperty("href") + "user/delete.php?id=" + id + "&return=" + escape($('webroot').getProperty("pageroot") + $('webroot').getProperty("pagetail"));
}

function closeOverlayWindow()
{
	var alertboxLeft = new Fx.Style('OverlayWindow', 'left', {duration:500});
	alertboxLeft.start($('OverlayWindow').getLeft(), -500);
	(function(){
		$$('html').setStyle("overflow", "scroll");
		$$('#OverlayWindow div').removeClass("active");
		$('OverlayWindow').setStyle("visibility", "hidden");
	}).delay(500);
}

function logout()
{
	var logout = new Ajax($('webroot').href + "user/logout.php",
	{
		onComplete: function()
		{
			if (this.response.text == "ok")
			{
				alert("Sie wurden erfolgreich ausgeloggt.");
				document.location.href=$('webroot').href;
			}
			else
				alert(this.response.text);
		}
	}).request();
}

function setVeranstalter(value)
{
	if (value == "1")
		$('veranstalter_typen').setStyle("visibility", "visible");
	else if (value == "0")
		$('veranstalter_typen').setStyle("visibility", "hidden");
	 
}

