/**
 * @project testo AG
 * @copyright Copyright (c) 2010 testo AG
 * @copyright Copyright (c) 2010 Namics [Deutschland] GmbH. All rights reserved.
 * @license MIT License
 * @see http://creativecommons.org/licenses/MIT/
 * @see http://opensource.org/licenses/mit-license.php
 * @see http://de.wikipedia.org/wiki/MIT-Lizenz
 * @date 2010-09-01
 * @author Eduard Seifert <eduard.seifert@namics.com>, Namics [Deutschland] GmbH
 * @lastmodified 2010-09-08
 */


/*
 *	loopedSlider 0.5.6 - jQuery plugin
 *	written by Nathan Searles
 *	http://nathansearles.com/loopedslider/
 *
 *	Copyright (c) 2009 Nathan Searles (http://nathansearles.com/)
 *	Dual licensed under the MIT (MIT-LICENSE.txt)
 *	and GPL (GPL-LICENSE.txt) licenses.
 *
 *	Built for jQuery library
 *	http://jquery.com
 *	Works with jQuery version 1.3+
 */
if(typeof jQuery!='undefined'){jQuery(function($){$.fn.extend({loopedSlider:function(options){var settings=$.extend({},$.fn.loopedSlider.defaults,options);return this.each(function(){if($.fn.jquery<'1.3.2'){return}var $t=$(this);var o=$.metadata?$.extend({},settings,$t.metadata()):settings;var distance=0;var times=1;var slides=$(o.slides,$t).children().size();var width=$(o.slides,$t).children().outerWidth();var position=0;var active=false;var number=0;var interval=0;var restart=0;var pagination=$("."+o.pagination+" li a",$t);if(o.addPagination&&!$(pagination).length){var buttons=slides;$($t).append("<ul class="+o.pagination+">");$(o.slides,$t).children().each(function(){if(number<buttons){$("."+o.pagination,$t).append("<li><a rel="+(number+1)+" href=\"#\" >"+(number+1)+"</a></li>");number=number+1}else{number=0;return false}$("."+o.pagination+" li a:eq(0)",$t).parent().addClass("active")});pagination=$("."+o.pagination+" li a",$t)}else{$(pagination,$t).each(function(){number=number+1;$(this).attr("rel",number);$(pagination.eq(0),$t).parent().addClass("active")})}if(slides===1){$(o.slides,$t).children().css({position:"absolute",left:position,display:"block"});return}$(o.slides,$t).css({width:(slides*width)});$(o.slides,$t).children().each(function(){$(this).css({position:"absolute",left:position,display:"block"});position=position+width});$(o.slides,$t).children(":eq("+(slides-1)+")").css({position:"absolute",left:-width});if(slides>3){$(o.slides,$t).children(":eq("+(slides-1)+")").css({position:"absolute",left:-width})}if(o.autoHeight){autoHeight(times)}$(".next",$t).click(function(){if(active===false){animate("next",true);if(o.autoStart){if(o.restart){autoStart()}else{clearInterval(sliderIntervalID)}}}return false});$(".previous",$t).click(function(){if(active===false){animate("prev",true);if(o.autoStart){if(o.restart){autoStart()}else{clearInterval(sliderIntervalID)}}}return false});if(o.containerClick){$(o.container,$t).click(function(){if(active===false){animate("next",true);if(o.autoStart){if(o.restart){autoStart()}else{clearInterval(sliderIntervalID)}}}return false})}$(pagination,$t).click(function(){if($(this).parent().hasClass("active")){return false}else{times=$(this).attr("rel");$(pagination,$t).parent().siblings().removeClass("active");$(this).parent().addClass("active");animate("fade",times);if(o.autoStart){if(o.restart){autoStart()}else{clearInterval(sliderIntervalID)}}}return false});if(o.autoStart){sliderIntervalID=setInterval(function(){if(active===false){animate("next",true)}},o.autoStart);function autoStart(){if(o.restart){clearInterval(sliderIntervalID);clearInterval(interval);clearTimeout(restart);restart=setTimeout(function(){interval=setInterval(function(){animate("next",true)},o.autoStart)},o.restart)}else{sliderIntervalID=setInterval(function(){if(active===false){animate("next",true)}},o.autoStart)}}}function current(times){if(times===slides+1){times=1}if(times===0){times=slides}$(pagination,$t).parent().siblings().removeClass("active");$(pagination+"[rel='"+(times)+"']",$t).parent().addClass("active")};function autoHeight(times){if(times===slides+1){times=1}if(times===0){times=slides}var getHeight=$(o.slides,$t).children(":eq("+(times-1)+")",$t).outerHeight();$(o.container,$t).animate({height:getHeight},o.autoHeight)};function animate(dir,clicked){active=true;switch(dir){case"next":times=times+1;distance=(-(times*width-width));current(times);if(o.autoHeight){autoHeight(times)}if(slides<3){if(times===3){$(o.slides,$t).children(":eq(0)").css({left:(slides*width)})}if(times===2){$(o.slides,$t).children(":eq("+(slides-1)+")").css({position:"absolute",left:width})}}$(o.slides,$t).animate({left:distance},o.slidespeed,function(){if(times===slides+1){times=1;$(o.slides,$t).css({left:0},function(){$(o.slides,$t).animate({left:distance})});$(o.slides,$t).children(":eq(0)").css({left:0});$(o.slides,$t).children(":eq("+(slides-1)+")").css({position:"absolute",left:-width})}if(times===slides)$(o.slides,$t).children(":eq(0)").css({left:(slides*width)});if(times===slides-1)$(o.slides,$t).children(":eq("+(slides-1)+")").css({left:(slides*width-width)});active=false});break;case"prev":times=times-1;distance=(-(times*width-width));current(times);if(o.autoHeight){autoHeight(times)}if(slides<3){if(times===0){$(o.slides,$t).children(":eq("+(slides-1)+")").css({position:"absolute",left:(-width)})}if(times===1){$(o.slides,$t).children(":eq(0)").css({position:"absolute",left:0})}}$(o.slides,$t).animate({left:distance},o.slidespeed,function(){if(times===0){times=slides;$(o.slides,$t).children(":eq("+(slides-1)+")").css({position:"absolute",left:(slides*width-width)});$(o.slides,$t).css({left:-(slides*width-width)});$(o.slides,$t).children(":eq(0)").css({left:(slides*width)})}if(times===2)$(o.slides,$t).children(":eq(0)").css({position:"absolute",left:0});if(times===1)$(o.slides,$t).children(":eq("+(slides-1)+")").css({position:"absolute",left:-width});active=false});break;case"fade":times=[times]*1;distance=(-(times*width-width));current(times);if(o.autoHeight){autoHeight(times)}$(o.slides,$t).children().fadeOut(o.fadespeed,function(){$(o.slides,$t).css({left:distance});$(o.slides,$t).children(":eq("+(slides-1)+")").css({left:slides*width-width});$(o.slides,$t).children(":eq(0)").css({left:0});if(times===slides){$(o.slides,$t).children(":eq(0)").css({left:(slides*width)})}if(times===1){$(o.slides,$t).children(":eq("+(slides-1)+")").css({position:"absolute",left:-width})}$(o.slides,$t).children().fadeIn(o.fadespeed);active=false});break;default:break}}})}});$.fn.loopedSlider.defaults={container:".container",slides:".slides",pagination:"pagination",containerClick:true,autoStart:0,restart:0,slidespeed:300,fadespeed:200,autoHeight:0,addPagination:false}})}


