/*----------------
 WIGGLE SLIDE v1.0
 By Jordan Boesch
 www.boedesign.com
-----------------*/

(function($)
{

	$.wiggleSlide = function(opt)
	{

		var $curr = $('div#slider-startsidan');

		// get the options
		var sliderNav = opt.sliderNav;
		var sliderClickLink = opt.sliderClickLink;
		var hiddenContainer = opt.hiddenContainer;
		var sliderItemClassName = opt.sliderItemClassName;
		var swingSpeed = opt.swingSpeed;
		var wiggle = opt.wiggle;
		var permalinking = opt.permalinking;

		// defaults
		if (sliderNav == null || sliderNav == '') sliderNav = '#slider-nav';
		if (sliderClickLink == null || sliderClickLink == '') sliderClickLink = 'a';
		if (hiddenContainer == null || hiddenContainer == '') hiddenContainer = '#invis-cont';
		if (sliderItemClassName == null || sliderItemClassName == '') sliderItemClassName = 'slider-item';
		if (swingSpeed == null || swingSpeed == '') swingSpeed = "medium";
		if (wiggle == null || wiggle == '') wiggle = true;
		if ((permalinking == null || permalinking == '') && permalinking != false)
		{
			(sliderClickLink == 'a') ? permalinking = true : permalinking = false;
		}

		// don't touch below this line unless you are a true john resig
		var sliderItemWidth = getSliderWidth(sliderItemClassName);
		var sliderContainerWidth = (sliderItemWidth) * $("." + sliderItemClassName).length;
		$(hiddenContainer).css('width', sliderContainerWidth);

		var relTitle;
		(sliderClickLink == 'a') ? relTitle = 'rel' : relTitle = 'title';

		// if they've entered something into the #, they want to see something specific
		if (window.location.hash && permalinking)
		{

			var a = window.location.hash.slice(1);
			var countLink = 0;

			$("." + sliderItemClassName).each(function()
			{
				countLink++;
				if ($(this).attr('id') == 'slider-' + a)
				{
					var sliderContStart = (sliderItemWidth) * countLink - sliderItemWidth;
					$(hiddenContainer).css('left', -sliderContStart + 'px');
				}
			});

		}

		// lets calculate the padding/margin offsets (if applicable)
		function getSliderWidth(sliderItemClassName)
		{

			var sliderClass = $("." + sliderItemClassName);
			var sliderClassWidth = parseInt(sliderClass.width());
			var paddingLeft = sliderClass.css('padding-left').split('px')[0];
			var paddingRight = sliderClass.css('padding-right').split('px')[0];
			var marginLeft = sliderClass.css('margin-left');
			var marginRight = sliderClass.css('margin-right');

			// IE6/7 are silly about this
			(marginLeft == 'auto') ? marginLeft = 0 : marginRight = marginRight.split('px')[0];
			(marginRight == 'auto') ? marginRight = 0 : marginRight = marginRight.split('px')[0];

			var marginsPaddings = parseInt(marginLeft) + parseInt(marginRight) + parseInt(paddingLeft) + parseInt(paddingRight);
			var totalUp = marginsPaddings + sliderClassWidth;
			return totalUp;

		}

		function bobble(e, lastPos, newPos)
		{

			if (e != 'startsidan')
			{
				$('#logoBelow').fadeIn('slow');
				$('a.prev').css('visibility', 'visible');
				$('#slider-nav').css('visibility', 'visible');

			} else
			{
				$('#logoBelow').fadeOut('slow');
				$('a.prev').css('visibility', 'hidden');
			}

			if (e != 'slut')
			{
				$('a.next').css('visibility', 'visible');

			} else
			{
				$('a.next').css('visibility', 'hidden');
			}
			//console.log(e);
			if (e == 'bordsbokning')
			{
				$('#rgForm').css('display', 'block');
			} else
			{
				$('#rgForm').css('display', 'none');
			}

			if ($('#' + e).attr('sub') == 'menyer' || e == 'menyer')
			{
				$('#menyerSub').slideDown('slow');
			} else
			{
				$('#menyerSub').slideUp('slow');
				$('div.innerpanel').css('display', 'none');
				$('div.show').css('display', 'block');
				$('#menyerContents').css('display', 'block');
			}

			if ($('#' + e).attr('sub') == 'catering' || e == 'catering')
			{
				$('#cateringSub').slideDown('slow');
			} else
			{
				$('#cateringSub').slideUp('slow');
				$('div.innerpanel').css('display', 'none');
				$('div.show').css('display', 'block');
				$('#cateringContents').css('display', 'block');
			}

			if ($('#' + e).attr('sub') == 'konferens' || e == 'konferens')
			{
				$('div.konferensContent').fadeIn('slow');
			} else
			{
				$('div.konferensContent').fadeOut('slow');
			}

			if (wiggle)
			{

				var wobbleOffset = 5;

				//                if(lastPos > newPos){
				//                    $(e).animate({left:(newPos+wobbleOffset)+'px'},{duration: "fast", easing: 'swing'});
				//                    $(e).animate({left:(newPos)+'px'},{duration: "fast", easing: 'swing'});
				//                }
				//                else {
				//                    $(e).animate({left:(newPos-wobbleOffset)+'px'},{duration: "fast", easing: 'swing'});
				//                    $(e).animate({left:(newPos)+'px'},{duration: "fast", easing: 'swing'});
				//                }

			}

		}

		function getSlidePos(slideId)
		{

			var numberPos = 0;
			var ret;

			$("." + sliderItemClassName).each(function()
			{
				numberPos++;
				if ($(this).attr('id') == slideId)
				{
					ret = numberPos;
				}
			});
			return ret;
		}

		$('.clickNyar').click(function()
		{
			$('#catering').click();

			$('#nyarssuppeCatering').delay(2000, function()
			{
				$('#nyarssuppeCatering').click();
			});
		});

		$('.clickStart').click(function()
		{
			$('#om28plus').click();
		});

		$(sliderNav + " " + sliderClickLink).each(function()
		{

			if (permalinking) $(this).attr('href', '#' + $(this).attr('id'));



			$(this).click(function()
			{

				$(sliderNav + " " + sliderClickLink).removeClass('selected');

				$('#' + $(this).attr('id')).addClass('selected');


				var sliderId = 'slider-' + $(this).attr('id');
				var slidePosition = getSlidePos(sliderId);

				$curr = $('#' + sliderId);
				if ($curr.attr('id').split('-')[1] != 'bordsbokning')
				{
					$('#rgForm').css('display', 'none');
				}

				var $t = $(this);

				// if they're on the current slide and they click it, don't move
				var lastPos = $(hiddenContainer).css('left').split('px')[0];
				newSlideNum = parseInt(slidePosition) * sliderItemWidth - sliderItemWidth;
				var newPos = -newSlideNum;
				$(hiddenContainer).animate({ left: newPos + 'px' }, { duration: swingSpeed, easing: 'swing', complete: function() { bobble($t.attr('id'), lastPos, newPos) } });
				if (!permalinking) return false;



			});
		});

		$('a.prev').click(function()
		{
			if ($curr.prev().attr('id') != undefined)
			{
				if ($curr.prev().attr('id') != '')
				{
					$curr = $curr.prev();
					if ($curr.attr('id').split('-')[1] != 'bordsbokning')
					{
						$('#rgForm').css('display', 'none');
					}

					//$(sliderNav+" "+sliderClickLink).removeClass('selected');
					$('a.selected').removeClass('selected');

					$('#' + $curr.attr('id').split('-')[1]).addClass('selected');

					var sliderId = $curr.attr('id');
					var slidePosition = getSlidePos(sliderId);


					// if they're on the current slide and they click it, don't move
					var lastPos = $(hiddenContainer).css('left').split('px')[0];
					newSlideNum = parseInt(slidePosition) * sliderItemWidth - sliderItemWidth;
					var newPos = -newSlideNum;
					$(hiddenContainer).animate({ left: newPos + 'px' }, { duration: swingSpeed, easing: 'swing', complete: function() { bobble($curr.attr('id').split('-')[1], lastPos, newPos) } });
					if (!permalinking) return false;



				}
			}
		});

		$('a.next').click(function()
		{
			if ($curr.next().attr('id') != '')
			{
				$curr = $curr.next();
				//console.log($curr);
				if ($curr.attr('id').split('-')[1] != 'bordsbokning')
				{
					$('#rgForm').css('display', 'none');
				}

				$(sliderNav + " " + sliderClickLink).removeClass('selected');

				$('#' + $curr.attr('id').split('-')[1]).addClass('selected');



				var sliderId = $curr.attr('id');
				var slidePosition = getSlidePos(sliderId);




				// if they're on the current slide and they click it, don't move
				var lastPos = $(hiddenContainer).css('left').split('px')[0];
				newSlideNum = parseInt(slidePosition) * sliderItemWidth - sliderItemWidth;
				var newPos = -newSlideNum;
				$(hiddenContainer).animate({ left: newPos + 'px' }, { duration: swingSpeed, easing: 'swing', complete: function() { bobble($curr.attr('id').split('-')[1], lastPos, newPos) } });
				if (!permalinking) return false;



			}

		});

	}

})(jQuery);