$('document').ready(function() {

	$('#noJSmessage').hide();
	
	var currentLink = location.href;
	var sliders = new Array();
	sliders.push('#galerie', '#kuenstler', '#kunsthaus');


	/* AJAX Navigationen ******************************/
	
	var stored         = false; // aktive Navis speichern um nach dem ajaxRequest zu stylen
	var storedInside   = false; // aktive Navis speichern um nach dem ajaxRequest zu stylen
	var lastCalledLink = false;
	var lastCalledSect = false;
	
	var pageLang    = 'de';
	var sectionLang = new Object();
	sectionLang['#galerieContent']   = 'de';
	sectionLang['#kuenstlerContent'] = 'de';
	sectionLang['#kunsthausContent'] = 'de';
	
	var sectionLink = new Object();
	sectionLink['#galerieContent']   = '';
	sectionLink['#kuenstlerContent'] = '';
	sectionLink['#kunsthausContent'] = '';
	
	var preventKunsthausDefault = false;
	var preventGalerieDefault   = false;
	
	
	function init() {
		initClickEvents();
		$('#wrapper').toiCrazyAccordion('action');
		positioning();
	}
	
	
	/* Initialisierung der Click-Events */
	
	function initClickEvents() {	
		$("#kuenstlerNavi a").live('click', function() {
			url     = $(this).attr("href");
			section = '#kuenstlerContent';
			
			$(this).parent().parent().find('li').removeClass('active');
			
			stored = $(this).attr('id');
			$('#'+stored).parent().addClass('active');		
			$('#legals a').removeClass('active');
		
			$(section).animate({opacity: 0}, 400, function() {
				resetDimension(section);
				getContent(url, section);
			});  
			
			return false;		
  		});
  		
  		
  		$("#innerNavi a").live('click', function() {
			url     = checkInnerLink($(this).attr("href"));
			section = '#kuenstlerContent';
			
			if(storedInside) $('#'+storedInside).parent().removeClass('active');
			storedInside  = $(this).attr('id');
			
			$('#legals a').removeClass('active');
		
			$(section).animate({opacity: 0}, 700, function() {
				getContent(url, section);
			});  
			
			return false;		
  		});
  		
  		
  		$(".gallery").find('.toolbar a').live('click', function() {  			
			url     = checkInnerLink($(this).attr("href"));
			section = '#kuenstlerContent';
			
			if(storedInside) $('#'+storedInside).parent().removeClass('active');
			storedInside  = $(this).attr('id');
			
			$('#legals a').removeClass('active');
		
			$(section).animate({opacity: 0}, 700, function() {
				getContent(url, section);
			});  
			
			return false;		
  		});
  		
  		
  		$("#legalsDE a, #legalsEN a").live('click', function() {
			url     = $(this).attr("href");
			section = '#kunsthausContent';
			
			preventKunsthausDefault = true;		
			
			if(!$('#kunsthaus').hasClass('isLeft')) {
				$('#kunsthaus').click();
			}
			
			$('#legalsDE a').css({'backgroundPosition' : '0 0'});
			$('#legalsEN a').css({'backgroundPosition' : '0 0'});
			$(this).css({'backgroundPosition': '-45px 0'});
			
			if(storedInside) $('#'+storedInside).parent().removeClass('active');
			storedInside  = $(this).attr('id');
		
			$(section).animate({opacity: 0}, 700, function() {
				getContent(url, section);
			});  
			
			return false;		
  		});
  		
  		
  		$(".newsList a, .marginTop a, #kunsthaus .homelink").live('click', function() {
			url     = checkInnerLink($(this).attr("href"));
			section = '#kunsthausContent';
			
			preventKunsthausDefault = true;		
			
			if(!$('#kunsthaus').hasClass('isLeft')) {
				$('#kunsthaus').click();
			}
			
			$('#legals a').removeClass('active');
			//$('#newsLink').addClass('active');
			
			if(storedInside) $('#'+storedInside).parent().removeClass('active');
			storedInside  = $(this).attr('id');
		
			$(section).animate({opacity: 0}, 700, function() {
				getContent(url, section);
			});  
			
			return false;		
  		});
  		
  		
  		$(".newsContent .R a").live('click', function() {
			url     = checkInnerLink($(this).attr("href"));
			section = '#kuenstlerContent';
			
			preventKunsthausDefault = true;		
			
			if($('#kuenstler').hasClass('isLeft')) {
				$('#kuenstler').click();
			}
			
			$('#legals a').removeClass('active');
		
			$(section).animate({opacity: 0}, 700, function() {
				getContent(url, section);
			});  
			
			return false;		
  		});
  		
  		
  		$('#galerie').click(function() {
  			if(!$(this).hasClass('isLeft') || ($(this).hasClass('isLeft') && $('#kuenstler').hasClass('isLeft'))) {
  				resetPosition(lastCalledSect);
  				lastCalledSect = '#galerieContent';
  				if(!preventGalerieDefault) {
  					$(this).find('#galerieContent').animate({opacity: 0}, 400, function() {
						getContent('/galerie/', '#galerieContent');
  					});
  				} else if(!languageCheck(lastCalledSect)) {
					languageSwitch(lastCalledSect);
				}
  		  	}
  		  	
			lastCalledLink = '/galerie/';
			preventGalerieDefault = true;
			checkDimensions(lastCalledSect);
		});
		
		
		$('#kuenstler').click(function() {
			if(!$(this).hasClass('isLeft') || ($(this).hasClass('isLeft') && $('#kunsthaus').hasClass('isLeft'))) {
				resetPosition(lastCalledSect);
				lastCalledSect = '#kuenstlerContent';
				lastCalledLink = '/kuenstler/';
				checkDimensions(lastCalledSect);
				if(!languageCheck(lastCalledSect)) {
					languageSwitch(lastCalledSect);
				}
			}
		});
  		
  		
  		$('#kunsthaus').click(function() {  		
  			if(!$(this).hasClass('isLeft')) {
  				resetPosition(lastCalledSect);
  				lastCalledSect = '#kunsthausContent';
  				if((!preventKunsthausDefault && !preventDoubleLoad) || $('#kunsthausContent').html() == '') {
  					$(this).find('#kunsthausContent').animate({opacity: 0}, 400, function() {
						getContent('/kunsthaus/', '#kunsthausContent');
  					}); 
  		  		} else if(!languageCheck(lastCalledSect)) {
					languageSwitch(lastCalledSect);
				}
  		  	}
  			
  			lastCalledSect = '#kunsthausContent';
  			preventKunsthausDefault = true;
  			preventDoubleLoad = false;
  			checkDimensions(lastCalledSect);
  		});
  		
  		
  		$('.slideButton').each(function() {
  			$(this).click(function() {
  				$(this).parent().click();
  				return false;
  			});
  		});
  	}
  	
  	
  	/* Ajax Content einlesen und verarbeiten */  	
  	
  	function getContent(url, section) {
  		showLoader();
  		savedUrl = url;
  		rand = Math.random() * 1000;
  		if (url.search(/\/article\//) > -1 && url.search(/\/article\/\//) == -1) {
  			url = url.replace(/\/article\//, '/article//');
  		}
  		
		$.ajax({
			//erweitere aufzurufenden Link
			url: url+'?type=55'+langStr+'&r='+rand,
			//wenn es geklappt hat
			success: function(html) {
				sectionLink[section] = url;
				//Inhalt reinschreiben und anzeigen
				$(section).html(html);
				insertContactLink();
				$(section).animate({opacity: 1}, 800, function() {
					checkDimensions(section);
					fixAjaxContents();
					reInitEvents();
					if(sW < 1000) fixContentSizing();
					if($.browser.msie) crapBrowserFixes();
				});
				if($.browser.msie) crapBrowserFixes();
				
				if(storedInside && storedInside != '') $('#'+storedInside).parent().addClass('active');
				lastCalledLink = url;
				lastCalledSect = section;
				
				// Tracking für Analytics
				if (typeof _gaq !== "undefined" && _gaq !== null) {
					_gaq.push(['_trackPageview', savedUrl]);
				}
				
				//window.history.pushState(new Object(), "Kunsthaus-Hannover Seite", savedUrl);
			}
		});
	}
	
	
	function reInitEvents() {
		$('#formSubmitter').click(function() {
			$.ajax({
				type: 'POST',
				url:  '/kunsthaus/kontakt/?type=55'+langStr,
				data: $('#mailForm').serialize(),
				success: function(html) {
					$(lastCalledSect).html(html).animate({opacity: 1}, 800, function() {
						checkDimensions(lastCalledSect);
						fixAjaxContents();
						if(sW < 1000) fixContentSizing();
						if($.browser.msie) crapBrowserFixes();
						
						captchaRand = parseInt(Math.random() * 1000);
						captchaLink = $('#mailForm').find('.captchaImg img').attr('src');
						$('#mailForm').find('.captchaImg img').attr('src', '/' + captchaLink + '?r=' + captchaRand);
					});
					if($.browser.msie) crapBrowserFixes();
				}
			});
			
			return false;
	});		
	}		




	/* LAYOUT Generierung und Aktualisierungen *********/
	
	var sW = $(document).width();
	var sH = $(document).height();
	
	var eW = 200;
	
	sectionHeaders = new Array();
	sectionHeaders.push('galerie_a.png', 'kuenstler_a.png', 'logo_a.png');
	
	if(sW < 1000) fixContentSizing();
	
	bodyImagePos = sW - (sliders.length * eW) - 200;
	$('body').css({
		backgroundPosition: bodyImagePos + 'px 40px'
	});
	
	
	var doResize;
	$(window).resize(function() {
		if(doResize !== false) {
    		clearTimeout(doResize);
			doResize = setTimeout(positioning, 200);
		}
	});
	
	
	for(i = 0; i < sliders.length; i++) {
		origContent = $(sliders[i]).find('.csc-default:first').html();
		if(i == 2) {
			newContent  = '<a class="homelink" href="/kunsthaus/"><img src="pub/css/img/' + sectionHeaders[i] + '" class="sectionImage" alt="Galerie" /></a>' + origContent;
		} else {
			newContent  = '<img src="pub/css/img/' + sectionHeaders[i] + '" class="sectionImage" alt="Galerie" />' + origContent;
		}
		$(sliders[i]).find('.csc-default:first').html(newContent);
	}
	
	
	function showLoader() {
  		$('.loader').show();
  		$('body').animate({opacity: 1}, 800, function() {
  			$('.loader').fadeOut();
  		});
  	}
  	
  	
  	function resetPosition(section) {
  		if($(section).parent().parent().scrollTop() > 0) {
  			$(section).parent().parent().animate({'scrollTop': '0'}, 400);
  		}
  	}
	
	
	function positioning() {
		sW = $(window).width();
		sH = $(window).height();
		
		$('#kontakt').css({
			'height': sH,
			'right' : 0
		});
		
		$('#wrapper').css({
			'height'  : sH,
			'overflow': 'hidden'
		});
		
		innerWidth = sW - ((sliders.length - 1) * eW) - 50;
		
		for(i = 0; i < sliders.length; i++) {
		
			if($(sliders[i]).hasClass('isLeft')) {
				$(sliders[i]).css({
					'height' : sH,
					'width'  : innerWidth + 'px'
				});
			} else {			
				$(sliders[i]).css({
					'left'   : (sW - ((sliders.length-i) * eW)) - 50 + 'px',
					'height' : sH,
					'width'  : innerWidth + 'px'
				});
			}
			
			$(sliders[i]).find('.slideButton').css({
				'height' : sH,
				'width'  : eW,
				'top'    : 0
			});
			
			$(sliders[i]).find('.csc-default:first').css({
				'width' : innerWidth - 50 + 'px'
			});
		}		
		
		$.fn.toiCrazyAccordion('reloadPositions');
		
	}
	
	function fixContentSizing() {
		$('body').css('font-size', '60%');
		$('.gallery img').css({
			'width'  : '80px',
			'height' : 'auto'
		});
		
		$('.gallery li').css({
			'width'  : '85px',
			'height' : 'auto',
			'margin' : '0 5px 10px 0'
		});
		
		fixMailform();
		fixGallery();
	}
	
	
	function fixAjaxContents() {
		fixGallery();
		
		$('.fancybox').fancybox({
			'overlayOpacity' : 0.7,
			'overlayColor'   : '#000000' 
		});
	}
	
	
	function fixMailform() {
		$('.captchaImg').css('margin', '0 0 10px 0');
		$('#mailForm input, #mailForm textarea').css('width', '170px');
		$('#mailForm .formLabel').css('width', '70px');
	}
	
	
	function insertContactLink() {
		kuenstlerName  = $('#kuenstlerNavi').find('.active a').html();
		
		if(pageLang == 'de') {
			anfragePreText = 'Bitte schicken Sie mir weitere Informationen zu ' + kuenstlerName;
			$('#innerNavi').append('<li><a href="/kunsthaus/kontakt/?antwort=' + anfragePreText + '">Anfrage</a></li>');
		} else {
			anfragePreText = 'Please send me detailed information about ' + kuenstlerName;
			$('#innerNavi').append('<li><a href="/kunsthaus/kontakt/?antwort=' + anfragePreText + '">Inquiry</a></li>');
		}
	}
	
	
	
	function getDocumentHeight() {
	   if($.browser.msie)
	   {
	       var $temp = $("<div>")
	             .css("position","absolute")
	             .css("left","-10000px")
	             .append($("body").html());
	
	       $("body").append($temp);
	        var h = $temp.height();
	        $temp.remove();
	        return h;
	    }
	    return $("body").height();
	}
	
	
	function crapBrowserFixes() {
		$('#kunsthaus .ajaxContent').css({
			'margin'  : '-25px 0 0 0'
		});
	}
	
	
	
	/* URL processing *******************************/
		
	function checkUrl(currentLink) {
		valids        = new Array('galerie/', 'kuenstler/', 'kunsthaus/');
		innerSections = new Array('#galerieContent', '#kuenstlerContent', '#kunsthausContent', '#kunsthausContent');
		foundAt = 'none';
		
		for(i = 0; i < valids.length; i++) {
			splits = currentLink.split(valids[i]);
			if(splits.length > 1) {
				preventDoubleLoad = true;
				//checkedLink = checkInnerLink(currentLink);
				//alert(checkedLink);		
				getContent(currentLink, innerSections[i]);
				foundAt = i;
			}
		}
		
		$('body').animate({opacity: 1}, 100, function() {
			if(foundAt != 'none') $(sliders[foundAt]).click();
		});
		
		if(currentLink == 'http://kunsthaus-hannover.de/' || currentLink == 'http://www.kunsthaus-hannover.de/') {
			$('#kunsthaus').click();
		}
	}
	
	function checkInnerLink(currentLink) {		
		splits = currentLink.split('?');
		if(splits.length > 1) {
		    return currentLink+'&type=55';
		} else {
		    return currentLink+'?type=55';
		}
	}
	
	function in_array(element, arr) {
		for(i = 0; i < arr.length; i++) {
			if(arr[i] === element) return true;
		}
	}
	
	
	
	/* Sprachen an Ajax übergeben ********************/
	
	var langStr = '&L=0';
	
	$('.DE').addClass('active');
	$('.DE').live('click', function() {
		languageManagement('de')
	});
	
	$('.EN').live('click', function() {
		languageManagement('en')
	});

	
	function languageManagement(lang) {
		deHeight = $('#legalsDE').height();
		enHeight = $('#legalsDE').height();
		
		langHeaders = new Object();
		langHeaders['#galerieContentde']   = 'galerie';
		langHeaders['#galerieContenten']   = 'galerie_en';
		langHeaders['#kuenstlerContentde'] = 'kuenstler';
		langHeaders['#kuenstlerContenten'] = 'kuenstler_en';
		
		resetPosition(lastCalledSect);
		
		if(lang == 'de' && pageLang != lang) {
			$('.DE').addClass('active');
			$('.EN').removeClass('active');
			pageLang = 'de';
			langStr = '&L=0';
			
			$('#legalsEN').animate({'bottom': '-' + deHeight - 50 + 'px'}, 400, function() {
				$('#legalsDE').animate({'bottom': '10px'}, 400);
			});
			
			// Head Bilder anpassen
			$('#kuenstler').find('.sectionImage').attr('src', 'pub/css/img/kuenstler_a.png');
			$('#kuenstler .slideButton').css('background-image', 'url(pub/css/img/kuenstler.png)');
			$('#galerie').find('.sectionImage').attr('src', 'pub/css/img/galerie_a.png');
			$('#galerie .slideButton').css('background-image', 'url(pub/css/img/galerie.png)');
		} else if(lang == 'en' && pageLang != lang) {
			$('.DE').removeClass('active');
			$('.EN').addClass('active');
			pageLang = 'en';
			langStr = '&L=1';
			
			$('#legalsDE').animate({'bottom': '-' + deHeight - 50 + 'px'}, 400, function() {
				$('#legalsEN').animate({'bottom': '10px'}, 400);
			});
			
			$('#kuenstler').find('.sectionImage').attr('src', 'pub/css/img/kuenstler_en_a.png');
			$('#kuenstler .slideButton').css('background-image', 'url(pub/css/img/kuenstler_en.png)');
			$('#galerie').find('.sectionImage').attr('src', 'pub/css/img/galerie_en_a.png');
			$('#galerie .slideButton').css('background-image', 'url(pub/css/img/galerie_en.png)');
		}
		
		if(sectionLink[lastCalledSect] && lastCalledSect) {			
			$(lastCalledSect).animate({opacity: 0}, 400, function() {
				sectionLang[lastCalledSect] = pageLang;
				getContent(sectionLink[lastCalledSect], lastCalledSect);
			});
		}
	}
	
	
	function languageCheck(section) {
		if(sectionLang[section] == pageLang) return true;
		return false;
	}
	
	
	function languageSwitch(section) {
  		showLoader();
  		sectionLang[section] = pageLang;
  		$(section).animate({opacity: 0}, 100, function() {
  			if(sectionLink[section] != '') getContent(sectionLink[section], section);
  		});
  	} 
	
	
	
	/* Galerie Höhen anpassen ************************/
	
	function fixGallery() {
		var galHeight = 0;
		var tmpHeight = 0;
		$('.gallery li').each(function() {
			tmpHeight = $(this).height();
			if(tmpHeight > galHeight) galHeight = tmpHeight;
		});
		
		$('.gallery li').each(function() {
			$(this).css('height', galHeight);
		});
	}
	
	
	
	/* Scrolling fixes *******************************/
	
	if(isiPhone()) {
		setScrollButton();
	} else {
		$('.buttonUp, .buttonDown').hide();
	}
	
	function setScrollButton() {
		$('.buttonUp').live('click', function() {
			element = $(lastCalledSect).parent().parent();
			if($(lastCalledSect).parent().position().top < 0) {
			
				$(element).find('.innerContent').animate({
					'top'   : '+=250px'
				}, 500);
			}
		});
		
		$('.buttonDown').live('click', function() {
			
			actSlide = $(lastCalledSect).parent().parent();
			actInner = $(lastCalledSect).parent();
			
			innerHeight = 0;
			actInner.children().each(function() {
				innerHeight += $(this).height();
			});
			
			currPosi = innerHeight + $(lastCalledSect).parent().position().top;
			
			if(actSlide.height() < currPosi) {
				$(actSlide).find('.innerContent').animate({
					'top'   : '-=250px'
				}, 500);
			}
		});
	}
	
	
	function checkDimensions(actSection) {
		actSlide = $(actSection).parent().parent();
		actInner = $(actSection).parent();
		
		innerHeight = 0;
		actInner.children().each(function() {
			innerHeight += $(this).height();
		});
		
		//alert(actSlide.height() + ' - ' + innerHeight);
		
		if(actSlide.height() < innerHeight && isiPhone()) {
			$(actSlide).find('.buttonUp, .buttonDown').show();
		} else if(isiPhone()) {
			$(actSlide).find('.buttonUp, .buttonDown').hide();
		}
	}
	
	function resetDimension(actSection) {
		actSlide = $(actSection).parent().parent();
		actInner = $(actSection).parent();
		
		actInner.animate({'top': '0'}, 500);
	}
	
	function isiPhone() {
		return (
			(navigator.platform.indexOf("iPhone") != -1) ||
			(navigator.platform.indexOf("iPod") != -1) ||
			(navigator.platform.indexOf("iPad") != -1)
		);
	}
	
	
	
	/* Kontaktformular Ajax und Setup */
	
	$('#mailForm').live('submit', function() {
		$.ajax({
			type: 'POST',
			url:  '/kunsthaus/kontakt/?type=55'+langStr,
			data: $(this).serialize(),
			success: function(html) {
				$(lastCalledSect).html(html).animate({opacity: 1}, 800, function() {
					checkDimensions(lastCalledSect);
					fixAjaxContents();
					if(sW < 1000) fixContentSizing();
					if($.browser.msie) crapBrowserFixes();
					
					captchaRand = parseInt(Math.random() * 1000);
					captchaLink = $('#mailForm').find('.captchaImg img').attr('src');
					$('#mailForm').find('.captchaImg img').attr('src', '/' + captchaLink + '?r=' + captchaRand);
				});
				if($.browser.msie) crapBrowserFixes();
			}
		});
		
		return false;
	});
	
	$('#mailForm').find('input, textarea, select').live('focus', function() {
		$(this).attr('style', '');
	});
	
	
	/* Newsletter Ajax und Setup */
	
	$('#dmailsub').live('submit', function() {
		$.ajax({
			type: 'POST',
			url:  '/kunsthaus/newsletter/?type=55'+langStr,
			data: $(this).serialize(),
			success: function(html) {
				$(lastCalledSect).html(html).animate({opacity: 1}, 800, function() {
					checkDimensions(lastCalledSect);
					fixAjaxContents();
					if(sW < 1000) fixContentSizing();
					if($.browser.msie) crapBrowserFixes();
				});
				if($.browser.msie) crapBrowserFixes();
			}
		});
		
		return false;
	});


	
	
	init();
	var preventDoubleLoad = false;
	checkUrl(currentLink);
	
	
	
	
	/* Typo integrated stuff :) */
	/* Accordion *************************************/

	$('.accordion h3').each(function(){
		$(this).siblings().wrapAll('<div></div>');
	});
	$('.accordion:first').before('<div class="theAccordion"></div>');
	$('.accordion').appendTo('.theAccordion');
	$('.theAccordion h3').unwrap();
	$(".theAccordion").accordion({header: 'h3', autoHeight: false, active: 'h3:first', collapsible: true});

});

