//auf mobilen Browser prüfen und weiterleiten
var n = navigator.userAgent;
var isMobile = /iphone/i.test(n) || /ipod/i.test(n) || /android/i.test(n) || /symbian/i.test(n) || /palm/i.test(n) || /bada/i.test(n) || /opera mini/i.test(n) || /iemobile/i.test(n) || /blackberry/i.test(n);
if (isMobile && confirm('Möchten Sie zur mobilen Version wechseln?')) window.location = 'http://m.re-lounge.com/';

var animationReferencesHome, sliderHome;

$(document).ready(function(){
    var leftActive = 0
    var widthActive = 0;
    
    window.setTimeout(function(){
        
        $('#header ul.navigation a.active').addClass('is_active');
        $('#header ul.navigation').append('<li class="hover_state"/>');  
        
        leftActive = $('#header ul a.is_active').position().left;
        widthActive = $('#header ul a.is_active').width();
        
        $('.hover_state').css({
            left: leftActive,
            width: widthActive
        });
    }, 1500);    
    
    $('#header ul.navigation li').not('.hover_state').hover(function(){
        var leftHover = $(this).find('a').position().left;
        var widthHover = $(this).find('a').width();
        
        $('li.hover_state').stop();
        
        $('li.hover_state').animate({
            left: leftHover,
            width: widthHover
        });
        
    }, function(){
        
        $('li.hover_state').stop();
        
        $('li.hover_state').animate({
            left: leftActive,
            width: widthActive
        });
    });
    
    
    $('#header ul.social a').hover(function(){
        var title = $(this).attr('title');
        $(this).removeAttr('title');
        $(this).parents('ul').prepend('<li title="'+title+'" class="title">'+title+'</li>'); 
    }, function(){
        $(this).attr('title', $('#header ul.social li.title').html());
        $('#header ul.social li.title').remove();
    }); 
    
	$('#stage .stage_slider.steps').rlStepScrollBar();
    $('#stage .content').rlScrollBar();
    $('#stage .dropdown').rlFilterDropdown();
    $('#site').rlStalkingPager();
    
    //Accordeon
    $('.accordeon h3').addClass('off');
    $('.accordeon p').hide();
    
    $('.accordeon h3').click(function(){  	
    	$(this).toggleClass('off');
    	
    	if( $(this).hasClass('off') ) { }
    	else {
    		$('.accordeon p:visible').slideUp('slow');
    		$('.accordeon h3').not(this).addClass('off');
    	}   	
    	$(this).nextUntil('h3').slideToggle('slow');
    });
    
    
    
    // Pager
    /*var actElement = $('div.wrapper ul li a.active');
    
    function getActRefId() {  	
    	prevElem = $('div.wrapper ul li a.active').closest('li').prev().find('a');
    	if ( $(prevElem).length == 0 ) {
    		prevElem = $('div.wrapper ul li:last-child a');
    	}
    	
    	nextElem = $('div.wrapper ul li a.active').closest('li').next('li').find('a');
    	if ( $(nextElem).length == 0 ) {
    		nextElem = $('div.wrapper ul li:first-child a');    		
    	}
    }
    
    getActRefId();
    
    $('#nextChild').live('click', function(e) {
    	e.preventDefault();
    	
    	getActRefId();
    	$(nextElem).trigger('click');
    	getActRefId();
    	return false;
    })
    
    
    $('#prevChild').live('click', function(e) {
    	e.preventDefault();
    	
    	getActRefId();
  		$(prevElem).trigger('click');
  		getActRefId();
    	return false;
    })*/

    
    
    
    //Fancybox
    $('a.lightbox').each(function() {
        if (typeof($(this).attr('title')) == 'undefined') {
            //tt_news schreibt title Attribute in img Tags, damit Fancybox sie anzeigt werden sie in das a Tag kopiert
            $(this).attr('title', $(this).children('img:first').attr('title'));
        }
    }).fancybox({'titlePosition': 'inside', 'overlayColor': '#fff', 'overlayOpacity': '0.5', 'hideOnContentClick': 'true'});
    
    
    
    /**
     * Addthis SocialPlugin (2-Klick-Button)
     */
    $("li.share").hover(
    		function(){
    	        var timeout_id = window.setTimeout(function(){ $('li.share').append('<div class="addthis_infobox"><div class="text">Aus Datenschutzgr&uuml;nden m&uuml;ssen Sie das Social-Plugin mit einem Klick aktivieren. Dabei werden ggf. Daten an Dritte &uuml;bertragen.</div></div>'); }, 100);
    	        $(this).data('li.share', timeout_id);
    	    },
    	    function(){
    	        window.setTimeout(function(){ $('li.share div.addthis_infobox').remove(); }, 400);
    	    }
	);
	
	$('li.share').click(function(){
		$('li.share div.addthis_infobox').remove();
		$.addthis('xa-4e43d77e68b67e23');
	});
	
	/**
	 * die Referenzen auf der Startseite automatisch animieren
	 **/	
	
});

