/*! LQGroup Skript */

function resetTableStyle() {
	var countRow = 1;
	$(".productTechnicalDescription tr").each(function() {
		if (countRow % 2 == 0) {
			$(this).attr("class", "even");
		} else {
			$(this).attr("class", "odd");
		}
		
		var countCol = 1;
		$("td", $(this)).each(function() {
			if (countCol == 1) {
				$(this).attr("class", "first");
			}
			countCol++;
		});
		countRow++;
	});
}

$(document).ready(function() {
	
	$.fn.extend({
		productGallery : function(options) {
			var defaults = {
				ulPadding : 20
			}
			
			var options = $.extend(defaults, options);
			
			var windowImages	= $('.window-images', $(this));
			var scrollPanel		= $('.scroll-panel', $(this));
			var scrollBar		= $('.scroll-bar div', $(this));
			
			function getScrollBarRange() {
				var scrollBarWidth		= scrollBar.width();
				var scrollBarRange		= windowImages.width() - scrollBarWidth;
				
				return scrollBarRange;
			}
			
			function scrollWindowLeft(pos, animate) {
				if (animate === undefined) {
					animate = false;
				}
				
				var scrollBarRange		= getScrollBarRange();

				var leftX = adjustWithinRange(pos, scrollBarRange);
				var ulWidth = getImagesWidth();
				var scrollLeft = leftX * (ulWidth - windowImages.width()) / scrollBarRange;
				
				if (animate == true) {
					windowImages.stop();
					windowImages.animate({scrollLeft: scrollLeft}, 500);
				} else {
					windowImages.scrollLeft(scrollLeft);
				}
				 
				return scrollLeft;
			}
			
			function adjustWithinRange(pos, range) {
				if (pos < 0) {
					pos = 0;
				} else if (pos >= range) {
					pos = range;
				}
				return pos;
			}
			
			function getImagesWidth() {
				var ul = $('ul', windowImages);
				var lastLi = ul.find('li:last-child');
				
				return lastLi[0].offsetLeft + lastLi.outerWidth() + defaults.ulPadding;
			}
			
			function scrollBarLeft(pos, animate) {
				if (animate === undefined) {
					animate = false;
				}
				
				var scrollBarRange		= getScrollBarRange();
				pos = adjustWithinRange(pos, scrollBarRange); 
				
				if (animate == true) {
					scrollBar.stop();
					scrollBar.animate({left: pos}, 500);
				} else {
					scrollBar.css( { left : pos + 'px'} );
				}
				
			}
			
			return this.each(function() {
				windowImages.css('overflow', 'hidden');
				windowImages.scrollLeft(0);
				
				scrollBar.draggable('destroy');
				scrollBar.css('left', '0px');
				scrollBar.draggable({
					containment : 'parent',
					drag : function(event, ui) {
						var barPos	= scrollBar.position().left; 
						scrollWindowLeft(barPos);
					},
					cursorAt : {left: 74}
				});
				
				$('ul li:last-child', windowImages).css({padding : '0'});
				
				$("ul li", windowImages).click(function() {
					$("ul li.active", windowImages).attr("class", "");
					var left = (windowImages.scrollLeft() + $(this).position().left + $(this).width() / 2) - windowImages.width() / 2;
					var imagesWidth	= getImagesWidth();
					var range		= getScrollBarRange();
					var pos = left / (imagesWidth - windowImages.width()) * range;
					
					$(this).attr("class", "active");
					scrollWindowLeft(pos, true);
					scrollBarLeft(pos, true);
				});
				
				if ($(this).attr('rel') == undefined) {
					$(this).mousewheel(function(event, delta) {
						var positionScrollBar		= scrollBar.position().left;
						var newPositionScrollBar	= positionScrollBar - delta * 25;
						
						scrollWindowLeft(newPositionScrollBar);
						scrollBarLeft(newPositionScrollBar);
						
						event.preventDefault();
					});
					
					scrollPanel.click(function(event) {
						var clickPos	= parseInt(event.pageX - scrollPanel.offset().left);
						var barPos		= scrollBar.position().left;
						
						if (clickPos <= barPos || clickPos >= barPos + scrollBar.width()) {
							scrollWindowLeft(clickPos - scrollBar.width() / 2);
							scrollBarLeft(clickPos - scrollBar.width() / 2);
						}
					});
					
					$(this).attr('rel', 'activated');
				}
			});
		}
	});
	
	$('.lq-product-gallery').productGallery();
	$('.product-slideshow').productGallery();
	
	$("#nav-top li:not(.sep):not(.dd-el-over):not(.dd-el-out):not(.dd-el-active)").hover(function() {
		$("ul.dropdown", this).fadeIn("fast");
		var img = $("img", this).get(0);
		img.src = img.src.replace("_mouseout","_mouseover");
		if (typeof activateDropdown == 'function') {
			activateDropdown();
		}
	}, function() {
		$("ul.dropdown", this).hide();
		if ($(this).hasClass("active") == false) {
			var img = $("img", this).get(0);
			img.src = img.src.replace("_mouseover","_mouseout");
		}
	});
	
	$("#nav-top ul.dropdown li:not(.dd-el-active):not(.sep):not(.mousespace):not(.shadow)").hover(function() {
		$(this).removeClass("dd-el-out");
		$(this).addClass("dd-el-over");
	}, function() {
		$(this).removeClass("dd-el-over");
		$(this).addClass("dd-el-out");
	});
	
	$("#nav-top ul.dropdown li:not(.dd-el-active):not(.sep):not(.mousespace):not(.shadow)").click(function() {
		var link = $("a", this).get(0);
		window.location = link.href;
	});
	
	$(".sidenav ul li:not(.sn-el-active):not(.sep)").hover(function() {
		$(this).removeClass("sn-el-out");
		$(this).addClass("sn-el-over");
	}, function() {
		$(this).removeClass("sn-el-over");
		$(this).addClass("sn-el-out");
	});
	
	$(".sidenav ul li:not(.sn-el-active):not(.sep)").click(function() {
		var link = $("a", this).get(0);
		window.location = link.href;
	});
	
	resetTableStyle();

	// Anfahrtsskizze
	
	$(".gMap .entry").click(function() {
		var map = $(".map", $(this).parent());
		var mapCanvas = $(".map_canvas", map);
		var mapUrl = $(".url", map).get(0).value;
		var btnPlusMInus = $(".btnPlusMinus", $(this).parent()).get(0);

		if (map.is(":hidden")) {
			map.show();
			btnPlusMInus.src = btnPlusMInus.src.replace("_plus","_minus");
			mapCanvas.html('<iframe width="620" height="350" frameborder="0" src="' + mapUrl + '"></iframe>')
		} else {
			map.hide();
			btnPlusMInus.src = btnPlusMInus.src.replace("_minus","_plus");
		}
	});
	
	$(".gMap .entry").each(function() {
		var map = $(".map", $(this).parent());
		map.hide();
	});
	
	// Aufklappbarer Bereich
	$(".swingArea .header").click(function() {
		var area = $(".area", $(this).parent());
		var btnPlusMInus = $(".btnPlusMinus", $(this).parent()).get(0);

		if (area.is(":hidden")) {
			area.show();
			btnPlusMInus.src = btnPlusMInus.src.replace("_plus","_minus");
		} else {
			area.hide();
			btnPlusMInus.src = btnPlusMInus.src.replace("_minus","_plus");
		}
	});
	
	var swingAreas = $(".swingArea");
	var swingAreaCount = swingAreas.length;
	swingAreas.each(function(i) {
		if (i == swingAreaCount - 1) {
			$(this).css("border-bottom", "none");
		}
	});
	
	var gMaps = $(".gMap");
	var gMapCount = gMaps.length;
	gMaps.each(function(i) {
		if (i == gMapCount - 1) {
			$(this).css("border-bottom", "none");
		}
	});
	
	var articles = $(".article");
	var articleCount = articles.length;
	articles.each(function(i) {
		if (i == articleCount - 1) {
			$(this).css("border-bottom", "none");
		}
	});
	
	var jobs = $(".job-title");
	var jobCount = jobs.length;
	jobs.each(function(i) {
		if (i == jobCount - 1) {
			$(this).css("border-bottom", "none");
		}
	});
	
	$("#finder-query").click(function() {
		var val = $(this).val();
		
		if (val == "Suchen" || val == "Search") {
			$(this).val("");
		}
	});
	
	
	
	
	//var lastSwingArea = $("div.swingArea:last-child");
	//alert(swingAreaCount);
	
	/*each(function() {
		alert("test");
		alert($(".header .title", this).html());
	});*/
	
});

/*
var hasQt   = false;
function hasQuickTime() {
    var userAgent = navigator.userAgent.toLowerCase();
    if (userAgent.indexOf("msie") != -1 && userAgent.indexOf("win") != -1) {
        document.writeln('<scr' + 'ipt language="VBScript"\>'); 
        document.writeln('on error resume next'); 
        document.writeln('if IsObject(CreateObject("QuickTimeCheckObject.QuickTimeCheck.1")) then'); 
        document.writeln('hasQt = True'); 
        document.writeln('end if');
        document.writeln('</scr' + 'ipt\>'); 
    } else {
    	var plugin;
        var i;
    	if (navigator.plugins != null && navigator.plugins.length > 0) {
            for (i = 0; i < navigator.plugins.length; i++) {
                plugin = navigator.plugins[i];
                if (plugin.name.indexOf("QuickTime") != -1) {
                    hasQt = true;
                }    
            }
        }
    }
    return hasQt;
}*/
