/* Author: Johan van Tongeren - Carlos Gallupa */
$(document).ready(function() {
	$('#sameinvoice').click(function() {
		$("#factuurgegevens").toggle(!this.checked);
	});
	$("a.fancybox").fancybox({
		'titlePosition'  : 'over'
	});
	$(".putInCart").bind('click', function() {
		// first check for all mandatory fields
		var quant = parseInt($('#prodsel_quantity').val());
		var size = $('#prodsel_size').val();
		var color = $('#prodsel_color').val();
		var error = false;
		if (quant == 0) {
			$('#prodsel_quantity').parent().stop().effect("shake", { distance: 5,direction: 'left', times:3 },50).addClass('inputError');
			error = true;
		}
		if (size == '' || size == null) {
			$('#prodsel_size').parent().stop().effect("shake", { distance: 5,direction: 'left', times:3 },50).addClass('inputError');
			error = true;
		}
		if (color == '' || color == null) {
			$('#prodsel_color').parent().stop().effect("shake", { distance: 5,direction: 'left', times:3 },50).addClass('inputError');
			error = true;
		}
		if (error == false) {
			$(this).html('Bezig met bestellen...').parent().prepend('<img src="/client/beenmode/img/loading.gif" alt="loading..." class="loading" />');
			// remove previous error styles and messages
			$('.inputError').removeClass('inputError');
			$('.putInCartError').fadeOut(500);
		} else {
			$('.putInCartError').fadeIn(500).effect("shake", { distance: 5,direction: 'down', times:3 },50);
			return false;
		}
	});
	$('.refine input:checked').parent().addClass('active');
	$('.refine input[type="checkbox"]').bind('click',function(){
		if ($(this).is(':checked')) {
			$(this).parent().addClass("active");	
		} else {
			$(this).parent().removeClass("active");	
		}
		$('.floatingButton').animate({
			right: '-5px'
		},100);
	});
	$('input[name="paymentOption"]').change(function(){
		if ($('#idealpayment').is(':checked')) {
			$('#bankSelector').show();
		} else {
			$('#bankSelector').hide();
		}
	});
	$('.sokselector .tabs a').bind('click', function() {
		$('.sokselector .tabs li').removeClass('active');
		$(this).parent().addClass('active');
		$('.sokken').hide();
		$('ul.'+$(this).attr('data-tab')).show();
	});

	$('#place-order').ajaxForm(function() {
		$("#webshopcart").parent().load("/modules/webshop/act_add.cfm?rand=" + Math.floor(Math.random()*10000001),function(){
			updateShoppingCart();	
		});
	});
});

function updateShoppingCart() {
	$.get('/client/beenmode/winkelmand.cfm', { preview:true }, function(data){
		$(".putInCart").html('In winkelmand plaatsen');
		$(".loading").remove();
		var prod_name = $('.prod_name').text();
		var $data = $(data);
		var foundin = $data.find('td:contains("'+prod_name+'")');
		$(foundin).parent().addClass('newLine');
		$('#cartContainer').html($data);
		$('.dim, .cartPreview').fadeIn(500);	
		$('.dim, .closeButton').bind('click', function() {
			$('.dim, .cartPreview').fadeOut(500);
			return false;
		});
	})	
}

$('a.zoomable').each(function(){
	$(this).bind('mouseenter', function(){
		$('.zoomContainer').remove();	
	});
	$(this).bind('mouseover', function(){
		$('.productInfo, .addthis_toolbox').css({
			opacity: 0
		});
		var bigImage = $(this).attr('href');
		var smallImage = $(this).find('img');
		var parent = this;
		$("<img/>").attr("src", bigImage).load(function() {
			var zoomer = $('<div class="zoomContainer"></div>').height($(smallImage).height()).css("background-image",'url('+bigImage+')');
			parent.zoomer = zoomer;
			$(parent).after(zoomer);
			parent.zoomFactorX = (this.width + $(smallImage).width() + 165) / $(zoomer).width();
			parent.zoomFactorY = (this.height - $(smallImage).height()) / $(zoomer).height();
		});
	});	
	$(this).bind('mousemove',function(e){
		var x = e.pageX - $(this).offset().left;
		var y = e.pageY - $(this).offset().top;
		var bigX = Math.round(x * this.zoomFactorX);
		var bigY = Math.round(y * this.zoomFactorY);
		$(this.zoomer).css('background-position','-'+bigX+'px -'+bigY+'px');
   });
	$(this).bind('mouseout', function(){
		$('.productInfo, .addthis_toolbox').css({
			opacity: 1
		});
		$(this.zoomer).remove();
	})
});
