/* =========================================================

// jquery.innerfade.js

// Datum: 2008-02-14
// Firma: Medienfreunde Hofmann & Baldes GbR
// Author: Torsten Baldes
// Mail: t.baldes@medienfreunde.com
// Web: http://medienfreunde.com

// based on the work of Matt Oakes http://portfolio.gizone.co.uk/applications/slideshow/
// and Ralf S. Engelschall http://trainofthoughts.org/

 *
 *  <ul id="news"> 
 *      <li>content 1</li>
 *      <li>content 2</li>
 *      <li>content 3</li>
 *  </ul>
 *  
 *  $('#news').innerfade({ 
 *	  animationtype: Type of animation 'fade' or 'slide' (Default: 'fade'), 
 *	  speed: Fading-/Sliding-Speed in milliseconds or keywords (slow, normal or fast) (Default: 'normal'), 
 *	  timeout: Time between the fades in milliseconds (Default: '2000'), 
 *	  type: Type of slideshow: 'sequence', 'random' or 'random_start' (Default: 'sequence'), 
 * 		containerheight: Height of the containing element in any css-height-value (Default: 'auto'),
 *	  runningclass: CSS-Class which the container get’s applied (Default: 'innerfade'),
 *	  children: optional children selector (Default: null)
 *	 'slide_timer_on':	default slider is on like 'yes' but you stop auto play using 'no'
 *   'slide_ui_parent':	'news',
 *	 'slide_ui_text':	profilio text ul id
 *   'pause_button_id':  pause button id,
 *   'slide_nav_id':		slide navigation ul id
 *  }); 
 *

// ========================================================= */