/**
 * Equal Heights Plugin
 *
 * @description Equalize the heights of elements.
 * Great for columns or any elements that need to be the same size (floats, etc).
 * 
 * @version 1.0
 * @lastmodified 12/10/2008
 * @author 2008 Rob Glazebrook (cssnewbie.com) 
 *
 * @see http://www.cssnewbie.com/equalheights-jquery-plugin/
 * @see http://www.cssnewbie.com/equal-height-columns-with-jquery/
 *
 * @author Revision: 1/14/2009, Jamie Krug
 * @notes Changed signature to accept one optional argument (options) as an 
 * associative array to better support more optional 'arguments' in a more 
 * readable fashion. Added overflow option, to override default CSS declaration.
 * Added addToHeight option, to optionally pad tallest height (can be used as a 
 * quick fix in quirky situations where a couple extra pixels will avoid overflow).
 *
 * @usage
 * $(object).equalHeights([minHeight], [maxHeight]);
 * $('.cols').equalHeights(); // Sets all columns to the same height.
 * $('.cols').equalHeights(400); // Sets all cols to at least 400px tall.
 * $('.cols').equalHeights(100,300); // Cols are at least 100 but no more
 * than 300 pixels tall. Elements with too much content will gain a scrollbar
 * $('.cols').equalHeights( { minHeight: 400 } );
 * $('.cols').equalHeights( { minHeight: 100, maxHeight: 300 } );
 * $('.cols').equalHeights( { overflow: 'visible' } );
 * $('.cols').equalHeights( { addToHeight: 3 } );
 */
