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

// 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;
                    next_slide_id_number  = curr_slide_id_number - 1;
                    settings.slide_timer_on = 'no'
                    
                    if ((curr_slide_id_number) < elements.length) 
                    {
                        $.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)- 1;
                    next_slide_id_number  = curr_slide_id_number - 1;
                    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 = {
            'animationtype':    'fade',
            'speed':            'normal',
            'type':             'sequence',
            'timeout':           5000,
            'containerheight':  'auto',
            'runningclass':     'innerfade',
            'children':         null,
            'slide_timer_on':   'yes',
            'slide_ui_parent':  null,
            'slide_ui_text':    null,
            'pause_button_id':  null,
            'slide_nav_id':     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 (elements.length > 1) 
        {
            if(settings.slide_ui_text != 'null')
            {
                elements_title = $("ul#"+settings.slide_ui_text+" li")
            }
            
            $(container).css('position', 'relative').css('height', settings.containerheight).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();
                }
            };
            if (settings.type == "sequence") 
            {
                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");
                }
                
            } 
            else if (settings.type == "random") 
            {
                next_slide_id_number = Math.floor ( Math.random () * ( elements.length ) );
                setTimeout(function() {
                    do { 
                                                curr_slide_id_number = Math.floor ( Math.random ( ) * ( elements.length ) );
                                        } while (next_slide_id_number == curr_slide_id_number );             
                                        $.innerfade.next(elements, settings, curr_slide_id_number, next_slide_id_number);
                }, settings.timeout);
                $(elements[next_slide_id_number]).show();
                if(settings.slide_ui_text != 'null')
                {
                    $(elements_title[next_slide_id_number]).show();
                }
            } 
            else if ( settings.type == 'random_start' ) 
            {
                    settings.type = 'sequence';
                    curr_slide_id_number = Math.floor ( Math.random () * ( elements.length ) );
                    setTimeout(function(){
                                    $.innerfade.next(elements, settings, (curr_slide_id_number + 1) %  elements.length, curr_slide_id_number);
                                }, settings.timeout);
                                
                    $(elements[curr_slide_id_number]).show();
                    
                    if(settings.slide_ui_text != 'null')
                    {
                        $(elements_title[curr_slide_id_number]).show();
                    }
                    
            }
            else 
            {
                    alert('Innerfade-Type must either be \'sequence\', \'random\' or \'random_start\'');
            }
        }
    };
    
    
    $.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++) 
                {
                    if (settings.animationtype == 'fade')
                    {
                        $(elements[i]).fadeOut(settings.speed);
                        if(settings.slide_ui_text != 'null')
                        {
                        
                            $(elements_title[i]).fadeOut(settings.speed);
                        }
                    }
                    else
                    {
                        $(elements[i]).slideUp(settings.speed);
                        if(settings.slide_ui_text != 'null')
                        {
                        
                            $(elements_title[i]).slideUp(settings.speed);
                        }
                    }
                    
                }
                if (settings.animationtype == 'fade')
                {
                    $(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]);
                        });
                    }
                }
                else
                {
                    $(elements[curr_slide_id_number]).slideDown(settings.speed, function() {
                            removeFilter($(this)[0]);
                        });
                    if(settings.slide_ui_text != 'null')
                    {
                        $(elements_title[curr_slide_id_number]).slideDown(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");
                }
                        
            
            } //skip
    

    $.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')
        {
            
            //alert(elements.length+"yes");
            if (settings.animationtype == 'slide') 
            {
                $(elements[next_slide_id_number]).slideUp(settings.speed);
                $(elements[curr_slide_id_number]).slideDown(settings.speed);
                
                $(elements[next_slide_id_number]).slideUp(settings.speed);
                if(settings.slide_ui_text != 'null')
                {
                    $(elements_title[next_slide_id_number]).slideUp(settings.speed);
                }
                $(elements[curr_slide_id_number]).slideDown(settings.speed, function() {
                            removeFilter($(this)[0]);
                        });
                if(settings.slide_ui_text != 'null')
                {
                    $(elements_title[curr_slide_id_number]).slideDown(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");
                }
            } 
            else if (settings.animationtype == 'fade') 
            {
                $(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");
                }
            } 
            else
            alert('Innerfade-animationtype must either be \'slide\' or \'fade\'');
        
            if (settings.type == "sequence") 
            {
                
                //alert(curr_slide_id_number);
                if ((curr_slide_id_number + 1) < elements.length) 
                {
                    
                    //alert(curr_slide_id_number);
                    curr_slide_id_number = curr_slide_id_number + 1;
                    next_slide_id_number = curr_slide_id_number - 1;
                    //alert(curr_slide_id_number+"if");
                } 
                else 
                {
                    //alert(curr_slide_id_number+"else");
                    curr_slide_id_number = 0;
                    next_slide_id_number = elements.length - 1;
                }
                
            } 
            else if (settings.type == "random") 
            {
                next_slide_id_number = curr_slide_id_number;
                while (curr_slide_id_number == next_slide_id_number)
                curr_slide_id_number = Math.floor(Math.random() * elements.length);
            } 
            else
            alert('Innerfade-Type must either be \'sequence\', \'random\' or \'random_start\'');
            
            
            setTimeout((function() {
            $.innerfade.next(elements, settings, curr_slide_id_number, next_slide_id_number);
            }), settings.timeout);
            
        //  alert(curr_slide_id_number);
        };
    }
    
    


})(jQuery);

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

