/**
 * @author alexander.farkas
 */

jQuery.noConflict();
(function($){

	function callOnDomReady() {
		$('html').addClass('js-on'); // html class

		createStyleSwitcher();

		//Zebra-Tables
		$('div.text tbody tr:nth-child(odd)').addClass('odd');

		addPrintLink();

		//wait for the swfobject DOM-Ready, so we can return a proper reference to flash object
		swfobject.addDomLoadEvent(function(){
			var s = $('div.flash')
				.embedSWF();
		});
		
		
		//initialize flowplayer
		window.contextPath = window.contextPath ||
			'';
		
		$("div.video a").flowplayer(
			contextPath + "/.resources/templating-kit/swf/flowplayer.swf", {
				// splash image
				clip:{
					autoPlay: false,
					autoBuffering: true
				}
			}
		);

		//different tabs
		createTabs();
		faqToc();

		//Teaser-Switchers
		$('div.teaser-wrapper:not(.tw-paging,.tw-slider)').scroller();

		pagingTeaserSwitcher();
		slidingTeaserSwitcher();

		$('body')
				.showbox({
					close: 'Schlie&szlig;en',
					prev: 'Vorheriges',
					next: 'N&auml;chstes',
					posBox: '#showbox',
					dialogPosStyle: 'absolute',
					constrainToView: false,
					top: 10
				});

		slidingTabs();

		$.socialbookmark.init('li.social-b a');


	}



	function slidingTabs(){
		$.fn.mySlide = function(fn){
			fn = fn || function(){};
			return this.animate({
				height: 'toggle',
				opacity: 'toggle'
			}, {
				duration: 500,
				complete: fn,
				deque: true
			});
		};
		
		$('ol.superpromos-toc')
			.each(function(){
				$(this)
					.bind('tabtreecollapse', function(e, ui){
						ui.panel
							.stop(true, true)
							.animate({
								height: 'hide',
								opacity: 0
							}, {duration: 500});
					})
					.bind('tabtreeexpand', function(e, ui){
						ui.panel
							.stop(true, true)
							.animate({
								height: 'show',
								opacity: 1
							}, {duration: 500});
					})
					.tabtree(
						{activeButtonClass: 'on', 
						selectEvents: 'mouseenter focus',
						handleDisplay: 'initial'
					})
					.find('a')
					.bind('click', function(e){
						
						if(e.pageX !== 0 && e.pageY !== 0){
							var url = $($(this).attr('href'))
								.find('a:first')
								.attr('href');
							if(url){
								location = url;
							}
						}
					});
			});


	}

	function pagingTeaserSwitcher(){
		function myPag(status){
				if(status == 'inactive'){
					$('a',this).animate({opacity: 0.5},{duration: 500});
				} else {
					$('a',this).animate({opacity: 1},{duration: 500});
				}
			}
			function myLink(status){
				if(status == 'show'){
					this.animate({opacity: 1},{duration: 500});
				} else {
					this.animate({opacity: 0},{duration: 500});
				}
			}
			$('div.teaser-wrapper.tw-paging').scroller({
				pagination: 'div.pagination',
				paginationFn: myPag,
				linkFn: myLink,
				paginationTitleFrom: 'h2',
				paginationAtoms: '<li class="pa-$number" title="$title"><a href="#">$number</a></li>'
			});
	}

	function slidingTeaserSwitcher(){
		
		$('div.teaser-wrapper.tw-slider')
			.each(function(){
				var jElm = $(this),
					slider = $('div.slider', this)
						.css({display: 'block'})
						.wrap('<div class="slider-bar" />');
				
				$('div.slider-bar', this)
					.append('<a href="#" class="prev">vor</a> <a href="#" class="next">zur��ck</a>');
				
				function slideSliderCall(e, o, ui){
					ui = ui ||
						o;
					var val = (ui && isFinite(ui.value))? ui.value : (o) ? o.value : false;
					jElm
						.scroller('moveTo', val + '%', false);
				}
				
				slider
					.slider({maxValue: 100})
					.bind('slide', slideSliderCall);
				
				jElm
					.scroller({
				        prevLink: 'div.slider-bar a.prev',
						nextLink: 'div.slider-bar a.next'
					})
					.bind('uiscrollerslide', function(e, d){
						slider
							.slider('value', d.percentPos);
					});
				
			});
	}


	function addPrintLink(){

		function print(){
			window.print();
			return false;
		}

		$('<li class="print"><a href="#">Drucken</a></li>')
			.prependTo('ul#text-features')
			.find('a')
			.click(print);
	}

	function faqToc() {
		var hash = location.hash;
			tabs = $('#faq-wrapper').find('h3 a');

		if(hash){
			tabs
				.filter('[href='+hash+']')
				.addClass('on');
		}

		$('#faq-wrapper')
			.bind('tabtreecollapse', function(e, ui){
				ui.panel.stop(true, true).slideUp(400);
			})
			.bind('tabtreeexpand', function(e, ui){
				ui.panel.stop(true, true).slideDown(400);
			})
			.tabtree(
				{
					buttonSel: 'h3 a',
					activeButtonClass: 'on',
					toggleButton: true,
					multiSelectable: true, 
					handleDisplay: 'initial'
				}
			);
	}

	$.fn.tabChangeAddon = function(){
		this
			.bind('tabtreecollapse', function(e, ui){
				ui.button.parent().removeClass('on');
			})
			.bind('tabtreeexpand', function(e, ui){
				ui.button.parent().addClass('on');
			});
		
		$('a.on', this)
			.parent()
			.addClass('on');
		return this;
	};

	function createTabs(){

		$('ol.text-box-toc, ol.toc-box-toc')
			.each(function(){
				$(this)
					.tabtree(
						{activeButtonClass: 'on'}
					)
					.tabChangeAddon();
			});
	}

	function createStyleSwitcher(){
		if(location.pathname.indexOf('forms.html') != -1){
			var box = $('<div class="box" />');
			box
				.append('<h3>Styleswitcher</h3>');
			box
				.appendTo('#extras-1');

			$.CssSwitcher.createVisualSwitcher()
				.appendTo(box[0]);

			$('input', box[0]).checkBox();
		}
	}

	$('html').addClass('js-on'); // html class
	
	$.extend($.ui.scroller.defaults, {
        //Elements Classes
        atoms: 'div.rack-teaser',
        prevLink: 'div.prev a',
		nextLink: 'div.next a'
	});


	$(callOnDomReady);
})(jQuery);
//SWM JS
jQuery(document).ready(function(){
	
	jQuery('#nav-global ul li a').hover( function () {
		jQuery(this).parent().addClass("lihili");
		}, 
		function () {
		jQuery(this).parent().removeClass("lihili");
	});
	
	jQuery('#nav-meta ul li a:last').addClass('noPipe');
	jQuery('#site-info li:last').addClass('noPipe');
	jQuery("#wrapper> br").css("display","none");
	
	jQuery('a').focus(function(){
		this.blur();
	});
	
	jQuery.each(jQuery('#main .teaser h2'), function() {
		if(!jQuery('#main .teaser h2').prev().get(0)){
			jQuery(this).addClass('ie6');
		}
	});
	
	jQuery('.teaserlist').before('<div class="iefix">&nbsp;</div>');
	jQuery('.teaserlist').after('<div class="iefix">&nbsp;</div>');
	
	jQuery('#passwordPlaceholder').focus(function() {
		this.style.display = 'none';
		jQuery('#j_password').css('display', 'inline');
		jQuery('#j_password').focus();
	});
	
});

jQuery(document).ready(function(){
    var match;
    jQuery("#nav-meta a").each( function() {
       var href = jQuery(this).attr("href");    
       if ( window.location.pathname.indexOf(href) != -1) {
         if ( match == null || href.length > jQuery(match).attr("href").length ) {
                            match = jQuery(this);
                    }
            }
    });
    jQuery(match).addClass("act");
		
});
//rounded form fields
DD_roundies.addRule(".rounded", "8px", true);

//add favorites
function addToFavorites(){ 
    if (window.sidebar) { // Mozilla Firefox Bookmark 
            window.sidebar.addPanel(document.title, location.href,""); 
    } else if( window.external ) { // IE Favorite 
            window.external.AddFavorite(location.href,document.title); 
    } else if(window.opera && window.print) { // Opera Hotlist 
            alert("Diese Funktion k�nnen Sie leider nur im Firefox und Internetexplorer benutzen"); 
    }
}