NOSSLIDEAUDIO = {}; 
NOSSLIDEAUDIO.slidebox = new Array();

(function(jQuery){
	jQuery.fn.nosslideaudios = function(settings) {
		settings = jQuery.extend({
			slidebypx: 632,
			datasrc: 'default',
			itemsperbox: 8
		}, settings);
		
		this.each(function(){
			
			var slideboxid = NOSSLIDEAUDIO.slidebox.length;
			NOSSLIDEAUDIO.slidebox[slideboxid] = {};
			
			var slideboxObj = this;
			var selectID = this.id;
			var selectSlideObj = jQuery(this).find(".nosslideaudios-content");
			var selectSlideNav = jQuery(this).find('div.nos-audio-box-pagination');
			
			var audioitems = new Array();
			var audioblockcontent = '';
			var flag = 0; // generieke flag
			
			//NOSSLIDEAUDIO.slidebox[slideboxid].slides = settings.blocks;
			NOSSLIDEAUDIO.slidebox[slideboxid].pos = 0; // slidenumber of position van slidecontent
			NOSSLIDEAUDIO.slidebox[slideboxid].slideboxobj = slideboxObj;
			NOSSLIDEAUDIO.slidebox[slideboxid].slideobj = selectSlideObj;
			NOSSLIDEAUDIO.slidebox[slideboxid].slidenav = selectSlideNav;
			
			jQuery(selectSlideObj).html("");
			jQuery.getJSON(settings.datasrc, function(nosaudiodata){
				jQuery.each(nosaudiodata.audio.items, function(i, val){
					audioitems[i] = '<tr><td class="audio-home-cell-title"><a href="'+val.stream+'">'+val.body+'</a></td><td class="audio-home-cell-date">'+val.datum+'</td></tr>';
				});
				
				// Determine how many boxes there are based on 8 items per box
				NOSSLIDEAUDIO.slidebox[slideboxid].slides = (audioitems.length%settings.itemsperbox == 0) ? (audioitems.length/settings.itemsperbox) : ((audioitems.length-audioitems.length%settings.itemsperbox)/settings.itemsperbox)+1;
				
				addcontent(slideboxid,audioitems);
				
				selectSlideNav.html('');
				for(i=0 ; i < NOSSLIDEAUDIO.slidebox[slideboxid].slides ; i++){
					// #HTML hier worden de bullets gegenereerd
					selectSlideNav.append('<a href="" id="nosslideaudios-bullet-'+slideboxid+'-'+i+'" class="nosslideaudios-bullet"></a>');
					jQuery(slideboxObj).find('.nosslideaudios-bullet:last').data("indexbullet",i);
				}
				jQuery(slideboxObj).find('.nosslideaudios-bullet').wrapAll("<div class='nosslideaudios-bullet-wrap clearfix'></div>");
				
				// #HTML hier worden de ouder / nieuwe knoppen gegenereerd
				selectSlideNav.append('<a href="#" class="nosslideaudios-nieuwer"></a> <a href="#" class="nosslideaudios-ouder"></a>');
				set_navigationaudios(0,slideboxid);
				
				// #CLICK voeg clickfuntie toe aan knop naar rechts
				jQuery(slideboxObj).find('.nosslideaudios-ouder').bind("click",function(event){
					event.preventDefault();
					jQuery(this).blur();
					
					if(jQuery(this).hasClass('nosslideaudios-ouder-disabled') != 1){
						scrollaudiosto(NOSSLIDEAUDIO.slidebox[slideboxid].pos+1,slideboxid);
					}
					
					removeaudiospace();
				});
				
				// #CLICK voeg clickfuntie toe aan knop naar links
				jQuery(slideboxObj).find('.nosslideaudios-nieuwer').bind("click",function(event){
					event.preventDefault();
					jQuery(this).blur();
					if(jQuery(this).hasClass('nosslideaudios-nieuwer-disabled') != 1){
						scrollaudiosto(NOSSLIDEAUDIO.slidebox[slideboxid].pos-1,slideboxid);
					}
					
					removeaudiospace();
				});
				
				// #CLICK voeg clickfuntie toe aan bullets
				jQuery(slideboxObj).find('.nosslideaudios-bullet').bind("click",function(event){
					event.preventDefault();
					jQuery(this).blur();
					scrollaudiosto(jQuery(this).data("indexbullet"),slideboxid);
					
					removeaudiospace();
				});
				
			});
			

		});
		
		function get_randomnr(){
			return Math.floor(Math.random()*999999999);
		}
		
		function set_navigationaudios(pos,slideboxid){
			slides = NOSSLIDEAUDIO.slidebox[slideboxid].slides;
			
			bullets = jQuery(NOSSLIDEAUDIO.slidebox[slideboxid].slideboxobj).find(".nosslideaudios-bullet");
			
			$(bullets).removeClass("nosslideaudios-bullet-active");

			jQuery(bullets).each(function(i){
				// loop door de bullets heen van de betreffende slidebox en selecteer diegene met de juiste index/positie
				if(jQuery(this).data("indexbullet") == pos){
					jQuery(this).addClass("nosslideaudios-bullet-active");
				}
			});
			
			jQuery(NOSSLIDEAUDIO.slidebox[slideboxid].slideboxobj).find('.nosslideaudios-ouder').removeClass("nosslideaudios-ouder-disabled");
			jQuery(NOSSLIDEAUDIO.slidebox[slideboxid].slideboxobj).find('.nosslideaudios-nieuwer').removeClass("nosslideaudios-nieuwer-disabled");
			
			if(pos == 0){
				// disable left
				jQuery(NOSSLIDEAUDIO.slidebox[slideboxid].slideboxobj).find('.nosslideaudios-nieuwer').addClass("nosslideaudios-nieuwer-disabled");
				
			} else if(pos >= slides-1){
				// disable right
				jQuery(NOSSLIDEAUDIO.slidebox[slideboxid].slideboxobj).find('.nosslideaudios-ouder').addClass("nosslideaudios-ouder-disabled");
			}

			NOSSLIDEAUDIO.slidebox[slideboxid].pos = pos;

		}
		
		function scrollaudiosto(pos,slideboxid){
			jQuery(NOSSLIDEAUDIO.slidebox[slideboxid].slideobj).animate({ left: "-"+settings.slidebypx*pos }, 500 );
			set_navigationaudios(pos,slideboxid);
		}
		
		function removeaudiospace(){
			jQuery("table.audio-home-list tbody tr").removeClass("audio-home-row-active");
			jQuery("tr.audio-home-row-audiofile").remove();
		}
		
		function addcontent(slideboxid,audioitems){
			//NOSSLIDEAUDIO.slidebox[slideboxid].slides
			
			var ii = 0;
			var contenthtml = '';
			
			for(i=0;i<audioitems.length;i++){
				
				if(ii == 0){
					contenthtml += '<table class="audio-home-list"><thead><tr><td>geluidsfragment</td><td>datum</td></tr></thead><tbody>';
				}
				
				contenthtml += audioitems[i];
				
				ii++;
				
				if(ii == settings.itemsperbox){
					contenthtml += '</tbody></table>';
					ii = 0;
				}
			}
		
			jQuery(NOSSLIDEAUDIO.slidebox[slideboxid].slideobj).html(contenthtml);
			
			jQuery("table.audio-home-list tbody tr td.audio-home-cell-title a").bind("click",function(event){
				event.preventDefault();
				jQuery(this).blur();
			});
			
			jQuery("table.audio-home-list tbody tr").bind("click",function(event){
				event.preventDefault();
				jQuery(this).blur();

				var stream_url = jQuery(this).find("td.audio-home-cell-title a").attr("href");

				removeaudiospace();
				jQuery(this).addClass("audio-home-row-active").after('<tr class="audio-home-row-audiofile"><td colspan="2"><div id="audio-home-row-audiospace"></div></td></tr>');
				
				var flashURL;
			   flashURL    =    "autostart=true";
			   flashURL    =    flashURL + "&height=20";
			   flashURL    =    flashURL + "&file=" + stream_url;
			   flashURL    =    flashURL + "&width=450";
			   flashURL    =    flashURL + "&bufferlength=8";
			   flashURL    =    flashURL + "&image=http://www.nos.nl/static/global/player/images/bg_audio.jpg";
			   
			   var F0 = { movie:"http://player.nos.nl/nos/media/flash/mediaplayer.swf", width:"450", height:"20", quality:"high", bgcolor:"#000000", majorversion:"7", build:"0",  allowscriptaccess:"true", allowfullscreen:"true",  flashvars: flashURL };
			   UFO.create(F0, "audio-home-row-audiospace");
				
				
			}).css("cursor","pointer");
			
		}
		
		return this;
	};
	
})(jQuery);
