var contactPid	= 3;
var imprintPid	= 4;
var supportPid	= 5;
var loginPid	= 32;
var downloadPid	= 45;
var forumPid	= 53;
var registerPid	= 69;

function getRandomNumber(range)
{
	return Math.floor(Math.random() * range);
}

function getRandomChar()
{
	var chars = "0123456789abcdefghijklmnopqurstuvwxyzABCDEFGHIJKLMNOPQURSTUVWXYZ";
	return chars.substr( getRandomNumber(62), 1 );
}

function randomID(size)
{
	var str = "";
	for(var i = 0; i < size; i++)
	{
		str += getRandomChar();
	}
	return str;
}

function transformLink(url) {
	return url.replace(".html", "/ajax");
}

function initMailForm() {
	$("#fancy_ajax form").submit(function(e) {
		if(checkForm()) {
			var submitButton = $(e.target).is('input[type=submit]')?$(e.target):$(e.target).find('input[type=submit]');
			var formData = new Object();
			var formAction = $(this).attr("action").replace(".html", "/ajax");
			$("input:not([type=submit]),textarea,select", $(this)).add(submitButton).each(function() {
				if(formData[$(this).attr("name")]) formData[$(this).attr("name")] += ',' + $(this).val();
				else formData[$(this).attr("name")] = $(this).val();
			});
			titleTag = $("#fancy_ajax h1");
			if(titleTag.length > 0) title = titleTag.html();
			$("#fancy_ajax").html("<h1>"+title+"</h1><p>"+label["submitting"]+"</p>");
			$("#fancy_ajax").load(formAction, formData, initMailForm);
		}
		return false;
	});
}

function initForm() {
	if($("#fancy_ajax").text().replace(/[\r\n\t ]/g, "") == "") {
		$.fn.fancybox.close();
		reloadTopnav();
	}
	else {
		$("#fancy_ajax a[href]").each(function() {
			$(this).fancybox({"padding": 20, "frameWidth": 430, "frameHeight": 450, "overlayOpacity": 0.5, "hideOnContentClick": false, "callbackOnShow": initForm, "showScrollbar": true, "transformLink": transformLink});
		});
		$("#fancy_ajax form").submit(function(e) {
			var submitButton = $(e.target).is('input[type=submit]')?$(e.target):$(e.target).find('input[type=submit]');
			var formData = new Object();
			$("input[type=text],input[type=password],input[type=hidden],input[type=checkbox]:checked,input[type=radio]:checked,textarea,select", $(this)).add(submitButton).each(function() {
				if(formData[$(this).attr("name")]) formData[$(this).attr("name")] += ',' + $(this).val();
				else formData[$(this).attr("name")] = $(this).val();
			});
			formAction = $("#fancy_ajax form").attr("action").replace(".html", "/ajax");
			titleTag = $("#fancy_ajax h1");
			if(titleTag.length > 0) title = titleTag.html();
			$("#fancy_ajax").html("<h1>"+title+"</h1><p>"+label["submitting"]+"</p>");
			$("#fancy_ajax").load(formAction, formData, initForm);
			return false;
		});
	}
}

function initTopnav() {
	topnavLinks = $("#topnav a").not("#link"+forumPid+",#switch-language");
	topnavLinks.filter("a#link"+supportPid).fancybox({"padding": 20, "frameWidth": 450, "frameHeight": 350, "overlayOpacity": 0.5, "callbackOnShow": initForm, "hideOnContentClick": false, "showScrollbar": true,  "transformLink": transformLink});
	topnavLinks.filter("a#link"+downloadPid).fancybox({"padding": 20, "frameWidth": 600, "frameHeight": 350, "overlayOpacity": 0.5, "callbackOnShow": initForm, "hideOnContentClick": false, "showScrollbar": true, "showPrintLink": false, "transformLink": transformLink});
	topnavLinks.filter("a#link"+loginPid).fancybox({"padding": 20, "frameWidth": 350, "frameHeight": 200, "overlayOpacity": 0.5, "callbackOnShow": initForm, "hideOnContentClick": false, "transformLink": transformLink});
	topnavLinks.filter("a#link"+registerPid).fancybox({"padding": 20, "frameWidth": 430, "frameHeight": 450, "overlayOpacity": 0.5, "hideOnContentClick": false, "callbackOnShow": initForm, "showScrollbar": true, "transformLink": transformLink});
	topnavLinks.filter("a#logout").click(function() {
		$.ajax({
			type: "POST",
			url: transformLink($(this).attr("href")),
			success: function() {
				reloadTopnav();
			}
		});
		return false;
	});
}

