// JavaScript Document


var menu_active = false;

var teaser_images;
var teaser_buttons;
var teaser_text;

var dt;
var dt_min = 1000;

var teaser_height	= 360;
var teaser_current_id;
var teaser_next_id;
var btn_enabled = false;
var btn_current_id;

var interval_id;
var interval_duration = 3000;

var timeout_id;

var queue_images;
var queue_links;
var queue_titles;
var queue_text;


function Teaser()
{
	this.init_teaser	= function(xml_file)
	{
		$(window).load
		(
			function()
			{	
				$("#teaser .preloader .loader-bar").css('width', '0px');
				$("#teaser .preloader").css('display', 'block');
				$.get(xml_file, handle_on_success) 
					
				dt	= new Date().getTime();	
			}
		);
	}
}


function handle_on_success(data)
{
	queue_links		= $('.teaser-links li', data);
	queue_images	= $('.teaser-images li', data);
	queue_titles	= $('.teaser-titles li', data);
	queue_text		= $('.teaser-text li', data);
	
	
	$('.teaser-navigation').append('<ul></ul>');
	$('.teaser-images').append('<ul></ul>');
	
	load_image(0);
}


function load_image(index)
{
	//set preloader
	
	$("#teaser .preloader .loader-bar").css('width', 980*(index/queue_links.length) +'px')
	
	if(index >=queue_links.length)
	{
		if( new Date().getTime() - dt < dt_min)
		{
			setTimeout(build_application, dt_min)	
		
		} 
		else
		{
			build_application();
		}
		
		return;
	} 
	
	var link			= queue_links[index].innerHTML;
	var title			= queue_titles[index].innerHTML;
	var image			= queue_images[index].innerHTML;
	var text			= queue_text[index].innerHTML;
	var image_container;

	
	// build teaser navigation
	$('.teaser-navigation ul').append( $('<li><a href="' + link +'" title="' + title +'">' + title +'</a></li>').attr('class','division') );
	$('.teaser-text ul').append( $('<li>'+text+'</li>') );
	
	// load image
	$(new Image()).load( function()
		{
			image_container 	= $('<li></li>');
			$('.teaser-images ul').append(image_container);
			$(image_container).append(this);
			load_image(index+1);
		}
	).error
	(
		function () 
		{
			alert("error: loading file " + image);
        }
	).attr('src', image);
}



function build_application()
{
	$('.inner-html').css('display', 'block');
	
	teaser_images 			= $("#teaser .teaser-images li img");
	teaser_buttons			= $('#teaser .teaser-navigation .division a');
	teaser_text				= $('#teaser .teaser-text li');
	
	// Navigation Controller
	$("#teaser .teaser-navigation .controller a").click(
		function() { 
			
			// Menu anzeigen
			if(!menu_active)
			{
				btn_enabled = false
				$("#teaser .teaser-navigation").animate({top: '0'}, 400, function(){ btn_enabled = true });
				$("#teaser .teaser-navigation .controller a").html("Geschäftsbereiche ausblenden").addClass('active');
				menu_active = true;
				clearInterval(interval_id);
			} 
			// Menu verstecken
			else 
			{
				btn_enabled = false;
				$("#teaser .teaser-navigation").animate({top: teaser_height}, 400 );
				$("#teaser .teaser-navigation .controller a").html("Geschäftsbereiche einblenden").removeClass('active');
				menu_active = false;
				clearInterval(interval_id);
				interval_id	= setInterval( handle_on_interval, interval_duration);
			}
			
			return false;
		}		
	);
	
	
	// Geschäftsbereich Buttons
	$('#teaser .teaser-navigation .division a').each
	(
		function(index)
		{
			$(this).mouseover
			(
				function()
				{
					if(!btn_enabled) return;
					btn_current_id		= index;
					teaser_current_id	= index;
					display_current_button();
					display_current_image();
					display_current_text();
				}
			);
			
			$(this).mouseout
			(
				function()
				{
					if(!btn_enabled) return;
					
				}
			);
		}
	)
	//
	resest_teaser(0)
}



function display_current_button()
{
	$.each(teaser_buttons, function(key, value) 
	{
		if(key==btn_current_id)
		{
			$(value).animate({opacity: 1}, 0).addClass('active');
		}
		else
		{
			$(value).animate({opacity: .8}, 0).removeClass('active');
		}
	});
}


function display_current_image()
{
	$.each(teaser_images, function(key, value) 
	{
		if(key==teaser_current_id)
		{
			$(value).show();
		}
		else
		{
			$(value).hide();
		}
	});
}

function display_current_text()
{
	$.each(teaser_text, function(key, value) 
	{
		if(key==teaser_current_id)
		{
			$(value).show();
		}
		else
		{
			$(value).hide();
		}
	});
}


function resest_teaser()
{
	teaser_current_id	= 0;
	btn_current_id		= 0;
	
	display_current_button();
	display_current_image();
	display_current_text();
	
	clearInterval(interval_id);
	interval_id	= setInterval( handle_on_interval, interval_duration);
}




function handle_on_interval()
{
	set_current_id( (teaser_current_id+1) % teaser_images.length );
}




function set_current_id(id)
{
	teaser_current_id 	= id;
	btn_current_id		= id;
	//
	display_current_button();
	display_current_text();	
	//
	$.each(teaser_images, function(key, value) 
	{
		if(key==teaser_current_id)
		{
			$(value).fadeIn(400);
		}
		else
		{
			$(value).fadeOut(400);
		}
	});
}


