NOSSLIDEAUDIO = {};
NOSSLIDEAUDIO.slidebox = new Array();


(function(jQuery){
	jQuery.fn.nosslideaudios = function(settings) {
		settings = jQuery.extend({
			slidebypx: 684,
			datasrc: 'default',
			items: 16,
			itemsperslide: 4
		}, 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 videoitems = new Array();
			var videoblockcontent = '';
			var flag = 0; // generieke flag
			
			NOSSLIDEAUDIO.slidebox[slideboxid].slides = Math.ceil(settings.items / settings.itemsperslide);
			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;

			if(settings.datasrc != "sports"){
				
				jQuery(selectSlideObj).html("");
				
				jQuery.getJSON(settings.datasrc, function(nosaudiodata){
					jQuery.each(nosaudiodata.audios.items, function(i, val){
						// HTML hier wordt de video html gegenereerd
						videoitems[i] = '<div id="nosslideaudios-box-'+slideboxid+'-'+i+'" class="nosslideaudios-box"><div class="image" id="audio-' + val.url + '"><img src="'+val.thumbnail+'" class="nos-audio-box-thumbnail" /></div><p>'+val.body+'</p></div>';
					});
				
					for(i=0;i<settings.items;i++){
						jQuery(selectSlideObj).append(videoitems[i]);
					}
				
					jQuery(selectSlideObj).css("left",-2000).css("opacity",0);
					jQuery(selectSlideObj).animate({ left: 0, opacity: 1 }, 1200 );
				
					jQuery("div.nosslideaudios-box").css("cursor","pointer");
				
					jQuery("div.nosslideaudios-box").bind("click",function(e){
						e.preventDefault();
						jQuery(this).blur();
						var audioTcm = jQuery(this).find("div.image").attr("id");
						audioTcm = audioTcm.replace('audio-','');
						var stream_url = 'http://player.nos.nl/index.php/embedded/playlist/tcmid/' + audioTcm;
						var flashURL;
					    flashURL    =    "autostart=true";
					    flashURL    =    flashURL + "&height=20";
					    flashURL    =    flashURL + "&file=" + stream_url;
					    flashURL    =    flashURL + "&width=450";
					    flashURL    =    flashURL + "&bufferlength=8";
   					    var F0 = { movie:"http://player.nos.nl/nos/media/flash/mediaplayer.swf", width:"661", height:"20", quality:"high", bgcolor:"#000000", majorversion:"7", build:"0",  allowscriptaccess:"true", allowfullscreen:"true",  flashvars: flashURL };
					    UFO.create(F0, "audioplayer");
					});
				});
			} else {
				// niks
			}
			
			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(this).find('.nosslideaudios-bullet:last').data("indexbullet",i);
			}
			
			jQuery(this).find('.nosslideaudios-bullet').wrapAll("<div class='nosslideaudios-bullet-wrap clearfix'></div>");
			
			// #HTML hier worden de ouder / nieuwe knoppen gegenereerd
			selectSlideNav.append('<div><a href="#" class="nosslideaudios-nieuwer"></a></div> <div><a href="#" class="nosslideaudios-ouder"></a></div>');
			
			set_navigation(0,slideboxid);
			
			// #CLICK voeg clickfuntie toe aan knop naar rechts
			jQuery(this).find('.nosslideaudios-ouder').bind("click",function(event){
				
				event.preventDefault();
				jQuery(this).blur();
				
 				if(jQuery(this).hasClass('nosslideaudios-ouder-disabled') != 1){
					scrollvideosto(NOSSLIDEAUDIO.slidebox[slideboxid].pos+1,slideboxid);
				}
			});
			
			// #CLICK voeg clickfuntie toe aan knop naar links
			jQuery(this).find('.nosslideaudios-nieuwer').bind("click",function(event){
				event.preventDefault();
				jQuery(this).blur();
				if(jQuery(this).hasClass('nosslideaudios-nieuwer-disabled') != 1){
					scrollvideosto(NOSSLIDEAUDIO.slidebox[slideboxid].pos-1,slideboxid);
				}
			});
			
			// #CLICK voeg clickfuntie toe aan bullets
			jQuery(this).find('.nosslideaudios-bullet').bind("click",function(event){
				event.preventDefault();
				jQuery(this).blur();
				scrollvideosto(jQuery(this).data("indexbullet"),slideboxid);
			});
		});
		
		function get_randomnr(){
			return Math.floor(Math.random()*999999999);
		}
		
		function set_navigation(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 scrollvideosto(pos,slideboxid){
			jQuery(NOSSLIDEAUDIO.slidebox[slideboxid].slideobj).animate({ left: "-"+settings.slidebypx*pos }, 500 );
			set_navigation(pos,slideboxid);
		}
		
		return this;
	};
	
})(jQuery);