(function($) {
	$.fn.equalHeights = function(optionsArg) {
		var options = { minHeight: 0, overflow: 'auto', addToHeight: 0 };
		for (var n in arguments[0]) {
			options[n] = arguments[0][n];
		}
		var tallest = options.minHeight;
		this.each(function() {
			if($(this).height() > tallest) {
				tallest = $(this).height();
			}
		});
		if((options.maxHeight) && tallest > options.maxHeight) {
			tallest = options.maxHeight;
		}
		tallest = tallest + options.addToHeight;
		return this.each(function() {
			$(this).height(tallest).css('overflow',options.overflow);
		});
	}
})(jQuery);


var TESTO = {
	// Variables
	
	// Initialize
	init: function() { jQuery(function($) {
		TESTO.addClassToBody();
		TESTO.initHoversTLN();
		TESTO.flyoutTeaserClose();
		TESTO.contentContext();
		TESTO.initTickerSlider();
	
	
	//	TESTO.klickDummyLinks();
		

	
		// Accordion
        var accordion = $(".accordion");
        if (accordion) {
		    accordion.accordion({ header: "h3", autoHeight:false, active:false});
        }
	
		// Tabs
		//$('#tabs').tabs();

		//Radio und Checkbox Ersetzung
	//	$(':radio').button();
	//	$(':checkbox').button();

		//$('#meta select').sSelect();


		

	})},
	
	// Functions
	/**
	 * addClassToBody
	 * @note Ad js class to body tag / Show items that are only available with JavaScript
	 */
	addClassToBody: function() { jQuery(function($) {
		$( 'body' ).addClass(' js');
	})},
	
	
	/**
	 * initHoversTLN
	 * @note class hover added to get :hover work properly in IE6 for li elements
	 */
	initHoversTLN: function() { jQuery(function($) {
		var speed = 200;
		$('ul#tln').children('li').hover(
			function() {
				$(this).find('div.flyout').fadeIn(speed).children().equalHeights();
				$(this).addClass('hover');
			},
			function() {
				$(this).removeClass('hover').find('div.flyout').fadeOut(speed);
			}
		);
	})},
	
	
	/**
	 * flyoutTeaserClose
	 */
	flyoutTeaserClose: function() { jQuery(function($) {
		var flyout = $('div.flyout');
		var closeButton = $('div.flyout div.teaser p.close a');
		var speed = 100;
		$(closeButton).click( function() {
			//$(flyout).fadeOut(speed).parent().removeClass('hover');
			$(this).parent().parent().parent().fadeOut(speed);
			return false;
		});
	})},
	
	
	/**
	 * contentContext
	 */
	contentContext: function() { jQuery(function($) {
		var context = $('div#content div.context').hide();
		var speed = 200;
		$('div#content div.col, div#content div.teaser').hover(
			function(){
				//$(this).stop().find('div.context').slideDown(speed);
				$(this).stop().find('div.context').fadeIn(speed);
				//$(this).stop().find('div.context').show();
			},
			function(){
				//$(this).stop().find('div.context').slideUp(speed);
				$(this).stop().find('div.context').fadeOut(speed);
				//$(this).stop().find('div.context').hide();
			}
		);
		
	})},
	
	
	/**
	 * initTickerSlider
	 */
	initTickerSlider: function() { jQuery(function($) {
		$('div#ticker-slider').loopedSlider({
			//container: ".container", //Class/id of main container. You can use "#container" for an id.
			//slides: ".slides", //Class/id of slide container. You can use "#slides" for an id.
			//pagination: "pagination", //Class name of parent ul for numbered links. Don't add a "." here.
			containerClick: false, //Click slider to goto next slide? true/false
			autoStart: 5000, //Set to positive number for true. This number will be the time between transitions.
			restart: 5000, //Set to positive number for true. Sets time until autoStart is restarted.
			slidespeed: 500, //Speed of slide animation, 1000 = 1second. (default 300)
			fadespeed: 200, //Speed of fade animation, 1000 = 1second.
			autoHeight: 0, //Set to positive number for true. This number will be the speed of the animation. (default 0)
			addPagination: false //Add pagination links based on content? true/false
		});
	})},
	
	
	/**
	 * klickDummyLinks
	 * @description prevent default link behaviour on empty development links
	 */
	klickDummyLinks: function() { jQuery(function($) {
		$('a[href="#"]').click(function(){
			return false;
		});
	})}

};

/**
 * DOM Ready | start the scripts when DOM ready
 * @note same as window.onload = function() {}
 */
jQuery(document).ready(function() {
	TESTO.init();
	
	
});



