$(document).ready(function(){
	//LANG SELECTOR
	$("#lang").disableSelection();
	$("#lang").css({
		cursor: "pointer"
	}).click(function(){
		$("#langSelect").fadeToggle(500);
	});
    $(".fancy").bind("contextmenu",function(e){
        return false;
    });
	//COLLECTIONS DROPDOWN
	$("#Collections").hover(function(){
		$("#collectionsSub").fadeIn(300);
	},function(){
		$("#collectionsSub").fadeOut(300);
	})
	//CONTENT SLIDER
	 $('#slider').nivoSlider({
			effect: 'fade', // Specify sets like: 'fold,fade, boxRain, boxRainReverse, boxRainGrow, boxRainGrowReverse'
			animSpeed: 800, // Slide transition speed
			pauseTime: 6000, // How long each slide will show
			startSlide: 0, // Set starting Slide (0 index)
			directionNav: false, // Next & Prev navigation
			directionNavHide: false, // Only show on hover
			controlNav: false, // 1,2,3... navigation
			controlNavThumbs: false, // Use thumbnails for Control Nav
			controlNavThumbsFromRel: false, // Use image rel for thumbs
			keyboardNav: true, // Use left & right arrows
			pauseOnHover: false, // Stop animation while hovering
			manualAdvance: false, // Force manual transitions
			captionOpacity: false, // Universal caption opacity
			prevText: false, // Prev directionNav text
			nextText: false, // Next directionNav text
	})
	//BANNER SLIDER
	var globalTimer;
	var speed = 6000;
	var currentSlide = 0;
	var totalSlides = $("#headersList LI").length;
	if(totalSlides>1){
		globalTimer=setTimeout(nextSlide,speed);
	}
	function nextSlide(){
		clearTimeout(globalTimer);
		if(currentSlide>(totalSlides-2))
		{
			currentSlide = 0;	
		} else {
			currentSlide++
		}
		goTo(currentSlide);
		globalTimer=setTimeout(nextSlide,speed);	
	}
	function goTo(current){
		loadImg($("#headersList LI:eq("+current+")").html());
	}
	function loadImg(src){
		if($("#headerSlider img").length>1){
			$("#headerSlider img:eq(0)").remove();
		}
		var img = new Image();
		$(img).load(function(){
			$(this).hide();
			$("#headerSlider").append(this);
			$(this).fadeIn(1200);
		}).attr('src',src)
		return false;
	}
	//ECARD FORM AJAX
	$("#ecardSend").click(function(){
		validate($("#from"),"email");
		validate($("#name"),"string");
		validate($("#to"),"email");
		if(validate($("#from"),"email") && validate($("#name"),"string") && validate($("#to"),"email")){
			$.ajax({
				data:{
						from:$("#from").val(),
						to:$("#to").val(),
						name:$("#name").val(),
						message:$("#message").val(),
						secure:$("#secure").val(),
						card:$('input[type="radio"]:checked').val()
					},
				url:"/ajax/ecard-exe.cfm",
				type: "POST",
				success:function(data){
					if(data == "1"){
						$("#ecardsform").slideUp(300);
						$("#messageContainer .success").fadeIn(500);
						$("#messageContainer .error").hide();
					} else {
						$("#messageContainer .success").hide();
						$("#messageContainer .error").fadeIn(500);
					}
				}
			})
		}
		return false;
	})
	
	//CONTACT FORM AJAX
	$("#contactShow").click(function(){
		$("#contactform").fadeToggle(400)
		return false;
	})
	$("#contactSend").click(function(){
		validate($("#email"),"email");
		validate($("#name"),"string");
		validate($("#tel"),"string");
		validate($("#message"),"string");
		if(validate($("#email"),"email") && validate($("#name"),"string") && validate($("#tel"),"string") && validate($("#message"),"string")){
			$.ajax({
				data:{
						email:$("#email").val(),
						tel:$("#tel").val(),
						name:$("#name").val(),
						message:$("#message").val(),
						country:$('option:selected').val(),
						secure:$("#secure").val(),
						lang:$("#lId").val()
					},
				url:"/ajax/contact-exe.cfm",
				type: "POST",
				success:function(data){
					if(data == "1"){
						$("#contactform").slideUp(300,function(){
							$(this).remove();
						});
						$("#messageContainer .success").fadeIn(500);
						$("#messageContainer .error").hide();
					} else {
						$("#messageContainer .success").hide();
						$("#messageContainer .error").fadeIn(500);
					}
				}
			})
		}
		return false;
	})
	
	//LOGIN AJAX
	$("#loginSend").click(function(){
		validate($("#loginField"),"string");
		validate($("#passField"),"string");
	
		if(validate($("#loginField"),"string") && validate($("#passField"),"string")){
			$.ajax({
				data:{
						login:$("#loginField").val(),
						pass:$("#passField").val(),
						secure:$("#secure").val()
					},
				url:"/ajax/login-exe.cfm",
				type: "POST",
				success:function(data){
					if(data == "1"){
						location.reload();
					} else {
						$("#messageContainer .error").fadeIn(500);
					}
				}
			})
		}
		return false;
	})
	
	//ORDER TABLE AJAX
	$("#addRow").click(function(){
		$("#orderForm").append('<tr><td><input type="text" class="count"></td><td><input class="prodId" type="text"></td></tr>').find("tr:last-child").hide().fadeIn(500);
		return false;
	})
	$("#addBasket").click(function(){
		for(var i = 2 ; i <= $("#orderForm tr").size(); i++){
			var therow = $("#orderForm tr:nth-child("+i+")");
			
			if(	therow.find(".count").val()!='' && 
				validateInt( therow.find(".count").val() ) &&
				validateString( therow.find(".prodId").val() )
				){
					
				$.ajax({
					data:{
							count:therow.find(".count").val(),
							prod:therow.find(".prodId").val()
						},
					url:"/ajax/basket-add-exe.cfm",
					success: function(data){
						if (data == "1") {
							therow.css({
								backgroundColor: "#B7E6F8"
							}).fadeOut(900,function(){
								$("#orderForm").append('<tr><td><input type="text" class="count"></td><td><input class="prodId" type="text"></td></tr>');
							});
						} else {
							therow.css({
								backgroundColor: "#F8B7C5"
							}).find(".prodId").css({borderColor:"#E93F65",color:"#E93F65"});
						}
					},
					async:false
				})
			}
		}
		return false;
	});
	
	//BASKET AJAX
	$("#cartLink").hover(function(){
		$("HEADER #basket SPAN").fadeIn(350);
	},function(){
		$("HEADER #basket SPAN").fadeOut(350);
	})
	$(".removeProd").each(function(){
		$(this).click(function(){
			$.ajax({
				context: this,
				data:{
						prod:$(this).attr("data-product")
					},
				url:"/ajax/basket-delete-exe.cfm",
				success: function(data){
					$(this).parent().parent().fadeOut(400,function(){
						$(this).remove();
						if($(".removeProd").size() == 0){
							window.location.reload()
						}
					});
				},
				async:false
			})
			return false;
		});
	});
	$(".basketCountField").each(function(){
		$(this).keyup(function(){
			if(validateInt($(this).val())){
				if(parseInt($(this).val()) > parseInt($(this).attr("data-minimum"))){
					$(this).parent().parent().find(".basketCount").html($(this).val());
					$.ajax({
						context: this,
						data:{ prod:$(this).attr("data-product"), count:$(this).val()},
						url:"/ajax/basket-update-exe.cfm",
						async:false
					})
				} else {
					$(this).parent().parent().find(".basketCount").html($(this).attr("data-minimum"));
					$.ajax({
						context: this,
						data:{ prod:$(this).attr("data-product"), count:$(this).attr("data-minimum")},
						url:"/ajax/basket-update-exe.cfm",
						async:false
					})
				}
			}
		})
	})
	
	//HANDLE CHECKOUT
	$("#checkout").click(function(){
		
	})
	
	//STORE ORDERS
	$("#addProd").click(function(){
		$.ajax({
					data:{
							count:$("#addProd").attr("data-count"),
							prod:$("#addProd").attr("data-prodid")
						},
					url:"/ajax/basket-add-exe.cfm",
					success: function(data){
						if($(".fancy").size()){
							$(".fancy").find("img").clone(false).css({position:"absolute",top:$(".fancy img:first-child").position().top, left:$(".fancy img:first-child").position().left}).appendTo(".fancy")
							.animate({
								top:$("#cartLink").position().top,
								left:970,
								width:$("#cartLink").width(),
								height:$("#cartLink").height()
							},500,function(){
								$(this).remove();
								
							});
						}

					}
				})
				return false;
	})
	
	//REGISTER FORM AJAX
	$("#registerSend").click(function(){
		validate($("#name"),"string");
		validate($("#email"),"email");
		validate($("#streetnr"),"string");
		validate($("#postalcity"),"string");
		validate($("#telephone"),"string");
		validate($("#fax"),"string");
		validate($("#country"),"string");
		
		if(validate($("#name"),"string") && validate($("#email"),"email") && validate($("#streetnr"),"string")
		 && validate($("#postalcity"),"string") && validate($("#telephone"),"string") && validate($("#fax"),"string")
		 && validate($("#country"),"string")){
			$.ajax({
				data:{
						name:$("#name").val(),
						email:$("#email").val(),
						streetnr:$("#streetnr").val(),
						postalcity:$("#postalcity").val(),
						telephone:$("#telephone").val(),
						fax:$("#fax").val(),
						country:$("#country").val(),
						secure:$("#secure").val()
					},
				url:"/ajax/register-exe.cfm",
				type: "POST",
				success:function(data){
					if(data == "1"){
						$("#registerForm").fadeOut();
						$("#messageContainer .success").fadeIn(500);
					} else {
						$("#messageContainer .error").fadeIn(500);
					}
				}
			})
		}
		return false;
	})
	
	
	//CONTEST PAGE AJAX
	$(".rating").each(function(){
		var group = $(this);
		group.hover(function(){
		},function(){
			$(this).find('li').not('.check').find('img').attr("src","images/starEmpty.png");
			$(this).find('.check').find('img').attr("src","images/star.png");
		})
		group.find('li').each(function(){
			$(this).hover(function(){
				for(var i=1;i<=$(this).attr("data-nr");i++){
					$(group).find('li[data-nr="'+i+'"]').find("img").attr("src","images/star.png");
				}
				for(var o=parseInt($(this).attr("data-nr"))+1;o<=5;o++){
					$(group).find('li[data-nr="'+o+'"]').find("img").attr("src","images/starEmpty.png");
				}
			}, function(){
			})
			
			$(this).click(function(){
				$.ajax({url:"/ajax/setRating.cfm?id="+$(this).parent().attr('data-id')+"&rating="+$(this).attr('data-nr')});
				var sum = $(this).parent().parent().find(".sum").html();
				var rating = $(this).attr('data-nr');
				var count =  $(this).parent().parent().find(".count").html();
				$(this).parent().parent().find(".sum").html(parseInt(sum)+parseInt(rating));
				$(this).parent().parent().find(".count").html(parseInt(count)+1);
				$(this).parent().removeClass("rating").addClass("rated");
				$(this).parent().find("li").unbind();
				for(var i=1;i<=$(this).attr("data-nr");i++){
					$(group).find('li[data-nr="'+i+'"]').addClass("check").find("img").attr("src","images/star.png");
				}
				for(var o=parseInt($(this).attr("data-nr"))+1;o<=5;o++){
					$(group).find('li[data-nr="'+o+'"]').removeClass("check").find("img").attr("src","images/starEmpty.png");
				}
				$(group).find('li').not(".check");
			})
		})
	})
	//COLLECTIONS PAGE SIDEBAR IMAGES
	$(".tinyColImg").each(function(){
		$(this).css("cursor","pointer").click(function(){
			var image = $(this).attr("data-full");
			$("#slideBig img").fadeTo(500,0.01,function(){
				$(this).attr("src","/content/images/collections/"+image).fadeTo(500,1)
			});
		})
	})
	//FIX UP NAV
	$(".navNewline").prev().addClass("last");

	//STORE LOCATOR ESHOPS
	$("#search-eshops H3").live("click",function(e){
		$("#storesProx").hide("150");
		$("#search-eshops #eshops-list").show("400");
		e.preventDefault();
	})
})



//HELPER FUNCTIONS
function validateEmail(id) 
{ 
	var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,4}$/; 
	return emailPattern.test(id);
} 

function validateString(id) 
{ 
	if(id.length > 1){
		return true;
	}
	return false;
} 
function validateInt (n){
    var reInt = new RegExp(/^-?\d+$/);
    if (!reInt.test(n)) {
        return false;
    }
    return true;
} 
function notValid(id){
	id.parent().find("span").css("color","#E93F65");
}
function valid(id){
	id.parent().find("span").css("color","#555555");
}

function validate(field,type){
	if(type == "email"){
		if(!validateEmail( field.val())){
			notValid(field);
			return false;
		}
	} else if(type == "string"){
		if(!validateString( field.val())){
			notValid(field);
			return false;

		}
	}
	valid(field);
	return true;
}

