var general = {

	curPanel:				1,
	panelIdNumber:			0,
	movingDistance:			443, //width +20 
	startLeftCssPosition:	119,
	orgPanelWidth:			423,
	orgPanelImageWidth:		423,
	panelStartOpacity:		0.8,
	panelEndOpacity:		1,
	curWidth:				641,
	curImgWidth:			641,
	countPanels:			0,
	curLinkSize: 		'13px',
	
	isMSie: navigator.userAgent.toLowerCase().indexOf('msie') > -1,
	isEe6: (navigator.appName == "Microsoft Internet Explorer" && parseInt(navigator.appVersion) == 4 && navigator.appVersion.indexOf("MSIE 6.0") != -1),


	init: function(){
		general.bubble();
		
		if (general.isMSie) {
			$('#panel_1 .inside img').attr('src','gui/images/cards/start.jpg');
			$('#panel_2 .inside img').attr('src','gui/images/cards/amerikansk-asiatisk-lager.jpg');		
			$('#panel_5 .inside img').attr('src','gui/images/cards/europeisk-lager.jpg');		
			$('#panel_16 .inside img').attr('src','gui/images/cards/tjeckisk-tysk-lager.jpg');			
			$('#panel_24 .inside img').attr('src','gui/images/cards/veteol.jpg');			
			$('#panel_29 .inside img').attr('src','gui/images/cards/belgisk-ale.jpg');			
			$('#panel_32 .inside img').attr('src','gui/images/cards/brittisk-ale.jpg');		
			$('#panel_35 .inside img').attr('src','gui/images/cards/porter-stout.jpg');		
			$('#panel_39 .inside img').attr('src','gui/images/cards/mikrobryggd.jpg');
				
			$('.panel .panel-inside-linkplacer').remove();
			
			if (general.isEe6) {
				$('.inside h3, .inside p').remove();
				$('.facebook-icon').attr('src','gui/images/facebook-icon.gif');
				$('.twitter-icon').attr('src','gui/images/twitter-icon.gif');
			}			
		}
		
		if ($('#slider').length > 0) {		
			setTimeout ( "general.initMovingBox()", 2000 );	
		}	

	},

	bubble: function(){

		//if ($('').length > 0) {}
				
		$('.no-link').live('click', function() {
			$('.question-layer').html('<img src="gui/images/question2.png" class="question-img" />')
			return false;
		});		
		
		$('.yes-link').live('click', function() {
			window.location = 'olakademien.html'
			return false;
		});		

		$('.deepLinkage').live('click', function() {
			var deepLink = $(this).attr('title');
			general.deepLinkage(deepLink);
			return false;
		});

		$('.menu li:not(".menu li li")').mouseenter(function(){
			general.menuHandler(this,true);
		}).mouseleave(function(){
			general.menuHandler(this,false);
		});

		$('.footer div.share-holder').mouseenter(function(){
			$('.share-layer').fadeIn()
		}).mouseleave(function(){
			$('.share-layer').fadeOut()
		});

		$(".scrollButtons").mouseup(function(){
			$(this).css('background-position','left top')
		}).mousedown(function(){
			$(this).css('background-position','left -76px')
		});	

		$(".fancybox").fancybox({
			'transitionIn'	:	'elastic',
			'transitionOut'	:	'elastic',
			'speedIn'		:	200,
			'speedOut'		:	200,
			'titleShow'		:	false,
			'overlayColor'	:	'#312600',
			'overlayOpacity':	'0.6'
		});

	},
	
	getUrlVars: function(){
		var vars = [], hash;
		var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
		for(var i = 0; i < hashes.length; i++) {
			hash = hashes[i].split('=');
			vars.push(hash[0]);
			vars[hash[0]] = hash[1];
		}
		return vars;
	},
	
	getUrlVar: function(name){
		return general.getUrlVars()[name];
	},
	
	menuHandler: function(e,state){	
		var $submenuElm = $(e).find('.submenu');
		if (state) {
			$(e).addClass('hover')
			$submenuElm.fadeIn(100)
		} else {
			$(e).removeClass('hover')
			$submenuElm.hide();
		}
	},

	deepLinkage: function(deepLink){

		$('#slider .scrollContainer > div').css({width: general.orgPanelWidth+'px', opacity: general.panelStartOpacity})

		$('#slider .scrollContainer > div img').css({width: general.orgPanelImageWidth+'px', marginTop: '85px' })

		window.location.hash = deepLink ? deepLink : window.location.hash.substring(1,window.location.hash.length) || $("#panel_1").attr('class').substring(6,$("#panel_"+general.curPanel).attr('class').length)

		if ('' == window.location.hash || '#' == window.location.hash) {
			$('#slider .scrollContainer').css('left',general.startLeftCssPosition+'px')	
		} else {

			var hash = window.location.hash.substring(1,window.location.hash.length);

			var panelId = $('#slider .scrollContainer').find('.'+hash).attr('id');

			general.panelIdNumber = panelId.match(/[\d\.]+/g);

			general.curPanel = general.panelIdNumber[0];
			
			//console.log('-'+(295*general.panelIdNumber)-general.startLeftCssPosition + ' ' + general.panelIdNumber);
			
			if (1 == general.panelIdNumber) {
				$('#slider .scrollContainer')
				.animate({
					'left': general.startLeftCssPosition+'px'
				}, 800,'easeInOutQuint');				
			} else {
				$('#slider .scrollContainer')
				.animate({
						'left': '-'+(((443*general.panelIdNumber)-443)-general.startLeftCssPosition)+'px'
				}, 800,'easeInOutQuint');
			}
		}

		general.growBigger("#panel_"+general.curPanel);	
		
		$(".left, .right").fadeIn();
		if (general.curPanel == 1) {
			$(".left").fadeOut();
		} else if (general.curPanel == general.countPanels) {
			$(".right").fadeOut();
		}
		
	},

	initMovingBox: function(){
		
		
		$("#loader_placer").fadeOut();
		$("#slider .scroll .scrollContainer .panel").css('visibility','visible');
		$(".panel-inside-linkplacer").fadeOut()

		/* Moving Box jQuery plugin
		*  http://css-tricks.com/moving-boxes/
		*/
		
		var totalPanels			= $(".scrollContainer").children().size();
		//var regParSize		= $(".panel p").css("font-size");
		//var curParSize		= "15px";

		var $panels				= $('#slider .scrollContainer > div');
		general.countPanels 	= $panels.length;
		var $container			= $('#slider .scrollContainer');

		$panels.css({'float' : 'left','position' : 'relative'});

		$("#slider").data("currentlyMoving", false);

		$container.css({'width': ($panels[0].offsetWidth * $panels.length) + 1566, 'left': general.startLeftCssPosition+'px' })

		var scroll = $('#slider .scroll').css('overflow', 'hidden');

		//direction true = right, false = left
		function change(direction) {			

			//if not at the first or last panel
			if((direction && !(general.curPanel < totalPanels)) || (!direction && (general.curPanel <= 1))) { return false; }	

			//if not currently moving
			if (($("#slider").data("currentlyMoving") == false)) {

				$("#slider").data("currentlyMoving", true);

				var next         = direction ? parseFloat(general.curPanel) + 1 : parseFloat(general.curPanel) - 1;
				var leftValue    = $(".scrollContainer").css("left");
				var movement	 = direction ? parseFloat(leftValue, 10) - general.movingDistance : parseFloat(leftValue, 10) + general.movingDistance;

				general.returnToNormal("#panel_"+general.curPanel);

				$(".scrollContainer")
					.stop()
					.animate({
						"left": movement
					}, 800,'easeInOutQuint', function() {
						$("#slider").data("currentlyMoving", false);
					});
								
				general.growBigger("#panel_"+next);
				general.curPanel = next;
				
				if (general.curPanel == 1) {
					$(".left").fadeOut();
				} else if (general.curPanel == general.countPanels) {
					$(".right").fadeOut();
				} else {
					$(".left, .right").fadeIn();
				}

				window.location.hash = $("#panel_"+general.curPanel).attr('class').substring(6,$("#panel_"+general.curPanel).attr('class').length)

				//remove all previous bound functions
				$("#panel_"+(general.curPanel+1)).unbind();	
				
				//go forward
				$("#panel_"+(general.curPanel+1)).click(function(){ change(true); });
				
				//remove all previous bound functions
				$("#panel_"+(general.curPanel-1)).unbind();
				
				//go back
				$("#panel_"+(general.curPanel-1)).click(function(){ change(false); }); 
				
				//remove all previous bound functions
				$("#panel_"+general.curPanel).unbind();
			}
			
		}
		
		general.deepLinkage();
		
		// Set up "Current" panel and next and prev
		general.growBigger("#panel_"+general.curPanel);
		general.curPanel
		
		$("#panel_"+(general.curPanel+1)).click(function(){ change(true); });
		$("#panel_"+(general.curPanel-1)).click(function(){ change(false); });
					
		//when the left/right arrows are clicked
		$(".right").click(function(){ change(true); });	
		$(".left").click(function(){ change(false); });
		
		$(window).keydown(function(event){
		  switch (event.keyCode) {
				case 13: //enter
					$(".right").click();
					break;
				case 32: //space
					$(".right").click();
					break;
		    case 37: //left arrow
					$(".left").click();
					break;
				case 39: //right arrow
					$(".right").click();
					break;
		  }
		});		
			
	},
	
	growBigger: function(element){
		$(element)
			.animate({ width: general.curWidth , opacity: general.panelEndOpacity })
			.find("img")
			.animate({ width: general.curImgWidth, marginTop: '0px' }, 700)
			.end()
			.find(".panel-inside-linkplacer")
			.fadeIn()
			//.animate({ fontSize: general.curLinkSize })
			.end()
			//.find("p")
			//.animate({ fontSize: curParSize });
	},
	
	returnToNormal: function(element){		
		var regWidth			= $(".panel").css("width");
		var regImgWidth			= $(".panel img").css("width");
		var regTitleSize		= $(".panel .panel-inside-linkplacer a").css("font-size");		

		$(element)
			.animate({ width: general.orgPanelWidth+'px' , opacity: general.panelStartOpacity })
			.find("img")
			.animate({ width: general.orgPanelImageWidth+'px', marginTop: '85px' }, 700)
			.end()
			.find(".panel-inside-linkplacer")
			.fadeOut()
			//.animate({ fontSize: regTitleSize })
			.end()
			//.find("p")
			//.animate({ fontSize: regParSize });
	}
	
}

$(function (){
	
	var answer = general.getUrlVar('a');
	
	if ("yes" === answer) {
		window.location = 'olakademien.html';
		return false;
	} else {
		$(".question-layer").show();
	}
	
	general.init();
});
