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

(function(jQuery){
	jQuery.fn.nosslidevideos = function(settings) {
		settings = jQuery.extend({
			slidebypx: 684,
			datasrc: 'default',
			items: 12,
			itemsperslide: 4
		}, settings);
		
		this.each(function(){

			var slideboxid = NOSSLIDE.slidebox.length;
			NOSSLIDE.slidebox[slideboxid] = {};

			var slideboxObj = this;
			var selectID = this.id;
			var selectSlideObj = jQuery(this).find(".nosslidevideos-content");
			var selectSlideNav = jQuery(this).find('div.nos-video-box-pagination');
			
			var videoitems = new Array();
			var videoblockcontent = '';
			var flag = 0; // generieke flag
			
			NOSSLIDE.slidebox[slideboxid].slides = Math.ceil(settings.items / settings.itemsperslide);
			NOSSLIDE.slidebox[slideboxid].pos = 0; // slidenumber of position van slidecontent
			NOSSLIDE.slidebox[slideboxid].slideboxobj = slideboxObj;
			NOSSLIDE.slidebox[slideboxid].slideobj = selectSlideObj;
			NOSSLIDE.slidebox[slideboxid].slidenav = selectSlideNav;

			if(settings.datasrc != "sports"){
				
				jQuery(selectSlideObj).html("");
				
				jQuery.getJSON(settings.datasrc, function(nosvideodata){
					jQuery.each(nosvideodata.videos.items, function(i, val){
						// HTML hier wordt de video html gegenereerd
						videoitems[i] = '<div id="nosslidevideos-box-'+slideboxid+'-'+i+'" class="nosslidevideos-box"><img src="'+val.thumbnail+'" class="nos-video-box-thumbnail" /><br /><img src="/gfx/www/meta-icons/sports-video/'+val.meta+'-34x34.png" class="nos-video-box-sportimg" /><p><a href="'+val.url+'">'+val.body+'</a></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.nosslidevideos-box").css("cursor","pointer");
				
					jQuery("div.nosslidevideos-box").bind("click",function(e){
						e.preventDefault();
						jQuery(this).blur();
						if(NOSGLOBALVARS.isiframe == 1){
							window.open(jQuery(this).find("a").attr("href"));
						} else {
							window.location=jQuery(this).find("a").attr("href");
						}
						
						
					});
				});
			} else {
				// niks
			}
			
			selectSlideNav.html('');
			for(i=0 ; i < NOSSLIDE.slidebox[slideboxid].slides ; i++){
				// #HTML hier worden de bullets gegenereerd
				selectSlideNav.append('<a href="" id="nosslidevideos-bullet-'+slideboxid+'-'+i+'" class="nosslidevideos-bullet"></a>');
				jQuery(this).find('.nosslidevideos-bullet:last').data("indexbullet",i);
			}
			
			jQuery(this).find('.nosslidevideos-bullet').wrapAll("<div class='nosslidevideos-bullet-wrap clearfix'></div>");
			
			// #HTML hier worden de ouder / nieuwe knoppen gegenereerd
			selectSlideNav.append('<a href="#" class="nosslidevideos-nieuwer"></a> <a href="#" class="nosslidevideos-ouder"></a>');
			
			set_navigation(0,slideboxid);
			
			// #CLICK voeg clickfuntie toe aan knop naar rechts
			jQuery(this).find('.nosslidevideos-ouder').bind("click",function(event){
				
				event.preventDefault();
				jQuery(this).blur();
				
 				if(jQuery(this).hasClass('nosslidevideos-ouder-disabled') != 1){
					scrollvideosto(NOSSLIDE.slidebox[slideboxid].pos+1,slideboxid);
				}
			});
			
			// #CLICK voeg clickfuntie toe aan knop naar links
			jQuery(this).find('.nosslidevideos-nieuwer').bind("click",function(event){
				event.preventDefault();
				jQuery(this).blur();
				if(jQuery(this).hasClass('nosslidevideos-nieuwer-disabled') != 1){
					scrollvideosto(NOSSLIDE.slidebox[slideboxid].pos-1,slideboxid);
				}
			});
			
			// #CLICK voeg clickfuntie toe aan bullets
			jQuery(this).find('.nosslidevideos-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 = NOSSLIDE.slidebox[slideboxid].slides;
			
			bullets = jQuery(NOSSLIDE.slidebox[slideboxid].slideboxobj).find(".nosslidevideos-bullet");
			
			$(bullets).removeClass("nosslidevideos-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("nosslidevideos-bullet-active");
				}
			});
			
			jQuery(NOSSLIDE.slidebox[slideboxid].slideboxobj).find('.nosslidevideos-ouder').removeClass("nosslidevideos-ouder-disabled");
			jQuery(NOSSLIDE.slidebox[slideboxid].slideboxobj).find('.nosslidevideos-nieuwer').removeClass("nosslidevideos-nieuwer-disabled");
			
			if(pos == 0){
				// disable left
				jQuery(NOSSLIDE.slidebox[slideboxid].slideboxobj).find('.nosslidevideos-nieuwer').addClass("nosslidevideos-nieuwer-disabled");
				
			} else if(pos >= slides-1){
				// disable right
				jQuery(NOSSLIDE.slidebox[slideboxid].slideboxobj).find('.nosslidevideos-ouder').addClass("nosslidevideos-ouder-disabled");
			}

			NOSSLIDE.slidebox[slideboxid].pos = pos;

		}
		
		function scrollvideosto(pos,slideboxid){
			jQuery(NOSSLIDE.slidebox[slideboxid].slideobj).animate({ left: "-"+settings.slidebypx*pos }, 500 );
			set_navigation(pos,slideboxid);
		}
		
		return this;
	};
	
})(jQuery);
