Functions= {};
Slideranimation = {};
FlippingBook = {};
Akkordeon = {};
Search = {};
Util = {};

/* ---------------------------*/
/* ready -------------*/
/* ---------------------------*/
$( document ).ready( function () {
							
	 //lightbox
	 $('.lightbox').lightbox();
	 
	 //externe Links erstellen
	 Functions.externalLink();
	 
	 //info-slider
	 Slideranimation.init();
	 	
	//verlinkug: hintergrundbilder
	$(".clickLink").click(			
		function()
		{	
		    window.location = $(this).attr("title");
	});
	
	//akkordeon
	if( $(".akkordeon").length > 0  ){
		Akkordeon.init();
	}
	
	//search
	Search.init();
	

});
//end - document.ready()



//--------------------------
//----------       Akkordeon
//--------------------------
Akkordeon= {
	init: function() {
		 $(".akkordeon").each(function(i){							   
			 var charrange = 85;
			 
			 var textlength = $(this).children('.container').children('.longtext').children('.longtext_content').children('.text').text().length;	  
			 var shorttext = Functions.trim( $(this).children('.container').children('.longtext').children('.longtext_content').children('.text').text().substring(0, charrange) );
			 
			 if( textlength > charrange+1  ){ shorttext +=' ...'; }
			 $(this).children('.container').children('.shorttext').html( shorttext );
		
		 });
			 
			 
		$(".akkordeon").mouseover(function(){
			$(this).children('.headline').css('background-color', '#fff');							
		}).mouseout(
			function(){
				$(this).children('.headline').css('background-color', '#fbba00');							
												
			}
		);
		
		$(".akkordeon").click(function(){
					 if( $(this).hasClass('active_akkordeon') ){			
						var textheight = $(this).children('.container').children('.shorttext').height();					
						$(this).children('.container').children('.longtext').fadeOut( 500);		
						$(this).children('.container').animate({
								height: textheight + 20 + 'px'
								 }, 1000, 'swing', function() {
									$(this).children('.shorttext').fadeIn( 1000 );
									$('.active_akkordeon').removeClass('active_akkordeon');
				
						 });	
						//$(this).removeClass('active_akkordeon');
						
				 }else{		 
							 
					 if( $('.active_akkordeon').length > -1 ){
						//aktive Akkordeon-Box schließen
						 var textheight = $('.active_akkordeon').children('.container').children('.shorttext').height();	
						$('.active_akkordeon').children('.container').children('.longtext').fadeOut( 500);						
						$('.active_akkordeon').children('.container').animate({
								height: textheight +  20 + 'px'
								 },1000, 'swing', function() {
								$(this).children('.shorttext').fadeIn( 1000 );	
									
						 });	
						 $('.active_akkordeon').removeClass('active_akkordeon');
						
					  }		 
					 
						 //neue Akkordeon-Box öffnen					 
						 var textheight = $(this).children('.container').children('.longtext').css('display', 'block').height();
						 $(this).children('.container').children('.longtext').css('display', 'none');
						// alert(textheight);
						 $(this).addClass('active_akkordeon');
						 $(this).children('.container').children('.shorttext').fadeOut( 500);						
						 $(this).children('.container').animate({
							 height: textheight+ 30 +'px'//20  ... padding oder margin im content-bereich + 10 ... downloadbutton
							 //height: 'auto'
						 },1000, 'swing', function(){						 	
							 $(this).children('.longtext').fadeIn( 500 );
						
						 });
			 		}
		});
	
	}
}



//--------------------------
//----------    FlippingBook
//--------------------------
FlippingBook= {
	show: function(url) {		
		$("#shadow").show();
		$("body").append('<iframe id="flippingbook" frameborder="0" src="' + url + '"  ></iframe>');			
		FlippingBook.set();
		
	},
	close: function() {
		$("#closebook").hide();
		$("#shadow").hide();
		$("#flippingbook").remove();
	},
	set: function() {
		var dimension= Util.getWindowSize();
		
		var width= dimension[0];
		var height= dimension[1];
		
		if(dimension[0]<dimension[2]) {
			width= dimension[2];
		}
		if(dimension[1]<dimension[3]) {
		height= dimension[3];
		}
		
		$("#shadow").css("height", height).css("width", width);
		
		var top= (height-820)/2;
		var left= (width-1025)/2;		
		$("#flippingbook").css("top", top).css("left", left).css("visibility", 'visible');		
		$("#closebook").css("top", top).css("left", left+1025-30);
		$("#closebook").show();
		
	}
}


