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

// slideshow.js

// Datum: 2011-10-10
// Firma: Edisoft GMBH
// Author: Karas Roman 

 *
 *  <div id="slideshowteaser"> 
 *      <a><img1></a>
 *      <a><img2></a>
 *      <a><img3></a>
 *  </div>
 *  <script>
 *$(document).ready(function(){
 *
 * $('#slideshowteaser').slideshow({
 *	  speed: Fading-/Sliding-Speed in milliseconds or keywords (slow, normal or fast) (Default: 'normal'), 
 *	  timeout: Time between the fades in milliseconds (Default: '2000'),
 * 		containerheight: Height of the containing element in any css-height-value (Default: 'auto'),
 *	  showclass: CSS-Class which the container get’s applied (Default: 'innerfade'),
 *	  children: optional images selector (Default: img) 
 * });
 *
 *});
* </script>
 

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


(function($) {

    jQuery.fn.slideshow = function(options) {
        return this.each(function() {   
            $.slideshow(this, options);
        });
    };
    
    function setNest(settings,i,del){
      if(!del){
            $('.rgsdescription').html(settings.descrs[i]);
            $('.rgstitle').html(settings.titles[i]);
            $('.rgssubtitle').html(settings.subtitles[i]);
            $('.rgslink').attr('href',settings.linkes[i]);
            $('.rgslink').html('mehr erfahren');
            $('.rgslink').css('display','inline');
      }else{
            $('.rgsdescription').html(' ');
            $('.rgstitle').html(' ');
            $('.rgssubtitle').html(' ');
            $('.rgslink').hide();       
      }    
    }
    
    jQuery.slideshow = function(container, options) {
        var settings = {        		
            'speed':     1000,//Fading-/Sliding-Speed in milliseconds or keywords (slow, normal or fast) (Default: '1000'),            
            'timeout':   5000,
            'containerheight':'auto',
            'showclass': 'rgslideshow',
            'children':  'img',
            'play':"&infin;",
		        'stop':"&phi;",
		        'navlinks':[],
    	      'titles':[],
    		    'subtitles':[],
    		    'descrs': [],
    		    'linkes':[],
    		    'currentId':1,
    		    'last':0,
    		    'playStatus' : true
        };
        
        if (options)
            jQuery.extend(settings, options);            
        if (settings.children === null)
            var elements = $(container).children();
        else
            var elements = $(container).children().children();
            
        if (elements.length > 1) {
            $(container).addClass(settings.showclass);
    		    
             var nestAll=$("<div class='rgsnest'>").insertBefore($(container).children().first());
              
             nestAll.append("<div  class='rgstitle'>");
             nestAll.append("<div  class='rgssubtitle'>");
             nestAll.append("<div  class='rgsdescription'>");
             nestAll.append("<a href='' class='rgslink'></a>");
             
             //var nav=$("<div class='rgslideshownav'>").insertAfter($(container));
             var nav=$("<div class='rgslideshownav'>").appendTo($(container));
             var innernav=$("<div class='rgsnav2'>").appendTo(nav);
             var playBtn=$("<span class='rgsplay'></span>").appendTo(nav);
             
             var browser=$("<div class='rgsbrowser'>").appendTo(innernav);
             
             
             playBtn.click(function(){                  
                  
                  settings=getNexId(settings,0,elements.length); 
                                                      
                  if (!settings.playStatus) {
                   $(this).html(settings.stop).attr('title',"Stop");
                   settings.playStatus=!settings.playStatus;                  
                   timer=setTimeout(function() {jQuery.slideshow.next(elements, settings,false);}, settings.timeout);                   
                 }else{
                  clearTimeout(timer);
                  $(this).html(settings.play).attr('title',"Play");                  
                  settings.playStatus=!settings.playStatus;                                    
                 }                 
             });
             
             if (!settings.playStatus) {
               playBtn.html(settings.play).attr('title',"Play");
             }else{
              playBtn.html(settings.stop).attr('title',"Stop");
             }                   
	   
            elements.each(function(i,el) {
                                  
               $(el).addClass('rgssimg').hide();
                var title="&nbsp;";
                var descr="";
                var subtitle="";
                var link=$(el).parent().attr('href');                
                $(el).attr("link",link);
                
                if($(el).attr("alt")){ subtitle=$(el).attr("alt");}
                
                var split =$(el).attr('title').split("|");        
                if (split[0]) {
                  title = split[0];
                  $(el).attr('title',title);
                }
                if (split[1]) descr = split[1];
                                 
                var browserEl =$("<span class='rgsbrowserEl' title='"+title+"'idx='"+i+"'>&nbsp;</span>").appendTo(browser);
	  		          browserEl.click(function(){
	  		            playBtn.html(settings.play).attr('title',"Play");                  
                    settings.playStatus=!settings.playStatus;
                    settings.currentId=parseInt($(this).attr('idx'));                                      
                    jQuery.slideshow.next(elements, settings,true);          	  		   
          	        $(this).addClass("rgsact");
        	  		});
    	  		    settings.navlinks[i]=browserEl;
    	  		    settings.titles[i]=title;
    		        settings.subtitles[i]=subtitle;
    		        settings.descrs[i]=descr;
    		        settings.linkes[i]=link;
    		        
            		if(i>0){
            		   browserEl.before("<span class='rgssplitEl'>.</span>");
            		}            		
              	//nestAll.width($(elements[i]).width());                
            });
                        
            timer=setTimeout(function() {jQuery.slideshow.next(elements, settings, false);}, settings.timeout);
            $(elements[0]).show();
            settings.navlinks[0].addClass("rgsact");             
            setNest(settings,0);
				}
				
    };//slideshow
    function getNexId(settings,z,len){
       if ((settings.currentId + z) < len) {
                settings.currentId += z;
                settings.last = settings.currentId - 1;
            } else {
                settings.currentId = 0;
                settings.last = len - 1;
            }
            return settings;
    }
    
    jQuery.slideshow.next = function(elements, settings,stop) {
            
            setNest(settings,0,true);
            $(elements[settings.last]).fadeOut(settings.speed);
             settings.navlinks[settings.last].removeClass("rgsact");             
             settings.navlinks[settings.currentId].addClass("rgsact");
             setNest(settings,settings.currentId);
              
            $(elements[settings.currentId]).fadeIn(settings.speed, function() {
							removeFilter($(this)[0]);              
						});          
            settings=getNexId(settings,1,elements.length);            
        if(stop){    
              clearTimeout(timer);
        }else	
         timer=setTimeout((function() { jQuery.slideshow.next(elements, settings, false);}), settings.timeout);
    };

})(jQuery);

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

