PageSourceSearch

https://www.criquiers.fr/js/youmax.js

js criquiers.fr collected 2026-10-03 02:46:44 UTC 26,379 bytes, 653 lines download raw bytes

1
2
3var youmax_global_options = {};
4
5	
6(function ($) {
7
8
9	var secondsToTime = function(duration) {
10		if(null==duration||duration==""||duration=="undefined")
11			return "?";
12
13		var minutes = Math.floor(duration/60);
14		//alert(minutes);
15		
16		var seconds = duration%60;
17
18		if(seconds<10)
19			seconds = "0"+seconds;
20			
21		var time = minutes+":"+seconds;
22		return time;
23		//alert()
24		
25	},
26	
27		//utility function to display time
28	convertDuration = function(videoDuration) {
29		var duration,returnDuration;
30		videoDuration = videoDuration.replace('PT','').replace('S','').replace('M',':').replace('H',':');	
31		
32		//TODO: fix some duration settings
33		//console.log('videoDuration-'+videoDuration);
34		
35		var videoDurationSplit = videoDuration.split(':');
36		returnDuration = videoDurationSplit[0];
37		for(var i=1; i<videoDurationSplit.length; i++) {
38			duration = videoDurationSplit[i];
39			////console.log('duration-'+duration);
40			if(duration=="") {
41				returnDuration+=":00";
42			} else {
43				duration = parseInt(duration,10);
44				////console.log('duration else -'+duration)
45				if(duration<10) {
46					returnDuration+=":0"+duration;
47				} else {
48					returnDuration+=":"+duration;
49				}
50			}
51		}
52		if(videoDurationSplit.length==1) {
53			returnDuration="0:"+returnDuration;
54		}
55		return returnDuration;
56		
57	},
58
59
60	getDateDiff = function(timestamp) {
61		if(null==timestamp||timestamp==""||timestamp=="undefined")
62			return "?";
63		//alert(timestamp);
64		var splitDate=((timestamp.toString().split('T'))[0]).split('-');
65		var d1 = new Date();		
66		
67		var d1Y = d1.getFullYear();
68        var d2Y = parseInt(splitDate[0],10);
69        var d1M = d1.getMonth();
70        var d2M = parseInt(splitDate[1],10);
71
72        var diffInMonths = (d1M+12*d1Y)-(d2M+12*d2Y);
73		/*alert(d1Y);
74		alert(d2Y);
75		alert(d1M);
76		alert(d2M);
77		alert(diffInMonths);
78		*/
79		if(diffInMonths<=1)
80			return "1 mois";
81		else if(diffInMonths<12)
82			return  diffInMonths+" mois";
83		
84		var diffInYears = Math.floor(diffInMonths/12);
85		
86		if(diffInYears<=1)
87			return "1 ann&eacute;e";
88		else if(diffInYears<12)
89			return  diffInYears+" ann&eacute;es";
90
91	},
92	
93	getReadableNumber = function(number) {
94		if(null==number||number==""||number=="undefined")
95			return "?";
96			
97		number=number.toString();
98		var readableNumber = '';
99		var count=0;
100		for(var k=number.length; k>=0;k--) {
101			readableNumber+=number.charAt(k);
102			if(count==3&&k>0) {
103				count=1;
104				readableNumber+=',';
105			} else {
106				count++;
107			}
108		}
109		return readableNumber.split("").reverse().join("");
110	},
111	
112
113	loadYoumax = function() {	
114
115		youmaxWidgetWidth = $('#youmax').width();
116		
117		$('#youmax').append('<div id="youmax-header"><div id="youmax-tabs"><!-- <span id="featured_" class="youmax-tab">Featured</span> --><span id="uploads_" class="youmax-tab"><a class="tabs-playlists"  style="color:#323232; text-decoration:none" href="#">Les vid&eacute;os les plus r&eacute;centes</a></span><span id="playlists_" class="youmax-tab"><a id="focus" style="color:#323232; text-decoration:none" href="#">Toutes nos vid&eacute;os</a></span></div><!-- <div id="youmax-stat-holder"></div> --></div>');
118
119		//$('#youmax').append('<div id="youmax-tabs"></div>');
120		
121		//$('#youmax').append('<div id="youmax-tabs"><!-- <span id="featured_" class="youmax-tab">Featured</span> --><span id="uploads_" class="youmax-tab">Les vid&eacute;os les plus r&eacute;centes</span><span id="playlists_" class="youmax-tab">Nos playlists</span></div>');
122
123		
124		$('#youmax').append('<div id="youmax-encloser"><iframe id="youmax-video" width="'+(youmaxWidgetWidth-2)+'" height="'+(youmaxWidgetWidth/youmax_global_options.youtubeVideoAspectRatio)+'" src="" frameborder="0" allowfullscreen></iframe><div id="youmax-video-list-div"></div><!-- <div id="youmax-load-more-div">en voir plus</div> --></div>');
125		
126		$('#youmax-video').hide();
127		
128		$('#youmax').append('<div id="youmax-lightbox"><a href="#"> X </a><div style="width:100%; position:absolute; top:20%;"><iframe id="youmax-video-lightbox" width="800" height="600" src="" frameborder="0" allowfullscreen></iframe></div></div>');
129		
130		$('#youmax-lightbox').hide();
131	},
132	
133	//get channel Id if channel URL is of the form ....../user/Adele
134	getChannelId = function(apiUrl) {
135		//console.log('inside getChannelId');
136		//console.log('apiUrl-'+apiUrl);
137		//showLoader();
138		
139		$.ajax({
140			url: apiUrl,
141			type: "GET",
142			async: true,
143			cache: true,
144			dataType: 'jsonp',
145			success: function(response) { 
146				youmaxChannelId = response.items[0].id
147				getChannelDetails(youmaxChannelId);
148			},
149			error: function(html) { alert(html); },
150			beforeSend: setHeader
151		});
152	},
153
154	
155	getChannelDetails = function(channelId) {
156	
157		//var apiProfileURL = "http://gdata.youtube.com/feeds/api/users/"+youmaxUser+"?v=2&alt=json";
158		var apiProfileURL = "https://www.googleapis.com/youtube/v3/channels?part=brandingSettings%2Csnippet%2Cstatistics%2CcontentDetails&id="+channelId+"&key="+youmax_global_options.apiKey;
159
160		$.ajax({
161			url: apiProfileURL,
162			type: "GET",
163			async: true,
164			cache: true,
165			dataType: 'jsonp',
166			success: function(response) { showInfo(response);},
167			error: function(html) { alert(html); },
168			beforeSend: setHeader
169		});		
170
171	},
172	
173	
174	setHeader = function(xhr) {
175		if(xhr && xhr.overrideMimeType) {
176			xhr.overrideMimeType("application/j-son;charset=UTF-8");
177		}
178	},
179	
180	showLoader = function() {
181		youmax_global_options.youmaxItemCount = 0;
182		$('#youmax-video-list-div').empty();
183		$('#youmax-video').hide();
184		$('#youmax-video').attr('src','');
185		$('#youmax-video-list-div').append('<div class="sk-cube-grid"><div class="sk-cube sk-cube1"></div><div class="sk-cube sk-cube2"></div><div class="sk-cube sk-cube3"></div><div class="sk-cube sk-cube4"></div><div class="sk-cube sk-cube5"></div><div class="sk-cube sk-cube6"></div><div class="sk-cube sk-cube7"></div><div class="sk-cube sk-cube8"></div><div class="sk-cube sk-cube9"></div></div>');
186	},
187	
188	initFeaturedVideos = function () {
189		youTubePlaylistURL = youmax_global_options.youTubePlaylistURL;
190		console.log('inside init featured - '+youTubePlaylistURL);
191		if(null!=youTubePlaylistURL&&youTubePlaylistURL.indexOf("youtube.com/playlist?list=")!=-1) {
192			youmaxFeaturedPlaylistId = youTubePlaylistURL.substring(youTubePlaylistURL.indexOf("?list=")+15);
193			youmax_global_options.youmaxFeaturedPlaylistId = youmaxFeaturedPlaylistId;
194		}
195	},
196	
197
198
199	showInfo = function(response) {
200		console.log('showInfo');
201		console.log(response);
202
203		var channelData = response.items[0];
204		var channelId = channelData.id;
205		var channelName = channelData.snippet.title;
206		var channelPic = channelData.snippet.thumbnails.default.url;
207		var channelSubscribers = channelData.statistics.subscriberCount;
208		var channelViews = channelData.statistics.viewCount;
209		var channelDesc = "";
210		var channelUploadsPlaylistId = channelData.contentDetails.relatedPlaylists.uploads;
211
212		
213		
214		//LOGO et NOM DE LA CHAINE
215		//$('#youmax-header').append('<img id="youmax-header-logo" src="'+channelPic+'"/>'+channelName);
216		
217		
218		//BOUTON S'ABONNER
219		//$('#youmax-header').append('&nbsp;&nbsp;&nbsp;&nbsp;<div class="youmax-subscribe"><div class="g-ytsubscribe" data-channelid="'+channelId+'" data-layout="default" data-count="default"></div></div>');
220		
221		//$('#youmax-stat-holder').append('<div class="youmax-stat">'+channelSubscribers+'<br/> abonn&eacute;s </div><div class="youmax-stat">'+channelViews+'<br/>vues</div>');
222		
223		//$('#youmax-stat-holder').append('<div class="youmax-stat"><span class="youmax-stat-count">'+getReadableNumber(channelViews)+'</span><br/> video views </div><div class="youmax-stat"><span class="youmax-stat-count">'+getReadableNumber(channelSubscribers)+'</span><br/>subscribers</div>');
224		
225		//$('#youmax-channel-desc').append('About '+channelName+'<br/>'+channelDesc);
226		
227		renderSubscribeButton();
228		
229		$('#youmax-tabs').find('span[id^=uploads_]').attr('id','uploads_'+channelUploadsPlaylistId);
230		
231		youmaxDefaultTab = youmax_global_options.youmaxDefaultTab;
232		
233		if(typeof youmaxDefaultTab === 'undefined'||null==youmaxDefaultTab||youmaxDefaultTab==""||youmaxDefaultTab=="undefined") {
234			$("#youmax-tabs span[id^=featured_]").click();
235		} else if(youmaxDefaultTab.toUpperCase()=='UPLOADS'||youmaxDefaultTab.toUpperCase()=='UPLOAD') {
236			$("#youmax-tabs span[id^=uploads_]").click();
237		} else if(youmaxDefaultTab.toUpperCase()=='PLAYLISTS'||youmaxDefaultTab.toUpperCase()=='PLAYLIST') {
238			$("#youmax-tabs span[id^=playlists_]").click();
239		} else if(youmaxDefaultTab.toUpperCase()=='FEATURED'||youmaxDefaultTab.toUpperCase()=='FEATURED') {
240			$("#youmax-tabs span[id^=featured_]").click();
241		}
242		
243		
244	},
245
246	renderSubscribeButton = function() {
247		$.ajaxSetup({
248		  cache: true
249		});
250		
251		$.getScript("https://apis.google.com/js/platform.js")
252		.done(function( script, textStatus ) {
253			//alert( textStatus );
254		})
255		.fail(function( jqxhr, settings, exception ) {
256			//alert( "Triggered ajaxError handler." );
257		});		
258	},
259
260
261	showPlaylists = function(response,loadMoreFlag) {
262		console.log(response);
263		
264		if(!loadMoreFlag) {
265			$('#youmax-video-list-div').empty();
266		}
267
268		var nextPageToken = response.nextPageToken;
269		var $youmaxLoadMoreDiv = $('#youmax-load-more-div');
270		//console.log('nextPageToken-'+nextPageToken);
271		
272		if(null!=nextPageToken && nextPageToken!="undefined" && nextPageToken!="") {
273			$youmaxLoadMoreDiv.data('nextpagetoken',nextPageToken);
274		} else {
275			$youmaxLoadMoreDiv.data('nextpagetoken','');
276		}
277		
278		youmaxColumns = youmax_global_options.youmaxColumns;
279		
280		var playlistArray = response.items;
281		var playlistIdArray = [];
282		var zeroPlaylistCompensation = 0;
283		for(var i=0; i<playlistArray.length; i++) {
284			playListId = playlistArray[i].id;
285			playlistSize = playlistArray[i].contentDetails.itemCount;
286			if(playlistSize<=0){
287				zeroPlaylistCompensation++;
288				continue;
289			}				
290			playlistIdArray.push(playListId);
291			playlistTitle = playlistArray[i].snippet.title;
292			playlistUploaded = playlistArray[i].snippet.publishedAt;
293			playlistThumbnail = playlistArray[i].snippet.thumbnails.medium.url;
294			//playlistThumbnail = playlistThumbnail.replace("hqdefault","mqdefault");
295			playlistDescription = playlistArray[i].snippet.description;
296			if((i+youmax_global_options.youmaxItemCount-zeroPlaylistCompensation)%youmaxColumns!=0)
297				$('#youmax-video-list-div').append('<div class="youmax-video-tnail-box" id="'+playListId+'"><div title="Tout regarder." class="youmax-video-tnail" style="filter: progid:DXImageTransform.Microsoft.AlphaImageLoader( src=\''+playlistThumbnail+'\', sizingMethod=\'scale\'); background-image:url(\''+playlistThumbnail+'\')"><div class="youmax-playlist-sidebar" id="youmax-playlist-sidebar-'+playListId+'"><span class="youmax-playlist-video-count"><b>'+playlistSize+'</b><br/>VID&Eacute;OS</span><span class="yt-pl-icon yt-pl-icon-reg yt-sprite"></span></div></div><span class="youmax-video-list-title">'+playlistTitle+'</span><br/><span class="youmax-video-list-description">'+playlistDescription+'</span><br/><span class="youmax-video-list-views">Vid&eacute;o ajout&eacute;e depuis '+getDateDiff(playlistUploaded)+'</span></div>');
298			else
299				$('#youmax-video-list-div').append('<div class="youmax-video-tnail-box" clear:both;" id="'+playListId+'"><div title="Tout regarder." class="youmax-video-tnail" style="filter: progid:DXImageTransform.Microsoft.AlphaImageLoader( src=\''+playlistThumbnail+'\', sizingMethod=\'scale\'); background-image:url(\''+playlistThumbnail+'\')"><div class="youmax-playlist-sidebar" id="youmax-playlist-sidebar-'+playListId+'"><span class="youmax-playlist-video-count"><b>'+playlistSize+'</b><br/>VID&Eacute;OS</span><span class="yt-pl-icon yt-pl-icon-reg yt-sprite"></span></div></div><span class="youmax-video-list-title">'+playlistTitle+'</span><br/><span class="youmax-video-list-description">'+playlistDescription+'</span><br/><span class="youmax-video-list-views">Vid&eacute;o ajout&eacute;e depuis '+getDateDiff(playlistUploaded)+'</span></div>');
300				
301		}
302		
303		youmax_global_options.youmaxItemCount+=playlistArray.length-zeroPlaylistCompensation;
304			//console.log(playlistIdArray);
305			
306		$('.youmax-video-tnail-box').click(function() {
307			//alert(this.id);
308			showLoader();
309			playlistTitle = $(this).find(".youmax-video-list-title").text();
310			getUploads("play_"+this.id,playlistTitle);
311			//getPlaylistVideos(this.id);
312		});
313		
314		/* not sure why this is needed
315		var youmaxTnailWidth = $('.youmax-video-tnail').css('width');
316		youmaxTnailWidth=youmaxTnailWidth.substring(0,youmaxTnailWidth.indexOf("px"));
317		var youmaxTnailHeight = youmaxTnailWidth/youtubeMqdefaultAspectRatio;
318		//$('html > head').append('<style>.youmax-video-tnail{height:'+youmaxTnailHeight+'px;}</style>');	
319		$('div.youmax-video-tnail').css({'height':youmaxTnailHeight+'px'});
320		*/
321		
322		
323		/*
324		if(youmaxTnailHeight<130) {
325			maxTopVideos = 3;
326			$('html > head').append('<style>.youmax-playlist-video-count{margin: 10%;margin-top: 15%;}.youmax-playlist-sidebar-video{margin: 8% auto;}</style>');	
327			//$('div.youmax-playlist-video-count').css({'margin':'10%','margin-top':'15%'});
328			//$('div.youmax-playlist-sidebar-video').css({'margin':'8% auto'});
329		} else {
330			maxTopVideos = 4;
331		}*/
332		
333		resetLoadMoreButton();
334		
335		//console.log(youmaxTnailWidth);
336		//console.log(youmaxTnailHeight);
337
338		//getTopVideosFromPlaylist(playlistIdArray,maxTopVideos);
339	},
340
341	showUploads = function(response,playlistTitle,loadMoreFlag) {
342		console.log(response);
343
344		if(!loadMoreFlag) {
345			$('#youmax-video-list-div').empty();
346			
347			if(playlistTitle) {
348				$('.youmax-tab-hover').removeClass('youmax-tab-hover');
349				$('#youmax-video-list-div').append('<span class="youmax-showing-title youmax-tab-hover" id="uploads_'+response.items[0].snippet.playlistId+'" style="max-width:100%;"><span class="youmax-showing"></span>"'+playlistTitle+'"</span><br/>');
350			}
351		}
352		
353		var nextPageToken = response.nextPageToken;
354		var $youmaxLoadMoreDiv = $('#youmax-load-more-div');
355		//console.log('nextPageToken-'+nextPageToken);
356		
357		youmaxColumns = youmax_global_options.youmaxColumns;
358		
359		if(null!=nextPageToken && nextPageToken!="undefined" && nextPageToken!="") {
360			$youmaxLoadMoreDiv.data('nextpagetoken',nextPageToken);
361		} else {
362			$youmaxLoadMoreDiv.data('nextpagetoken','');
363		}
364		
365		var uploadsArray = response.items;
366		var videoIdArray = [];
367		
368		for(var i=0; i<uploadsArray.length; i++) {
369			videoId = uploadsArray[i].snippet.resourceId.videoId;
370			videoTitle = uploadsArray[i].snippet.title;
371			videoDescription = uploadsArray[i].snippet.description;
372			//videoViewCount = uploadsArray[i].snippet.viewCount;
373			//videoDuration = uploadsArray[i].snippet.duration;				
374			videoUploaded = uploadsArray[i].snippet.publishedAt;
375			videoThumbnail = uploadsArray[i].snippet.thumbnails.medium.url;
376			//videoThumbnail = videoThumbnail.replace("hqdefault","mqdefault");
377			
378			videoIdArray.push(videoId);
379			
380			//$('#youmax-video-list-div').append('<div class="youmax-video-tnail-box" style="width:'+((100/youmaxColumns)-4)+'%;" id="'+videoId+'"><div class="youmax-video-tnail" style="filter: progid:DXImageTransform.Microsoft.AlphaImageLoader( src=\''+videoThumbnail+'\', sizingMethod=\'scale\'); background-image:url(\''+videoThumbnail+'\')"><div class="youmax-duration">'+secondsToTime(videoDuration)+'</div></div><span class="youmax-video-list-title">'+videoTitle+'</span><br/><span class="youmax-video-list-views">'+getReadableNumber(videoViewCount)+' views | '+getDateDiff(videoUploaded)+' ago</span></div>');
381
382								
383			if((i+youmax_global_options.youmaxItemCount)%youmaxColumns!=0)
384				$('#youmax-video-list-div').append('<div class="youmax-video-tnail-box" id="'+videoId+'"><div class="youmax-video-tnail" style="filter: progid:DXImageTransform.Microsoft.AlphaImageLoader( src=\''+videoThumbnail+'\', sizingMethod=\'scale\'); background-image:url(\''+videoThumbnail+'\')"><div class="youmax-duration"></div></div><span class="youmax-video-list-title">'+videoTitle+'</span><br/><span class="youmax-video-list-description">'+videoDescription+'</span><br/><span class="youmax-video-list-views">Vid&eacute;o ajout&eacute;e depuis '+getDateDiff(videoUploaded)+'</span></div>');
385			else
386				$('#youmax-video-list-div').append('<div class="youmax-video-tnail-box" style="clear:both;" id="'+videoId+'"><div class="youmax-video-tnail" style="filter: progid:DXImageTransform.Microsoft.AlphaImageLoader( src=\''+videoThumbnail+'\', sizingMethod=\'scale\'); background-image:url(\''+videoThumbnail+'\')"><div class="youmax-duration"></div></div><span class="youmax-video-list-title">'+videoTitle+'</span><br/><span class="youmax-video-list-description">'+videoDescription+'</span><br/><span class="youmax-video-list-views">Vid&eacute;o ajout&eacute;e depuis '+getDateDiff(videoUploaded)+'</span></div>');
387			
388		}
389		
390		youmax_global_options.youmaxItemCount+=uploadsArray.length;
391		
392		$('.youmax-video-tnail-box').click(function(){
393			//alert(this.id);
394			//alert(showVideoInLightbox);
395			if(youmax_global_options.showVideoInLightbox){
396				showVideoLightbox(this.id);
397			} else {
398				$('#youmax-video').attr('src','http://www.youtube.com/embed/'+this.id);
399				$('#youmax-video').show();
400				$('html,body').animate({scrollTop: $("#youmax-header").offset().top},'slow');
401			}
402		});
403		
404		// not sure why this is needed
405		/*var youmaxTnailWidth = $('.youmax-video-tnail').css('width');
406		youmaxTnailWidth=youmaxTnailWidth.substring(0,youmaxTnailWidth.indexOf("px"));
407		var youmaxTnailHeight = youmaxTnailWidth/youmax_global_options.youtubeMqdefaultAspectRatio;
408		//$('html > head').append('<style>.youmax-video-tnail{height:'+youmaxTnailHeight+'px;}</style>');	
409		$('div.youmax-video-tnail').css({'height':youmaxTnailHeight+'px'});*/
410		
411
412		getVideoStats(videoIdArray);
413		resetLoadMoreButton();
414
415	},
416
417
418	//get video stats using Youtube API
419	getVideoStats = function(videoIdList) {
420		//console.log('inside getVideoStats');
421		//console.log(videoIdList);
422		//showLoader();
423		
424		apiVideoStatURL = "https://www.googleapis.com/youtube/v3/videos?part=statistics%2CcontentDetails&id="+videoIdList+"&key="+youmax_global_options.apiKey;
425		$.ajax({
426			url: apiVideoStatURL,
427			type: "GET",
428			async: true,
429			cache: true,
430			dataType: 'jsonp',
431			success: function(response) { displayVideoStats(response);},
432			error: function(html) { alert(html); },
433			beforeSend: setHeader
434		});
435	},
436
437	//display video statistics
438	displayVideoStats = function(response) {
439		//console.log(response);
440		
441		var videoArray = response.items;
442		var $videoThumbnail;
443
444		for(var i=0; i<videoArray.length; i++) {
445			videoId = videoArray[i].id;
446			videoViewCount = videoArray[i].statistics.viewCount;
447			videoViewCount = getReadableNumber(videoViewCount);
448			videoDuration = videoArray[i].contentDetails.duration;
449			//console.log('videoDuration-'+videoDuration);
450			
451			videoDuration = convertDuration(videoDuration);
452			videoDefinition = videoArray[i].contentDetails.definition.toUpperCase();
453			$videoThumbnail = $('#youmax-video-list-div #'+videoId);
454			$videoThumbnail.find('.youmax-video-list-views').prepend(videoViewCount+' vues | ');
455			$videoThumbnail.find('.youmax-duration').append(videoDuration);
456			//$videoThumbnail.append('<div class="youmax-definition">'+videoDefinition+'</div>');
457			
458		}
459	},
460
461		
462	getUploads = function(youmaxTabId,playlistTitle,nextPageToken) {
463		//showLoader();
464		//var apiUploadURL = "http://gdata.youtube.com/feeds/api/users/"+youmaxUser+"/uploads/?v=2&alt=jsonc&max-results=50";
465		
466		var pageTokenUrl = "";
467		var loadMoreFlag = false;
468		
469		if(null!=nextPageToken) {
470			pageTokenUrl = "&pageToken="+nextPageToken;
471			loadMoreFlag = true;
472		}
473
474		var uploadsPlaylistId = youmaxTabId.substring(youmaxTabId.indexOf('_')+1);
475		var apiUploadURL = "https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&playlistId="+uploadsPlaylistId+"&maxResults="+youmax_global_options.maxResults+pageTokenUrl+"&key="+youmax_global_options.apiKey;
476		//var apiUploadURL = "https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&playlistId="+uploadsPlaylistId+"&max-results=10&key="+youmax_global_options.apiKey;
477		console.log('apiUploadURL-'+apiUploadURL);
478		
479		$.ajax({
480			url: apiUploadURL,
481			type: "GET",
482			async: true,
483			cache: true,
484			dataType: 'jsonp',
485			success: function(response) { showUploads(response,playlistTitle,loadMoreFlag);},
486			error: function(html) { alert(html); },
487			beforeSend: setHeader
488		});
489	},
490	
491	
492	
493	getPlaylists = function(nextPageToken) {
494
495		var pageTokenUrl = "";
496		var loadMoreFlag = false;
497		
498		if(null!=nextPageToken) {
499			pageTokenUrl = "&pageToken="+nextPageToken;
500			loadMoreFlag = true;
501		}
502		
503		//var apiChannelPlaylistsURL = "https://www.googleapis.com/youtube/v3/playlists?part=contentDetails,snippet&channelId="+youmaxChannelId+"&maxResults=6&key="+youmax_global_options.apiKey;
504		var apiChannelPlaylistsURL = "https://www.googleapis.com/youtube/v3/playlists?part=contentDetails,snippet&channelId="+youmaxChannelId+"&maxResults="+youmax_global_options.maxResults+pageTokenUrl+"&key="+youmax_global_options.apiKey;
505		//var apiPlaylistURL = "https://gdata.youtube.com/feeds/api/users/"+youmaxUser+"/playlists?v=2&alt=jsonc&max-results=50";	
506		$.ajax({
507			url: apiChannelPlaylistsURL,
508			type: "GET",
509			async: true,
510			cache: true,
511			dataType: 'jsonp',
512			success: function(response) { showPlaylists(response,loadMoreFlag);},
513			error: function(html) { alert(html); },
514			beforeSend: setHeader
515		});
516	},		
517
518	showVideoLightbox = function(videoId) {			
519		$('#youmax-lightbox').show();
520		$('#youmax-video-lightbox').attr('src','http://www.youtube.com/embed/'+videoId+'?autoplay=1');
521		
522		$('#youmax-lightbox').click(function(){
523			$('#youmax-video-lightbox').attr('src','');
524			$('#youmax-lightbox').hide();
525		});
526	},
527		
528	resetLoadMoreButton = function() {
529		var $youmaxLoadMoreDiv = $('#youmax-load-more-div');
530		$youmaxLoadMoreDiv.removeClass('youmax-load-more-div-click');
531		$youmaxLoadMoreDiv.text('en voir plus');
532	},
533	
534	prepareYoumax = function() {
535		$('#youmax').empty();
536		/*
537		if(youTubeChannelURL.indexOf("youtube.com/user/")!=-1) {
538			if(null!=youTubeChannelURL&&youTubeChannelURL.indexOf("?feature")!=-1)
539				youmaxUser = youTubeChannelURL.substring(youTubeChannelURL.indexOf("youtube.com/user/")+17,youTubeChannelURL.indexOf("?feature"));
540			else
541				youmaxUser = youTubeChannelURL.substring(youTubeChannelURL.indexOf("youtube.com/user/")+17);
542		}
543		
544		console.log('youTubeChannelURL-'+youTubeChannelURL);
545		console.log('youmaxUser-'+youmaxUser);
546		//youmaxUser = 'UCVUZWBzxM7w8ug87qYwkBLg';
547		//youmaxUser = 'AdeleVEVO';
548		*/
549		
550		loadYoumax();
551		showLoader();
552		
553		$('.youmax-tab').click(function(){
554			$('.youmax-tab-hover').removeClass('youmax-tab-hover');
555			$(this).addClass('youmax-tab-hover');
556			//$('.youmax-tab').css('color','#666');
557			//$('.youmax-tab').css('background-color','rgb(230,230,230)');
558			//$('.youmax-tab').css('text-shadow','0 1px 0 #fff');
559
560			//$(this).css('color','#eee');
561			//$(this).css('background-color','#999');
562			//$(this).css('text-shadow','0 0');
563			
564			youmaxTabId = this.id;
565			
566			showLoader();
567			
568			if(youmaxTabId.indexOf("featured_")!=-1) {
569				getUploads('featured_'+youmax_global_options.youmaxFeaturedPlaylistId,null,null);
570			} else if(youmaxTabId.indexOf("uploads_")!=-1) {
571				getUploads(youmaxTabId);
572			} else if(youmaxTabId.indexOf("playlists_")!=-1) {
573				getPlaylists();
574			}
575		});
576		
577		$('#youmax-load-more-div').click(function(){
578
579			var $youmaxLoadMoreDiv = $('#youmax-load-more-div');
580			$youmaxLoadMoreDiv.html('<div class="sk-cube-grid"><div class="sk-cube sk-cube1"></div><div class="sk-cube sk-cube2"></div><div class="sk-cube sk-cube3"></div><div class="sk-cube sk-cube4"></div><div class="sk-cube sk-cube5"></div><div class="sk-cube sk-cube6"></div><div class="sk-cube sk-cube7"></div><div class="sk-cube sk-cube8"></div><div class="sk-cube sk-cube9"></div></div>');
581			$youmaxLoadMoreDiv.addClass('youmax-load-more-div-click');
582			
583			var youmaxTabId = $('.youmax-tab-hover').attr('id');
584			var nextPageToken = $youmaxLoadMoreDiv.data('nextpagetoken');
585			console.log('load more clicked : nextPageToken-'+nextPageToken);
586			
587			if(null!=nextPageToken && nextPageToken!="undefined" && nextPageToken!="") {
588				if(youmaxTabId.indexOf("featured_")!=-1) {
589					getUploads('featured_'+youmax_global_options.youmaxFeaturedPlaylistId,null,nextPageToken);
590				} else if(youmaxTabId.indexOf("uploads_")!=-1) {
591					getUploads(youmaxTabId,null,nextPageToken);
592				} else if(youmaxTabId=="playlists_") {
593					getPlaylists(nextPageToken);
594				}
595			} else {
596				$youmaxLoadMoreDiv.html('tout est charg&eacute;');
597			}
598
599		});		
600		
601		youTubeChannelURL = youmax_global_options.youTubeChannelURL;
602		
603		//Get Channel header and details 
604		if(youTubeChannelURL!=null) {
605			s=youTubeChannelURL.indexOf("/user/");
606			////console.log('s-'+s);
607			if(s!=-1) {
608				userId = youTubeChannelURL.substring(s+6);
609				//console.log('userId-'+userId);
610				apiUrl = "https://www.googleapis.com/youtube/v3/channels?part=id&forUsername="+userId+"&key="+youmax_global_options.apiKey;
611				getChannelId(apiUrl);
612			} else {
613				s=youTubeChannelURL.indexOf("/channel/");
614				if(s!=-1) {
615					youmaxChannelId = youTubeChannelURL.substring(s+9);
616					youmax_global_options.youmaxChannelId = youmaxChannelId;
617					//console.log('channelId-'+channelId);
618					getChannelDetails(youmaxChannelId);
619				} else {
620					alert("Could Not Find Channel..");
621				}
622			}
623		}
624	
625	}		
626	
627	
628	$.fn.youmax = function(options) {
629
630		
631		//set local options
632		youmax_global_options.apiKey = options.apiKey;
633		youmax_global_options.youTubeChannelURL = options.youTubeChannelURL||'';
634		youmax_global_options.youTubePlaylistURL = options.youTubePlaylistURL||'';
635		youmax_global_options.youmaxDefaultTab = options.youmaxDefaultTab||'FEATURED';
636		youmax_global_options.youmaxColumns = options.youmaxColumns||3;
637		youmax_global_options.showVideoInLightbox = options.showVideoInLightbox||false;
638		youmax_global_options.youmaxChannelId = '';
639		youmax_global_options.maxResults = options.maxResults||45;
640		youmax_global_options.youmaxItemCount = 10;
641		youmax_global_options.youtubeVideoAspectRatio = 800/600;
642	
643		//youmax_global_options.youmaxWidgetWidth = options.youmaxWidgetWidth||800;
644		//youmax_global_options.showFeaturedVideoOnLoad = options.showFeaturedVideoOnLoad||false;
645		youmax_global_options.youtubeMqdefaultAspectRatio = 800/600;
646
647		initFeaturedVideos();
648		prepareYoumax();
649	
650	};
651	
652 
653}( jQuery ));

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.