jQuery.extend({
	random: function(X) {
	    return Math.floor(X * (Math.random() % 1));
	},
	randomBetween: function(MinV, MaxV) {
	  return MinV + jQuery.random(MaxV - MinV + 1);
	}
});

jQuery.fn.log = function (msg) {
/*	if( typeof console != "undefined" ) {
		console.log("%s: %o", msg, this);
	}*/
	return this;
};

var
$navigationItems, $navigationWidget, $navigationWidgetMain,
$navigationWidgetMainItems, $navigationWidgetSub,
$navigationWidgetSubItems, $languageSwitch;

jQuery(function($){

	//swffit.fit( 'seite', 990, 590 );
	if( typeof showFlash != "undefined" && showFlash === true ){
		return false;
	}
	
	$('#backdrop').backdrop({width:1020, height:768, minHeight: 590, minWidth: 990});
		
	$('a[rel="modal"]').loader(true);
	
	//var
	$navigation = $('#navigation'),
	$navigationItems = $('> li > a', $navigation),
	$navigationWidget = $('#navigationWidget'),
	$navigationWidgetMain = $('#navigationWidget > ul'),
	$navigationWidgetMainItems = $('a', $navigationWidgetMain),
	$navigationWidgetSub = $('#submenuWidget', $navigationWidget),
	$navigationWidgetSubItems = $('a', $navigationWidgetSub),
	$languageSwitch = $('#languageSwitch');
	
	$languageSwitch.hover(
		function () {
			$languageSwitch.addClass('open').find('a').show();
		},
		function () {
			$languageSwitch.removeClass('open').find('a:not(.current)').hide();
		}
	).find('a:not(.current)').hide();
	
	$navigationItems.not('.current').css('backgroundPosition', '0 -35px');
	$('> li > ul', $navigation).hide();
	$navigationItems.hover(
		function () {
			if( !$(this).is('.current') ) {
				$(this).stop().animate({
					backgroundPosition: '0 0'
				}, 300);
			}
			gotoSubmenu( $(this).parent().index()-1 );
			
			$('> li > ul', $navigation).hide();
			$(this).siblings('ul').show();
		},
		function () {
			if( !$(this).is('.current') ) {
				$(this).stop().animate({
					backgroundPosition: '0 -35px'
				}, 300);
			}
			//$(this).siblings('ul').hide();
		}
	).parents('ul:first').bind('mouseleave', resetSubmenu);
	
	
	function gotoSubmenu( index ) {
		if( index < 0 || index >= $navigationWidgetSub.find('ul:first').children().length )
			return;
		
		$navigationWidgetSub.find('ul:first').stop().animate({
			top: (index * -111) + 'px'
		}, 0, 'easeOutCubic');

		$navigationWidgetSub.show();
		if( $navigationWidget.is('.start') ) {
			enableSubmenu();
		}
	};

	function resetSubmenu() {
		$('> li > ul', $navigation).hide();
		gotoSubmenu( $navigationWidgetMainItems.parent().has('a.current').index() );
	};
	
	function initNavigation() {
		$navigationWidgetMainItems.hover(
			function () {
				gotoSubmenu( $(this).parent().index() );
			},
			function (event) {
				
			}
		);
		
		$navigationWidgetSub.css({left: $(window).width()-$navigationWidgetSub.outerWidth()-50 }).hide();
		
		/*$navigationWidgetSub.css({left: $(window).width()-$navigationWidgetSub.outerWidth()-50 });
		.stop().animate({
			left:	-7
		}, 1000, 'easeOutCubic');*/
		$navigationWidgetSub.data('active', false);
		
		var index = $navigationWidgetMainItems.parent().has('a.current').index();
		$navigationWidgetSub.children('ul:first').css('top', (index * -122) + 'px');
		
		if( !$navigationWidget.is('.start') ) {
			gotoSubmenu( $navigationWidgetMainItems.parent().has('a.current').index() );
			disableSubmenu();
		}
		
		// Hash
		var hash = null;
		if( window.location.hash != '') {
			hash = window.location.hash.substr(1);
			var $activeItem = $navigationWidgetSubItems.filter('a[href$="/' + hash + '.html"]');
			$activeItem.log( $activeItem.length );
			if( $activeItem.length > 0 ){
				$activeItem.click();
			}
			$(this).log( hash );
		} else {
			$navigationWidgetSub.find('div > ul > li.current li:first a').click();
			$(this).log( 'first' );
		}
		// <--
	};
	
	function enableSubmenu() {
		if( $navigationWidgetSub.data('active') ){
			return;
		}
		$navigationWidgetSub.log('active');
		$navigationWidgetSub.data('active', true).addClass('_active').stop().animate({
			left:	$navigationWidgetMain.outerWidth()
		}, 1000, 'easeOutCubic');
	};
	
	/*function disableSubmenu() {
		$(this).log('hoverOut');
		$navigationWidgetSub.data('active', false).removeClass('active').stop().animate({
			left:	'-7px'
		}, 1000, 'easeOutCubic');
		resetSubmenu();
	}*/
	
	function disableSubmenu() {
		$(this).log('hoverOut');
		if( $navigationWidget.is('.start') ) {
			$navigationWidgetSub.data('active', false).removeClass('_active').stop().hide();
		} else {
			$navigationWidgetSub.data('active', false).removeClass('_active').stop().animate({
				left:	$navigationWidgetMain.outerWidth()//'-7px'
			}, 1000, 'easeOutCubic');
		}
		resetSubmenu();
	};
	
	/*function loadContent( url ) {
		$.loadContent( url );
	};*/
	
	/*$navigationWidgetSubItems.not('.special,[rel="modal"]').bind({
		click: function (event) {
			var
			self = $(this),
			url = self.attr('href');
			if( !url.match(/\#+/i) ) {
				event.preventDefault();
				$navigationWidgetSubItems.removeClass('current');
				loadContent( url );
				
				var hash = url.split('/');
				hash = hash.pop().replace(/\.html/i, '');
				window.location.hash = hash;
				
				//$navigationWidgetSubItems.removeClass('current');
				$(this).addClass('current');
				return false;
			}
		}
	});*/
	
	initNavigation();
	$navigationWidget.children('a.hitArea').bind('mouseenter', enableSubmenu);
	$navigationWidget.bind('mouseleave', disableSubmenu);
	
	// Form
	$('#request').live('submit', function (event) {
		event.preventDefault();
		var
		self = $(this),
		data = self.serialize();
		
		$.post( self.attr('action'), data, function (data) {
			try {
				if( data != '1' ) {
					self.parent().next('div').html( data );
					return false;
				}
				self.parent().next('div').html('Thank you for your message.');
				self.find(':input:not([type="submit"])').val('');
				return true;
			} catch(e){
				 
			}
		});
		return false;
	});
	// <--
});
