var base_url = 'http://freedt.dyndns.org/';
var target   = '#first-column';
var lightbox = "[rel='lightbox']";
var anchorInterval = '';
var currentAnchor = '';
var currentAnchorTime = new Date().getTime();
var checkCurrentAnchorTime = currentAnchorTime;


function movePreview(e)
{
		var top = e.pageY - ($("#imageView").outerHeight() / 2);
		if (top < 0) top = 0;
		var left = e.pageX + 20;
		$("#imageView").css("top", top);
		$("#imageView").css("left", left);	
}
function searchForIndexOfElement(array, element)
{
	for(var i=0; i<array.length; i++)	
	{
		if(array[i] == element)	
		{
			return i;
		}
	}
}
function updateSidebars()
{
	var window_height = (typeof window.innerHeight == 'undefined') ? document.documentElement.clientHeight : window.innerHeight;
	var paddingTop = $("#second-column").position();
	paddingTop = parseInt(paddingTop.top) + 5;
	if(($('ul#second-column')[0].offsetHeight + paddingTop) < window_height)
	{
		while((($('ul#second-column')[0].offsetHeight + paddingTop + $('ul#third-column li:not(ul#third-column li li):eq(1)')[0].offsetHeight) < window_height) && ($('ul#third-column li:not(ul#third-column li li)').length > 2))
		{
			$('ul#second-column li:not(ul#second-column li li):last').removeClass('last');
			$('ul#third-column li:not(ul#third-column li li):eq(1)').addClass('last');
			$('ul#second-column li:not(ul#second-column li li):last').after($('ul#third-column li:not(ul#third-column li li):eq(1)'));
			$('ul#third-column li:not(ul#third-column li li):first').addClass('first');			
		}
	}
	else if(($('ul#second-column')[0].offsetHeight + paddingTop) > window_height)
	{
		while(($('ul#second-column li:not(ul#second-column li li)').length > 3) && (($('ul#second-column')[0].offsetHeight + paddingTop) > window_height))
		{
			$('ul#second-column li:not(ul#second-column li li):last').removeClass('last');
			$('ul#third-column li:not(ul#third-column li li):first').after($('ul#second-column li:not(ul#second-column li li):last'));
			$('ul#second-column li:not(ul#second-column li li):last').addClass('last');			
		}
	}
}
function styleBlogPreview()
{
	
	$("#blog p").css("display", "none");
	if(window.location.search.indexOf("blog") > -1)
	{
		var monat = $("p.date span.month").text();
		var jahr = $("p.date span.year").text();
		var montateFirstColumn = new Array("Jan", "Feb", "Mär", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez");
		var montateThirdColumn = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
		$("#blog h4:contains("+montateThirdColumn[searchForIndexOfElement(montateFirstColumn,monat)]+" "+jahr+")").css("background-position", "0px -20px");
		$("#blog li:has(h4:contains("+montateThirdColumn[searchForIndexOfElement(montateFirstColumn,monat)]+" "+jahr+")) p").css("display", "block");		
	}
	$("#blog img").attr("src", "blog-closed-icon.jpg");
	$("#blog h4").click(function()
	{
		var index = $("#blog h4").index(this);
		if($("#blog li:eq(" + index + ") p").css("display") == "block")
		{
			$("#blog li:eq(" + index + ") p").slideUp();
			$("#blog li:eq(" + index + ") h4").css("background-position", "0px 0px");
		}
		else
		{
			$("#blog li:eq(" + index + ") p").slideDown();
			$("#blog li:eq(" + index + ") h4").css("background-position", "0px -20px");
		}
	});
}
function setPreviewSettings(selector)
{
	$(selector).each(function()
	{
		//var i = $("div[id^=eventCatcher_]").length;
		var image = $(this);
		var imagePosition = $(this).position();
		$("#blanko").clone().insertAfter("#blanko");
		var newDiv = $("#blanko:last");
		var id = new Date().getTime();
		newDiv.attr("id", "eventCatcher_"+id);
		image.attr("id", "eventCatcherImage_"+id);
		newDiv.insertAfter(image);
		
		newDiv.css("position", "absolute");
		newDiv.css("top", imagePosition.top + 3);
		newDiv.css("left", imagePosition.left);
		newDiv.css("width", image.width());
		newDiv.css("height", image.height());
		newDiv.css("z-index", "80");
	
		newDiv.mouseenter(function()
		{
			
			var id = $(this).attr("id").split("_");
			var n = id[1];
			var image = $("#eventCatcherImage_"+n);
			$("#imageView img").attr("src", image.attr("src"));
			$("#imageView span").text(image.attr("alt"));
			$("#imageView").css("display", "block");
		});
		
		newDiv.mouseleave(function()
		{
			$("#imageView").css("display", "none");
		});

		newDiv.mousemove(function(e)
		{
			movePreview(e);
		});
	});
}

function prepare_ajax(sel)
{
	var selector = sel+' a:not('+lightbox+'),'+sel+' area';
	var selector_form = sel+' form';
	
	$(selector).click(function()
	{
		var href = $(this).attr('href');
		if( (href == "") || (href.indexOf(base_url) == 0) || ((href.indexOf('http://') == -1) && (href.indexOf('https://') == -1)) )
		{
			$('body').animate({opacity: '0.5'}, 200);
			window.scrollTo(0,0);
			window.location.href = '#'+href.replace(base_url, '');
			currentAnchorTime = new Date().getTime();
			return false;
		}
	});
	
	$(selector_form).submit(function()
	{
		var href = $(this).attr('action');
		if( (href == "") || (href.indexOf(base_url) == 0) || ((href.indexOf('http://') == -1) && (href.indexOf('https://') == -1)) )
		{
			$('body').animate({opacity: '0.5'}, 200);
			window.scrollTo(0,0);	
			if(href == "")
			{
				href = currentAnchor.substring(1);
				if(href.substr(-1) != '/')
				{
					href = href+'/';
				}
			}
			else
			{
				window.location.href = '#'+href.replace(base_url, '');
				currentAnchor = '#'+href.replace(base_url, '');
				currentAnchorTime = new Date().getTime();
				checkCurrentAnchorTime = currentAnchorTime;
				$(this).append('<input type="hidden" name="submit" value="1" />');
			}
			$(this).append('<input type="hidden" value="" name="ajax" />');
			var postData = $(this).serializeArray();
			$(target).load(href, postData, function()
			{
				clearInterval(anchorInterval);
				$('#second-column .first form p[style]').remove();
				if( typeof( $('#newsletter_box') != "undefined") )
				{
					$('#second-column .first form').prepend($('#newsletter_box').html());
					$('#newsletter_box').hide();
				}
				$('body').animate({opacity: '1'}, 200);
				prepare_ajax(target);
				setPreviewSettings("div#blogpage img[width][!height],ol#blogpage img[!width][height],ol#blogpage img[width][height]");
				$(lightbox).lightBox();
				anchorInterval = setInterval('checkAnchor()', 500);				
			});
			return false;
		}
	});	
}

function checkAnchor()
{
	if( (currentAnchor != document.location.hash) || (currentAnchorTime != checkCurrentAnchorTime) )
	{
		clearInterval(anchorInterval);
		checkCurrentAnchorTime = currentAnchorTime;
		$('body').animate({opacity: '0.5'}, 200);
		currentAnchor = document.location.hash;  
		if(!currentAnchor)
		{
			href = "/";  
		}
		else  
		{  
			href = currentAnchor.substring(1);
		}
		window.scrollTo(0,0);
		$(target).load(href, {'ajax' : ''}, function()
		{
			$('#imageView').hide();
			$('#second-column .first form p[style]').remove();
			$('body').animate({opacity: '1'}, 200);
			prepare_ajax(target);
			setPreviewSettings("div#blogpage img[width][!height],ol#blogpage img[!width][height],ol#blogpage img[width][height]");
			$(lightbox).lightBox();
			setPreviewSettings(".livePreviewContent img");
		});
		anchorInterval = setInterval('checkAnchor()', 500);		
	}
}
$(document).ready(function()
{
	styleBlogPreview();
	prepare_ajax('body');
	anchorInterval = setInterval('checkAnchor()', 500);
	$("a").focus(function()
	{
		$(this).blur();
	});
	$('#landingPage').click(function()
	{
		$(this).fadeOut();
		document.body.style.overflow = 'auto';
	})
});
$(window).load(function()
{
	updateSidebars();
	setPreviewSettings("#galleryPreview img");
	setPreviewSettings("div#blogpage img[width][!height],ol#blogpage img[!width][height],ol#blogpage img[width][height]");
});
$(window).resize(updateSidebars);
$(function() {
	 $('a[rel*=lightbox]').lightBox();
});
function newsletter(form)
{
	var submitHidden = $("#newsletter").find("input[type=submit]").clone();
	submitHidden.attr("type", "hidden");
	submitHidden.css("display", "none");
	submitHidden.css("id", "");
	submitHidden.css("class", "");
	submitHidden.appendTo($("#newsletter"));
	var request = $("#newsletter").serializeArray();
	$('#newsletter').load("newsletter.php", request, function() 
	{														
		$("#ajaxLoading").fadeOut("fast");
		$("#ajaxLoading p").fadeOut("fast");		
	});
	return false;
}
