var fo = fo || {};
var scrolled = false;

$.extend(fo, {
	/* called onload */ 
    init: function() {
		fo.Nav.init()		
		$('form.hbt select').change(function() {
			$(this).parents('form').submit();
		});
    },
    Nav : {
    	init : function(){			
			if ($('body').hasClass('landing')) {
				var landing = true;	
			} else if($('body').hasClass('home')){
				var home = true;
			} else {
				landing = false;
				home = false;
			}
			
			var nav = $('#nav')
			, navBar = nav.find('.hoverArea')
	    	, items = nav.find('.items')
	    	, list = items.find('ul')
	    	, listitems = list.find('li:not(.noTarget)')
	    	, links = items.find('a')
	    	, width = items.width()
	    	, height = items.height()
			
	    	//$.scrollTo($('#top'), 0)
	    	
			negwidth = (width +14) * -1;
			
			items.css("right", negwidth);
			if(landing || home){
				items.stop().animate({
					"right": "0"
				}, 'easeOutQuad');
			}
			if( home == false){
				navBar.bind('mouseenter', function(){
					nav.css('width', 'auto');
					items.stop().animate({
						"right": "0"
					}, 'easeOutQuad');
				})
				
				nav.bind('mouseleave', function(){
					items.stop().animate({
						"right": negwidth
					}, 'easeOutQuad', function(){
						fo.Nav.resetSize();
					});
				})
				
			}
			nav.find('.prev, .next').bind('mouseenter', function(){	
				nav.css('width', 'auto');
				items.stop().animate({
					"right": "0"
				}, 'easeOutQuad');
			})	
			
			$(window).scroll(function(e) {
				scrolled = true;
				fo.NavScroll.scrollStart();
			});		
				
			if($(window).scrollTop()>0){
					scrolled = true;
					fo.NavScroll.scrollStart();
					if( home == false){
						fo.Nav.hide(0);
					}
				}
						
			//scrolling nur für HOMEPAGE
			if(home){						
				if($(location).attr("hash")){
					hash = $(location).attr("hash");
					hash = hash.slice(1,hash.length)
					$('.'+ hash + ' a').addClass('current');	
					fo.NavScroll.scrollStart();				
					fo.Nav.hide(3000);
				}				
				nav.find('.prev, .next').click(function(e) {
					e.preventDefault()
		    		var dir = $(this).hasClass('next') ? 'next' :  'prev'
		    			, current = links.filter('.current')
		    			, id = (current.length) ? current.parent('li').attr('class').replace('page','') : 0
		    			, targetId = (dir == 'next') ? (parseInt(id)+1) : (parseInt(id)-1)
		    			, target = listitems.filter('.page'+targetId).find('a')
		    						
		    		if(dir=='prev' && !target.length && current.length){
		    			current.removeClass('current')
		    			$.scrollTo($('#top'), 800, { easing: 'easeOutCubic' })
		    		}			    			
					if(target.length){
	    				target.click()
	    			}	
		    	})		    	
		    	listitems.each(function() {
		    		var a = $(this).find('a')
		    		, href = a.attr('href')
		    		, target = (href != '#' ? $(href) : $('#top'))
		    		
		    		a.click(function(e) {
		    			e.preventDefault()
		    			links.filter('.current').removeClass('current')
		    			$.scrollTo(target, 800, { easing: 'easeOutCubic' })
		    			a.addClass('current')
		    		})
		    	})
			} else {
								
			}
	    	
			$('#searchfield').focus(function() {
				tmp_searchfield = $(this).val()
				$(this).val("");
			})
			$('#searchfield').blur(function() {
				if($(this).val() == null || $(this).val() == ""){
					$(this).val(tmp_searchfield);					
				}
			})
			
			$('.catalogue_submit').live('click', function(e){		
				e.preventDefault();
				var form = $('.form_catalogue');
				AJAX_URL = form.attr('action');						
				var FORM_DATA = form.serialize();						
				jQuery.ajax({
					url: AJAX_URL,
					cache: false,
					type: "POST",
					data: (FORM_DATA),
					dataType: "html",
					success: function(data){
						$('#page1 .right').html(data);
						jQuery.scrollTo($('#page1'), 800, { easing: 'easeOutCubic' })
					}
				});
			});
			
			$('.contact_submit').live('click', function(e){
				e.preventDefault();
				var form = $('.form_contact');
				AJAX_URL = form.attr('action');						
				var FORM_DATA = form.serialize();	
				jQuery.ajax({
					url: AJAX_URL,
					cache: false,
					type: "POST",
					data: (FORM_DATA),
					dataType: "html",
					success: function(data){
						$('#page6 .right').html(data);
						jQuery.scrollTo($('#page6'), 800, { easing: 'easeOutCubic' })
					}
				});
			});
			
			$('.contact_submit_pro').live('click', function(e){
				e.preventDefault();
				var form = $('.form_contact');
				AJAX_URL = form.attr('action');						
				var FORM_DATA = form.serialize();	
				jQuery.ajax({
					url: AJAX_URL,
					cache: false,
					type: "POST",
					data: (FORM_DATA),
					dataType: "html",
					success: function(data){
						$('#page9 .right').html(data);
						jQuery.scrollTo($('#page9'), 800, { easing: 'easeOutCubic' })
					}
				});
			});
			
			$('#catalogue_sonstiges').focus(function() {
				$('#catalogue_sonstigesMessage').fadeIn();
			});
			
			$('.iconlist .home a').click(function(e) {
				//e.preventDefault();
				$.scrollTo($('#top'), 800, { easing: 'easeOutCubic' })
			})
			$('.iconlist .basket a').click(function(e) {
				return
			})
			
			$('a.extern').click(function(e) {
				e.preventDefault();
				$.colorbox({
					href: this.href,
					iframe: true,
					width:"85%", 
					height:"90%"
				})
			})
					
			$('body').attr('id','top');
			
			$("li.basket").hover(
				function () {
					var WARENKORB_LINK = $('#warenkorb_link').attr('href');
					$('#flyout').fadeIn();
					
					jQuery.ajax({
						url: WARENKORB_LINK,
						cache: false,
						type: "GET",
						success: function(data){
							$('#flyout').html(data);
						}
					});
				}, 
				function () {
					$('#flyout').fadeOut();
				}
			);

			fo.NavScroll.scrollStart();		
			
    	},
		hide : function(latency){
			navHideTimer = setTimeout(function(){
				var nav = $('#nav')
		    	, items = nav.find('.items')
				, width = items.width();
				
				negwidth = (width + 14) * -1;
				
				items.stop().animate({
					"right" : negwidth
				}, 'easeOutQuad', function() {
					fo.Nav.resetSize();
			  	});
				
				clearTimeout(navHideTimer);
			}, latency);		
		},		
		resetSize : function(){
			var nav = $('#nav')
				, bar = $('#nav .bar')
				, barHeight = bar.height();
				
			nav.css('width' , '40px')
			bar.css('height', barHeight)
		}
    },
	NavScroll: {
		latency: 200,
		timer: null,
		NavScroll: false,
		
		scrollStart: function() {			
			if(fo.NavScroll.timer != null) {
				clearTimeout(fo.NavScroll.timer);
			}						
			fo.NavScroll.timer = setTimeout(function(){
				clearTimeout(fo.NavScroll.timer);
				fo.NavScroll.scrollEnd();
			}, fo.NavScroll.latency);

		},
		scrollEnd: function() {
			if(scrolled){
				var winOffsetTop = $(window).scrollTop(),
				nav = $('#nav');
				if($('body').hasClass('landing')){
					winOffsetTop += 30;					
				} else {
					winOffsetTop += 50;					
				}
										
				nav.animate({
					top: winOffsetTop
				},200);	
			}			
		}
	}
})
$(fo.init)