/* ---------------------------*/
/* -------------          Util*/
/* ---------------------------*/
Util= {
   getWindowSize: function(){
		var xScroll, yScroll;

		if (window.innerHeight && window.scrollMaxY) {
			xScroll = window.innerWidth + window.scrollMaxX;
			yScroll = window.innerHeight + window.scrollMaxY;
		} else if (document.body.scrollHeight > document.body.offsetHeight) {
			xScroll = document.body.scrollWidth;
			yScroll = document.body.scrollHeight;
		} else if(document.body) {
			xScroll = document.body.offsetWidth;
			yScroll = document.body.offsetHeight;
		}

		var windowWidth, windowHeight;
		if (self.innerHeight) {
			if(document.documentElement.clientWidth){
				windowWidth = document.documentElement.clientWidth;
			} else {
				windowWidth = self.innerWidth;
			}
			windowHeight = self.innerHeight;
		} else if (document.documentElement && document.documentElement.clientHeight) {
			windowWidth = document.documentElement.clientWidth;
			windowHeight = document.documentElement.clientHeight;
		} else if (document.body) {
			windowWidth = document.body.clientWidth;
			windowHeight = document.body.clientHeight;
		}

		if(yScroll < windowHeight) {
			pageHeight = windowHeight;
		} else {
			pageHeight = yScroll;
		}

		if(xScroll < windowWidth) {
			pageWidth = xScroll;
		} else {
			pageWidth = windowWidth;
		}

		var arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight);
		return arrayPageSize;
	},
  validateForm: function(id) {
		var result= true;		
		
		$("#"+id + " input, #"+id + " textarea, #"+id + " .checkbox, #"+id + " .select").each(function() {
			if($(this).attr("class") && $(this).attr("class").match("required")) {
			  $(this).val($(this).val().replace(/^\s+|\s+$/g, ''));
				var itemresult= Util.validate($(this).attr("id"));
				result= result && itemresult;
			}
		});
		return result;
		
	},
	validate: function(id) {
		var result= true;
		var obj= $("#"+id);
		var commands= $("#"+id).attr("class").split(" ");
		for(var i=0; i<commands.length; i++) {
			var command= commands[i].replace(/[0-9]/g, "");
			switch(command) {
				case("minlength"):
					var length= parseInt(commands[i].replace(/minlength/g, ""));
					result= result && (obj.val().length>=length);
					break;
				case("maxlength"):
					var length= parseInt(commands[i]);
					result= result && (obj.val().length<=length);
					break;
				case("email"):
					result = result && ( obj.get(0).value.match(/\S@\S.\S{2,}/)!=null );
					break;
				case("checkbox"):
					if( $("#"+id+":checked").length <= 0 ){
						result = result && false;
						$(".checkbox .help").addClass("error");
					}					
					break;
				case("select"):
					result = result && !( $("#"+id).val() == '---' );					
					break;
				default:
					result= result && (obj.val().length!=0);
					break;
			}
		}
						
		if(!result) {
			obj.addClass("error");
		} else {
			obj.removeClass("error");
			
		}
		return result;
	}
}



/* ---------------------------*/
/* Functions -------------*/
/* ---------------------------*/
Functions= {
	init: function(){
		//alert("init");
	},
	trim: function(s) {
		var l=0; var r=s.length -1;
		while(l < s.length && s[l] == ' ') {
			l++;
		}
		while(r > l && s[r] == ' ') {
			r-=1;
		}
		return s.substring(l, r+1);
	},
	externalLink: function () {
		 if (!document.getElementsByTagName) {
		 	return;
		 }
		 var anchors = document.getElementsByTagName("a");
		 for (var i=0; i<anchors.length; i++) {
			 var anchor = anchors[i];
			 if (anchor.getAttribute("href") && anchor.getAttribute("rel") == "external") {
			 	anchor.target = "_blank";
			 }
		 }
	 },
	 reloadPage: function(url){
	 		url = url.replace("+#+", "'" );
		    window.location = url;
		    location.reload();	
	 
	 }
};



/* --------------------------- */
/* search ------------------- */
/* --------------------------- */
Search= {
	active: false,
	
	init: function() {
	
		$("#search").hover(function() {
			$(this).get(0).focus();
		});
		$("#search").keyup(function() {
			Search.go();
		}).click(function() {
			Search.go();
		});
		$("#searchresults .close").click(function() {
			Search.hideResults();
		});
	},
	go: function() {
		if($("#search").val().length>=3) {
			$.ajax({
				url: '/helper/search/',
				data: 'term='+$("#search").val(),
				type: 'GET',
				dataType: 'html',
				timeout: 8000,
				success: function(html) {
					$("#searchresults .list").html(html);
					Search.showResults();
				}
			});
			
		} else {
			Search.hideResults();
		}
	},
	showResults: function() {
		if(!Search.active) {
			$("#searchresults").css("top", '-'+$("#searchresults").height()+35);
			$("#searchresults").animate({
				top: "180px"
			}, 500, 'swing', function() {
				Search.active= true;
			});
		}
	},
	hideResults: function() {
		if(Search.active) {
			postop= ($("#searchresults").height()+35)*-1;
			$("#searchresults").animate({
				top: postop
			}, 500, 'swing', function() {
				Search.active= false;
			});
		}
	}
}



