var IE6 = navigator.appVersion.indexOf("MSIE 6")!=-1;
if (IE6) {
	$(document).ready(function(){startList();});
}

/**
 * modify visibility of box
 * @param target_id
 * @returns false
 */
function showhide_box(target_id) {
	var box = $('#'+target_id);
	if (box.is(':visible')) {
		box.hide();
	} else {
		box.show();
	}
	return false;
}

function startList () {
	if (IE6) {
		LI = $("#nav li").bind("mouseover", function() {
			$('this').addClass("hover");
		}).bind("mouseout", function() {
			$(this).removeClass("hover");
		});
	}
}

/* Fancy Navigation */
function bindNavigation(navId) {
	$('#nav li ul').not('#nav li.active > ul').addClass('hidden');
	$('#nav li.active > ul').addClass('visible');
	$(navId+' li').hover(function(){
		if($(this).children('ul.hidden').length) {
			$(this).children('ul.hidden').stop(true,true).delay(200).fadeIn();
			$(this).siblings().children('ul.visible').stop(true,true).delay(200).fadeOut();
		}
	},function(){
		if($(this).children('ul.hidden').length) {
			$(this).children('ul.hidden').stop(true,true).delay(200).fadeOut();
			$(this).siblings().children('ul.visible').stop(true,true).delay(200).fadeIn();
		}
	});
}


/* News-Artikel Archiv */
/* Buchshop Suche */
function toggleFacet(facetId) {
	$('#'+facetId+' ul.hidden').slideToggle('slow', function() {
	  if($('#'+facetId+' span a').text().search(/alle anzeigen/)>-1) {
	  	$('#'+facetId+' span a').text('» weniger anzeigen');
	  } else {
	  	$('#'+facetId+' span a').text('» alle anzeigen');
	  }
	});
}

function updateFacetStyle(checkbox){
	if(checkbox.is(':checked')) {
		checkbox.next('a').addClass('active');
	} else {
		checkbox.next('a').removeClass('active');
	}
	return true;
}

/** Suggestions **/
function bindSuggestions(id) {
	var lastValue = "";
	var controlKeys = [37,38,39,40,13];
	var suggestTimeout = null;
	$(id+' .inp[name=search]').keyup(function(event){
		if($.inArray(event.which,controlKeys)>-1) {
			switch(event.which) {
				case 38://up
					if($('ul.suggestions li.active').length) {
						$('ul.suggestions li.active').removeClass('active').prev('li').addClass('active');
					} else {
						$('ul.suggestions li:last').addClass('active');
					}
					if($('ul.suggestions li.active').length) {
						this.value = $('ul.suggestions li.active a').text();
					} else {
						this.value = lastValue;
					}
					break;
				case 40://down
					if($('ul.suggestions li.active').length) {
						$('ul.suggestions li.active').removeClass('active').next('li').addClass('active');
					} else {
						$('ul.suggestions li:first').addClass('active');
					}
					if($('ul.suggestions li.active').length) {
						this.value = $('ul.suggestions li.active a').text();
					} else {
						this.value = lastValue;
					}
					break;
			}
		} else {
			if(this.value != lastValue) {
				lastValue = this.value;
				if(suggestTimeout) window.clearTimeout(suggestTimeout);
				suggestTimeout = window.setTimeout(function(){
					showSuggestions(lastValue,id);
				},250);
			}
		}
	});
	$(id+' .inp[name=search]').blur(function(){
		lastValue = this.value;
		window.setTimeout(function(){
			$(id+' .suggestions').fadeOut('fast',function(){$(this).remove();});
		},500);
	});
}

function showSuggestions(value,id) {
	var matchLength = value.length;
	var actionUri = $(id).attr('action');

	$.getJSON(archiveSuggestUri,{suggest:value},function(data){
		if($(data).length) {
			var suggest = $('<ul class="suggestions"/>');
			$(data).each(function(index){
				suggest.append($('<li><a href="'+actionUri+'?search='+encodeURIComponent(this.t)+'">'+this.d+'</a></li>').mouseenter(function(){
					$(this).addClass('active').siblings().removeClass('active');
				}).click(function(event){
					window.location = $(this).children('a').attr('href');
				}));
			});
			if($(id+' .suggestions').length) {
				$(id+' .suggestions').replaceWith(suggest);
			} else {
				$(id+' .inp[name=search]').after(suggest.hide().fadeIn('fast'));
			}
		} else {
			$(id+' .suggestions').fadeOut('fast',function(){$(this).remove();});
		}
    });
}

