/**
 * @author Markus
 */

var rand = 0,
	slideShowDelay = 7000,
	genericSlideShowDelay = 6000;

/* $(window).load(function(){
	// Bilder entfärben - Statements Startseite
	$('.start .quotebox:gt('+rand+') .header img').pixastic("desaturate");
	$('.start .quotebox:gt('+rand+')').hide();
}); */

var interval = undefined; // globale setInterval-Variable

function init() {		
	/* Allgemein */
	prepareQuickSearch();	
	toggleElements();
	initGenericSlideshow();
	setupQuickSubmit();
	
	/*if($('body.spenden').length) {
		prepareStdFoldout('body.spenden #subNav', 'weitere Möglichkeiten', 6);
	}*/
	
}

// Generische Fader
function initGenericSlideshow() {
	
	$('.fade>img').eq(0).addClass('showing').show();
	
	setInterval("fadeGenericSlideshow()", genericSlideShowDelay);
}
function fadeGenericSlideshow(i){
	if(i == undefined) {
		i = getNextIndex('.fade>img');
	}
	$('.fade>img').eq(i).show();
	$('.fade>img.showing').fadeOut(750, function(){
		$('.fade>img').removeClass('showing').eq(i).addClass('showing');
	});
}

function initStatementslider() {

	$('#secContent .tx-ttaddress-pi1').prepend('<div class="statementheader"><h3>ChildFund persönlich</h3><div class="statementnavi"></div></div>');		

	$('#secContent .tx-ttaddress-pi1 .quotebox').each(function(i){
		$('#secContent .tx-ttaddress-pi1 .statementnavi').append('<div></div>');
	});
	
	
	// Listener
	$('#secContent .tx-ttaddress-pi1 .statementnavi div').click(function(){
		var index = $('#secContent .tx-ttaddress-pi1 .statementnavi div').index(this);
		if(index != getActiveIndex('#secContent .tx-ttaddress-pi1 .quotebox')) {
			fadeStatements(index);
		}
	});
	
	rand = Math.floor(Math.random()*$('#secContent .tx-ttaddress-pi1 .quotebox').length);
	$('#secContent .tx-ttaddress-pi1 .statementnavi div').eq(rand).addClass('active');
	$('#secContent .tx-ttaddress-pi1 .quotebox').hide().eq(rand).addClass('showing').show();	
	//startStatements();
}
function fadeStatements(i){
	if(i == undefined) {
		i = getNextIndex('#secContent .tx-ttaddress-pi1 .quotebox');
	}
	$('#secContent .tx-ttaddress-pi1 .quotebox').eq(i).show();
	$('#secContent .tx-ttaddress-pi1 .showing').fadeOut(500, function(){
		$('#secContent .tx-ttaddress-pi1 .quotebox').removeClass('showing').eq(i).addClass('showing');
	});
	$('#secContent .tx-ttaddress-pi1 .statementnavi div').removeClass('active').eq(i).addClass('active');
}

function initSlideshow(){
	//var navi = $('<div class="slideshow_navi"><div class="current"></div><div></div><div class="pause"></div></div>');

	$('#imagebox').prepend('<div id="slidenavi"><div class="pause" /></div><div class="blend" />');	
	

	$('#imagebox .slideshow').each(function(i){
		$('#slidenavi').prepend('<div></div>');
	});
	
	// Listener
	$('#slidenavi div').eq(0).addClass('active');
	$('.slideshow').eq(0).addClass('showing').show();
	
	$('#slidenavi div').not(':last-child').click(function(){
		var index = $('#slidenavi div').index(this);
		if(index != getActiveIndex('.slidehow')) {			
			fadeSlideshowImages(index);
		}
		pauseSlideshow();
	});
	
	$('#slidenavi div:last-child').click(function(){
		if($(this).hasClass('pause')) {
			startSlideshow();
		} else {
			pauseSlideshow();
		}
	});	
	startSlideshow(true);	
}

function startSlideshow(dontfade){
	if(dontfade != true) {
		fadeSlideshowImages();
	}
	var num = setInterval("fadeSlideshowImages()",slideShowDelay);
	$('#slidenavi').data('interval',num);
	$('#slidenavi div:last-child').attr('class','play');
} 

function pauseSlideshow(){
	clearInterval($('#slidenavi').data('interval'));
	$('#slidenavi').data('interval', undefined);
	$('#slidenavi div:last-child').attr('class','pause');	
} 

function startStatements(){
	var num = setInterval("fadeStatements()",7000);
	$('#secContent .tx-ttaddress-pi1 .statementnavi').data('interval',num);
} 

