
jQuery(document).ready(function() {
	
	updateOrder();
	moveCartWhenScrolling();
	
	$('.gray_box_container input').customInput();
	$('.gray_box_container_small input').customInput();
	
	$('.gray_box_container input').click(updateOrder);
	$('.gray_box_container_small input').click(updateOrder);
	
	$('#show_specs_gamer_base_link').fancyZoom();
	$('#show_specs_surf_base_link').fancyZoom();
	$('#show_specs_monitor22_link').fancyZoom();
	$('#show_specs_monitor19_link').fancyZoom();
	$('#show_specs_home_premium_link').fancyZoom();
	$('#show_specs_ultimate_link').fancyZoom();
	$('#navigation').localScroll({offset:-40});
	$('#buy').localScroll({offset:-40});
	$('.cart_go_to_checkout').localScroll({offset:-40});
	$('.product_images a').fancyZoom({scaleImg: true, closeOnClick: true});
	$('.product_images_smaller a').fancyZoom({scaleImg: true, closeOnClick: true});
	
	
	
	// Move cart when scrolling
	$(window).scroll(function()
	{
		moveCartWhenScrolling();
	});
	
	function moveCartWhenScrolling() {
		var scrollY = $(window).scrollTop();
		if (scrollY <= 187) {
			$('.cart').css({
				'position':'absolute',
				'top':'30px'
			})
		}
		else {
			$('.cart').css({
				'position':'fixed',
				'top':'15px'
			})
		}
	}
	
	// Update cart
	function updateOrder() {
		var str = "<ul>";
		var sum = 0;
		var shipping = 150;
		
		$(".gray_box_container input:checked").each(function () {
			var ident = $(this).val()
			var name = $(this).parents(".product_box").find("h3.item_name").text()
			
			str += "<li>" + name + " – " + products[ident] + " kr</li>";
			
			sum += products[ident];
			
		});
		$(".gray_box_container_small input:checked").each(function () {
			
			var ident = $(this).val()
			var name = $(this).parents(".product_box").find("h3.item_name").text()
			
			
			if ( ! /^Inge[nt].*/.test(name)) {
				str += "<li>" + name + " – " + products[ident] + " kr</li>";
				
				sum += products[ident];
				
			}

		});
		str += "</ul>";
		
		if (str == "<ul></ul>") {
			str = "<p><i>Du har inte valt några produkter.</i></p>";
			sum = 0;
			shipping = 0;
			
			$('.cart').slideUp("slow");
		}
		else {
			$('.cart').slideDown("slow");
		}
		
		sum += shipping;
		
		$('.review_order').hide(0);
		$('.sum').hide(0);
		$('.review_order').html(str);
		$('.sum').html("Frakt: " + shipping + " kr<br /><h3>Summa: " + sum +" kr (inkl. moms)</h3>");
		$('.review_order').fadeIn("slow");
		$('.sum').fadeIn("slow");
		
		$('.cart_contents').hide(0);
		$('.cart_shipping').hide(0);
		$('.cart_sum').hide(0);
		
		$('.cart_contents').html(str);
		$('.cart_shipping').html("Frakt: " + shipping + " kr");
		$('.cart_sum').html("Summa: " + sum +" kr");
		
		$('.cart_contents').fadeIn("slow");
		$('.cart_shipping').fadeIn("slow");
		$('.cart_sum').fadeIn("slow");
		
		$("input[name='sum']").val(sum);
	}
	
	$("input[name='name']")[0].validate = function(me) {
		if($("input#form_name").val() != "")
			return true
		else
			return "Du måste fylla i ditt namn."
	}

	$("input[name='street']")[0].validate = function(me) {
		if($("input[name='street']").val() != "")
			return true
		else
			return "Du måste fylla i din gatuadress."
	}
	
	$("input[name='zip']")[0].validate = function(me) {
		if($("input[name='zip']").val() != "")
			return true
		else
			return "Du måste fylla i ditt postnummer."
	}
	
	$("input[name='city']")[0].validate = function(me) {
		if($("input[name='city']").val() != "")
			return true
		else
			return "Du måste fylla i din stad."
	}
	
	$("input[name='phone']")[0].validate = function(me) {
		if($("input[name='phone']").val() != "")
			return true
		else
			return "Du måste fylla i ditt telefonnummer."
	}
	
	$("input[name='email']")[0].validate = function(me) {
		if($("input[name='email']").val() != "")
			return true
		else
			return "Du måste fylla i din e-mailadress."
	}
	
	$("table#choose_payment_type")[0].validate = function(me) {
		if($("input#bank_account")[0].checked == true || $("input#paypal")[0].checked == true)
			return true
		else
			return "Du måste välja ett betalningssätt."
	}
	
	$("span#agree_on_terms")[0].validate = function(me) {
		if($("input#agree")[0].checked == true)
			return true
		else
			return "Du måste godkänna köpvillkoren."
	}
	
})



function setError(element, errorString) {
	$(element).addClass("errorInForm")
	
	$(element).after("<span class=\"errorExplanation\">"+errorString+"</span>")
}

function setNoError(element) {
	$(element).removeClass("errorInForm")
}

function validateForm() {
	var success = true
	$(".errorExplanation").remove()
	
	$("input, table, span").each(function() {
		
		if(this.validate !== undefined) {
			
			err = this.validate(this)
			
			
			if(err !== true) {
				setError(this, err)
				success = false
			} 
			else
				setNoError(this)
		}
	})
	
	if (success == false) {
		var done = false
		$("input, table, span").each(function() {

			if(done == false && this.validate !== undefined) {

				err = this.validate(this)

				if(err !== true) {
					$.scrollTo(this, {duration: 500, offset: -40})
					done = true
				} 

			}
		})
	}

	
	return success
	
}


