$(function(){
	
	if ($.browser.msie && $.browser.version < 7)
		$('img[src$=.png]').pngfix();

	$('img[hover],input[hover]').imghover();

	$('input[initValue]').initValue();

	$('#footer_slideshow').slideshow({
		eleType: 'a',
		interval: 4000
	});

	// Randprogramma-box op homepage
	$('#home_randprogramma_content>div').hide();
	$('#home_randprogramma_header img').unbind('mouseout');

	$('#home_randprogramma_header img').each(function(i){
		$(this).mouseover(function(){
			$('#home_randprogramma_header img').each(function(){
				$(this).attr('src', $(this).data('__img__original'));
			});
			$(this).attr('src', $(this).attr('hover'));
			$('#home_randprogramma_content>div').hide();
			$('#home_randprogramma_content>div:eq('+i+')').show();
		});
	});

	$('#home_randprogramma_header img:first').mouseover();


	// Home header
	var currentIdx = 0;
	var headerReady = true;

	function switchToHeader (i) {
		if (currentIdx == i || !headerReady) return;
		headerReady = false;

		var current = $('#header_home>div:eq('+currentIdx+')');
		var current_visual = current.find('img.visual_genre');
		var current_menu = current.find('div.header_genre_menu');
		var current_text = current.find('div.text_genre');

		var next = $('#header_home>div:eq('+i+')');
		var next_visual = next.find('img.visual_genre');
		var next_menu = next.find('div.header_genre_menu');
		var next_text = next.find('div.text_genre');

		//setup current
		current_visual.css('zIndex',3);
		current_menu.css('zIndex',6);

		//setup next
		next_visual.css('zIndex',2).show();
		next_menu.css('zIndex',5).show();
		next_text.hide();
		next.show();

		//fade shizzle
		current_text.fadeOut(250,function(){
			next_text.fadeIn(250);
		});
		current_menu.fadeOut(500);
		current_visual.fadeOut(500,function(){
			headerReady = true;
		});
		currentIdx = i;
	}

	var headerTimer;
	$('#header_home div.header_genre_menu').each(function(){
		$(this).find('img').each(function(i){
			$(this).hover(function(){
				headerTimer = setTimeout(function(){switchToHeader(i)}, 500);
			},function(){
				clearTimeout(headerTimer);
			});
		});
	});

	function switchToNextHeader () {
		var newIdx = currentIdx < 4 ? currentIdx+1 : 0;
		switchToHeader(newIdx);
	}
	var headerInterval = setInterval(switchToNextHeader,8000);
	$('#header_home').hover(function(){
		clearInterval(headerInterval);
	},function(){
		headerInterval = setInterval(switchToNextHeader,8000);
	});

	
	// Hook up datepickers
	var months_long = ['januari', 'februari', 'maart', 'april', 'mei', 'juni', 'juli', 'augustus', 'september', 'oktober', 'november', 'december'];
	var months_short = ['jan', 'feb', 'mrt', 'apr', 'mei', 'jun', 'jul', 'aug', 'sep', 'okt', 'nov', 'dec'];
	var days_long = ['zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag'];
	var days_short = ['zon', 'maa', 'din', 'woe', 'don', 'vrij', 'zat'];
	var days_min = ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'];
	$('input.datepicker').datepicker({
		dayNames: days_long,
		dayNamesMin: days_min,
		dayNamesShort: days_short,
		monthNames: months_long,
		monthNamesShort: months_short,
		minDate: new Date (2010,6,1),
		maxDate: new Date (2010,7,31),
		showAnim: 'fadeIn',
		duration: 'fast',
		dateFormat: 'dd-mm-yy'
	});


	// Filter opening
	$('#filters div.filter_opener').click(function(){
		var p = $(this).parent();
		if (p.hasClass('genres')) {
			clearFilterActive('genres');
			p.toggleClass('genres_active');
		}
		if (p.hasClass('foodfriends')) {
			clearFilterActive('foodfriends');
			p.toggleClass('foodfriends_active');
		}
		if (p.hasClass('periode')) {
			clearFilterActive('periode');
			p.toggleClass('periode_active');
			$('#search_settings>div.filter_bottom').toggleClass('filter_bottom_blue');
		}
	});

	function clearFilterActive(skip){
		$('#filters>ul>li:not(.'+skip+')').each(function(){
			if ($(this).hasClass('genres')) {
				$(this).removeClass('genres_active');
			}
			if ($(this).hasClass('foodfriends')) {
				$(this).removeClass('foodfriends_active');
			}
			if ($(this).hasClass('periode')) {
				$(this).removeClass('periode_active');
				$('#search_settings>div.filter_bottom').removeClass('filter_bottom_blue');
			}
		});
	}

	// Result checkboxes
	function toggleInfo(){
		if ($('span.check_toonallenamen input').attr('checked')) {
			$('#results p.musici').show();
		} else {
			$('#results p.musici').hide();
		}
		if ($('span.check_tespelenwerken input').attr('checked')) {
			$('#results table.werken').show();
		} else {
			$('#results table.werken').hide();
		}
	}

	$('span.check_toonallenamen input').click(toggleInfo);
	$('span.check_tespelenwerken input').click(toggleInfo);
	toggleInfo();

	
	// Nieuws
	$('#nieuws_overview ul li:not(.active)').removeClass('full');
	$('#nieuws_overview ul li').hover(function(){
		if (!$(this).hasClass('full'))
			$(this).addClass('hover');
	},function(){
		$(this).removeClass('hover');
	}).click(function(){
		$(this).parent().find('li').removeClass('full');
		$(this).addClass('full').removeClass('hover');
	});


	// Search suggest
	if ($('input.autosuggest').length > 0) {
		$('body').append('<div id="searchsuggest"></div>');
		$('input.autosuggest').bind('keyup focus',function(){
			if (autoSuggestTimer) clearTimeout(autoSuggestTimer);
			var v = $(this).val();
			var self = this;
			if (v.length) {
				autoSuggestTimer = setTimeout(function(){
					autoSuggest(v, self);
				}, 200);
			}
		});
	}

	var autoSuggestTimer;
	function autoSuggest(val, inputEle) {
		$.getJSON('/autosuggest.json.js', {q:val}, function(data){
			var html = '';
			var c = 0;
			if (data.concerts.length) {
				c++;
				html += '<ul>';
				for (var i=0; i<data.concerts.length; i++)
					html += '<li><a href="'+data.concerts[i].url+'"><img src="'+data.concerts[i].visual+'" width="33" height="27" alt="" />'+data.concerts[i].name+'</a></li>';
				html += '</ul>';
			}
			if (data.artists.length) {
				c++;
				html += '<ul>';
				for (var i=0; i<data.artists.length; i++)
					html += '<li><a href="'+data.artists[i].url+'"><img src="'+data.artists[i].visual+'" width="33" height="27" alt="" />'+data.artists[i].name+'</a></li>';
				html += '</ul>';
			}
			if (c > 0) {
				var s = $('#searchsuggest').html(html);
				if (c > 1)
					s.find('ul:first').addClass('top');
				var inputOffset = $(inputEle).offset();

				s.css({
					left: (inputOffset.left - 4) + 'px',
					top: (inputOffset.top + 23) + 'px'
				}).show();
			} else {
				$('#searchsuggest').hide();
			}
		});
	}

	var autoSuggestHideTimer;
	$('input.autosuggest').blur(function(){
		autoSuggestHideTimer = setTimeout(function(){
			$('#searchsuggest').hide();
		},500);
	});

	
	// Mijn concerten
	var mcOpen = false;
	if ($('#mijnconcerten').hasClass('open'))
		toggleMijnConcerten();

	function toggleMijnConcerten() {
		if (mcOpen) {
			$('#mijnconcerten_trigger')
				.find('img')
				.attr('src','/images/menu/menu_mijn-concerten.gif')
				.attr('hover', '/images/menu/menu_mijn-concerten_hover.gif')
				.imghover()
				.parent().parent().removeClass('selected');

			$('#mijnconcerten').slideUp('normal');
			mcOpen = false;
		} else {
			$('#mijnconcerten_trigger')
				.find('img')
				.attr('src','/images/menu/menu_mijn-concerten_close_active.gif')
				.attr('hover', '/images/menu/menu_mijn-concerten_close_hover.gif')
				.imghover()
				.parent().parent().addClass('selected');
			$('#mijnconcerten').slideDown('normal');
			mcOpen = true;
		}
	}

	$('#mijnconcerten_trigger').click(function(){
		toggleMijnConcerten();
		return false;
	});

	$('#button_close_mijnconcerten').click(function(){
		toggleMijnConcerten();
	});


	// Concertplanner
	$('#concertplanner_selecter>li input').each(function(){
		if (this.checked)
			$(this).parent('li').addClass('selected');
	});

	$('#concertplanner_selecter>li>div.clickcheck').click(function(){
		var check = $(this).parent().find('input')[0];
		if (check.checked) {
			check.checked = '';
			$(this).parent().removeClass('selected');
		} else {
			check.checked = 'checked';
			$(this).parent().addClass('selected');	
		}
		return false;
	});

	$('#concertplanner_selecter>li>input').click(function(){
		if (this.checked) {
			$(this).parent('li').addClass('selected');
		} else {
			$(this).parent('li').removeClass('selected');
		}
	});

	$('#concertplanner_selecter>li').hover(function(){
		$(this).addClass('hover');
	},function(){
		$(this).removeClass('hover');
	});


	$('#voeg_vriend_toe').click(function(){
		var prev = $(this).prev('div.vriend_gegevens');
		var count = $(this).prevAll('div.vriend_gegevens').length;
		var clone = prev.clone().find('input').val('').end();
		prev.after(clone);
		if (count == 4) $(this).hide();
		return false;
	});

	$('a.button_bestel').click(function(){
		$(this).hide();
		$(this).next('div.verstuur_bericht').show();
	});

	$('div.verstuur_bericht a.annuleren').click(function(){
		var p = $(this).parent('div.verstuur_bericht');
		p.hide();
		p.prev('a.button_bestel').show();
		return false;
	});

	// Enable Javascript version
	$('div.kanikwelofkanikniet').addClass('visual').each(function(){
		if (!$(this).find('input')[0].checked)
			$(this).addClass('ikkanniet');
	}).click(function(){
		if ($(this).hasClass('ikkanniet')) {
			$(this).removeClass('ikkanniet');
			$(this).find('input')[0].checked = 'checked';
		} else {
			$(this).addClass('ikkanniet');
			$(this).find('input')[0].checked = '';
		}
	});

	// Wizard

	function removeFromArray (arr, ele) {
		for (var i=0; i<arr.length; i++) {
			if(arr[i]==ele)
				arr.splice(i,1);
		}
	}

	var rankingCurrent = 1;
	var answers = [];

	$('#concertwizard_questions div.wizard').hover(function(){
		if (!$(this).hasClass('active'))
			$(this).addClass('hover');
	},function(){
		$(this).removeClass('hover');
	}).click(function(){
		var p = $(this).parent();
		if (!(p.hasClass('multiple') || p.hasClass('ranking')))
			p.find('>div.wizard').removeClass('active');

		if (!$(this).hasClass('active')) {
			$(this).addClass('active').removeClass('hover');
			if (p.hasClass('ranking')) {
				$(this).addClass('rank'+rankingCurrent++);
				
			}
			if (!(p.hasClass('multiple') || p.hasClass('ranking'))) {
				answers = [$(this).attr('value')];
			} else {
				answers.push($(this).attr('value'));
			}
		} else {
			if (!p.hasClass('ranking')) {
				$(this).removeClass('active').addClass('hover');
				removeFromArray(answers,$(this).attr('value'));
			}
		}
		$('#wizard_answer_form input').val(answers.join(';'));
	});

	$('#wizard_ranking_opnieuw').click(function(){
		$('#concertwizard_questions div.wizard').removeClass('active rank1 rank2 rank3 rank4');
		rankingCurrent = 1;
		answers = [];
		$('#wizard_answer').val('');
	});

});