function pauseStatements(){
	clearInterval($('#secContent .tx-ttaddress-pi1 .statementnavi').data('interval'));
	$('#secContent .tx-ttaddress-pi1 .statementnavi').data('interval', undefined);
} 

function getActiveIndex(group){
	var element = group+'.showing';
	return $(group).index($(element));
}

function getNextIndex(group){
	if(getActiveIndex(group) < $(group).length - 1){
		return getActiveIndex(group) + 1;
	}
	else return 0;
}

function fadeSlideshowImages(i){
	if(i == undefined) {
		i = getNextIndex('.slideshow');
	}
	$('.slideshow').eq(i).show();
	$('.slideshow.showing').fadeOut(500, function(){
		$('.slideshow').removeClass('showing').eq(i).addClass('showing');
	});
	$('#slidenavi div').removeClass('active').eq(i).addClass('active');
}

function prepareProjectInfo() {
	$('area').each(function() {
		var element = $('#inf_'+$(this).attr('class').substr(4));
		$(this).data('info', element);	
		// alert($(this).attr('class').substr(4));
	});
	
	$('area').mouseenter(function(ev){
		$('.project-container').fadeOut(100);
		updateInfoWindowPosition(ev);
		$(ev.target).data('info').fadeIn(100);			
	});
		
	$('area').mousemove(function(ev){
		updateInfoWindowPosition(ev);
	});
		
	$('area').mouseleave(function(ev){
		$(ev.target).data('info').fadeOut(100);
	});				
}

function prefixCountryList() {
	var lastLetter = null;
	var search = new Array('Ä','Ü','Ö');
	var replace = new Array('A','U','O');
	$('#countrylist li').each(function() {
		var currLetter = $(this).children('a').html().substr(0,1);
		var pos = $.inArray(currLetter, search);
		if(pos > -1) {
			currLetter = replace[pos];
		}
		if(currLetter != lastLetter) {
			$(this).prepend('<span>'+currLetter+'</span>');
			lastLetter = currLetter;
		}
	});
}

function updateInfoWindowPosition(ev) {
	var offset = $('#siteContainer').offset();
	var top = ev.pageY - offset.top;
	var left = ev.pageX - offset.left + 20;
	if(left + $(ev.target).data('info').width() >= 960) {
		left = ev.pageX - offset.left - 20 - $(ev.target).data('info').width();
	}
	$(ev.target).data('info').css('top', top);
	$(ev.target).data('info').css('left', left);			
}




function prepareCountryFoldout() {
	var ul = $('body.weltweit #subNav>li:lt(2)>ul');
	if(ul.children('li').length > 0) {
		var containerLI = $('<ul />');
		// Alle nicht ausgewählten Ländern filtern		
		var active = containerLI.append(ul.children('li')).children('li').children('a.active').parent();
		if(active.length == 0) {
			active = containerLI.children('li:lt(8)');
		}
		ul.append(active).append('<li class="foldout"><a class="togglebox">weitere Länder</a></li>');
		ul.children('li.foldout').append(containerLI);
	}
}

function prepareStdFoldout(appendTo, foldoutText, startIndex) {
	var start = startIndex || 6;
	var ul = $(appendTo);
	if(ul.children('li').length > 0) {
		var containerLI = $('<ul />');
		
		var active = containerLI.append(ul.children('li')).children('li').children('a.active').parent();
		if(active.length == 0) {
			active = containerLI.children('li:lt('+ start +')');
		}
		ul.append(active).append('<li class="foldout"><a class="togglebox">'+ foldoutText +'</a></li>');
		ul.children('li.foldout').append(containerLI);
	}
}