function animateReferencesHome(ui, position){

	animationReferencesHome = window.setTimeout(function(){
		
		getLatestReference(position, false);
		
		if(position == 0){
			var nextPosition = 110;
		}
		
		if(position == 110){
			var nextPosition = 220;
		}
		
		if(position == 220){
			var nextPosition = 0;
		}
		
		animateReferencesHome(ui, nextPosition);
		$(ui).css('top', position+'px');
		
	}, 10000);
}

$.fn.rlScrollBar = function(){
    
    $(this).children().wrapAll('<div class="wrapper clearfix"/>');
    $(this).css('overflow', 'hidden');
    
    if($(this).find('.wrapper').length > 0){
    
        var wrapper = $(this).find('.wrapper');
        
        var sliderTop = 0;
        var stageContentOffsetTop = $(this).find('.wrapper').offset().top - 170; 
        
        if(wrapper.height() > 290){
            $(".stage_slider.full").append('<a>Slider</a>');
            var dragableSlider = $(".stage_slider.full a").draggable({
                grid: [0, 1],
                containment: 'parent',
                drag: function(event, ui){
                    sliderPosition = parseInt(ui.position.top);
                    value = (wrapper.height() / 230 * sliderPosition) - 285;
					value = value < 0 ? 0 : value;
                    wrapper.css('marginTop', '-'+value+'px');
                }
            });
            
        }
    }
    
    $('#stage.filled .content').bind('mousewheel', function(event, delta) {
        event.preventDefault();        
		
		var height = wrapper.height();
		var aktTopPosition = parseInt(wrapper.css('marginTop'));
		var newTopPosition = (delta * 50) + aktTopPosition;
		//console.info(newTopPosition);		
		
		var limit = (height - 300) + aktTopPosition;
		limit = limit < 0 ? 0 : limit;

		var slider = $(this).prev(".stage_slider").find('a');
		var aktSliderPosition = parseInt(slider.css('top'));
		
		var _aktTopPosition = (newTopPosition * -1) + 285;
		var _height = height / 230;
		var newSliderPosition = _aktTopPosition / _height;
		newSliderPosition = newTopPosition >= 0 ? 0 : newSliderPosition;
		console.info(newTopPosition);
		
		if(limit > 0 && delta == -1){
			wrapper.css('marginTop', newTopPosition+'px');
			slider.css('top', newSliderPosition+'px');
			
		}else if(limit < (height - 300) && delta == 1){
			wrapper.css('marginTop', newTopPosition+'px');
			slider.css('top', newSliderPosition+'px');

			
		}

    });
}

$.fn.rlStepScrollBar = function(){
	$(this).append('<a>Slider</a>');
	
    sliderHome = $(this).find('a').draggable({
        grid: [0, 110],
        containment: 'parent',
        stop: function(event, ui){
			clearTimeout(animationReferencesHome);
			getLatestReference(ui.position.top, true);
			
			if(ui.position.top == 0){
				var nextPosition = 110;
			}
			
			if(ui.position.top == 110){
				var nextPosition = 220;
			}
			
			if(ui.position.top == 220){
				var nextPosition = 0;
			}
			
			animateReferencesHome($(".stage_slider.steps a"), nextPosition);
			
        },
		create: function(event, ui){
			animateReferencesHome($(".stage_slider.steps a"), 110);
		}
    });
	
	//TODO
	/*$(this).closest('#stage').bind('mousewheel', function(event, delta) {
        event.preventDefault();
		
		var sliderPosition = parseInt(sliderHome.css('top'));
		sliderPosition = isNaN(sliderPosition) ? 0 : sliderPosition;
		
		console.info(sliderPosition);
	});*/
}

