Campagne = function() {
	// Variables & functions defined here are private
	
	
	function videoThumbs() {
		$('.campagne-content .box .video').each(function(i,elem){
			var overlay = $(elem).find('.overlay').css({opacity:.5});
			$(elem).find('.btn-play').bind('mouseover',function(){
				$(overlay).css({opacity:0});
			}).bind('mouseout',function(){
				$(overlay).css({opacity:.5});
			}).bind('click',function(){
				document.location = $(elem).parents('.box:first').find('.readmore').attr('href');
			})
		});
		
		
		$('.campagne-content .video-nav li').each(function(i,elem){
			var overlay = $(elem).find('.overlay').css({opacity:.5});
			$(elem).find('.btn-play').bind('mouseover',function(){
				$(overlay).css({opacity:0});
			}).bind('mouseout',function(){
				$(overlay).css({opacity:.5});
			}).bind('click',function(){
				document.location = $(elem).find('a').attr('href');
			})
		})
	}
	
	function formToggler() {
		$('.campagne-content .question:first').addClass('active');
		$('.campagne-content .question:not(:first)').addClass('inactive');
		$('.campagne-content .question .formdata').append('<div class="right-text"><a href="#" class="button next"><span>volgende</span></a></div>');
		
		$('.campagne-content .question .formdata a.button.next').bind('click',function(){
			var question = $(this).parents('.question:first');
			var error = false;

			// verwijder foutmelding en antwoorden
			$(question).find('.formdata .error-message').remove();
			$(question).find('.answers .answer').remove();
			$(question).find('.form-wrapper').removeClass('error-color');
			
			// trim alle formulier waardes
			$(question).find(':input').each(function(i,elem){
				$(this).val($.trim($(this).val()));
			});
			
			
			// check if required elements are filled
			$(question).find('.form-wrapper.required').each(function(i,elem){
				var form_elem = $(this).find(':input:first');	
				if ( ($(form_elem).is(':text') || $(form_elem).is('textarea') || $(form_elem).is('select')) && $(form_elem).val() == '') {
					$(this).addClass('error-color');
					error = true;
				} else if($(form_elem).is(':radio') && $(question).find(':radio[name=' + $(form_elem).attr('name') + ']:checked').length == 0) {
					$(this).addClass('error-color');
					error = true;
				}
			})
			
			
			if (error == false) {
				if (!$(question).hasClass('filled')) {
					$(this).find('span').text('ok');
					// ga naar volgende vraag 
					if ($(question).next('.question').length != 0) {
						$(question).next('.question').removeClass('inactive').addClass('active');
					} else {
						$('.questions div.submit').show();
						$('.questions div.submit :submit').removeAttr('disabled');
					}
				}
				
				$(question).find('.form-wrapper').each(function(i,elem){
					var val = $(this).find(':text, textarea, select, :radio:checked').val();
					if (val != '' && val != undefined) {
						$('<div class="answer">' + val + '</div>').insertBefore($(question).find('.answers .right-text'));
					}
				})
				
				$(question).removeClass('active').addClass('filled');
				if ($(question).hasClass('filled')) {
					$('.questions div.submit :submit').removeAttr('disabled');
					$('.questions div.submit :radio:checked').trigger('click');
				}
				
			} else {
				$(question).find('.formdata').prepend('<div class="error-message">U heeft niet alle verplichte velden ingevuld.</div>');
			}
																																			   
		});
		
		
		// voeg een wijzig link toe en toon formulier weer na klik hierop
		$('.campagne-content .question .answers').append('<div class="right-text"><a href="#" class="back">wijzigen</a></div>');
		$('.campagne-content .question .answers a.back').bind('click',function(){
			 $(this).parents('.question:first').addClass('active');																																	   
		});
		
	}
	
	function telefoonRequired() {
		$(':radio[name=form_antwoord_voorkeur]').bind('click', function(){
			$('#error-telefoon').hide();
			if($(this).val() === 'telefoon') {
				if ($.trim( $('#telefoonnummer').val() ) == '') {
					$('#error-telefoon').show();
					$('.questions div.submit :submit').attr('disabled', 'disabled');
					$('.campagne-content .question .answers:last a.back').trigger('click');
					$('#telefoonnummer').focus();
				}
			} else {
				$('#error-telefoon').hide();
				$('.questions div.submit :submit').removeAttr('disabled');
			}
			
		});
	}
	
	function citySelector() {
		$('select.city').bind('change', function(){
			if ($(this).val() == "") return false;
			
			$.post($('.city-selector').attr('id'), {city:$(this).val()}, function(obj) {
				$('.adviseurs').hide();
				
				// set het kantoor adres en plaatje goed
				$('.kantoor_toggler .adres').html('<h4>' + obj.city.name + '</h4>' + obj.city.address);
				$('.kantoor_toggler img').attr('src', obj.city.img);
				
				var html = '<p>Kies een adviseur</p>';
				var count = 0;
				$(obj.adviseurs).each(function(i, adviseur){
					
					html += '<div class="adviseur">'+
									'<div class="pasfoto">'+
										'<img src="' + adviseur.img + '" alt="" />'+
										'<div class="overlay"></div>'+
									'</div>'+
									'<div class="selector">'+
										'<div class="radio">'+
											'<input type="radio" name="adviseur" id="adviseur_' + i + '" value="' + count + '"' + (i==0 ? ' checked="checked"' : '') + ' />'+
										'</div>'+
										'<label for="adviseur_' + i + '">'+
											'<span class="name">' + adviseur.name + '</span>'+
											'<span class="title">' + adviseur.title + '</span>'+
										'</label>'+
									'</div>'+
								'</div>';
					count=count+1;
				})
				$('.adviseurs').html(html).show();
				
				// foto overlay interactie
				$('.adviseur .pasfoto .overlay').css({opacity:.5});
				$('.adviseur:first .pasfoto .overlay').css({opacity:.0});
				
				$('.adviseur .pasfoto').bind('click', function(){
					$(this).parents('.adviseur:first').find(':radio').trigger('click')			   
				});
				
				$('.adviseur :radio').bind('click', function(){
					$('.adviseur .pasfoto .overlay').css({opacity:.5});	
					$(this).parents('.adviseur:first').find('.pasfoto .overlay').css({opacity:.0});			
				})
			}, 'json');
			
			
			return false;
		});
		
	}
		
	
	function kantoorToggler() {
		var obj = $('.campagne-content .kantoor_toggler');
		$(obj).find('.overlay').css({opacity:.5});
	}
	
	//voorbeeld	
	function aankeilersInCampagne() {  
		$('.readmore').each(function(i, elem){
			$(elem).removeClass('readmore').
			addClass('btn_a_next inverse').
			html('<span>' + $(elem).text() + ' </span>');    
		});	 
	}

	return {
  	// Variables & functions defined here are public
		
		
		/**
		 * Initialize this Class
		 */
		init: function() {
			// do something, or test:
			videoThumbs();
			kantoorToggler();
			citySelector();
			telefoonRequired();
			formToggler();
			aankeilersInCampagne();
		}
	};
}();


/**
 * @desc Start application on domContentloaded
 */
$(document).ready(function(){
	Campagne.init();
});