function prepareShop() {
	
	// Artikel sortieren - nur für IE > 8, FF, Saf
	if(!$.browser.msie || ($.browser.msie && $.browser.version >= 8)) {

		$('.tx-commerce-pi1>.productbox').each(function() {
			var value = $(this).find('form b').html();
			value = value.replace('.','');		
			value = parseInt(value.replace('€ ',''));
			$(this).data('price',value);
			var lastIndex = -1;
			for(var i=0; i < $('.tx-commerce-pi1>.productbox').length; i++ ) {
				var currPrice = $('.tx-commerce-pi1>.productbox').eq(i).data('price');
				if(value > currPrice) {
					lastIndex = i;
				}
			}
			if(lastIndex >= 0) {
				$('.tx-commerce-pi1>.productbox').eq(lastIndex).after($(this));
			} else {
				$(this).prependTo('#mainContent .tx-commerce-pi1');
			}
		});
		$('.tx-commerce-pi1>.productbox').not('.top').eq(3).after($('.tx-commerce-pi1>.productbox.top:eq(0)'));
	}
	
	// Warenkorb wandert mit
	$(window).scroll(function(ev) {
		$('#secContent').stop().clearQueue();
		var newPadding = $(window).scrollTop() - 640;
		if($('#infotext').css('display') != 'none') {
			newPadding = $(window).scrollTop() - 1102;
		}
		
		if(newPadding <= 0) {
			newPadding = 0;
		}
		
		//$('#secContent').css('padding-top',newPadding);
		$('#secContent').animate({paddingTop : newPadding},500);
	});
	
	if($('.com-basket-qv .com-basket-qv-chkout').length > 0) {
		var href = $('.com-basket-qv .com-basket-qv-chkout').attr('href');
		$('.linkbox.checkout a').attr('href',href);
	}
	
	if($('select[name="tx_commerce_pi1[payArt]"]').length > 0) {
		var sel = $('select[name="tx_commerce_pi1[payArt]"]');
		$('.checkout a').click(function() {
			if(sel.val() == 1) {
				alert('Bitte Zahlungsart wählen.');
				return false;
			}
		});
	}	
	
	if($('#secContent .com-basket-no-stock').length > 0) {
		$('.checkout a').click(function() {
			alert('Es befinden sich keine Artikel im Warenkorb.');
			return false;
		});
	}	
	
	$('.linkbox.submit').click(
			function(){
				var form = $(this).prev().find('form');
				if(form.find('.com-input-qty').val() == "Anzahl") {
					form.find('.com-input-qty').val(1);
				}
				form.submit();
			});
	$('.com-input-qty').each(
			function(){
				if($(this).val() == "") {
					$(this).val("Anzahl");
				}
			}
	);
	
	$('.com-input-qty').focus(function(){$(this).val("")});
	$('.com-input-qty').keypress(
			function(event){
				var unicode=event.charCode? event.charCode : event.keyCode;
				if ( unicode != 8 && (unicode < 48 || unicode > 57)) {
					event.preventDefault();
				} 
			});	
	
}

/* allg. Ausklappeffekt */
function toggleElements() {
	$('.togglebox>a').live('click', 
			function() {
				$(this).parent().click();
				return false;
			}
	);	
	$('.togglebox').live('click',
			function() {
				if($(this).next().css('display') == 'none') {
					$(this).addClass('active');					
				} else {
					$(this).removeClass('active');
				}
				$(this).next().slideToggle();
			}
	);
	
	// Falls CSS-Regel in navigation.css nicht greift
	if($('.togglebox').next().css('display') != 'none') {
		$('.togglebox').next().hide();
	}
}

function prepareCollapser() {
	if(jQuery.fn.collapser != undefined) { 
		$('.contact-group :last-child').addClass('last');
		$('.contact-groups').collapser({'toggler':'.toggler', 'collapsibleSelector':'.contact-group'});
		$('.collapser-wrapper').not('.visible').collapser({'toggler':'.collapser h3, .collapser h4', 'collapsibleSelector':'.collapsible'});
		$('.visible.collapser-wrapper').collapser({'toggler':'.collapser h3, .collapser h4', 'collapsibleSelector':'.collapsible', 'collapseOnLoad':false});
	}
}

function prependSitemap() {
	$('.tx-dropdownsitemap-pi1').prepend('<img class="root" height="13" width="12" src="fileadmin/tpl/dropdown_sitemap/img/folder.gif"><span class="ifsub"><a title="childfund.de" href="index.php">childfund.de</a></span>');
}

/* MK */
function prepareQuickSearch() {
	$('#quickSearch, #tx_indexedsearch').find('input[type=text]').unsetDefaults()
					 .end()
					 .find('input[type=submit]').val('');
	
	var sword = ' &#0132;' + $('.tx-indexedsearch-sw').text() + '&#0147;';
	$('.tx-indexedsearch-whatis').hide();
	$('.tx-indexedsearch-browsebox > p').append(sword);
}

/* MK: helper function unsetDefaults */
$.fn.unsetDefaults = function() {
	return this.each(function() {
		var defVal = $(this).val();
		$(this).focus(function() {
			if($(this).val() == defVal) {
				$(this).val('');
			}
		});
		$(this).blur(function() {
			if($(this).val() == false) {
				$(this).val(defVal);	
			}
		});
	});
};

function setupQuickSubmit() {
	$('.donatebox.quicksubmit').find('.header a').click(function(ev) {
		ev.preventDefault();
		
		$(this).closest('form').submit();
	});
}

$(init);