$.fn.rlFilterDropdown = function(){
    $ul = $(this);
    
    $ul.wrapAll('<div class="dropdown_container"/>');
    
    if($ul.find('li.active').length <= 0){
        $ul.before('<span class="current">'+$ul.find('li:first').html()+'</span>');
    }else{
        $ul.before('<span class="current">'+$ul.find('li.active').html()+'</span>');
    }
    
    $ul.addClass('styled');
    
    $ul.find('li').css({
        'float': 'none',
		'margin': '0 10px'
    }).click(function(){
    	
    	/* nach DropDown-Auswahl: Slider und Content-DIV am Start positioneren */
    	$('.ui-draggable').css('top', '0px');
    	$('.wrapper').css('margin-top', '0px');
    	
        $ul.prev('.current').html($(this).html());
        $ul.slideUp('fast', function(){
            $(this).prev('.current').removeClass('active');
        });
        
        if($(this).hasClass('filter')){
            filterReferences($(this).find('a').attr('rel'));
            return false;
        }else{
            filterArticles($(this).find('a').text());
            return false;
        }
    });

    $ul.prev('.current').bind('click', function(){
        $ul.slideToggle('fast');
        $(this).toggleClass('active');
        return false;
    });
    
}

/**
 * TODOS:
 * - Bei klick auf Weiter und Zurück muss noch herausgefunden werden, ob ein Filter aktiv ist oder nicht.
 * Die currentElement darf nur ein sichtbares Element sein!
 *
 * - Infinite clicks: wenn man an das Ende gelangt bzw. an den Anfang weiter loopen
 **/
$.fn.rlStalkingPager = function(){
    
	//Zum Debuggen wird der Pager erst mal durch _triggerPager() über die Browserkonsole gestartet!
	
	/*if(document.location.pathname == "/referenzen/"){
		$(this).addClass('has_pager');
	}*/
	
	var currentElement = null;
    
	if($(this).hasClass('has_pager')){
        if(!$.browser.msie){
            var pagerHTML = '<div id="pager"><a href="#" class="back">Zurück</a><a id="nextChild" href="#" class="next">Weiter</a></div>';
            $('body').append(pagerHTML);
            
            //var prevMoveX  = 0, prevMoveY = 0;
			$(document).mousemove(function(e){							

				if($('#site').is(':hover')){
                    $('#pager').fadeOut();
                    return false;
                }else{
                    $('#pager').fadeIn();
                }
                
                var factorX = 10;
                var factorY = 0;
                
                if(e.pageX < $('#site').position().left){
                    factorX = -125;
                }

				$('#pager').not(':hover').animate({
					'top': e.pageY + factorY,
					'left': e.pageX + factorX
				},{
					queue:false,
					duration:1500,
					easing:'easeOutExpo'
				});  
            });
			
			//Klick auf Weiter
			$('#pager a.next').bind('click', function(){
				
				currentElement = $('#stage').find('ul').find('a.active');
				
				if(currentElement.length == 0){
					$('#stage').find('ul').find('li:first a').trigger('click');
				}else{
					currentElement.closest('li').next('li').find('a').trigger('click');
				}
				
				return false;
				
			});
			
			//Klick auf Zurück
			$('#pager a.back').bind('click', function(){
				
				currentElement = $('#stage').find('ul').find('a.active');
				
				if(currentElement.length == 0){
					//$('#stage').find('ul').find('li:first a').trigger('click');
				}else{
					currentElement.closest('li').prev('li').find('a').trigger('click');
				}
				
				return false;
				
			});
        }
    }
}

$.fn.rlAccordeon = function(){
    
    if($(this).find('.accordeon').length > 0){
        
        $(this).find('.accordeon').addClass('off');
        $(this).find('.accordeon.off .content').hide();
        
        $(this).find('.accordeon.off h3').click(function(){
            $('.accordeon').not('.off').addClass('off').find('.content').slideUp();
            $(this).closest('.accordeon').removeClass('off').find('.content').slideDown();            
        });
        
    }else{
        return false;
    }
    
}

function _triggerPager(){
	$('#site').addClass('has_pager').rlStalkingPager();
}

