/**
 * Copyright (c) 2011 Tim Portner (mail@timportner.de)
 */
jQuery(document).ready(function(){
	
	var el;

	initAutoScalingNav({
		menuId: "hauptmenu",
		sideClasses: true,
		spacing: 1,
		constant: 0,
		flexible: true
	});

	if ($('div#slideshow_home').length > 0) {
		$('div#slideshow_home').wmSLIDESHOW();
	}

	if ($('div.slideshow_page .item').length > 0) {
		$('div.slideshow_page').wmSLIDESHOW();
	}

	if ($('div.news_box').length > 0) {
		
		$('div.news_box .item').hover(
		  function () { $('img',this).animate({ width: 254, marginLeft: '-9px', marginTop: '-9px' },300 ,'jswing'); },
		  function () { $('img',this).animate({ width: 244, marginLeft: '0px', marginTop: '0px' },150 ,'jswing'); }
		);

	}	

	if ($('.accordion').length > 0) {
	
		$('.accordion ul li div').each(function(){
			$(this).show().css('height', $(this).height()).hide();
		});
		
		
		$('.accordion ul li span.handle').live('click', function(){
		
			el = $(this);
			
			if ($(el).parent('li').hasClass('current')) 
				return;
			
			if ($('.accordion ul li.current').length > 0) {
				$('.accordion ul li.current div.content').slideUp(300, function(){
					$('.accordion ul li').removeClass('current');
				});
			}
			
			$('.accordion ul li div.content').each(function(){
				if ($(this).css('display') == 'block') {
					$(this).slideUp(300);
				}
			});
			
			$('div.content', $(el).parent('li')).slideDown(500, function(){
				$(el).parent('li').addClass('current');
				
			});
			
		});
		
	}	

	$("a[href$='jpg'], a[href$='gif'], a[href$='png'], a[href$='JPG']").fancybox({ 
		'transitionIn'	:	'elastic',
		'transitionOut'	:	'elastic',
		'speedIn'		:	600, 
		'speedOut'		:	200 
	});

});

function checkBrowserName(name){  
	var agent = navigator.userAgent.toLowerCase();  
	if (agent.indexOf(name.toLowerCase())>-1) { return true; }  
	return false;  
} 


/**
 * jQuery.wmSLIDESHOW
 * Copyright (c) 2011 Tim Portner (mail@timportner.de)
 */
$.fn.wmSLIDESHOW = function(options){

	var defaults = {
		intervalDurationStart: 3000,
		intervalDuration: 5000,
		animateDuration: 2000
	};
	
	var options = $.extend(defaults, options);
	var el = this;

	var wmInit = function(){
		
		if ( $('div.item',el).length < 2 ) {
			return false;
		}
		
		if (jQuery.isFunction($.preload)) { // if exist - setup image preload
			$.preload('#' + $(el).attr('id') + ' img');
		}
		
		$('div.item',el).css({opacity: 0});
		$('div.active',el).css({opacity: 1});
		
		$('html').delay(options.intervalDurationStart).queue(function(){
			$(this).dequeue();
			wmSlide();
		});	
		
	}
	
	var wmSlide = function(){

	    var $active = $('div.active',el);
		
		if ( $active.length == 0 ) $active = $('div.item:last',el);
		
		$active.addClass('last-active');
	
	    var $next =  $active.next().length ? $active.next() : $('div.item:first',el);
		$next.addClass('next-active');
	
		$active.animate({opacity: 0.0}, options.animateDuration);
		
		$next.css({opacity: 0.0}).animate({opacity: 1.0}, options.animateDuration, function(){
			$next.addClass('active').removeClass('next-active');		
			$active.removeClass('active last-active');		
		});

		$active.delay(options.intervalDuration).queue(function(){
			$(this).dequeue();
			wmSlide();
		});
	
	}

	wmInit();

};


// auto scaling

function initAutoScalingNav(o) {
	if (!o.menuId) o.menuId = "nav";
	if (!o.tag) o.tag = "a";
	if (!o.spacing) o.spacing = 0;
	if (!o.constant) o.constant = 0;
	if (!o.minPaddings) o.minPaddings = 0;
	if (!o.liHovering) o.liHovering = false;
	if (!o.sideClasses) o.sideClasses = false;
	if (!o.equalLinks) o.equalLinks = false;
	if (!o.flexible) o.flexible = false;
	var nav = document.getElementById(o.menuId);
	if(nav) {
		nav.className += " scaling-active";
		var lis = nav.getElementsByTagName("li");
		var asFl = [];
		var lisFl = [];
		var width = 0;
		for (var i=0, j=0; i<lis.length; i++) {
			if(lis[i].parentNode == nav) {
				var t = lis[i].getElementsByTagName(o.tag).item(0);
				asFl.push(t);
				asFl[j++].width = t.offsetWidth;
				lisFl.push(lis[i]);
				if(width < t.offsetWidth) width = t.offsetWidth;
			}
			if(o.liHovering) {
				lis[i].onmouseover = function() {
					this.className += " hover";
				}
				lis[i].onmouseout = function() {
					this.className = this.className.replace("hover", "");
				}
			}
		}
		var menuWidth = nav.clientWidth - asFl.length*o.spacing - o.constant;
		if(o.equalLinks && width * asFl.length < menuWidth) {
			for (var i=0; i<asFl.length; i++) {
				asFl[i].width = width;
			}
		}
		width = getItemsWidth(asFl);
		if(width < menuWidth) {
			var version = navigator.userAgent.toLowerCase();
			for (var i=0; getItemsWidth(asFl) < menuWidth; i++) {
				asFl[i].width++;
				if(!o.flexible) {
					asFl[i].style.width = asFl[i].width + "px";
				}
				if(i >= asFl.length-1) i=-1;
			}
			if(o.flexible) {
				for (var i=0; i<asFl.length; i++) {
					width = (asFl[i].width - o.spacing - o.constant/asFl.length)/menuWidth*100;
					if(i != asFl.length-1) {
						lisFl[i].style.width = width + "%";
					}
					else {
						if(navigator.appName.indexOf("Microsoft Internet Explorer") == -1 || version.indexOf("msie 8") != -1 || version.indexOf("msie 9") != -1)
							lisFl[i].style.width = width + "%";
					}
				}
			}
		}
		else if(o.minPaddings > 0) {
			for (var i=0; i<asFl.length; i++) {
				asFl[i].style.paddingLeft = o.minPaddings + "px";
				asFl[i].style.paddingRight = o.minPaddings + "px";
			}
		}
		if(o.sideClasses) {
			lisFl[0].className += " first-child";
			lisFl[0].getElementsByTagName(o.tag).item(0).className += " first-child-a";
			lisFl[lisFl.length-1].className += " last-child";
			lisFl[lisFl.length-1].getElementsByTagName(o.tag).item(0).className += " last-child-a";
		}
		nav.className += " scaling-ready";
	}
	function getItemsWidth(a) {
		var w = 0;
		for(var q=0; q<a.length; q++) {
			w += a[q].width;
		}
		return w;
	}
}