/*Positioniert Banner (verschiebt alle darunter liegende Elemente nach unten)*/
function positionBanner(bannerid, overlapid){
	var date = new Date();
	var curDate = null;

	do { curDate = new Date(); }
	while(curDate-date < 1000);

	var bannerPosition = $('#'+bannerid).offset();
	var bannerHeight = $('#'+bannerid).height();
	var intBannerY1 = bannerPosition.top;
	var intBannerY2 = intBannerY1+bannerHeight;

	$('#'+overlapid).children('div').each(function(idx, el){
		var position = $(el).offset();
		var height = $(el).height();
		var intElementY1 = position.top;
		var intElementY2 = intElementY1+height;

		switch(true)
		{
			case (intElementY1 < intBannerY1 && intElementY2 > intBannerY2) :
				$(el).css('margin-top', intBannerY1-intElementY1+bannerHeight+10 + 'px');
			break;
			case (intElementY1 > intBannerY1 && intElementY1 < intBannerY2) :
				$(el).css('margin-top', intBannerY2-intElementY1+10 + 'px');
			break;
			case (intElementY1 < intBannerY1 && intElementY2 > intBannerY1 && intElementY2 < intBannerY2) :
				$(el).css('margin-top', intBannerY1-intElementY1+bannerHeight+45 + 'px' );
			break;
			case (intElementY1 > intBannerY1 && intElementY2 < intBannerY2) :
				$(el).css('margin-top', intElementY1-intBannerY1+intBannerY2+10 + 'px');
			break;
		}

	});
}

/**
 * Aktiviert die Buttons einer Bilderreihe und slidet bei Klick die Bilder rein
 * @param container
 * @param enableJS active JS-sliding function
 */
function bindGallery(container, enableJS) {

	var counter = $(container+' .news_bilderstrecke_navi');
	var zeigeBildUnterschrift;
	var switchVal = '';


	if(document.cookie) {

		versteckeBildUnterschriftStart = document.cookie.indexOf("versteckeBildUnterschrift=");
		if(versteckeBildUnterschriftStart == -1) {
			versteckeBildUnterschrift = null;
		}else {
			versteckeBildUnterschriftStart = versteckeBildUnterschriftStart + "versteckeBildUnterschrift=".length;
			versteckeBildUnterschriftEnde = document.cookie.indexOf(";");
		    if(versteckeBildUnterschriftEnde == -1) {
		    	versteckeBildUnterschriftEnde = document.cookie.length;
		    }
		    versteckeBildUnterschrift = document.cookie.substring(versteckeBildUnterschriftStart,versteckeBildUnterschriftEnde);
		    if(versteckeBildUnterschrift == "true") {
		    	versteckeBildUnterschrift = true;
		    }
		    if(versteckeBildUnterschrift == "false") {
		    	versteckeBildUnterschrift = false;
		    }
		}
	}

	if(versteckeBildUnterschrift == true) {
		$(container+' .news_bilderstrecke_bild_unterschrift').css('display','none');
		switchVal = "Informationen einblenden";
	} else {
		switchVal = "Informationen ausblenden";
	}


	if (enableJS == true) {

		$(container+' .news_bilderstrecke_pfeil').click(function(event){
			var counterText = counter.text().replace(new RegExp('^(.*?) (\\d+) / (\\d+)$'),"$1");
			var currentImage = parseInt(counter.text().replace(new RegExp('^(.*?) (\\d+) / (\\d+)$'),"$2"));
			var totalImages = parseInt(counter.text().replace(new RegExp('^(.*?) (\\d+) / (\\d+)$'),"$3"));
			switch($(this).text()) {
				case '>': // Bild vorwärts
					if($(container+' .news_bilderstrecke_bild.aktiv').next('.news_bilderstrecke_bild').length) {
						slideGallery($(container+' .news_bilderstrecke_bild.aktiv'),$(container+' .news_bilderstrecke_bild.aktiv').next('.news_bilderstrecke_bild'),-1);
						counter.text(counterText+" "+(currentImage+1)+" / "+totalImages);
					} else {
						slideGallery($(container+' .news_bilderstrecke_bild.aktiv'),$(container+' .news_bilderstrecke_bild:first'),-1);
						counter.text(counterText+" 1 / "+totalImages);
					}
					break;
				case '<':
					if($(container+' .news_bilderstrecke_bild.aktiv').prev('.news_bilderstrecke_bild').length) {
						slideGallery($(container+' .news_bilderstrecke_bild.aktiv'),$(container+' .news_bilderstrecke_bild.aktiv').prev('.news_bilderstrecke_bild'),1);
						counter.text(counterText+" "+(currentImage-1)+" / "+totalImages);
					} else {
						slideGallery($(container+' .news_bilderstrecke_bild.aktiv'),$(container+' .news_bilderstrecke_bild:last'),1);
						counter.text(counterText+" "+totalImages+" / "+totalImages);
					}
					break;
			}

			if ($(container+' .news_bilderstrecke_bild.aktiv').has('.news_bilderstrecke_bild_unterschrift').length > 0) {
				$(container+' .news_bilderstrecke_panel .news_bilderstrecke_switch').show();
			} else {
				$(container+' .news_bilderstrecke_panel .news_bilderstrecke_switch').hide();
			}
			event.preventDefault();
			return false;
		});
	}
	$(container+' .news_bilderstrecke_panel').append(


			$('<a class="news_bilderstrecke_switch" href="#">' + switchVal + '</a>').click(function(){

				if($(container+' .news_bilderstrecke_bild_unterschrift').css('display') == "none") {
					$(this).text('Informationen ausblenden');
					$(container+' .news_bilderstrecke_bild_unterschrift').fadeIn();
					$(container+' .news_bilderstrecke_bild_unterschrift:hidden').css('display','block');
					// Cookie für Infoanzeige
					var expiresDate = new Date();
					expiresDate = new Date(expiresDate.getTime() +1000*60*60*24*365); // 1 Jahr
					document.cookie = 'versteckeBildUnterschrift=false; expires='+expiresDate.toGMTString()+';';

				} else {
					$(this).text('Informationen einblenden');
					$(container+' .news_bilderstrecke_bild_unterschrift').fadeOut();
					$(container+' .news_bilderstrecke_bild_unterschrift:hidden').css('display','none');
					// Cookie für Infoanzeige
					var expiresDate = new Date();
					expiresDate = new Date(expiresDate.getTime() +1000*60*60*24*365); // 1 Jahr
					document.cookie = 'versteckeBildUnterschrift=true; expires='+expiresDate.toGMTString()+';';
				}

				return false;
			}
		)

	);


	if ($(container+' .news_bilderstrecke_bild.aktiv').has('.news_bilderstrecke_bild_unterschrift').length > 0 ) {
		$(container+' .news_bilderstrecke_panel .news_bilderstrecke_switch').show();
	} else {
		$(container+' .news_bilderstrecke_panel .news_bilderstrecke_switch').hide();
	}
}

