$(document).ready(function() {
	if ($('.adviceContent').length > 0)
		slider($('.adviceContent'));
	if ($('.showOnLoad').length > 0)
		$('.showOnLoad').css("display","block");
	if ($('.hideOnLoad').length > 0)
		$('.hideOnLoad').css("display","none");
	/* ppt - Teaser Tour */
	$('a[href^="#ttour"]').gallery({
		gFadeIn: 500,
		gFadeOut: 500,
		gAutoplay: 7000,
		gReplay: 'area[href="#again"]'
	});
});


function slider($el) {
    
    var opts = {
        fxduration: 250
    }
        
    $el.each(function() {
        var $prev = $('<div class="prev"><span>zur&uuml;ck</span></div>');
        var $next = $('<div class="next"><span>vor</span></div>');
        var $barCont = $('<div class="barArea"></div>').css('position', 'relative');
        var $bar = $('<div class="bar"><span>zieh mich</span></div>').css('position', 'absolute');
        
        var $slider = $('<div class="slider"></div>').css('position', 'relative');
        
        $slider.append($prev).append($next).append($barCont.append($bar));
        $(this).append($slider);
        
        var $list = $(this).find('ol');
        $list.children().hide(0);
        $list.children(':first').show(0);
        
        $activeImage = $('<img class="active" />').css('position', 'absolute');
        
        var $images = $(this).find('.images');
        $images.css('position', 'relative').append($activeImage);
        
        $images.children().not('.active').click(function() {
            $bar.moveTo($images.children().index($(this)));
        });
        
        $bar.css('left', 57);
        
        $activeImage.attr('src', $images.children('img').eq(0).attr('src'))
            .attr('alt', $images.children('img').eq(0).attr('alt'))
            .css({
                left: $images.children('img').eq(0).position().left,
                top: 0
            });
        
        $images.children('img').each(function() {
            if(!$(this).hasClass('active'))
                $(this).attr('src', $(this).attr('src').replace(/ak/, 'pa'));
        });
        
        var maxPos = {
            left: 57,
            right: 387
        }
        
        $next.click(function() {
            var $act = $list.children(':visible');
            if ($act.next().length > 0)
                $bar.moveTo($list.children().index($act.next()));
        });
        $prev.click(function() {
            var $act = $list.children(':visible');
            if ($act.prev().length > 0)
                $bar.moveTo($list.children().index($act.prev()));
        });
        $bar.mousedown(function(e) {
            $(document).mouseup(function() {
                $bar.trigger('mouseup');
            }).mousemove(function(e) {
                $bar.triggerHandler('mousemove', e);
            });
            $(this).data('isClicked', true);
            $(this).data('startPos', {
            	x: e.pageX,
            	y: e.pageY
            });
            
            e.preventDefault();
            return false;
        });
        $bar.mouseup(function(e) {
           $(document).unbind('mouseup');
           $(this).data('isClicked', false);
           
           var areaDistance = $barCont.width() / $list.children().length;
           for (var i = 0; i < $list.children().length; i++) {
               if(($bar.position().left + ($bar.width() / 2)) > (i * areaDistance)
                   && ($bar.position().left + ($bar.width() / 2)) < ((i +1) * areaDistance)) {
                   $bar.moveTo(i);
                   break;
               }
           }
           e.preventDefault();
           return false;
        });
        $(document).mousemove(function(e) {
            var c = $bar.data('isClicked');
            var startPos = $bar.data('startPos');
            
            if (startPos == null || !c || e.pageX < $bar.offset().left || e.pageX > $bar.offset().left + $bar.width())
                return false;
            
            var newPos = {
            	x: parseInt($bar.css('left')) + e.pageX - startPos.x,
            	y: parseInt($bar.css('top')) + e.pageY - startPos.y
            }
            
            if (newPos.x < maxPos.left) newPos.x = maxPos.left;
            if (newPos.x > maxPos.right) newPos.x = maxPos.right;
            
            $bar.css('left', newPos.x);
            
            startPos.x = e.pageX;
            startPos.y = e.pageY;
        });
        $bar.moveTo = function(index) {
            newLeft = 0;
            
            var $act = $list.children(':visible');
            var $next = $list.children().eq(index);
            
            switch(index) {
                case 0: newLeft = 57; break;
                case 1: newLeft = 219; break;
                case 2: newLeft = 381; break;
            }
            
            $(this).animate({ left: newLeft }, opts.fxduration);
            
            if ($list.children().index($act) == index)
                return false;
            
            $act.fadeOut(opts.fxduration, function(){
                $next.fadeIn(opts.fxduration);
            });
            
            $activeImage.fadeOut(opts.fxduration, function() {
                $activeImage.attr('src', $images.children('img').eq(index).attr('src').replace(/pa/, 'ak'))
                    .attr('alt', $images.children('img').eq(index).attr('alt'))
                    .css({
                        left: $images.children('img').eq(index).position().left,
                        top: 0
                    })
                    .fadeIn(opts.fxduration);
            });
        }
    });
    
}


