var presenterInterval;
var sliderInterval;

function formSubmitButtonClick(e) {
	var steps = jQuery('.wFormContainer .steps li');
	var step = steps.index(steps.filter('.active'));
	if(step != steps.length - 1) {
		e.preventDefault();

		var fieldsets = jQuery('.wFormContainer fieldset');

		steps.removeClass('active');
		fieldsets.hide();

		jQuery(steps.get(step + 1)).addClass('active');
		jQuery(fieldsets.get(step + 1)).show();

		var submit = jQuery('.wForm input[type=submit]');
		if(step + 1 == steps.length - 1) {
			var label = submit.attr('data');
			submit.val(label);
		}
	}
}

function formStepClick(e) {
	var steps = jQuery('.wFormContainer .steps li');
	var step = steps.index(jQuery(this));

	var fieldsets = jQuery('.wFormContainer fieldset');

	steps.removeClass('active');
	fieldsets.hide();

	jQuery(steps.get(step)).addClass('active');
	jQuery(fieldsets.get(step)).show();
}

function clickSlideCarousel(e) {
	e.preventDefault();
	var slider = jQuery(this).parents('.slider, .slider-apps');
	var slides = slider.find('.inner > img, .inner > div');
	var nav = slider.find('ul li');
	var index = nav.index(nav.filter(this));

	clearInterval(sliderInterval);

	nav.removeClass('active');

	jQuery(nav.get(index)).addClass('active');
	for(var i = 0; i < slides.length; i++) {
		var slide = jQuery(slides[i]);
		if(i < index) {
			slide.css('margin-top', '-' + slide.height() + 'px');
		} else {
			slide.css('margin-top', '0px');
		}
	}
	slider.find('.caption').html(nav.filter('.active').find('a').text());

	sliderInterval = setInterval('nextSlideCarousel()', 5000);
}
function nextSlideCarousel() {
	jQuery('.slider, .slider-apps').each(function() {
		var slider = jQuery(this);
		var slides = slider.find('.inner > img, .inner > div');
		var nav = slider.find('ul li');
		var index = nav.index(nav.filter('.active'));

		nav.removeClass('active');

		index++;

		if(index >= nav.length) {
			index = 0;
		}
		jQuery(nav.get(index)).addClass('active');
		if(index != 0) {
			for(var i = 0; i < slides.length; i++) {
				var slide = jQuery(slides[i]);
				if(slide.css('margin-top') == '0px') {
					slide.animate({ 'marginTop': '-' + slide.height() + 'px' });
					break;
				}
			}
		} else {
			for(var i = 0; i < slides.length; i++) {
				var slide = jQuery(slides[i]);
				slide.animate({ 'marginTop': '0px' });
			}
		}
		jQuery(slides.get(nav.filter('.active').attr('data-index'))).show();
		slider.find('.caption').html(nav.filter('.active').find('a').text());
	});
}

function nextSlide() {
	var slides = jQuery('.presenter .slides div');
	var nav = jQuery('.presenter .nav li');
	var currentActive = nav.index(nav.filter('.active'));

	currentActive++;

	if(currentActive >= slides.length) {
		/* wrap around */
		currentActive = 0;
	}

	nav.removeClass('active');
	jQuery(nav.get(currentActive)).addClass('active');

	updateSlide();
}

function updateSlide() {
	var nav = jQuery('.presenter .nav li');
	var slides = jQuery('.presenter .slides div');
	var currentActive = nav.index(nav.filter('.active'));

	for(var i = 0; i < currentActive; i++) {
		jQuery(slides[i]).hide();
	}
	for(var i = currentActive; i < slides.length; i++) {
		jQuery(slides[i]).show();
	}
}