function reloadTopnav() {
	href = document.location.href;
	href = transformLink(href);
	href = href.replace(/\/($|\?)/, "/ajax$1");
	href += href.match(/\?/)?"&":"?";
	href_topnav = href + "topnav=1&uniqueid=" + randomID(10);
	href_login_info = href + "login_info=1&uniqueid=" + randomID(10);
	$("#topnav").html("<p>"+label["pleaseWait"]+"</p>");
	$("#login-info").html("");
	$("#topnav").load(href_topnav,null,initTopnav);
	$("#login-info").load(href_login_info);
}

function initFooter() {
	footerLinks = $("#footer a");
	footerLinks.filter("a#link"+contactPid).fancybox({"padding": 20, "frameWidth": 650, "frameHeight": 420, "overlayOpacity": 0.5, "callbackOnShow": initMailForm, "hideOnContentClick": false, "transformLink": transformLink});
	footerLinks.filter("a#link"+imprintPid).fancybox({"padding": 20, "frameWidth": 550, "frameHeight": 370, "overlayOpacity": 0.5, "hideOnContentClick": false, "transformLink": transformLink});
	$("#footer-menu-left a").fancybox({"padding": 20, "frameWidth": 600, "frameHeight": 300, "overlayOpacity": 0.5, "transformLink": transformLink});
}

function initTagClouds() {
	tagCloudKeywords = $("#tag-cloud a");
	if(tagCloudKeywords.length > 0) {
		tagCloudKeywords.each(function() {
			$(this).fancybox({"padding": 20, "frameWidth": 600, "frameHeight": "auto", "overlayOpacity": 0.5, "transformLink": transformLink});
		});
	}
}

function initLogoLinks() {
	logoLinks = $(".sliding-content a");
	if(logoLinks.length > 0) {
		logoLinks.each(function() {
			$(this).fancybox({"padding": 20, "frameWidth": 600, "frameHeight": "auto", "overlayOpacity": 0.5, "transformLink": transformLink});
		});
	}
}

function initQuickCheck() {
	$('#quickcheck-links a').fancybox({"padding": 20, "frameWidth": 600, "frameHeight": 460, "overlayOpacity": 0.5, "transformLink": transformLink, "showPrintLink": false, "callbackOnShow": initForm});
	$('#quickcheck-form input[type=radio]').attr('checked', false);
	$('#quickcheck-form input[type=radio]').live('click', function() {
		$(this).parents('tr').find('td').removeClass('checked');
		$(this).parent('td').addClass('checked');
		/*
		if($('#quickcheck-form input:checked').length == $('#quickcheck-form input.no').length) {
			var href = $('#quickcheck-form').attr('action');
			var score = $('#quickcheck-form input.no:checked').length;
			$('body').append('<a href="'+href+'?score='+score+'&submit_ajax=1" id="fancybox_link"></a>');
			$('#fancybox_link').fancybox({"padding": 20, "frameWidth": 600, "frameHeight": "auto", "overlayOpacity": 0.5, "transformLink": transformLink, "showPrintLink": false}).trigger('click');
			$('#fancybox_link').remove();
		}
		*/
	});
}

function checkForm() {
	ok = true;

	$('.error').remove();

	if(!$("input#name").val()) {
		$("#name").after('<div class="error">Bitte geben Sie Ihren Namen ein</div>');
		ok = false;
	}

	if(!$("input#mail").val()) {
		$("#mail").after('<div class="error">Bitte geben Sie Ihre eMail-Adresse ein</div>');
		ok = false;
	}
	else
	{
		if(!$("input#mail").val().match(/^[a-zA-Z0-9][a-zA-Z0-9\-\._]*@[a-zA-Z0-9][a-zA-Z0-9\-\._]*\.[a-zA-Z]{2,5}$/)) {
			$("#mail").after('<div class="error">Bitte geben Sie eine korrekte eMail-Adresse ein</div>');
			ok = false;
		}
	}

	if($("textarea#message").val().length < 3) {
		$("#message").after('<div class="error">Bitte geben Sie eine Nachricht ein</div>');
		ok = false;
	}

	return ok;
}

$(document).ready(function() {
	initTopnav();
	initFooter();
	initTagClouds();
	initLogoLinks();
	initQuickCheck();
});
