(function($){  
    $.fn.Intro = function(options) {       
             
    	opts  = $.extend({}, $.fn.Intro.defaults, options);

    	if ($(this).children().length<2) return false;
    	$(this).children().wrap('<div class="slide"></div>');
		
    	slides = $(this).find('.slide');		
		slideWidth = slides.width();

		$(this).css( { 'width':slideWidth, 'overflow':'hidden' } );
		slides.wrapAll('<div class="slideInner"></div>').css({'float' : 'left','width' : slideWidth});
		
		var slideInner = $(this).find('.slideInner');
		
		// Set #slideInner width equal to total width of all slides
		setTimeout(function(){
			slideInner.css({
				'width': slideWidth * slides.length,
				'overflow':'hidden',
				'height' : slideInner.find('.slide:nth-child(1)').height()
			})
		},1000);
		
		slideInner.css({
			'width': slideWidth * slides.length,
			'overflow':'hidden',
			'height' : slideInner.find('.slide:nth-child(1)').height()
		});

		
		// Create event listeners for .controls clicks
		opts.control_prev.bind('click', function(){
			//	Letztes Slide vorne anhängen
			slideInner.css('marginLeft' ,-slideWidth).find('.slide:last').prependTo(slideInner);
			slideInner.animate({
				  'marginLeft' : 0,
				  'height' : slideInner.find('.slide:nth-child(1)').height()
				},opts.speed);
		});
		
		opts.control_next.bind('click', function(){
			slideInner.animate({
				  'marginLeft' : -slideWidth,
				  'height' : slideInner.find('.slide:nth-child(2)').height()
			},opts.speed,function(){
				//	Erstes Slide hinten anhängen
				slideInner.css('marginLeft' ,0).find('.slide:first').appendTo(slideInner);
			});
		});
		
		var run_animation = function(){
			setTimeout(function(){
				
				slideInner.find('.slide:first').find('.slogan2').intro_typewriter({
					text: slideInner.find('.slide:first').find('.slogan').html(),
					complete: function(){
						if (slideInner.find('.slide:first').find('.unsereleistungen').length>0){
							setTimeout(function(){
								slideInner.find('.slide:first').find('.unsereleistungen').intro_typewriter({
									text: 'Unsere Leistungen in diesem Bereich:',
									complete: function(){
										setTimeout(function(){
											slideInner.find('.slide:first').find('.text1').slideDown(4000,function(){
												setTimeout(function(){
													next()
												},2000);
											});	
										},1000);
									}
								});
							},1000);
							
						}else{
							setTimeout(function(){
								next()
							},4000);
						}
					}
				});
			},1000);
		}
		
		var next = function(){
			
			slideInner.animate({
				  'marginLeft' : -slideWidth,
				  'height' : slideInner.find('.slide:nth-child(2)').height()
			},opts.speed,function(){
				
				slideInner.find('.slide:first').find('.slogan2').text('');
				slideInner.find('.slide:first').find('.text1').css('display','none');
				slideInner.find('.slide:first').find('.unsereleistungen').text('');
				
				//	Erstes Slide hinten anhängen
				slideInner.css('marginLeft' ,0).find('.slide:first').appendTo(slideInner);
				
				run_animation();
				
			});
		}
		
		slideInner.find('.text1').css('display','none');
		run_animation();
		//setTimeout(function(){
		//	next();
		//},2000);

    };  
    
    $.fn.Intro.defaults 	= {
		speed				: 900,
		control_prev		: $('.control_prev'),
		control_next		: $('.control_next')
	};

})(jQuery);  

(function($){
	function intro_typewriter(elem,params){
		var opts={
				delay:80,
				pos:0,
				text:'',
				complete: function(){return false}
		};
		
		$.extend(opts,params);
		var tlen=opts.text.length;
				
		if(tlen==0){
			opts.text=elem.html();
			tlen=opts.text.length;
		}

		elem.html('');
		var delaytime = 0;
		nextdelay = opts.delay;

		opts.text = opts.text.replace(/<br>/gi, String.fromCharCode(10));
		opts.text = opts.text.replace(/<br nodeindex=\"\d*\">/gi, String.fromCharCode(10));

		for(i=opts.pos;i<tlen;i++){
			t = opts.text.charAt(i);
			
			delaytime = delaytime + nextdelay;
			nextdelay = opts.delay;
			if (t==',' || t=='.') nextdelay = opts.delay * 8;

			setTimeout(function(){
				txt = opts.text.charAt(opts.pos);
				if (opts.text.charCodeAt(opts.pos)==10) txt = "<br />";
				
				elem.append(txt);
				opts.pos++;
				if (opts.pos>=tlen){
					opts.complete();
				}
			
			},delaytime);
		}
	}
	
	$.fn.intro_typewriter=function(params){
		$(this).each(function(){		
			intro_typewriter($(this),params);
		});
		return this;
	};
})(jQuery);
