// JavaScript Document

var NL_DEFAULT_VAL = "your email here";
var NL_SUCCESS_MESS = "Subscription was successful!";
var NL_EXIST_MESS = "Your adress already exists.";
var NL_ERROR_MESS = "Error while sending data!";

// The height of the content block when it’s not expanded
var adjustheight = 165;
// The "more" link text
var moreText = "+ More";
// The "less" link text
var lessText = "- Less";

//Singlesite-Inhalte-Ladesystem: Alle 300ms wird der Anker des URL geprüft
$().ready(function() {

	setInterval("checkAnchor()", 300);
	$("#player").flashembed("Websiteplayer/bin-debug/Websiteplayer.swf");
	
	//Newsletter-Mailadresse checken und an den Webserver senden
	$("#nl_mailadress").val(NL_DEFAULT_VAL);
	$("#nl_submit").click(sendNewsletterMailAdress);

	$("#nl_mailadress").click(function() {
		$(this).val("");
		$(this).css("color", "#494949");
		
		return;
	});
	
	$("#nl_mailadress").focusout(function() {
		if($(this).val() == "")
		{
			$(this).val(NL_DEFAULT_VAL);			
		}
		
		return;
	});
		
});

var currentAnchor = null;
var section = null;

//Aktuelle Sektion aus Anker lesen
function checkAnchor() {

	if(currentAnchor != document.location.hash) {
	
		//$("#loading").css({visibility: "visible"});		
		//$("#content").html(""); 	
		
		currentAnchor = document.location.hash;
		var params = "";
		
		if(!currentAnchor) {
			query = "section=news";
			section = "news";
		}
		else {			
			var splits = currentAnchor.substring(1).split('&');
			
			//Sektion lesen
			section = splits[0];
			delete splits[0];
			
			//Parameter für AJAX generieren
			params = splits.join('&');
			
			//Anfrage generieren
			var query = "section=" + section + params;												
		}
		
		if(section != 'shop')
		{		
			$("#loading").fadeTo(750, 1);
			$("#content").fadeTo(750, 0);		
		
			//AJAX: Senden der Anfrage an das Callback-Script
			$.get("script/php/callbacks.php", query, function(data) {
				initSiteContent(data);																											
				initScrolling();
			});
		}
	}
}

//Newsletter-Mailadesse an den Webserver senden
function sendNewsletterMailAdress()
{
	var email = $("#nl_mailadress").val();
	if(email == "" || !(email.indexOf("@") > 0))
	{
		$("#nl_mailadress").val(NL_DEFAULT_VAL);
		
		return false;
	}			
	
	var mailadress = "mailadress=" + $("#nl_mailadress").val();
	
	//AJAX
	$.ajax({
		type: "POST",
		url: "script/php/saveNewsletterAdress.php",
		data: mailadress,
		error: function() {
			$("#nl_mailadress").val(NL_ERROR_MESS);
		},
		success: function(data)
		{
			switch(data)
			{
				//Adresse existiert bereits
				case 'exists':
					$("#nl_mailadress").val(NL_EXIST_MESS);						
					break;					
				case 'success':
					$("#nl_mailadress").val(NL_SUCCESS_MESS);								
					break;
				case 'err':
					$("#nl_mailadress").val(NL_ERROR_MESS);			
			}
		}
	});
	
	return false;
}
	
//Inhalte rendern
function initSiteContent(data) {
			$("#content").html(data); 

			switch(section)
			{
				case 'news':
					initNews();
					
					break;					
				//Shop integrieren
				case 'shop':
					
					break;
				case 'gallery':
					$("#gallery_main").flashembed("gallery/TVE.Gallery/out/Main.swf");
					break;
				case 'contact':
					initContact();
					break;
			}
			
			$("#loading").fadeTo(750, 0);
			$("#content").fadeTo(750, 1);						
}

function initNews()
{
	$(".scrollable_news").scrollable({ vertical: true});
	$(".prevArticle").addClass("disabled");
	//$(".nextArticle").addClass("disabled");
	
	moreLess(1);
	
	$(".nextArticle").click(function() {
		//moreLess();		
	});
	
	$(".prevArticle").click(function() {
		//moreLess();
	});
}


//Kontaktformular initialisieren und steuern
function initContact()
{
	$("input#name").focus();
	$("#submit_btn").click(submitClickHandler);
}

function submitClickHandler()
{
	var strData = checkContactData();
	if(!strData) return false;
	sendFormData(strData);
	
	return false;
}

//Formulardaten validieren
function checkContactData()
{
	$("#report").html("");
	$("#report").hide();
	$("#report").css("color", "#C00");
	
	//Validieren der Formularfelder
	var name = $("input#name").val();
	if(name == "")
	{
		$("#report").html("Please type in your name.");
		$("#report").show();
		$("input#name").focus();
			
		return false;
	}
		
	var email = $("input#email").val();
	if(email == "")
	{
		$("#report").html("Please type in a valid email adress.");
		$("#report").show();
		$("input#email").focus();
		
		return false;
	}			

	var msg = $("textarea#mess").val();
	if(msg == "")
	{
		$("#report").html("Please type in your message.");
		$("#report").show();
		$("#mess").focus();
		
		return false;
	}			

	//Daten konkatenieren
	var strData = "name=" + name + "&mail=" + email + "&message=" + msg;
	
	return strData;
}

//Daten zur weiteren Verarbeitung an den Webserver schicken.
function sendFormData(formData)
{
	//AJAX
	$.ajax({
		type: "POST",
		url: "script/php/processContactRequest.php",
		data: formData,
		error: function() {
			$("#report").html("Error: Your request couldn't be send.");
			$("#report").show();
		},
		success: function(data) {			
			if(data == '1success')
			{
				$("#report").css("color", "#393");
				$("#report").html("Thanx for your message! We will get back to you as soon as possible!");
				$("#report").show();			
			}
			else
			{
				$("#report").html("Error: Your request couldn't be send.");
				$("#report").show();				
			}
		}
	});
			
	//Reload nach 7,5 Sekunden
	window.setTimeout("window.location.reload()", 7500);					
}	

//Read-More-Funktionalität
function moreLess(init)
{	
	$(".more-block").each(function() {
		if($(this).height() > adjustheight)
		{
			// Sets the .more-block div to the specified height and hides any content that overflows
			$(this).css('height', adjustheight).css('overflow', 'hidden');
			
			if(init == 1)
			{
				//The section added to the bottom of the "more-less" div
				$(this).parent(".more-less").append('<a href="#" class="adjust"></a>');
			}
			// Set the "More" text
			
			$(this).parent(".more-less").find("a.adjust").text(moreText);
			 
			$(".adjust").toggle(function() {
							$(this).prev().prev().prev().addClass('disabled');
							$(this).parents("div:first").find(".more-block").css('height', 'auto').css('overflow', 'visible');
							$(this).text(lessText);
					}, function() {
							$(this).parents("div:first").find(".more-block").css('height', adjustheight).css('overflow', 'hidden');
							$(this).text(moreText);
			});
		}
	});
}