/**
 * Slidet newImage über oldImage, in Richtung direction (positiv oder negativ)
 * @param oldImage
 * @param newImage
 * @param direction
 */
function slideGallery(oldImage,newImage,direction) {
	if(direction>0) {
		oldImage.css('display','block').removeClass('aktiv').animate({left:oldImage.width()},{complete:function(){$(this).css('display','');}});
		newImage.css('left',(newImage.width()*-1)).addClass('aktiv').animate({left:0});
	} else {
		oldImage.css('display','block').removeClass('aktiv').animate({left:(oldImage.width()*-1)},{complete:function(){$(this).css('display','');}});
		newImage.css('left',oldImage.width()).addClass('aktiv').animate({left:0});
	}
}

/**
 * ersetzt die <p class="hint">-Descriptions durch dynamische Tooltips
 */
function fancyTooltips() {
	$('form li.element p.hint').each(function(index){
		var tooltip = $(this).wrap('<div class="tooltip"><div class="tip_mid"/></div>').closest('.tooltip').prepend('<div class="tip_top"/><div class="tip_arrow"/>').append('<div class="tip_bot"/>');
		tooltip.siblings('div:has(".field")').append($('<div class="tip_icon"/>').hover(function(){
			tooltip.css({'left':$(this).position().left+20,'top':$(this).position().top-12}).fadeIn();
		},function(){
			tooltip.fadeOut();
		}));
	});
}

$(document).ready(function() {
	/*	Bug: https://bugs.launchpad.net/jacg/+bug/530794 */
	//$('div.detail_box').jacg({'radius': '1em', 'start': '#ffffff','end': '#e6ecee'});
	/* Suggestions News-Archiv */
	bindSuggestions('#right_search');
	bindSuggestions('#left_search');
	/* Bilderstrecke */
	bindGallery('.news_bilderstrecke', true);
	/* Navigation */
	bindNavigation('#nav');
	/* Registrierungs-Formular */
	fancyTooltips();
  /*
	$('div.registration div.panel_head').click(function(){
		$('div.registration').attr('class','registration '+$(this).attr('id'));
	});


	$('li.formButton.Weiter button').click(function(){
		$('div.registration').attr('class','registration panel'+(parseInt($('div.registration').attr('class').match(/panel(\d+)/)[1])+1));
	});
  */

	/* generelle Fancyboxes */
	if($('div#auto_fancybox').length) {
		var html = $('div#auto_fancybox').hide().html();
		jQuery.fancybox.init();
		jQuery.fancybox(html, {
			'padding':0,
			'margin':0
		});
	}
});

