(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':            'slow',
            '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');
	}
}

(function(c){var b=[];var a=[];c.fn.xfade=function(d){return this.each(function(e){a.push(c(this));b[e]={container:null,settings:{effect:"fade",speed:"normal",order:"sequence",timeout:2000,height:"auto",containerClass:false,children:false,onBefore:false},timeout:200,current:1,last:0,init:function(f,g){var j=this;j.container=f;if(g){c.extend(j.settings,g)}var k=j.items();if(k.length>1){c(j.container).css({position:"relative",height:j.settings.height});if(j.settings.containerClass){c(j.container).addClass(j.settings.containerClass)}for(var h=0;h<k.length;h++){c(k[h]).css("z-index",String(k.length-h)).css("position","absolute").hide()}if(j.settings.order=="sequence"){j.onBefore(0,null,c(k[0]),null,k);j.timeout=setTimeout(function(){j.next()},j.settings.timeout);c(k[j.last]).show()}else{if(j.settings.order=="random"){j.last=Math.floor(Math.random()*k.length);do{j.current=Math.floor(Math.random()*k.length)}while(j.last==j.current);j.onBefore(j.current,j.last,c(k[j.current]),c(k[j.last]),k);j.timeout=setTimeout(function(){j.next()},j.settings.timeout);c(k[j.current]).show()}else{if(j.settings.order=="random-start"){j.settings.order="sequence";j.current=Math.floor(Math.random()*k.length);j.onBefore(j.current,j.last,c(k[j.current]),c(k[j.last]),k);j.timeout=setTimeout(function(){j.next()},j.settings.timeout);c(k[j.current]).show()}else{alert("xfade:order must either be 'sequence', 'random' or 'random-start'")}}}}},items:function(){var f=this;if(f.settings.children){return c(f.container).children()}else{return c(f.container).children(f.settings.children)}},next:function(){var f=this;var g=f.items();f.onBefore(f.current,f.last,c(g[f.current]),c(g[f.last]),g);if(f.settings.effect=="slide"){c(g[f.last]).slideUp(f.settings.speed);c(g[f.current]).slideDown(f.settings.speed)}else{if(f.settings.effect=="fade"){c(g[f.last]).fadeOut(f.settings.speed);c(g[f.current]).fadeIn(f.settings.speed,function(){removeFilter(c(this)[0])})}else{alert("xfade:effect must either be 'slide' or 'fade'")}}if(f.settings.order=="sequence"){if((f.current+1)<g.length){f.current+=1;f.last=f.current-1}else{f.current=0;f.last=g.length-1}}else{if(f.settings.order=="random"){f.last=f.current;while(f.current==f.last){f.current=Math.floor(Math.random()*g.length)}}else{alert("xfade:order must either be 'sequence', 'random' or 'random-start'")}}f.timeout=setTimeout((function(){f.next(g)}),f.settings.timeout)},to:function(f){var g=this;if(typeof(f)=="object"&&f.jquery){if(f.length==0){return false}c.each(g.items(),function(h){if(c(this)[0]==f[0]){f=h}})}c.each(g.items(),function(){if(c(this).css("display")!="none"){c(this).fadeOut()}});clearTimeout(g.timeout);g.current=f;g.next()},refresh:function(){var f=this;var g=f.items();c.each(g,function(h){c(this).css({"z-index":String(g.length-h),position:"absolute"});if(h!=f.last){c(this).css({display:"none"})}})},onBefore:function(k,i,f,g,j){var h=this;if(typeof(h.settings.onBefore)=="function"){h.settings.onBefore(k,i,f,g,j)}}};b[e].init(this,d)})};c.xfadeInstance=function(d){var e=0;do{if(c(a[e]).get(0)==c(d).get(0)){return b[e]}e++}while(e<a.length-1);return false};c.fn.xfadeNext=function(){var d=c.xfadeInstance(this);if(d){d.next()}};c.fn.xfadeTo=function(e){var d=c.xfadeInstance(this);if(d){d.to(e)}};c.fn.xfadeRefresh=function(e){var d=c.xfadeInstance(this);if(d){d.refresh(e)}}})(jQuery);function removeFilter(a){if(a.style.removeAttribute){a.style.removeAttribute("filter")}};