/* ---------------------------*/
/* Slideranimation -------------*/
/* ---------------------------*/
Slideranimation= {
	stopp_animation: false,
	initSlide: true,
	html: '',
	timer: false,
	pause: function(  ){
	 		if( Slideranimation.stopp_animation ){
				Slideranimation.stoppTimer();
				Slideranimation.stopp_animation = false;
				$("#slider_left").show();
				$("#slider_right").show();
				var current_slideid = parseInt( $('#slide_item').attr('slidenumber')); 					
				Slideranimation.initSlide = true;
				Slideranimation.loadHtml(current_slideid+1);
				
			}else{
				Slideranimation.stoppTimer();
				Slideranimation.stopp_animation = true;	
				$("#slider_left").hide();
				$("#slider_right").hide();

			}
			
	},	
	init: function() {
		$("#slider_left, #slider_right").hover(function () {
			$(this).addClass("hover");
		}, function() {
			$(this).removeClass("hover");
		});		
		Slideranimation.loadHtml(1);		
		
	},
	previous: function( slideid ) {	
		Slideranimation.stoppTimer();
		if( !Slideranimation.stopp_animation ){	
			slideid--;
			if( BrowserDetect.browser != 'Explorer' ){
				$("#slider_info .sledge").fadeOut(500, function(){	
					Slideranimation.initSlide = true;
					Slideranimation.loadHtml( slideid );
										
				});
			}else{
				Slideranimation.initSlide = true;
			    Slideranimation.loadHtml( slideid );
			}		
			
		}	
		
	},
	next: function( slideid ) {
		Slideranimation.stoppTimer();
					
		if( !Slideranimation.stopp_animation ){	
			slideid++;
			if( BrowserDetect.browser != 'Explorer' ){
				$("#slider_info .sledge").fadeOut(500, function(){	
					Slideranimation.initSlide = true;
					Slideranimation.loadHtml( slideid );
										
				});
			}else{
				Slideranimation.initSlide = true;
			    Slideranimation.loadHtml( slideid );
			}		
			
		}				
		
	},
	getSlide: function( slideid ) {						
			if( !Slideranimation.stopp_animation ){
				Slideranimation.loadHtml(slideid);					
				Slideranimation.timer = window.setTimeout(function() {
					if( !Slideranimation.stopp_animation ){
						if( BrowserDetect.browser != 'Explorer' ){$("#slider_info .sledge").fadeOut(1000); }							
						$("#slider_info").html( Slideranimation.html );							
						if( BrowserDetect.browser != 'Explorer' ){ $("#slider_info .sledge").fadeIn(1000); }
						
						//HTML Ladden		
						var current_slideid = parseInt( $('#slide_item').attr('slidenumber'));	
					    Slideranimation.getSlide(current_slideid+1);
						    
					}											
					
				},5000);				
				
			}
					
	},
	loadHtml: function( slideid ){
			$.ajax({
					url: '/infoslider/'+slideid,
					data: 'slideid='+slideid,
					type: 'GET',
					dataType: 'html',
					timeout: 5000,
					success: function(html) {
						Slideranimation.html = html;
						if( Slideranimation.initSlide ){
							if( BrowserDetect.browser != 'Explorer' ){ $("#slider_info .sledge").fadeOut(500) };	
							$("#slider_info").html(Slideranimation.html);
							if( BrowserDetect.browser != 'Explorer' ){ $("#slider_info .sledge").fadeIn(1000) };
							Slideranimation.initSlide = false;
							Slideranimation.timer = window.setTimeout(function() {
								if( !Slideranimation.stopp_animation ){
									if( BrowserDetect.browser != 'Explorer' ){
										$("#slider_info .sledge").fadeOut(1000, function(){									    
									    	Slideranimation.getSlide(slideid+1);					    
									    			
										});
										
									}else{
										Slideranimation.getSlide(slideid+1);
									}		
									
								}
								
							},5000);
						}									
						
					}
				});
						
	},
	stoppTimer: function(){
		if( Slideranimation.timer ){
			window.clearTimeout( Slideranimation.timer );
		
		}
	}

}