$(document).ready(
	function()
	{		
		
		$('.secondnav li.level2').hover(
			// mouseenter
			function() 
			{
				var element = $(this).find('.thirdnav');
				if(element.find('li').length > 0)
				{
					var height = element.height();
					element.height('0px').show().animate({height: height}, 300)
				}
			},
			// mouseleave
			function() 
			{
				$(this).find('.thirdnav').hide().height('auto');		
			}		
		)

		// faq search
		$('.module-faq_search div.entry').addClass('hidden');
		$('.module-faq_search a.toggle').click(
			function(event)
			{
				$(this).closest('td').find('div.entry').toggleClass('hidden')				
				event.preventDefault();
			}
		);
		
		//accordion
		$("#vms-manufacturer").accordion({
			autoHeight: false
		});
		
		// tab navigation
		$(".tabs").tabs();
		
		
		//benchmark movies
		if(typeof(jwplayer) != "undefined")
		{
			var swf = "/resources/scripts/plugins/jwplayer/player.swf";
			var benchmarkMoviePathLeft = '';
			var benchmarkMoviePathRight = '';			
			
			$('.leftselect').change(function(){				
				benchmarkMoviePathLeft = $(this).val();				
				p = jwplayer("player1");
				initMovies(p, benchmarkMoviePathLeft);
			})			
						
			$('.rightselect').change(function(){				
				benchmarkMoviePathRight = $(this).val();				
				p = jwplayer("player2");
				initMovies(p, benchmarkMoviePathRight);
			})									
			
			function initMovies(p, path)
			{
				if(p)
				{										
					p.setup({
						flashplayer: swf,
						file: path,
						height: benchmarkMovieHeight,
						width: benchmarkMovieWidth,
						icons: false,
						dock: false,
						controlbar: {position: "none"}
					});										
				}
			}						
		}
		
		$('#bm-play').click(
			function(event)
			{
				jwplayer(0).play();
				jwplayer(1).play();				
				event.preventDefault();
			}
		);
		
		$('#bm-stop').click(
			function(event)
			{
				jwplayer(0).stop();
				jwplayer(1).stop();				
				event.preventDefault();
			}
		);
		
		$('.paging .disabled').click(
			function(event)
			{												
				event.preventDefault();
			}
		);
		
		if($('.benchmarkImages').length > 0) {
			
			$('.leftselect').change(function(){				
				container = $(this).val();				
				src = $('div#'+ container + ' span.imagesrc').html();				
				$('#image1').empty();
				$('#image1').html('<a id="link1" href="#' + container + '"><img src="' + src + '" /></a>');
				$('#image1').parent('.imagecontainer').find('.zoom').show();
				$("a#link1").fancybox({
					'hideOnContentClick': false
				});
			})			
						
			$('.rightselect').change(function(){				
				container = $(this).val();				
				src = $('div#'+ container + ' span.imagesrc').html();				
				$('#image2').empty();
				$('#image2').html('<a id="link2" href="#' + container + '"><img src="' + src + '" /></a>');
				$('#image2').parent('.imagecontainer').find('.zoom').show();
				$("a#link2").fancybox({
					'hideOnContentClick': false
				});
			})						
		}
		
		if($('.cameraImages').length > 0) {
			// erstes Model selektieren und entsprechende Fotos einblenden
			$(".leftselect option[value='model-1']").attr('selected',true);
			$(".models:first").show();
			// Zoom-button zu jedem Foto hinzufügen
			$('.models').each(function(){
				$(this).find('li').append('<span class="zoom"></span>');
			})
			// Change Event Handler
			$('.leftselect').change(function(){
				$('.models').hide();
				$('#'+$(this).val()).show();
			})
			// Fancybox mit Inhalt füllen
			
			//$('.models li a[rel="group"]').fancybox()
			$('.models li img').click(function(){
				$.fancybox(
					$(this).parent('li').html(),
					{
						'autoDimensions'	: true
					}
				)
			})
		}
		
		//carrousel
		var carrouselSelected = 1;
		var carrouselMode = 0;
		
		$('.carrouselNavigationRect').click(function(){
			carrouselMode = 1;
			flipCarrousel($(this).index()+1);
		})
		
		window.setInterval(function(){
			if(carrouselMode == 0)
			{
				count = $('.carrouselNavigationRect').length;
				aim = carrouselSelected + 1;
				if(aim > count) aim = 1;
				flipCarrousel(aim);
			}
		}, 5000);

		function flipCarrousel(aim)
		{
			var i=1;
			if(aim != carrouselSelected)
			{
				carrouselSelected = aim;
				$('.carrouselPicture').each(function(){
					$(this).fadeOut('fast');
					if(i == aim)
					{
						$(this).fadeIn('fast');
					}
					i++;
				});
				$('.carrouselNavigationRectSelected').removeClass('carrouselNavigationRectSelected');
				$('.carrouselNavigationRect:eq(' + (aim-1) + ')').addClass('carrouselNavigationRectSelected');
			}
		}
		
		//gallery
		var gallerySelected = 1;
		var galleryMode = 0;
		
		$('#gallery-next').click(function(){
			galleryMode = 1;
			var item = 0;
			var selectedItem = $('.galleryNavigationRect.galleryNavigationRectSelected').index();
			var lastItem = $('.galleryNavigationRect').length;
			if (selectedItem >= lastItem )
			{
				item = 1;
			}
			else
			{
				item = selectedItem + 1;
			}
			flipPicture(selectedItem - 1, item -1);
			return false;
		})

		$('#gallery-prev').click(function(){
			galleryMode = 1;
			var item = 0;
			var selectedItem = $('.galleryNavigationRect.galleryNavigationRectSelected').index();
			var lastItem = $('.galleryNavigationRect').length;
			if (selectedItem <= 1 )
			{
				item = lastItem ;
			}
			else
			{
				item = selectedItem - 1;
			}
			flipPicture(selectedItem - 1, item -1);
			return false;
		})
		flipPicture=function(pic1, pic2)
		{
			$('.galleryPicture:eq('+pic1+')').hide();
			$('.galleryPicture:eq('+pic2+')').fadeIn('slow');
				$('.galleryNavigationRect:eq(' + pic1 + ')').removeClass('galleryNavigationRectSelected');
				$('.galleryNavigationRect:eq(' + pic2 + ')').addClass('galleryNavigationRectSelected');
		}

		//quicksearch
		function quickSearchSetUrl()
		{
			var serie = $('.quickSearchSeries option:selected').text();
			var model = $('.quickSearchProduct:not(.hidden) option:selected').val();

			var url = '/products/' + serie.replace(/ /g, "-") + '.html?model=' + model ;
			$('.quickSearch a').attr('href', url);
		}
		
		$('.quickSearch a.button').addClass('inactive');
		$('.quickSearchSeries').change(function(i){
			var modelId = 0;
			$(this).find("option:selected").each(function(){
				modelId = parseInt($(this).val());
			});
			if(modelId > 0)
			{
				$('.quickSearchSeries option[value=choose]').remove();
				$('.quicksearch > .dummy').hide();
				$('.quickSearchProduct').addClass('hidden');
				$('.quickSearchProduct:nth-child(' + (modelId+2) + ')').removeClass('hidden');
				$('.quickSearch a.button').removeClass('inactive');
			}
			quickSearchSetUrl();
		});
		
		$('.quickSearchProduct').change(function(){
			quickSearchSetUrl();
		});
		
		
		$('.filter select').change(function() {
			$(this).parents('form.filter').submit()
		});
		
		$('#documentsfilter, #accessoryfilter').find('#submit').hide()
		$('#documentsfilter select, #accessoryfilter select').change(function() {
			$(this).closest('form').find('#submit').trigger('click');
		});
				
		$('.module-camera_selector .camera').mouseover(
			function()
			{
				if(!$(this).find('.image').hasClass('inactive'))
				{
					$(this).find('.tooltip').removeClass('hidden');
				}
			}
		);
				
		$('.module-camera_selector .camera').mouseleave(
			function()
			{
				$(this).find('.tooltip').addClass('hidden');
			}
		);
		
		if($.browser.msie)
		{
			$('.module-camera_selector .camera .tooltip').hover(
				function() {
					$(this).find('a').focus();
				}
			)
			
			$('.module-camera_selector .camera *').dblclick(
				function(e) {
					e.preventDefault();
					return false;
				}
			)
			
			if($.browser.version == '7.0')
			{
				$(function() {
					var zIndexNumber = 1000;
					$('.module-camera_selector .matrix *').each(function() {
						$(this).css('zIndex', zIndexNumber);
						zIndexNumber -= 1;
					});
				});
			}
		}
		
		$('.module-camera_selector .camera .tooltip a').click(function() {
			window.location = this.href;
		})
			
		// camera selector
		$('#camera-selector select').change(
			function()
			{
				// build data array
				var values = {
					category: $('.module-camera_selector').attr('rel')
				};
				$('#camera-selector select').each(
					function()
					{
						values[$(this).attr('name')] = $(this).val();
					}
				);
				
				$.ajax(
					{
						type: 'POST',
						url: GLOBALS.webBasepath + '/ajax/selector/',
						data: values,
						success: function(response)
						{
							$('.module-camera_selector .camera .image').animate(
								{
									opacity: 0.3
								},
								500
							).addClass('inactive');
							for (var i in response)
							{
								var id = response[i];
								$('.module-camera_selector .camera[rel=' + id + '] .image').animate(
									{
										opacity: 1
									},
									500
								).removeClass('inactive');
							}
						},
						dataType: 'json'
					}
				);
			}
		);

		$('.matrix li.camera').dblclick(function() {
			window.location.href = $(this).find('a.hidden').attr('href');
		})

		var compareButton 	= $(".module-camera_selector a.compare");
		var hintButton 		= $(".module-camera_selector a.inactive");
		$(".matrix ul, .matrix table")
		.bind(
			"mousedown", 
			function(e) 
			{
				e.metaKey = true;
			}
		).selectable(
			{ 
				filter: '.camera',
				selected: function(event, ui) 
				{
					// show button "compare"
					compareButton.show();
					hintButton.hide();
					updateLightBox();					
				},
				unselected: function(event, ui) 
				{
					if ($(".matrix .ui-selected").length == 0)
					{
						compareButton.hide();
						hintButton.show();
					}			
					updateLightBox();
				}
			}
		)
		
		
		function updateLightBox()
		{						
			// get selected camera id's
			var ids = {};
			$(".matrix .ui-selected").each(
				function()
				{
					var id = $(this).attr('rel');
					ids[id] = id;
				}
			);
		
			// fetch markup via AJAX
			$.ajax(
				{
					type: 'POST',
					url: GLOBALS.webBasepath + '/ajax/comparer/',
					data: ids,
					success: function(response)
					{							
						// open lightbox with comparison table
						compareButton.fancybox(
							{
								content: response
							}
						);								
					},
					dataType: 'html'
				}
			);
		}
		
		// Document Download
		$('a.authorize').click(
			function()
			{
				var self = $(this);
				$('#download_userdata form')
					.remove('.download_file').remove('.business_id')
					.append('<input type="hidden" name="DownloadFile" class="download_file" value="'+self.attr('rel')+'" />')
					.append('<input type="hidden" name="BusinessId" class="business_id" value="'+self.parent().find('span.business').html()+'" />');
				
				
				$.fancybox(
					$('#download_userdata').html(), 
					{
						'autoDimensions': false,
						'width' : 440,
						'height' : 480,
						'padding' : 20,
						'overlayOpacity': '0.3',
						'onComplete' : function() 
						{
							/*
							var form = $('#download_userdata form');
							form.find('#BusinessId').attr('value', self.parent().find('span.business').html());
							form.find('#DownloadFile').attr('value', self.attr('rel'));
							*/
						}
					}
				); 
				
				return false;
			}
		)
		
		$('a.authorized').click(
			function(event)
			{
				event.preventDefault();
				var self = $(this);
				var form = $('#download_userdata form');
				
				form.remove('.download_file').remove('.business_id')
					.append('<input type="hidden" name="DownloadFile" class="download_file" value="'+self.attr('rel')+'" />')
					.append('<input type="hidden" name="BusinessId" class="business_id" value="'+self.parent().find('span.business').html()+'" />');
				
				/*
				var form = $('#download_userdata form');
				form.find('#BusinessId').attr('value', self.parent().find('span.business').html());
				form.find('#DownloadFile').attr('value', self.attr('rel'));
				*/
					$.post("ajax/download/", form.serialize(),
						function()
						{
							window.location.href = self.attr('rel');
						}
					);
				return false;
			}
		)
		
		
		$('#fancybox-content .form-button-submit').live(
			'click',
			function(event)
			{
				event.preventDefault();								
				
				$(this).find('span').append('<img src="resources/img/loading.gif" alt="loading" class="loading" />');
				
				var form = $('#fancybox-content form');
				
				$.ajax({
					url:"ajax/download/", 
					data:form.serialize(),
					dataType:"json",
					cache:false,
					type:"POST",
					success: function(data, textStatus, xhr) {			
						form.find('img.loading').remove();
						$('#fancybox-content .label').removeClass('error')
				    	
						//var res = jQuery.parseJSON(data);
						var res = data;				
						if(res.error.length > 0 && res.error != 'success') {
							if(!form.find('.errormsg').length)
				     		{
				     			form.find('.form').prepend('<p class="errormsg">'+res.error+'</p>')	
				     		}
				     		$('#fancybox-content .label').removeClass('error')
				     		$.each(res.fields, function(index, value) {
				     			$('#fancybox-content #'+value).parents('.form-entry').find('.label').addClass('error');
				     		})	
				     		res = "";
						}																			
				     	else {
				     		$.fancybox.close();
				     		window.location.href = $('#download_userdata .download_file').val();
				     						     		
				     	} 				     	
				  }
				});
				
				return false;
			}
			
		)
		
		// Formular Eingabefelder bei Focus leeren
		var clearMePrevious = ''
		$('input.clearFocus').focus(function()
		{
			if($(this).val()==$(this).attr('title'))
			{
				clearMePrevious = $(this).val();
				$(this).val('');
			}
		});
		// Formular Eingabefelder bei Blur ggf. wieder füllen
		$('input.clearFocus').blur(function()
		{
			if($(this).val()=='')
			{
				$(this).val(clearMePrevious);
			}
		});
		// Formular Eingabefelder bei Submit leeren,
		// wenn die Wert gleich Vorgabefeld ist
		$('form').submit(function()
		{
			$(this).find('input.clearFocus').each(
				function()
				{
					if($(this).val()==$(this).attr('title'))
					{
						$(this).val('');
					}
				}
			)
		})
		
		/****************************************
		 * 
		 *  Infocart / Anfragewarenkorb
		 * 
		 ****************************************/
		// infocart-adder
		$('.infocartAdder a').click(function(){
			var infocartAdder = $(this).parents('.infocartAdder');
			var productId = infocartAdder.attr('rel');
			var count = parseInt(infocartAdder.find('input').val());
			var url = "/ajax/infocart/?type=add&product=" + productId + "&count=" + count;
			getInfoBasketContent(url);
			return false;
		});
		
		if($('.infocartContainer').length)
		{
			getInfoBasketContent('/ajax/infocart/');
		}
		
		function getInfoBasketContent(url)
		{
			var list = $('.infocartContainer .infocart');
			list.empty();
			$.getJSON(url, function(data) {
				var i = 0;
				$.each(data, function(key, val) {
				   	var html = '<li class="infocart" rel="' + key + '">';
						html += '<img src="/media/assets' + val.pic + '" alt="' + val.name + '" width="32" />';
						html += '<span class="infocartCount">' + val.count + 'x</span>';	
						html += '<span class="infocartName">' + val.name + '</span>';
						html += '<span class="infocartRemove">X</span>';
						html += '</li>';
					list.append(html);
					i++;
				});
				if(i>0) $('.infocartContainer').removeClass('hidden');
				else $('.infocartContainer').addClass('hidden');
			});
			
		}
		
		// infocart-form
		$('div.infocartContainer a.button').click(function()
		{
			$.fancybox(
				$('#infocart_form').html(), 
				{
					'autoDimensions': false,
					'width' : 440,
					'height' : 500,
					'padding' : 20,
					'overlayOpacity': '0.3'
				}
			); 
			return false;
		});
		
		$('span.infocartRemove').live('click', function(){
			getInfoBasketContent("/ajax/infocart/?type=remove&product=" + $(this).parents('li').attr('rel'));
		});	
		
		$('li.infocart').live({
		  	mouseenter: function() {
		    	$(this).find('span.infocartRemove').show();
		  	},
		  	mouseleave: function () {
		    	$(this).find('span.infocartRemove').hide();
		  	}
		});
		
				
		// form submit
		$('#fancybox-content #infocartFormsubmit').live(
			'click',
			function(event)
			{
				event.preventDefault();
				
				var form = $('#fancybox-content form');
				
				$(this).find('span').append('<img src="resources/img/loading.gif" alt="loading" class="loading" />');
				
				$.post("ajax/infocart/?type=submit", form.serialize(),
					function(data) {
						form.find('img.loading').remove();
						$('#fancybox-content .label').removeClass('error');
						
						var res = jQuery.parseJSON(data);
				    	if(res.status == 'ok') {
				    		window.location.reload();
				     	}
				     	else 
				     	{
				     		if(!form.find('.errormsg').length)
				     		{
				     			form.find('.form').prepend('<p class="errormsg">'+res.error+'</p>')	
				     		}
				     		$('#fancybox-content .label').removeClass('error')
				     		$.each(res.fields, function(index, value) {
				     			$('#fancybox-content #'+value).parents('.form-entry').find('.label').addClass('error');
				     		})
				     		
				     	}
				   }
				);
				
				return false;
			}
		)
		
		// show infocart-list, if needed
		$('span.infocartRemove').hide();
		if($('div.infocartContainer ul.infocart li').length > 0)
		{
			$('div.infocartContainer').show();
		}
		
		// firefox bug
		var ua = $.browser;
		if ( ua.mozilla ) {
			$('button[type="submit"] span').css('marginTop','-2px');
		}
		
		// Format Date
		var lang = $('#lang').html();
		
		var monthDE = new Array('Januar','Februar','März','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember');		
		var monthEN = new Array('January','February','March','April','May','June','July','August','September','October','November','December');    	
		
		$('.date.replace').each(function(){
			var dateArr = $(this).html().split('-');
			var day = dateArr[2].split('&')[0];
			var month = dateArr[1];
			var year =  dateArr[0];
			if(lang == 'de')			
			{				
				$(this).html(day + '. ' + monthDE[month-1] + ' ' + year + ' ');
			}
			if(lang == 'en')
			{				
				$(this).html(monthEN[month-1] + ' ' + day + ', ' + year + ' ');
			}
		});
	}
	
);


