$(function(){
	var n = 1

	function slideMasthead() {
		if(n>2) {n=0;}
		$('#home_masthead').stop().animate({
	        backgroundPosition: '50% -'+n*535+'px'
		},1000);
        n++;
	}

	var slideInterval = window.setInterval(function() {
		slideMasthead();
	}, 5000);

	$('#home_masthead').click(function(){
		slideMasthead();

		clearInterval(slideInterval);

		slideInterval = window.setInterval(function() {
			slideMasthead();
		}, 5000);
	});

	function arrangeVideoBox() {
		var l = ($(window).width()/2) - 300
		$('#videoBox').css('left',l);
	}

	$('#videolink').click(function(){
		arrangeVideoBox();
		$('#videoLayer').fadeIn();
		return false;
	});

	$('#videoLayer').click(function(){
		$('#videoLayer').fadeOut();
		return false;
	});


	// Define stuff -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
	$.fn.fancytooltip = function(){
		return this
			.after("")
			.unbind()
			.hover(function(){
				var $dfn = $(this).find("dfn");
				if($dfn.hasClass("notooltip")) return;
				$("div.tooltip").attr("class", "tooltip " + $dfn.attr("class"));
				var $t = $("div.tooltip div.body").html($dfn.html()).closest("div.tooltip");
				var o = $(this).offset();
				o.top = o.top - $t.outerHeight();
				o.opacity = 1;
				$t.css(o).stop().fadeIn();
			}, function(){
				$("div.tooltip").stop().fadeOut();
			});
	};


	// Stepnav.
	$("ul.stepnav li.selectable").click(function(){
		$(this).closest("form").find("input[name='step']").val($(this).attr("id").split("_")[1]).end().submit();
	}).css("cursor", "pointer").mouseover(function(){
		$(this).css("text-decoration", "underline");
	}).mouseleave(function(){
		$(this).css("text-decoration", "none");
	});

	// Replace <select class="colorpicker"><option value="id,ncs-color">name</option>...</select> with a hidden input and nicer looking colorpicker
	$("select.colorpicker").each(function(){
		var $div = $(this).after('<div class="colorpicker"><input type="hidden" name="' + $(this).attr("name") + '" value="' + $(this).val() + '" /></div><div class="colorpicker_after"></div>').next();
		$(this).find("option").each(function(){
			var $this = $(this);
			$div.append('<span class="colorpicker_item' + (this.selected ? ' selected' : '') + '"><img src="usermedia/doorcolor_' + $this.attr("value").split(",")[0] + '_a.jpg" alt="' + $this.text() + '" /></span>').children(":last").data("colorid", $this.attr("value").split(",")[0]).data("ncs", $this.attr("value").split(",")[1]).data("value", $this.attr("value")).css("cursor", "pointer");
		});
		$(this).remove();
		var i = Math.ceil($div.find("span").length / 2);
		if(i>5){i=5;}
		$div.width($div.find("span:first").outerWidth() * i);
		$div.find("span.colorpicker_item").click(function(){
			$div.find("span").removeClass("selected");
			$div.find("input").val($(this).data("value"));
			$(this).addClass("selected");
			$div.closest("div.colorandchoose").find("input.inputncscolor").val($(this).data("ncs"));
		});
	});

	// Handle inputboxes for amount and custom sizes.
	var iDivContent_step3Div_doorDiv_amountInputTimer = 0;
	$("div.content_step3 div.door").bind("updateinbasket", function(){
		// Add or remove class inbasket if amount > 0 or not.
		var i = 0;
		$(this).find("div.amount input").each(function(){
			var s = $(this).val().replace(/\D/g, ""); // Remove all except 0-9.
			i = i + (s===""?0:s);
		}).end().toggleClass("inbasket", (i>0));
		if(i>0) $(this).fadeTo("FAST", 1);
	});

	$("div.content_step3 div.door div.amount input, #doorcategory_customsize_width, #doorcategory_customsize_height").focus(function(){
		var that = this;
		clearTimeout(iDivContent_step3Div_doorDiv_amountInputTimer);
		iDivContent_step3Div_doorDiv_amountInputTimer = setTimeout(function(){that.select();}, 10);
	}).blur(function(){
		var s;
		clearTimeout(iDivContent_step3Div_doorDiv_amountInputTimer);
		if($(this).closest("#doorcategory_customsize_newform").length===0){
			s = $(this).val().replace(/\D/g, ""); // Remove all except 0-9.
			$(this).val((s===""?"0":(s.length<=2?s:"0")) + " st");
		}else{
			s = $(this).val().replace(/[^\d,]/g, ""); // Remove all except 0-9 or ,.
			$(this).val((s===""?"0":(s.length<=6?s:"0")) + " cm");
		}

		$(this).closest("div.door").trigger("updateinbasket");
	});

	// Add-button for custom sized door or cover piece.
	var customdoorcount = 0;
	$("#doorcategory_customsize_addbutton").click(function(){
		if(($("#doorcategory_customsize_width").val().replace(/\D/g, "")==="0") || ($("#doorcategory_customsize_height").val().replace(/\D/g, "")==="0") || ($("#doorcategory_customsize_type").val()==="blank")){
			$("#doorcategory_customsize_error").slideDown("fast");
			return false;
		}
		$("#doorcategory_customsize_error").hide();
		var $new = $("#doorcategory_customsize_template").clone(true).insertBefore("#doorcategory_customsize_error");
		$("#doorcategory_customsize_width, #doorcategory_customsize_height").blur();
		$new.attr("id", "").find("h3").text($("#doorcategory_customsize_width").val().replace(/[^\d,]/g, "") + "x" + $("#doorcategory_customsize_height").val().replace(/[^\d,]/g, "") + " cm, eget mått");
		if($("#doorcategory_customsize_type").val() != "door_left" && $("#doorcategory_customsize_type").val() != "door_right"){
			$new.find("div.amount div.door_left").hide();
			$new.find("div.amount div.door_right").hide();
		}else{
			$new.find("div.amount div.neutral").hide();
		}
		customdoorcount = customdoorcount + 1;
		$new.find("input:first").attr("name", "customdoor_" + customdoorcount).val($("#doorcategory_customsize_width").val().replace(/[^\d,]/g, "").replace(/,/g, ".") + "," + $("#doorcategory_customsize_height").val().replace(/[^\d,]/g, "").replace(/,/g, ".") + "," + $("#doorcategory_customsize_newform select").val() + "," + $("#doorcategory_customsize_category").val());
		$new.find("div.amount div.door_left input").val($("#doorcategory_customsize_type").val()==="door_left"?"1 st":"0 st").attr("name", "customdoor_" + customdoorcount + "_l");
		$new.find("div.amount div.door_right input").val($("#doorcategory_customsize_type").val()==="door_right"?"1 st":"0 st").attr("name", "customdoor_" + customdoorcount + "_r");
		if($("#doorcategory_customsize_type").val() != "door_left" && $("#doorcategory_customsize_type").val() != "door_right") {
			$new.find("div.amount div.neutral input").val("1 st").attr("name", "customdoor_" + customdoorcount + "_n");
		}
		else {
			$new.find("div.amount div.neutral input").val("0 st").attr("name", "customdoor_" + customdoorcount + "_n");
		}

		$("#doorcategory_customsize_newform input:not(:hidden)").val("0 cm");
		$("#doorcategory_customsize_newform select").val("neutral");
		$new.addClass("inbasket").hide().slideDown();
		return false;
	});


	$("a.stepbutton_sendorder").fancytooltip();

	$("a.stepjump").click(function(e){
		//$("form").valid();
		if($(this).hasClass("stepbutton_sendorder_disabled") || $(this).hasClass("disabled")){
			return false;
		}
		//$(this).addClass('disabled');
		$("input[name='step']").val($(this).attr("href").split("#")[1]);
		$("#shop_form").submit();
		return false;
	});

/*
	$('#doornav_addtocart a').click(function(evt){
		evt.preventDefault();
		$.post('/pickyliving/Koksluckor/ajax.php',$('#shop_form').serialize());
	})
*/

	$("div.content_step4").each(function(){
		$("div.invoiceaddressfields").toggle(!$("label.sameinvoiceaddressasdeliveryaddress input").attr("checked"));
		$("label.sameinvoiceaddressasdeliveryaddress input").click(function(){
			$("div.invoiceaddressfields").slideToggle(!$(this).attr("checked"));
		});
		$("form").submit(function(){
			return ($("input[name='step']").val() !== "5") || !$("a.stepbutton_sendorder").hasClass("stepbutton_sendorder_disabled");
		}).validate({
			onsubmit: false,
			errorPlacement: function(){},
			showErrors: function(){
				this.defaultShowErrors();
				$("#continuelaterbutton").toggleClass("disabled", $("div.continuelater input.error").length>0);
				var a = ["div.deliveryaddressfields input.error", "div.termsandconditions input.error", "#referer.error"];
				if($("label.sameinvoiceaddressasdeliveryaddress input:checked").length===0){
					a.push("div.invoiceaddressfields input.error");
				}
				var disabled = ($(a.join(",")).length > 0);
				$("a.stepbutton_sendorder").toggleClass("stepbutton_sendorder_disabled", disabled);
				$("a.stepbutton_sendorder dfn").toggleClass("notooltip", !disabled);
			}
		}).form();
	});

	// $("#continuelaterbutton").click(function(){
	// 	if($(this).hasClass("disabled")){return false;}
	// 	$(this).closest("form").find("input[name='step']").val("10").end().submit();
	// 	return false;
	// });

	$("#col_fa .displaybutton").click(function(e){
		e.preventDefault();
		var $door = $(".doorlist .door");

		//John fixar strängformatering 2010-04-29
		//(tar bort mellanslag och kommatecken i början och slutet av strängen)
		var rawFilterString = $("#fafilter").val();
		rawFilterString = rawFilterString.replace(new RegExp("^[,\\s]+", "g"), ""); //ltrim
		rawFilterString = rawFilterString.replace(new RegExp("[,\\s]+$", "g"), ""); //rtrim
		var q = rawFilterString.split(",");
		//  </John>

		//var q = $("#fafilter").val().split(","); //ersatt av raden ovan
		for(var i=0,l=q.length;i<l;i++){
			q[i] = q[i].replace(/^\s+|\s+$/g, '').toUpperCase();
		}
		$('.main_doorcategory,.doorcategory').hide();
		$('.categorynav .selected').removeClass('selected');
		$door.each(function(){
			var $this = $(this);
			var s = $this.attr("fa") || "";
			var b = false;
			for(var i=0,l=q.length;i<l;i++){
				b = b || s.indexOf(q[i])>=0;
			}
			$this.toggleClass("filter_match", b);
			if(b) {
				$(this).show().parent().show().parent().show();
			}
		});
		$('#doorcategory_customsize_template').hide();

		$door.not(".filter_match").hide();
		//$door.filter(".filter_match").css("opacity", 1).slice(0,1).each(function(){$("html, body").stop().animate({scrollTop: $(this).offset().top-18}, {duration:1000, easing:"easeOutCirc"});});
		return false;
	});

	$("#fafilter").keypress(function(e){
		if(e.which===13){
			$("#col_fa .displaybutton").click();
			return false;
		}else{
			return true;
		}
	});

	// Create the left hand side navigation for the FAQ
	var $list = $("div.content_indexlist div.col1 ul");
	var faqcount = 0;
	$("div.content_indexlist div.col2 h2").each(function(){
		faqcount = faqcount + 1;
		$(this).attr("id", "faq_" + faqcount);
		$('<li><a href="#"></a></li>').appendTo($list)
			.find("a")
				.html("&raquo; " + $(this).html())
				.data("answer", this)
				.click(function(e){
					var $answer = $($(this).data("answer"));
					$answer.stop().css({background: "#cf3"}).animate({backgroundColor:"#000"}, 2500);
					$("html, body").stop().animate({scrollTop: $answer.offset().top-18}, {duration:1000, easing:"easeOutCirc"});
					return false;
				});
	});

	$("a.newwindow").click(function(){
		open(($(this).attr("href").indexOf("http://")===0?"":$("base").attr("href")) + $(this).attr("href"));
		return false;
	});



	// Run stuff ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
	$(".tt").fancytooltip().click(function(){return false;});

	// IE bugs out when a >input type="text"> has a background image and the user enters more
	// text than fits... therefor we'll wrap all inputs inside divs and put the background on
	// the div instead of the input...
	if($.browser.msie){
		(function(){
			var $inputs = $("input:text");
			var i = 0, l = $inputs.length;
			var process = function($input){
				if($input.closest(".ieinputbgbugwrapper").length>0) return;
				if($input.css("background-image")){
					var $wrapper = $input.wrap('<div class="ieinputbgbugwrapper"></div>').closest("div");
					// Copy over some stuff
					var css = {};
					$.each([
						"background-image","background-position-x","background-position-y",
						"padding-left","padding-top","padding-right","padding-bottom",
						"margin-left","margin-top","margin-right","margin-bottom",
						"position",
						"left","top",
						"width","height",
						"float"
					], function(){
						var s = this.toString();
						css[s] = $input.css(s);
					});
					css["overflow"] = "hidden";
					$wrapper.css(css);
					$input.css({
						"background-image": "none",
						"padding": "0px",
						"margin": "0px",
						"float": "none",
						"left": "0px",
						"top": "0px",
						"height": "auto",
						"position": "relative"
					});
				}
			};
			// Since these are being cloned we'll do them first..
			$("#doorcategory_customsize_template input:text").each(function(){
				process($(this));
			});
			var f = function(){
				if(i>=l) return;
				process($($inputs[i]));
				setTimeout(f, 25);
				i++;
			};
			f();
		})();
	}
/*
  $(".ncs ").bind("click", function(){
    if($(".ncspicker").length > 0) {return;}
    var that = this;
    var offset = $(this).offset();
    var $div = $('<div class="ncspicker"><applet class="ncspicker" width="445" height="395" code="com.ncscolour.ncscolourselector.NCSNavigator" archive="../media/NCSColourSelector.jar"><param name="URL" value=\'javascript:ncscallback("%1", "%2");\'><param name="NCS" value="' + $(this).val() + '"></applet></div>');
    var oldf = window.ncscallback;
    var t;
    var f = function(){
      window.ncscallback = undefined;
      $div.remove();
      clearInterval(t);
    };
    t = setInterval(function(){
      if(document.activeElement && document.activeElement.className){
        if(document.activeElement.className.indexOf("ncs") >= 0) {
          return;
        }
        f();
      }
    }, 500);
    window.ncscallback = function(ncs, rgb){
      $(that).val(ncs.replace(/'/g, ""));
      if(window.ncscallback && document.activeElement.className) {return; }
      f();
    }
    $("body").append($div.css({
      position: "absolute",
      left: offset.left - 485,
      top: offset.top - 345,
      width: "465px",
      height: "405px",
      paddingLeft: "10px",
      paddingTop: "10px",
      background: "url(/media/ncsbackground.png) no-repeat top left"
    }));
  });
*/
	$(".ncs ").bind("click", function() {
		if($(".ncspicker").length > 0) {
			return;
		}

		var that = this;
		var offset = $(this).offset();
		var $div = $('<div class="ncspicker"><embed src="media/lib/NCSNavigator.swf" flashvars="NCS=S%202040-G50Y&amp;URL=javascript:ncscallback(%251, %252)&amp;MAIL=javascript:ncsmail(%251)" id="NCSNavigator" quality="high" bgcolor="#ffffff" name="NCSNavigator" allowscriptaccess="sameDomain" pluginspage="http://www.adobe.com/go/getflashplayer" type="application/x-shockwave-flash" width="445" align="middle" height="445"></div>');

		var t;
		var f = function() {
			window.ncscallback = undefined;
			$div.remove();
			clearInterval(t);
		};
    t = setInterval(function(){
      if(document.activeElement && document.activeElement.className){
        if(document.activeElement.className.indexOf("ncs") >= 0 || document.activeElement.name == "NCSNavigator") {
			return;
        }

        f();
      }
    }, 500);
	window.ncsmail = function(ncs) {
		//Inget av följande alternativ fungerar med alla mailprogram

		//utf-8 (gmail, thunderbird)
		var mailbody = 'Hej,%0D%0A%0D%0AJag vill best%C3%A4lla f%C3%A4rgprov (A6 pappersformat) med f%C3%A4rgen NCS ' + ncs + '%0D%0A%0D%0AMin adress:';
		var mailsubject = 'F%C3%A4rgprov NCS ' + ncs;

		//ascii %E4 för ä (gmail?, thunderbird)
		//var mailbody = 'Hej,%0D%0A%0D%0AJag vill best%E4lla f%E4rgprov (A6 pappersformat) med f%E4rgen NCS ' + ncs + '%0D%0A%0D%0AMin adress:';
		//var mailsubject = 'F%E4rgprov NCS ' + ncs;

		//escaped (outlook 2007)
		//var mailbody = escape("Hej,\n\nJag vill beställa färgprov (A6 pappersformat) med färgen NCS " + ncs + "\n\nMin adress:");
		//var mailsubject = escape("Färgprov NCS " + ncs);

		//aao (alla, men är ingen riktig lösning)
		//var mailbody = "Hej,\n\nJag vill bestalla fargprov (A6 pappersformat) med fargen NCS " + ncs + "\n\nMin adress:";
		//var mailsubject = "Fargprov NCS " + ncs;


		location.href = 'mailto:info@ncscolour.com?cc=info@pickyliving.se&subject=' + mailsubject + '&body=' + mailbody;
	}

    window.ncscallback = function(ncs, rgb) {
		$(that).val(ncs.replace(/'/g, ""));
		if(window.ncscallback && document.activeElement.className ) {
			return;
		}

		if(document.activeElement.name == "NCSNavigator")
			return;

		f();
    }

    if( $('#shop_form').hasClass('s3') ) {
		$(this).parent().parent().append(
			$div.css(
				{
					left: 0,
					top: 72
				}
			)
		);
    } else {
    	$("body").append(
			$div.css(
				{
					left: offset.left - 485,
					top: offset.top - 345
				}
			)
		);
    }
  });

  $(".StartBildspel:first").each(function(){
    var $images = $(this).find("img");
    var $navigation = $('<div class="BildspelNavigation"></div>');
    $navigation.append('<div class="BildspelNext"></div>');
    $images.each(function(){
      $('<div class="BildspelButton Bildspel0"></div>').click(function(){
        $navigation.find(".Bildspel1").addClass("Bildspel0").removeClass("Bildspel1");
        $(this).removeClass("Bildspel0");
        $(this).addClass("Bildspel1");
        var img = $(this).data("linkedimg");
        $(img).hide().appendTo($(img).closest(".StartBildspel")).fadeIn("normal");
      }).data("linkedimg", this).appendTo($navigation);
    });
    $navigation.append('<div class="BildspelPrev"></div>');
    //$navigation.append('<div style="clear:both;"></div>');
    $navigation.appendTo(this);
    $navigation.find(".BildspelButton:last").click();
    $navigation.find(".BildspelPrev").click(function(){
      $navigation.find(".Bildspel1").nextAll(".Bildspel0:first").click();
    });
    $navigation.find(".BildspelNext").click(function(){
      $navigation.find(".Bildspel1").prevAll(".Bildspel0:first").click();
    });
    setInterval(function(){
      if(!auto) return;
      if($navigation.find(".Bildspel1").prevAll(".Bildspel0:first").click().length===0){
        $navigation.find(".BildspelButton:last").click();
      }
    }, 3000);

    //Stops slideshow when triggered for real
    $('.BildspelButton').click(function(event){
        if(event.originalEvent) {
            auto = false;
        }

    });
    //$(this).hover(function(){auto=false;}, function(){auto=true;});
  });
});
var auto = true;