(function($) 
{

    $.fn.innerfade = function(options) 
	{
		var settings;
		var elements;
		var elements_title;
		var curr_slide_id_number;
		var next_slide_id_number;
		return this.each(function() 
		{   
			$.innerfade(this, options);
		});
    };
    //control play and  pause functionality 
    jQuery.pause = function() 
	{
    	var elements = $("ul#"+settings.slide_ui_parent+" li");
    	var isPlay = $("#"+settings.pause_button_id+" span").html();
    
		if(isPlay == "pause")
        {
			$("#"+settings.pause_button_id+" span").html("play");
            settings.slide_timer_on = 'no'
            $("#"+settings.pause_button_id).attr("class", "paused_button");
        }
        else
        {
		$("#"+settings.pause_button_id+" span").html("pause");
		settings.slide_timer_on = 'yes'
		$("#"+settings.pause_button_id).attr("class", "pause_button");
		button_class = $("#button_selected").attr("class");
		split_button_class_string = button_class.split("_");
		button_class_string   = split_button_class_string.pop();
		curr_slide_id_number  = parseFloat(button_class_string);
		next_slide_id_number  = curr_slide_id_number - 1;;
		setTimeout(function()
		{
			$.innerfade.next(elements, settings, curr_slide_id_number, next_slide_id_number);
		}, 0);
	}
}  
            
    // next button
    jQuery.next = function()
	{
		var elements = $("ul#"+settings.slide_ui_parent+" li");
		$("#"+settings.pause_button_id+" span").html("play");
		//alert("#"+settings.pause_button_id+"span");
		
		
		
		$("#"+settings.pause_button_id).attr("class", "paused_button");		
		button_class = $("#button_selected").attr("class");
		split_button_class_string = button_class.split("_");
		button_class_string   = split_button_class_string.pop();
		curr_slide_id_number  = (parseFloat(button_class_string) + 1) % elements.length;
		next_slide_id_number  = (curr_slide_id_number + elements.length - 1) % elements.length;
		settings.slide_timer_on = 'no'
		$.skip();
	}
	
	// prev button
    jQuery.prev = function(){
    				var elements = $("ul#"+settings.slide_ui_parent+" li");
    				$("#"+settings.pause_button_id+" span").html("play");
                	$("#"+settings.pause_button_id).attr("class", "paused_button");
					button_class = $("#button_selected").attr("class");
                    split_button_class_string = button_class.split("_");
                    button_class_string   = split_button_class_string.pop();
                    curr_slide_id_number  = (parseFloat(button_class_string) + elements.length - 1) % elements.length;
                    next_slide_id_number  = (curr_slide_id_number + elements.length - 1) % elements.length;
                    settings.slide_timer_on = 'no'
                  	if ((curr_slide_id_number) >= 0) 
					{
                    $.skip();
                    }
	}
	
	//first button
	jQuery.first = function(){
					$("#"+settings.pause_button_id+" span").html("play");
                	$("#"+settings.pause_button_id).attr("class", "paused_button");		
					curr_slide_id_number  = 0;
                    next_slide_id_number  = curr_slide_id_number - 1;
                    settings.slide_timer_on = 'no'
                    $.skip();
               
	}
	
	//last button
	jQuery.last = function(){
					var elements = $("ul#"+settings.slide_ui_parent+" li");
					$("#"+settings.pause_button_id+" span").html("play");
                	$("#"+settings.pause_button_id).attr("class", "paused_button");		
                	curr_slide_id_number  = elements.length - 1;
                    next_slide_id_number  = curr_slide_id_number - 1;
                    settings.slide_timer_on = 'no'
                    $.skip();
               
	}
	
	
            
    
    //set options button click event
    jQuery.setOptionsButtonEvent = function()
    {
		$("#"+settings.slide_nav_id+" li").each(function() 
		{
			// add click functionality to buttons
			
			$(this).click(function() 
			{
				$("#"+settings.pause_button_id+" span").html("play");
				$("#"+settings.pause_button_id).attr("class", "paused_button");
				button_class = $(this).attr("class");
				split_button_class_string = button_class.split("_");
				button_class_string   = split_button_class_string.pop();
				curr_slide_id_number  = parseFloat(button_class_string);
				next_slide_id_number  = curr_slide_id_number - 1;
				settings.slide_timer_on = 'no'
				$.skip();

			}); // click
		}); //each
	}

    $.innerfade = function(container, options) 
	{
        settings = 
		{
            'speed':            'normal',
            'timeout':           5000,
            'runningclass':     'innerfade',
            'children':         null,
            'slide_timer_on':	'yes',
            'slide_ui_parent':	null,
            'slide_ui_text':	null,
            'pause_button_id':  null,
            'slide_nav_id':		null,
			'autoHideControls': false,
			'controls':			null,
			container:			null
        };

        var elements;
        var elements_title;
        
		if (options)
		{
            $.extend(settings, options);
		}
		
        if(settings.children === null)
		{
            elements = $(container).children();
		}
        else
		{
			elements = $(container).children(settings.children);
		}
        
		if(settings.autoHideControls)
		{
			if($('#' + settings.controls) != null)
			{
				$('#' + settings.controls).hide();
				
				$('#' + settings.container).bind('mouseover', function()
				{
					$('#' + settings.controls).show();
				});
				
				$('#' + settings.container).bind('mouseout', function()
				{
					$('#' + settings.controls).hide();
				});
			}
		}
		
		if (elements.length > 1) 
		{
			if(settings.slide_ui_text != null)
			{
				elements_title = $("ul#"+settings.slide_ui_text+" li")
			}
			
        	$(container).css('position', 'relative').addClass(settings.runningclass);
			
            for(var i = 0; i < elements.length; i++) 
			{
                $(elements[i]).css('z-index', String(elements.length-i)).css('position', 'absolute').hide();
                
				if(settings.slide_ui_text != null)
				{
                	$(elements_title[i]).css('z-index', String(elements_title.length-i)).css('position', 'absolute').hide();
                }
            };
			
			setTimeout(function() 
			{
				$.innerfade.next(elements, settings, 1, 0);
			}, settings.timeout);

			$(elements[0]).show();

			if(settings.slide_ui_text != null)
			{
				$(elements_title[0]).show();
			}

			//if(settings.slide_nav_id != null)
			//{
				$("#"+settings.slide_nav_id+" li").removeAttr("id");
				$("#"+settings.slide_nav_id+" .slide_0").attr("id", "button_selected");
			//}
		}
    };
    
    
    $.skip = function() 
	{
    	var elements = $("ul#"+settings.slide_ui_parent+" li");
		
		if(settings.slide_ui_text != null)
		{
			var elements_title = $("ul#"+settings.slide_ui_text+" li");
		}

		for(var i = 0; i < elements.length; i++)
		{
			$(elements[i]).fadeOut(settings.speed);
	
			if(settings.slide_ui_text != null)
			{
				$(elements_title[i]).fadeOut(settings.speed);
			}
		}

		$(elements[curr_slide_id_number]).fadeIn(settings.speed, function() 
		{
			removeFilter($(this)[0]);
		});
		
		if(settings.slide_ui_text != null)
		{
			$(elements_title[curr_slide_id_number]).fadeIn(settings.speed, function() 
			{
				removeFilter($(this)[0]);
			});
		}

		if(settings.slide_nav_id != null)
		{
			$("#"+settings.slide_nav_id+" li").removeAttr("id");
       		$("#"+settings.slide_nav_id+" .slide_"+curr_slide_id_number).attr("id", "button_selected");
       	}
    }

    $.innerfade.next = function(elements, settings, curr_slide_id_number, next_slide_id_number) 
	{
		var elements_title;

		if(settings.slide_ui_text != null)
		{
			elements_title = $("ul#"+settings.slide_ui_text+" li");
		}
		
    	if(settings.slide_timer_on == 'yes')
    	{
			$(elements[next_slide_id_number]).fadeOut(settings.speed);

			if(settings.slide_ui_text != null)
			{
				$(elements_title[next_slide_id_number]).fadeOut(settings.speed);
			}
			
			$(elements[curr_slide_id_number]).fadeIn(settings.speed, function() 
			{
				removeFilter($(this)[0]);
			});
			
			if(settings.slide_ui_text != null)
			{
				$(elements_title[curr_slide_id_number]).fadeIn(settings.speed, function() 
				{
					removeFilter($(this)[0]);
				});
			}
			
			if(settings.slide_nav_id != null)
			{
				$("#"+settings.slide_nav_id+" li").removeAttr("id");
				$("#"+settings.slide_nav_id+" .slide_"+curr_slide_id_number).attr("id", "button_selected");
			}
        
			next_slide_id_number = curr_slide_id_number;
			++curr_slide_id_number;
			curr_slide_id_number %= elements.length
            
        	setTimeout((function() 
			{
				$.innerfade.next(elements, settings, curr_slide_id_number, next_slide_id_number);
        	}), settings.timeout);
        };
    }
    
    


})(jQuery);

// **** remove Opacity-Filter in ie ****
function removeFilter(element) {
	if(element.style.removeAttribute){
		element.style.removeAttribute('filter');
	}
}