jQuery(function() {

	jQuery(document).click(function(){
   		jQuery('.app .rating li .select').remove();
	});

	jQuery('.rating li a').click(function(event){
		event.preventDefault();
	});
	jQuery('.app .rating li a').click(function(event){
		event.preventDefault();
		event.stopPropagation();
		jQuery('.rating li .select').remove();
		jQuery(this).parent().append('<div class="select"><form id="rate"><input type="text" name="email" placeholder="E-mailadres" /><input type="text" name="companyname" placeholder="Bedrijfsnaam" /><button type="submit" class="btn">Beoordelen</button></form></div>');		
		jQuery('#rate').submit(function(e) {
			e.preventDefault();
			var email = jQuery(this).find('input[name=email]').val();
			var companyname = jQuery(this).find('input[name=companyname]').val();
			var rating = jQuery(this).parents('li').attr('data');
			jQuery.ajax({
				url: document.location.href,
				data: { companyname: companyname, email: email, rating: rating },
				type: 'post',
				success: function() {
					if(icl_lang == 'nl') {
						jQuery('.select #rate').text('Bedankt!');
					} else {
						jQuery('.select #rate').text('Thanks!');
					}
				}
			});
		});
		jQuery('.rating input[placeholder]').placeholder();
		jQuery('.rating li .select').click(function(e){
			e.stopPropagation();
		});
	}).mouseenter(function(){
		jQuery('.rating li a').css('background-image','url(img/star-off.png)');
		jQuery('.rating li a:hover').css('background-image','url(img/star.png)').parent().addClass('current');
		jQuery('.current').prevAll().children('a').css('background-image','url(img/star.png)');
	}).mouseleave(function(){
		jQuery('.rating li.star a').css('background-image','url(img/star.png)');
		jQuery('.rating li.no-star a').css('background-image','url(img/star-off.png)');
		jQuery('.current').removeClass('current');
	});
	

	if(jQuery('.presenter').length) {
		jQuery('.presenter .slides').children().wrap('<div>');
		jQuery('.presenter .nav li').click(function(e) {
			e.preventDefault();
			clearInterval(presenterInterval);

			jQuery('.presenter .nav li').removeClass('active');
			jQuery(this).addClass('active');
			updateSlide();

			presenterInterval = setInterval('nextSlide()', 8000);
		});

		jQuery(jQuery('.presenter .nav li').first()).click();
	}

	jQuery('.carousel .next').click(function(e) {
		e.preventDefault();
		
		// count width of all images
		var widthcount = 0;
		jQuery('.carousel-inner').children().each(function(){		
			widthcount += jQuery(this).width() + parseInt(jQuery('.carousel-inner img').css('margin-right').replace("px", ""));		
		});

		var imgs = jQuery(this).parents('.carousel').find('.carousel-inner img');
		var img;
		var countwidths = 0;
		
		for(var i = 0; i < imgs.length; i++) {
			img = jQuery(imgs[i]);
			width = img.width() + parseInt(img.css('margin-right').replace(/px/, ''));
			
			//do not move if it exceeds width			
			if((countwidths + jQuery('.carousel-wrap').width()) > widthcount){	
				break;
			}			
										
			if(img.css('margin-left') != '-' + width + 'px') {
				img.animate( { 'marginLeft': '-' + width + 'px' } );
				break;
			}		
			
			countwidths += Math.abs(width);	
		}
		
	});
	jQuery('.carousel .prev').click(function(e) {
		e.preventDefault();

		var imgs = jQuery(jQuery(this).parents('.carousel').find('.carousel-inner img').get().reverse());
		var img;
		for(var i = 0; i < imgs.length; i++) {
			img = jQuery(imgs[i]);

			if(img.css('margin-left') != '0px') {
				img.animate( { 'marginLeft': '0px' } );
				break;
			}
		}
	});

	if(jQuery('.wForm form fieldset').length) {
		jQuery('.wForm input[type="submit"]').click(formSubmitButtonClick);
		var fieldsets = jQuery('.wForm form fieldset');
		jQuery('.wForm').before('<ol class="steps"><li></li></ol>'); /* add a li to get margin-left */

		//var itemwidth = Math.floor((jQuery('.steps').width()) / fieldsets.length);
		var itemwidth = Math.floor((jQuery('.steps').width() - jQuery('.steps li').css('padding-left').replace(/px/, '') * fieldsets.length) / fieldsets.length) - 1;

		jQuery('.wFormContainer .steps li').remove(); /* remove temp li */

		for(var i = 0; i < fieldsets.length; i++) {
			var fieldset = jQuery(fieldsets[i]);
			var step = jQuery('<li data="' + fieldset.attr('id') + '">' + fieldset.find('legend').text() + '<span class="ol-arrow"></span></li>');
			step.css('width', itemwidth + 'px');
			if(i > 0) {
				fieldset.hide();
			} else {
				step.addClass('active');
			}
			jQuery('.steps').append(step);
		}
		jQuery('.wFormContainer .steps li').click(formStepClick);

		jQuery(".wFormContainer .steps li:last").find('span.ol-arrow').css('display', 'none');

		var submit = jQuery('.wForm input[type=submit]');
		submit.attr('data', submit.val());
		if(icl_lang == 'nl') {
			submit.val('Volgende stap');
		} else {
			submit.val('Next step');
		}
	}
	
	
	jQuery(".comparison-table table tr:even td").css("background-color", "#EAF0F4");
	jQuery(".wFormContainer ol > li, .presenter ol > li").each(function() {
    	jQuery(this).prepend("<span>" + (jQuery(this).index() +1) + ". </span>");
	});

	if(jQuery('.slider, .slider-apps').length) {
		var sliders = jQuery('.slider, .slider-apps');


		sliders.each(function() {
			var slider = jQuery(this);
			slider.wrapInner('<div class="inner">');
			var slides = slider.find('.inner > img, .inner > div');
			slider.append('<div class="caption">' + jQuery(slides.first()).attr('title') + '</div>').append('<ul>');
			var list = slider.find('ul');
			for(var i = 0; i < slides.length; i++) {
				list.append('<li data-index="' + i + '"><a href="#">' + jQuery(slides[i]).attr('title') + '</a></li>');
			}

			list.find('li:first-child').addClass('active');
			list.find('li').click(clickSlideCarousel);
		});

		sliderInterval = setInterval('nextSlideCarousel()', 5000);
	}
	if(icl_lang == 'nl') {
		jQuery('#app-search').attr('placeholder', 'Apps zoeken');
		jQuery('#searchform input[type=search]').attr('placeholder', 'Zoeken');
	} else {
		jQuery('#app-search').attr('placeholder', 'Search for apps');
		jQuery('#searchform input[type=search]').attr('placeholder', 'Search');
	}
	jQuery('input[placeholder]').placeholder();
});

