(
	function($) 
	{
		$.fn.bPlayer = function(upc,params) 
		{ 
			var defaults = {
			theme: 'public',
			childtheme: '',
			format:'fullTrack',
			playerWidth:'420',
			prefix:'../artistPages/'
		};
			var options = $.extend({},defaults, params);
			return this.each(function() 
			{
				var bPlayer=$(this);
				var playerId 		= bPlayer.attr('id');
				var UPC 			= upc;
				var target 			= '#'+playerId+' ul.listTracks li';
				var currentVolume 	= 0.5;
				var audio_container;
				var listener;
				var seeksliding;
				var oldVolume;
				var currentPage;
				var page;
				var currentHostName = document.location.hostname.toString();
				var navLanguage = navigator.language.toUpperCase();
				var durationInfo;
				var firstMail;
				var textsInfos;
				var albumInfos;
				
				//document.createElement('audio');
				
//////////////// FUNCTION TO FIND AND RETRIEVE THE XML DATAS CONCERNING ALBUM DATAS AND TEXT DATAS /////////////////////////////////////////////////
				
			var returnXml = function()
			{
				var html = "";
				html+='<div class="loadDivToRemove'+playerId+'" style="width:'+options.playerWidth+'px;height:480px;background-color:#18161b;position:relative;-moz-opacity:1;">';
					html+='<textarea id="AlbumContent'+playerId+'" style="display:none;" ></textarea>';
					html+='<textarea id="textsContent'+playerId+'" style="display:none;" ></textarea>';
					html+='<iframe src="'+options.prefix+'player/albums-getPlayerFrameContent.php?action=getXml&upc='+UPC+'&playerId='+playerId+'&navLanguage='+navLanguage+'" style="display:none;" ></iframe>';
					html+='<div class="logoBelieve" style="width:300px; position:absolute;top:50px;left:70px;" ><img class="logoPlayerImage" src="'+options.prefix+'player/img/believedigital-noir.png" width="300"  /></div>';
					html+='<div class="ContentPlayerLoading" style="width:200px;position:absolute;top:250px;left:100px;" >';
						html+='<div class="loadingMessage" style="color:#FFF;text-align:center;margin-bottom:5px;">Loading</div>';
						html+='<div class="bPlayerLoader'+playerId+'" style="height:3px;background-color:#FFF;width:0px;"></div>';
					html+='</div>';	
				html+='</div>';
				
				$('#'+playerId).append(html);
				var obj = this;
				
				$('.bPlayerLoader'+playerId).animate({width:'200px'},3000,function(){$('#progressFirstLoad'+playerId).fadeOut();constructStructure($('#AlbumContent'+playerId).val(),$('#textsContent'+playerId).val())});
			}
				
////////////////Constructor of the HTML structure /////////////////////////////////////////////////
				
				var constructStructure = function(xmlAlbum,xmlTexts)
				{
					$('div.loadDivToRemove'+playerId).remove();
					
					albumInfos 		= xmlAlbum;
					textsInfos 		= xmlTexts;
					var html 			= "";
					var albumTitle 		= $(albumInfos).find('longTitle').eq(0).text();
					var artist 			= $(albumInfos).find('artist').eq(0).text();
					var firstTrack 		= $(albumInfos).find('trackPlayerIpad').eq(0).find('longTitle').text();
					var firstTrackNum 	= 1;
					var audio_container;

					constructGlobalContainer();
					listener = constructAudio();
					//listener.pause();

					constructContentHigh(albumTitle,albumInfos,textsInfos);
					constructContentDown(artist,firstTrackNum,firstTrack);
					constructPlatformcarousel(albumInfos);
					createCarousel();
					lastBlock();
					$('div.audioPlayer').animate({opacity:1},2000);
					
					var ipadTrackup 	= document.getElementById(playerId+'trackup'); 
					var ipadTrackdown 	= document.getElementById(playerId+'trackdown'); 
					var platLeft 		= document.getElementById(playerId+'platLeft'); 
					var platRight		= document.getElementById(playerId+'platRight'); 
					
//////////////// ELEMENTS WITH CANVAS /////////////////////////////////////////////////					
					// CREATE A BLACK ICON WITH A WHITE CROSS INSIDE

					var crossBlack = function(icone)
					{
						/// First circle
	 					icone.scale(0.10, 0.10);
						icone.beginPath();
						icone.fillStyle="#FFFFFF";
						icone.arc(100,100,98,0,Math.PI*2,true);
						icone.fill();
	
						/// Second circle
						icone.beginPath();
						icone.moveTo(192,100);
						icone.fillStyle="#000000";
						icone.arc(100,100,88,0,Math.PI*2,true);
						icone.fill();
						
						//Form Inside
						icone.beginPath();
						icone.fillStyle="#FFFFFF";
						icone.globalAlpha=0.1;
						icone.moveTo(190,85);
						icone.bezierCurveTo(150,155,50,155,10,85);
						icone.bezierCurveTo(10,10,90,10,100,5);
						icone.bezierCurveTo(100,5,190,10,190,85);
						icone.scale(0.75, 0.75);
						icone.fill();
						
						// CROSS
						icone.beginPath();
						icone.lineWidth=25;
						icone.globalAlpha=1;
						icone.lineCap='round';
						icone.shadowOffsetX = 3;
						icone.shadowOffsetY = 3;
						icone.shadowBlur    = 4;
						icone.shadowColor   = 'rgba(199, 199, 199, 0.5)';
						icone.strokeStyle="#FFFFFF";
						icone.moveTo(70,70);
						icone.lineTo(200,200);
						icone.moveTo(200,70);
						icone.lineTo(70,200);
						icone.stroke();
					
						return icone;
					}
					
					// CREATE MULTI DOUBLE ARROWS ACCORDING TO DIRECTION
					
					var createArrow = function(element,direction)
					{
						var context = element.getContext('2d');
						var width = element.width;
						var height = element.height;
						context.beginPath();
						context.fillStyle = "#FFFFFF";
						switch(direction)
						{
							case "right" : 
								context.lineTo(width /2, height /2 );
								context.lineTo(0, height);
								context.lineTo(0, 0);
								context.moveTo(width /2, 0);
								context.lineTo(width , height /2 );
								context.lineTo(width /2, height);
								context.lineTo(width /2, 0);
							break;
							case "left" : 
								context.moveTo(0, height /2);
								context.lineTo(width /2, 0 );
								context.lineTo(width /2, height);
								context.lineTo(0, height /2);
								
								context.moveTo(width /2, height /2);
								context.lineTo(width , 0 );
								context.lineTo(width , height);
								context.lineTo(width /2, height /2);
							break;
						}
						context.fill();
					}
					
					
					var icon = document.getElementById(playerId+'contentHighHide').getContext('2d');
					icon = crossBlack(icon);
					
					var iconNewsLeft = document.getElementById('headerNewsLeftCross').getContext('2d');
					iconNewsLeft = crossBlack(iconNewsLeft);
					
					createArrow(document.getElementById('previousRight'), "left");
					createArrow(document.getElementById('nextForm'), "right");

					
					
//////////////////////////////////////////////////////////	
				
					
					listener.volume = 0.5;
					listener.addEventListener("ended", function() {nextTrack();}, true);
					listener.addEventListener("timeupdate", function() {seekUpdate();}, true);
					listener.addEventListener("loadstart", function() {seekUpdate();if($('#'+playerId+' div.contentHigh').hasClass('playerVisible')){$('#'+playerId+' img.loaderPlayer').css('visibility','visible');}}, true);
						
					if(options.format=='fullTrack'){durationInfo=30;}else{durationInfo= $(target+'.active div.trackDuration').attr('rel');}

					
//////////////////// GET NEW ELEMENTS /////////////////////////////////////////////////
					
				var hideContentHigh 	= $('canvas.contentHighHide', bPlayer);
				var trackUp 			= $('.trackup', bPlayer);
				var trackDown 			= $('.trackdown', bPlayer);
				var trackLink			= $('ul.listTracks li a', bPlayer);
				var rewind 				= $('img.rewind', bPlayer); 
				var play 				= $('img.play', bPlayer);
				var forward 			= $('img.forward', bPlayer);
				var OnOffVol			= $('img.OnOffVol', bPlayer);
				var volumeUp			= $('img.volumeUp', bPlayer);
				var volumedown			= $('img.volumeDown', bPlayer);
				var backPlatform		= $('div.backPlatform', bPlayer);
				var forwardPlatform		= $('div.forwardPlatform', bPlayer);
				var newsLetterButton 	= $('div.newsLetter', bPlayer);
				var newsFirstHide 		= $('div.headerNewsLeftCross', bPlayer);
				var showLegal 			= $('div.legalNewsLeft', bPlayer);
				var hideLegal			= $('div.legalContent', bPlayer);
				var secondForm 			= $('canvas.nextForm', bPlayer);
				var submitForm			= $('div.submitForm', bPlayer);
				var firstForm			= $('canvas.previousRight', bPlayer);
				var deutschConfirmation = $('div.confirmDE',bPlayer);
				var birth 				= $('input[name=birthdate]',bPlayer);
				var otherImages 		= $('div.otherImg',bPlayer);
				
				var bioInfos 			= $('li.bioInfos',bPlayer);
				var albumsInfos 		= $('li.albumsInfos',bPlayer);
				var newsInfos 			= $('li.newsInfos',bPlayer);
				var videosInfos  		= $('li.videosInfos',bPlayer);
				var photosInfos  		= $('li.photosInfos',bPlayer);
			
				
				var scrollTrackFirst 	= $(' div.trackTitle',bPlayer);
				var scroll 				= $('div.textTitleNews',bPlayer);
					
//////////////////// INIT EVENTS /////////////////////////////////////////////////

				$(hideContentHigh,bPlayer).click(hideTracklist);
				$(trackLink,bPlayer).click(getTrack);
				$(trackUp,bPlayer).mouseenter(moveTracks);
				$(trackDown,bPlayer).mouseenter(moveTracks);
				$(trackUp,bPlayer).mouseleave(stopTracks);
				$(trackDown,bPlayer).mouseleave(stopTracks);
				$(rewind,bPlayer).click(prevTrack);
				$(play,bPlayer).click(playPause);
				$(forward,bPlayer).click(nextTrack);
				$(OnOffVol,bPlayer).click(muteVolume);
				$(volumeUp,bPlayer).click(upVolume);
				$(volumedown,bPlayer).click(downVolume);
				
				if(navigator.platform=="iPad")
				{
					$(otherImages).mouseover(sclaleOtherImages);
				}
				else
				{
					$(otherImages).mouseenter(sclaleOtherImages);
				}

				$(otherImages).mouseleave(sclaleOtherImages);
				
			
				$(forwardPlatform,bPlayer).click(function(){goToPage(currentPage+1)});
				$(backPlatform,bPlayer).click(function(){goToPage(currentPage-1)});
				
				$('#'+playerId+' div.viewVolume').hide();
				
				// GENRAL INFOS
				$(bioInfos,bPlayer).click(generateInfos);
				$(albumsInfos,bPlayer).click(generateInfos);
				$(newsInfos,bPlayer).click(generateInfos);
				$(videosInfos,bPlayer).click(generateInfos);
				$(photosInfos,bPlayer).click(generateInfos);
				
				
				// NEWSLETTER
				$(newsLetterButton).click(function(){retrieveNewsLetterForm();});
				$(newsFirstHide).click(function(){hideNews();});
				$(showLegal).click(function(){retrieveLegal();});
				$(hideLegal).click(function(){legalHide();});
				$(secondForm).click(function(){displaySecondForm(albumInfos);});
				$(firstForm).click(function(){displayFirstForm();});
				$(submitForm).click(function(){sendNewsForm(textsInfos, albumInfos);});
				$(birth).focus(function(){$('#ui-datepicker-div').css({'top':'412px','left':'57px'});});
				$(deutschConfirmation).click(function(){hideDeutschAdvise();});
				
				//TRACK SCROLL
				
				$(scrollTrackFirst).mouseenter(enterScroll);
					
				// IPAD
				ipadTrackup.addEventListener("touchstart",  moveTracks, false);
				ipadTrackup.addEventListener("touchend",  stopTracks, false);
				ipadTrackdown.addEventListener("touchstart",  moveTracks, false);
				ipadTrackdown.addEventListener("touchend",  stopTracks, false);

				
				platLeft .addEventListener("touchstart",function(){goToPage(currentPage-1);}  , false);
				platRight.addEventListener("touchstart", function(){goToPage(currentPage+1);}, false);
				}
				

//////////////////// FUNCTIONS TO SCROLL LONG TEXT  /////////////////////////////////////////////////
				
				var leaveScroll = function(event)
				{
					var obj 			= event.currentTarget;
					var text 			= $(obj).text();
					var firstContainer 	= $(obj).parent().empty().text(text);
				}
				var enterScroll = function(event)
				{
					var obj 		= event.currentTarget;
					var text 		= $(obj).text();
					var textLength 	= parseInt($(obj).text().length);
					
					if( textLength >30)
					{
						if($('.createMarquee').length <= 0)
						{
							if((!navigator.userAgent.match(/iPhone|iPod|iPad/i))) 
							{
								$(obj).empty();
								$(obj).append('<marquee class="createMarquee" behavior="alternate" direction="left" scrollamount="2" scrolldelay="10" loop="10"  >'+text+'</marquee>');
								$(obj).find('.createMarquee').mouseleave(function(event){leaveScroll(event)});
							}
						}
						else
						{
							$(obj).find('.createMarquee').each(function(){
								var text = $(this).text();
								var firstContainer = $(this).parent();
								$(firstContainer ).empty();
								$(firstContainer).text(text);
							});
						}
					}
				}

				
//////////////////// FUNCTIONS TO CONTROL GENERAL INFOS /////////////////////////////////////////////////
	
var generateInfos = function(event)
{
				
		$('#'+playerId+' div.contentNewsletter').css('visibility','hidden');
		$('#'+playerId+' div.legalContent').css('visibility','hidden');
		$('#'+playerId+' div.headerNewsLeftCross').fadeIn();
		$('#'+playerId+' div.contentHigh').hide();
		$('#'+playerId+' div.contentHigh').css('visibility','hidden');
		$('#'+playerId+' div.contentHigh').removeClass('playerVisible');
		$('#'+playerId+' div.contentHigh').addClass('playerHidden');
	
	var li 		= event.target;
	var classLi = $(li).attr('class');
	var html	= "";
	var albumDatas = albumInfos;

	var contentContainer = $('div.contentFullInfos',audio_container);
	var constructSecondContainer = '<div style="height:289px;overflow:auto;" class="scroll_auto"></div>';
	
	if($('div.scroll_auto').length>0){$('div.scroll_auto').remove();}
	
	$(contentContainer).empty().append(constructSecondContainer).css('visibility','visible');	
	var secondContainer = $('div.scroll_auto',audio_container);
	$('div.contentControls',audio_container).css("visibility","visible");

	switch (classLi)
	{
		case('albumsInfos'):
		
		$(albumDatas).find('albums album').each(function(){
					
			var albumsUpc = $(this).find('upc').text();
			var albumsImg = $(this).find('cover').text();
			var artist = $(this).find('artist').text();
			var album = $(this).find('album').text();
			
			var releaseDate = $(this).find('release_date').text();
			
			if(albumsImg!="")
			{
				html+='<div class="albumInfosContent" onclick="getPlayerHTML5('+albumsUpc+');">';
					html+='<div style="float:left;">';
						html+='<img src="'+albumsImg+'"/>';
					html+='</div>';	
					html+='<div class="albumInfosContainer">';
						html+='<p  style="font-size:0.9em;margin-bottom:3px;">'+artist+'</p>';
						html+='<p style="margin-bottom:2px;">'+album+'</p>';
						html+='<p style="font-style:italic;">'+releaseDate+'</p>';
					html+='</div>';	
					html+='<div style="clear:left;"></div>';
	
					
				html+='</div>';
			}
		});
		break;
		
		case('newsInfos'):
		$(albumDatas).find('news info').each(function(index){
				html+='<div class="newsInfosTable" style="clear:both;" >';
					html+='<div><img src="'+options.prefix+'player/img/icon_believe_white_18x18.png"/></div>';
					var date = $(this).find('date').text().replace(/([0-9]*)\-([0-9]*)\-([0-9]*)/g,"$2/$1");
					html+='<div style="width:40px;text-align:center;">'+date+'</div>';			
					html+='<div class="textTitleNews" style="width:260px;cursor:pointer;">'+$(this).find('titleIpad').text()+'</div>';			
					html+='<div class="retrieveNewsContent" rel="'+index+'" style="cursor:pointer;">[......]</div>';	
			html+='</div>';				
			html+='<br />';
			});
			
			html+='<div class="dynamicNews">';
			var date = $(albumDatas).find('news info:eq(0)').find('date').text().replace(/([0-9]*)\-([0-9]*)\-([0-9]*)/g,"$2/$1");
				html+='<div class="dynamicDate">'+date+'</div>';
				html+='<div class="dynamicContent"><p>'+$(albumDatas).find('news info:eq(0)').find('content').text().replace(/<br>/g,"")+'</p></div>';
			html+='</div>';

		break;
		
		case('videosInfos'):
	
		var sourceVideo =  [{source:$(albumDatas).find('videos video url:eq(0)').text()}];
		var nbImages 	= $(albumDatas).find('videos count').text();
		var size 		= nbImages * 40;
		
		html+='<div class="videoContainer" style="float:left;"></div>';
		
		html+='<div class="videoImageContainer" style="float:left;height:230px;overflow:hidden;padding:10px;background:#000;">';
			html+='<div class="fullImageVideo" style="height:'+size+'px;">';
				$(albumDatas).find('videos video').each(function(index){
				html+='<img rel="video-'+index+'"   src="'+$(this).find('imageVideoIpad').text()+'" height=40px;/><br />';
				});
			html+='</div>';
		html+='</div>';
		break;		
		
		case('bioInfos'):
		html+='<p>'+$(albumDatas).find('biography text').text()+'</p>';
		break;
		
		case('photosInfos'):

		var previewPhoto = $(albumDatas).find('photos photo preview:eq(0)').text();
		var sourcePhoto 	= previewPhoto.replace(/\/preview/,"");
		var nbImages 	= $(albumDatas).find('photos count').text();
		
		var size 		= nbImages * 40;
		size = size+(nbImages*5);
		html+='<div class="photoImageContainer" style="width:240px;overflow:hidden;margin:0 auto;">';
			html+='<div class="fullImagePhoto" style="width:'+size+'px;background:rgba(0,0,0,0.5);padding-bottom:5px;">';
				html+='<table>';
					html+='<tr>';
						$(albumDatas).find('photos photo').each(function(index){
						html+='<td><img rel="photo-'+index+'"  src="'+$(this).find('preview').text()+'" width=35px height=35px;  style="padding:5px 5px 0 5px;"/></td>';
						});
					html+='<tr>';
				html+='</table>';
			html+='</div>';
		html+='</div>';
	
		html+='<div class="photoContainer" style="height:auto;width:240px;margin:0px auto;">';
			html+='<img src="'+sourcePhoto+'" width=231px style="border:solid 5px #FFF;max-height:230px;"/>';
		html+='</div>';	
		break;
	}
	$(secondContainer).append(html);
	
	if((navigator.userAgent.match(/iPhone|iPod|iPad/i))) 
	{
		switch(classLi)
		{
			case("photosInfos"):
			$('div.photoImageContainer',audio_container).mobileScroll({position:"horizontal",sizeWidthWrapper:size+"px"});
			break;
			
			case("videosInfos"):
			$('div.videoImageContainer',audio_container).mobileScroll();
			break;
			
			default:
			$(secondContainer).mobileScroll();
			break;
		}
	}
	else
	{
		$(secondContainer).jScrollPane();
		
		if($('div.fullImageVideo',audio_container).height()>250 || $('div.fullImagePhoto',audio_container).width()>100)
		{
			setTimeout(function(){$('div.videoImageContainer',audio_container).jScrollPane({"autoReinitialise":false});},1000);
			setTimeout(function(){$('div.photoImageContainer',audio_container).jScrollPane({"autoReinitialise":false});},1000);
		}
	}
	$(secondContainer).hide();
	if(classLi!='bioInfos')
	{
		$('div.contentFullInfos img:last').load(function(){
		$(secondContainer).show();
		});
	}
	else
	{
		$(secondContainer).show();
	}
	
	$('div.textTitleNews').click(function(event){enterScroll(event);});
	$('div.retrieveNewsContent').click(function(){retrieveNewsByRel(this);});
	$('img[rel*="video-"]').click(function(){changeVideos(this,albumDatas)});	
	$('img[rel*="photo-"]').click(function(){changePhotos(this,albumDatas)});
	if(classLi=="videosInfos")	$('div.videoContainer').gVideo('videoContainer',sourceVideo,{streamVideo:true,width:300,height:250});
}

var changeVideos = function(obj,albumDatas)
{
	var indexVideo 		= $(obj).attr('rel').replace(/video\-([0-9]+)/,"$1");
	var videoContainer 	= $('#'+playerId+' div.videoContainer')
	$(videoContainer).empty();
	var sourceVideo =  [{source:$(albumDatas).find('videos video url:eq('+indexVideo+')').text()}];
	$(videoContainer).gVideo('videoContainer',sourceVideo,{streamVideo:true,width:300,height:250});
}
var changePhotos = function(obj,albumDatas)
{
	var indexPhoto		= $(obj).attr('rel').replace(/photo\-([0-9]+)/,"$1");
	var newPhoto = $(albumDatas).find('photos photo preview:eq('+indexPhoto+')').text().replace(/\/preview/,"");
	var newImage = '<img src="'+newPhoto+'" width=230px style="border:solid 5px #FFF;max-height:230px;" />';
	$('#'+playerId+' div.photoContainer').html(newImage).hide();
	$('#'+playerId+' div.photoContainer img:first').load(function(){$('#'+playerId+' div.photoContainer').show();});
}

var retrieveNewsByRel = function(obj)
{
	var index = $(obj).attr('rel');
	var albumDatas = albumInfos;
	var html="";
	var date = $(albumDatas).find('news info:eq('+index+')').find('date').text().replace(/([0-9]*)\-([0-9]*)\-([0-9]*)/g,"$2/$1");
	html+='<div class="dynamicDate">'+date+'</div>';
	
	// Here we find text and eliminate the <br> tag.
		html+='<div class="dynamicContent"><p>'+$(albumDatas).find('news info:eq('+index+')').find('content').text().replace(/<br>/g,"")+'</p></div>';
		
	$('div.dynamicNews',audio_container).html(html);
	
	// Here we eliminate all <p> empty
	$('div.dynamicNews p',audio_container).each(function(){
	
		if($(this).text() =="")
		{
			$(this).remove();
		}
	});
}
//////////////////// FUNCTIONS THE IMG SCALE FOR OTHER ALBUMS /////////////////////////////////////////////////	
				
				var sclaleOtherImages = function(evt)
				{
					var mouseEvent = evt.type;
					var imgSrc = $(this).find('img').attr('src');
					var newUPC = imgSrc.replace(/[0-9a-zA-Z\:\/\.]+([0-9]{13}\.jpg)/g,"$1");
					switch(mouseEvent)
					{
						case("mouseenter" || "mouseover"):
						$('div.viewOtherAlbums').css("visibility","visible").find('img').attr('src','http://covers.believedigital.com/101/'+newUPC);
						break;
						case("mouseleave"):
						$('div.viewOtherAlbums').css("visibility","hidden");
						break;
					}
				}
			
//////////////////// FUNCTIONS CONCERNING MAJOR ACTIONS (PLAY, PAUSE....) /////////////////////////////////////////////////	
        
			var prevTrack = function()
				{
					listener.pause();
					var currentTrack 	= $('#'+playerId+' ul.listTracks li.active').index(),
					prevTrack 			= currentTrack -1,
					firstTrack 			= $('#'+playerId+' ul.listTracks li a:first').attr('src');
	
					if(prevTrack < 0)
					{
						$(target).removeClass('active');
						$(target+':first').addClass('active');
						var currentLi = $(target+'.active').index();
						constructSource(firstTrack);
						var newTitle = $(target+':first').find('a').attr('rel');
						$('#playPause img').attr('src',options.prefix+'player/img/pause.png');
					}
					else
					{
						var prevTrackSrc = $(target+'.active').prev().find('a').attr('src');
						$(target).removeClass('active');
						$(target).eq(prevTrack).addClass('active');
						var currentLi = $(target+'.active').index();
						alignLi(currentLi);
						constructSource(prevTrackSrc);
						var newTitle = $(target).eq(prevTrack).find('a').attr('rel'); 
					}
					$('#'+playerId+' div.trackName').text(newTitle);
					$('#'+playerId+' img.play').attr('src',options.prefix+'player/img/pause.png');
					listener.load();
					listener.play();
					forceTheSound();
				}
				
				var playPause = function() 
				{
					$('#'+playerId+' div.contentNewsletter').css('visibility','hidden');
					$('#'+playerId+' div.legalContent').css('visibility','hidden');
					$('#'+playerId+' div.headerNewsLeftCross').fadeIn();
					$('div.contentFullInfos',audio_container).css('visibility','hidden');
					
					if(listener.paused) 
					{
						listener.play();
						seekUpdate();
						$('#'+playerId+' img.play').attr('src',options.prefix+'player/img/pause.png');
						listener.volume=currentVolume;
						showTracklist();
					} 
					else 
					{					
						listener.pause();
						$('#'+playerId+' img.play').attr('src',options.prefix+'player/img/play.png');
						listener.volume=currentVolume;
						showTracklist();
					}
				};
				
				var nextTrack = function ()
				{
					listener.pause();
					var currentTrack 	= ($('#'+playerId+' ul.listTracks li.active').index())+1,
					firstTrack 		= $('#'+playerId+' ul.listTracks li a:first').attr('src'),
					liInfos 		= retrieveLiDatas();
				
					if(currentTrack == liInfos.nbTracks)
					{
						$(target).removeClass('active');
						$(target+':first').addClass('active');
						var currentLi = $(target+'.active').index();
						alignLi(currentLi);
						constructSource(firstTrack);
						var newTitle = $(target+':first').find('a').attr('rel');
					}
					else
					{
						var nextTrack = $(target+'.active').next().find('a').attr('src');
						$(target).removeClass('active');
						$(target).eq(currentTrack).addClass('active');
						var currentLi = $(target+'.active').index();
						alignLi(currentLi);
						constructSource(nextTrack);
						var newTitle = $(target).eq(currentTrack).find('a').attr('rel'); 
					}
					$('#'+playerId+' div.trackName').text(newTitle);
					$('#'+playerId+' img.play').attr('src',options.prefix+'player/img/pause.png');
					listener.load();
					if(options.format=='fullTrack'){durationInfo=30;}else{durationInfo= $(target+'.active div.trackDuration').attr('rel');}
					listener.play();
					forceTheSound();
				}
				
				
//////////////// FUNCTIONS CONCERNING TRACKLIST VISIBILITY/////////////////////////////////////////////////

				var hideTracklist = function()
				{
					$('#'+playerId+' div.contentHigh').hide();
					$('#'+playerId+' div.contentHigh').css('visibility','hidden');
					$('#'+playerId+' div.contentHigh').removeClass('playerVisible');
					$('#'+playerId+' div.contentHigh').addClass('playerHidden');
				}
				var showTracklist = function()
				{
					$('#'+playerId+' div.contentHigh').fadeIn('slow');
					$('#'+playerId+' div.contentHigh').css('visibility','visible');
					$('#'+playerId+' div.contentHigh').removeClass('playerHidden');
					$('#'+playerId+' div.contentHigh').addClass('playerVisible');
				}

//////////////// FUNCTIONS CONCERNING VOLUME ACTIONS /////////////////////////////////////////////////

				var forceTheSound =function()
				{
					if(listener.muted)
					{
						if(oldVolume!=0)
						{
							oldVolume = listener.volume;
							listener.volume=0;
							listener.volume = oldVolume;
						}
						else
						{
							var currentVol = 0;
							listener.volume = currentVol;
						}
					}
					else
					{
						oldVolume = listener.volume;
						listener.volume=0;
						listener.volume = oldVolume;
					}
				}

				var setVolume = function () 
				{
					currentVolume = listener.volume;
				}
					
				var getVolume = function ()
				{
					setVolume();
					return currentVolume.toFixed(2);
				}
				
				var muteVolume = function()
				{ 
					if(listener.muted)
					{
						listener.muted 	= false;
						$('#'+playerId+' img.OnOffVol').attr('src',options.prefix+'player/img/sonOn.png');
						$('#'+playerId+' img.volumeDown,#'+playerId+' img.volumeUp').animate({opacity:1},'slow');
					}
					else
					{		
						oldVolume = listener.volume;
						listener.muted=true;
						$('#'+playerId+' img.OnOffVol').attr('src',options.prefix+'player/img/sonOff.png');
						$('#'+playerId+' img.volumeDown,#'+playerId+' img.volumeUp').animate({opacity:0},'slow');
					}
				}
				
				var downVolume = function()
				{ 
					if(getVolume()<= 0.10)
					{
						$('#'+playerId+' img.viewVolumeImg').attr('src',options.prefix+'player/img/viewVolumeOff.png');
						$('#'+playerId+' img.OnOffVol').attr('src',options.prefix+'player/img/sonOff.png');
					}
					
					if(getVolume()< 0.10)
					{
						listener.muted=true;
						oldVolume = listener.volume;
						$('#'+playerId+' img.OnOffVol').attr('src',options.prefix+'player/img/sonOff.png');
					}
					else
					{
						listener.volume-=0.10;
					}
					viewVolume();
				}
				
				var upVolume = function()
				{	
					if(listener.muted=true)
					{
						listener.muted=false;
						$('#'+playerId+' img.OnOffVol').attr('src',options.prefix+'player/img/sonOn.png');
					}
					if(getVolume() == 0.00)
					{	
						$('#'+playerId+' img.OnOffVol').attr('src',options.prefix+'player/img/sonOn.png');
						$('#'+playerId+' img.viewVolumeImg').attr('src',options.prefix+'player/img/viewVolumeOn.png');
					}
					if(getVolume()< 0.90)
					{
						listener.volume+=0.10;
					}
					else
					{	
						listener.volume=1;
					}
					viewVolume();
				}
				
				var viewSquare = function(nbSquare)
				{
					$('#'+playerId+' div.contentSquare').html('');
					var totalSquare = 10; 
					var html='';
					for(var i=0;i<totalSquare;i++)
					{
						if(i<nbSquare)
						{
							html+='<div class="whiteSquare"></div>';
						}
						else
						{
							html+='<div class="blackSquare"></div>';
						}
					}
					$('#'+playerId+' div.contentSquare').append(html);
				}
				
				var viewVolume = function()
				{
					var viewVolume 		= $('#'+playerId+' div.viewVolume');
					var percentVolume 	=(parseInt(getVolume() *100) /1);
					var nbSquare 		= percentVolume /10;
					viewSquare(nbSquare);
					$('#'+playerId+' div.contentHigh').stop(true, true).fadeOut('slow').delay(2000).fadeIn('slow');
					viewVolume.stop(true, true).fadeIn('slow').delay(2000).fadeOut('slow').next().fadeIn('slow');
				}
				
//////////////// FUNCTIONS CONCERNING TRACKLIST INTER-ACTIONS  /////////////////////////////////////////////////
				
				var getTrack = function(event)
				{
					listener.pause();
					var currentLiA = $(this);
					var newTitle = currentLiA.attr('rel');
					var sourceTrack = $(this).attr('src');
					$('#'+playerId+' ul.listTracks li').removeClass('active');
					currentLiA.parent().addClass('active');
					var currentLi = $('#'+playerId+' ul.listTracks li.active').index();
					if(options.format=='fullTrack'){durationInfo=30;}else{durationInfo=$('#'+playerId+' ul.listTracks li.active div.trackDuration').attr('rel');}
					constructSource(sourceTrack);					
					$('#'+playerId+' div.trackName').html(newTitle);
					$('#'+playerId+' img.play').attr('src',options.prefix+'player/img/pause.png');
					listener.load();
					listener.play();
					forceTheSound();
					alignLi(currentLi);
					return false;
				}
				
				var moveTracks = function(event)
				{
					event.preventDefault();
					var currentClass = $(this).attr('class').replace(/([a-zA_Z]+) ([a-zA_Z]+)/gi,"$1");
					var liInfos = retrieveLiDatas();

					var totalMargin = liInfos.marginLi * liInfos.numLi;
					var totalSize 	= (liInfos.numLi * liInfos.sizeLi)+totalMargin;
					totalSize  		= -(totalSize-liInfos.visiblePart);
					
					switch(currentClass)
					{
						case ('trackup'):
						$('#'+playerId+' ul.listTracks').stop().animate({top:'5px'},1000,'linear');
						break;
						case ('trackdown'):
						$('#'+playerId+' ul.listTracks').stop().animate({top:totalSize+'px'},1000,'linear');
						break;
					}
				}
				
				var stopTracks = function(event)
				{
					$('#'+playerId+' ul.listTracks').stop();
				}
				
				var alignLi = function(index)
				{
					var liInfos = retrieveLiDatas();

					var margin 			= index * liInfos.marginLi;
					var alignLiSize 	= index * liInfos.sizeLi;
					var totalAlign 		= margin+alignLiSize;
					var halfvisible 	= liInfos.visiblePart/2;
					var limitDownTrack	= liInfos.nbTracks-2;
					if(index<4)
		 			{
		 				totalAlign = -(totalAlign);
		 			}
		 			else
		 			{
		 				totalAlign = -(totalAlign-halfvisible);
		 			}
					if(index<limitDownTrack)
					{
						$('#'+playerId+' ul.listTracks').stop().animate({top:totalAlign+'px'},300,'linear');
					}
				}
				
				var retrieveLiDatas = function()
				{
					var nbTracks 	= $('#'+playerId+' ul.listTracks li a').length;
					var numLi 		= $('#'+playerId+' ul.listTracks li').length;
					var sizeLi 		= $('#'+playerId+' ul.listTracks li').css('height').replace(/([0-9])([a-z]+).*/,'$1');
					var visiblePart = $('#'+playerId+' div.moveTrackList').css('height').replace(/([0-9])([a-z]+).*/,"$1");

					var marginLi 	= $('#'+playerId+' div.trackNum').css('margin-bottom').replace(/([0-9])([a-z]+).*/,'$1');
					
					return {'nbTracks':nbTracks,'numLi':numLi,'sizeLi':sizeLi,'visiblePart':visiblePart,'marginLi':marginLi};
				}
				
//////////////// PART CONCERNING THE CAROUSEL /////////////////////////////////////////////////
		
				var repeat = function(str, n)
				{
					return new Array( n + 1 ).join(str);
				}			
				
				var createCarousel = function()
				{
					var carousel 	= $('#'+playerId+' div.carousel').css('overflow','hidden');
					var slider 		= carousel.find('>ul').width(9999);
					var items 		= slider.find('>li');
					var single 		= items.filter(':first');
					currentPage 	= 1;
					var singleWidth = single.outerWidth();
					var visible 	= Math.ceil(carousel.innerWidth() / singleWidth );
					var itemLength 	= items.length; 
					var pages 		= Math.ceil(items.length / visible);
				 	page 			= 1;
				 	
					if(itemLength % visible !=0)
					{
						slider.append(repeat('<li class="empty" />',visible-(itemLength % visible)));
						items = slider.find('>li');
					}
					
					items.filter(':first').before(items.slice(-visible).clone().addClass('cloned'));
					items.filter(':last').after(items.slice(0,visible).clone().addClass('cloned'));
					items = slider.find('>li');
					
					carousel.scrollLeft(singleWidth * visible);
				}	
			
				var goToPage = function (page)
				{
					//event.preventDefault();
					var carousel 			= $('#'+playerId+' div.carousel');
					var slider 				= carousel.find('>ul');
					var items 				= slider.find('>li');
					var single 				= items.filter(':first');
					var singleWidth 		= single.outerWidth();
					var visible 			= Math.ceil(carousel.innerWidth() / singleWidth );
					var itemLength 			= items.length;
					var backCarousel 		= 3;
					var nbBackCarousel 		= 3 * visible; 
					var backCarouselValue 	= (itemLength - nbBackCarousel) * singleWidth; 
					var pages 				= Math.ceil(items.length / visible);
					var dir 				= page > currentPage ? -1 : 1;
					var n 					= Math.abs(currentPage - page);
					var left 				= singleWidth * dir * visible * n;
				
					slider.filter(':not(:animated)').animate({
						left :'+=' + left}, 500,function () {
							if(page >pages-2)
								{
								slider.css('left',0 );
								page=1;
							}
							else if(page == 0)
							{
								slider.css('left',- backCarouselValue+'px');
								page = pages-2;
							}
							currentPage=page;
						});
				}
			
//////////////// PART CONCERNING THE NEWSLETTER /////////////////////////////////////////////////

				var retrieveNewsLetterForm = function()
				{
					$('#'+playerId+' div.contentNewsletter').css('visibility','visible');
					$('#'+playerId+' div.contentHigh').hide();
					$('#'+playerId+' div.contentHigh').css('visibility','hidden');
					$('#'+playerId+' div.contentHigh').removeClass('playerVisible');
					$('#'+playerId+' div.contentHigh').addClass('playerHidden');
					$('#'+playerId+' div.legalContent').css('visibility','hidden');
					$('div.contentFullInfos',audio_container).css('visibility','hidden');

				}
				
				var displaySecondForm = function(albumInfos,textsInfos)
				{
					var idAlbum		= $(albumInfos).find('idAlbum').text();
					var regex = /^[a-z][\w.-]+@\w[\w.-]+\.[\w.-]*[a-z][a-z]$/i; 
					var mail = $('input[type=text][name=mail]').val();
					if(regex.test(mail) ) 
					{ 

    					if(mail!=firstMail)
    					{								

	    					var infos = 'getMail'+playerId;
	    					var html='';
								html+='<div class="contentSub">';
									html+='<textarea id="'+infos+'" style="display:none"></textarea>';
									html+='<iframe src="'+options.prefix+'player/albums-getPlayerFrameContent.php?action=getMail&idAlbum='+idAlbum+'&mail='+mail+'&playerId='+playerId+'" style="display:none"></iframe>';
								html+='</div>';
	
								$('#'+playerId).append(html);
								
								
								setTimeout(function()
								{
									var result = checkSubscription(infos,textsInfos);
									if(result!="err=-3")
									{
										// || mail=="brunoauger@free.fr")
										$('#'+playerId+' div.headerNewsTitle').css('margin-left','420px');
										$('#'+playerId+' div.fullContentNewsletter').animate({
    									marginLeft: "-=420px"}, 500);
    									firstMail = mail;
									}
									else
									{
										
										$('#'+playerId+' td.badMail').animate({
    									opacity: "1"}, 500,function(){
    									setTimeout(function(){
    									$('#'+playerId+' td.badMail').animate({opacity: "0"},500);
    									},3000)
    									});
    									
									}
								},1000);
							}
							else
							{
								$('#'+playerId+' div.headerNewsTitle').css('margin-left','420px');
								$('#'+playerId+' div.fullContentNewsletter').animate({
								marginLeft: "-=420px"}, 500);
								firstMail = mail;
							}	
					} 
					else
					{ 	
						$('#'+playerId+' div.badMail').css('visibility','visible');
						$('#'+playerId+' div.badMail').animate({
    					opacity: "1"},500, function() {
    					setTimeout(function(){
    						$('#'+playerId+' div.badMail').animate({opacity: "0"},300,function(){
    							$(this).css('visibility','hidden');
    							});
    						},3000);
  						});
					}
    			}
				
				var sendNewsForm = function(textsInfos, albumInfos)
				{
					$('td.surnameRequired, td.firstnameRequired, td.zipcodeRequired ').empty();
					var requiredInfos = $(textsInfos).find('formuser requiredtext').text();
					
					var errorCount = 0;
					
					var result 		= new Array();
					var surname 	= result['surname']		= $('#'+playerId+' input[name=surname]').val();
					var firstname 	= result['firstname'] 	= $('#'+playerId+' input[name=firstname]').val();
					var zipcode 	= result['zipcode'] 	= $('#'+playerId+' input[name=zipcode]').val();
					var idAlbum		= $(albumInfos).find('idAlbum').text();
				
					
					for (var i in result)
					{
						if(result[i]=="")
						{
							$('#'+playerId+' td.'+i+'Required').text(requiredInfos);
							errorCount++;
						}
					}
					
					if(errorCount>0) return false;
					
					var birthdate =  $('#'+playerId+' input[name=birthdate]').val();
					
					if(birthdate!=""){birthdate = birthdate.replace(/([0-9]+)\/([0-9]+)\/([0-9]+)/,'$3-$1-$2');}
					
					var gender 	= $('#'+playerId+' input[name=gender]:checked').val();
					var mail 	= $('#'+playerId+' input[name=mail]').val();

					if(navLanguage == "DE" && !$('input[name=confirmDE]').is(':checked'))
					{
						$('#'+playerId+' div.headerNewsLeftCross').fadeOut();
						$('#'+playerId+' div.confirmDE').css('visibility','visible');
						$('#'+playerId+' div.contentNewsletter').css('visibility','hidden');
					}
					else
					{
						var infos = 'submission'+playerId;
						var html='';
							html+='<div class="contentSub">';
								html+='<textarea id="'+infos+'" style="display:none"></textarea>';
								html+='<iframe src="'+options.prefix+'player/albums-getPlayerFrameContent.php?action=retrieveSubmission&idAlbum='+idAlbum+'&mail='+mail+'&playerId='+playerId+'&surname='+surname+'&firstname='+firstname+'&zipcode='+zipcode+'&birthdate='+birthdate+'&gender='+gender+'" style="display:none"></iframe>';
							html+='</div>';

							$('#'+playerId).append(html);

							setTimeout(function(){
							
							var result = checkSubscription(infos,textsInfos);
								switch(result)
								{
									case('err=2'):
									$('#'+playerId+' div.newsLetter').unbind('click').css({'background':'#333','border':'#333','cursor':'not-allowed'}).hover(function(){$(this).css('border','#000'); });
									$('#'+playerId+' div.messageFormReturn').text($(textsInfos).find('subscription successful').text());
									$('#'+playerId+' div.contentNewsletter').css('visibility','hidden');
									$('#'+playerId+' div.messageFormReturn').css('visibility','visible');
									setTimeout(function(){$('#'+playerId+' div.messageFormReturn').css('visibility','hidden');},5000);
									break;

								}
							},3000);
					}
				}
				
				var checkSubscription = function(infos,textsInfos)
				{
					var messageReturn 	= $('#'+infos).val();
					messageReturn 		= messageReturn.replace(/^[\s]+(err=[\-0-9]+)(.*)/,"$1");
					$('div.contentSub').remove();
					return messageReturn;
				}
				
				var displayFirstForm = function()
				{
					$('#'+playerId+' div.headerNewsTitle').css('margin-left','0px');
					$('#'+playerId+' div.fullContentNewsletter').animate({
    				marginLeft: "0px"}, 500);			
				}
				
				var hideNews = function()
				{
					$('#'+playerId+' div.contentNewsletter').css('visibility','hidden');
					$('#'+playerId+' div.legalContent').css('visibility','hidden');
				}
				
				var retrieveLegal = function()
				{
					$('#'+playerId+' div.headerNewsLeftCross').fadeOut();
					$('#'+playerId+' div.legalContent').css('visibility','visible');
					$('#'+playerId+' div.contentNewsletter').css('visibility','hidden');
				}
				
				var legalHide = function()
				{
					$('#'+playerId+' div.legalContent').css('visibility','hidden');
					$('#'+playerId+' div.contentNewsletter').css('visibility','visible');
					$('#'+playerId+' div.headerNewsLeftCross').fadeIn();
				}
				
				var hideDeutschAdvise = function()
				{
					$('#'+playerId+' div.confirmDE').css('visibility','hidden');
					$('#'+playerId+' div.headerNewsLeftCross').fadeIn();
					$('#'+playerId+' div.contentNewsletter').css('visibility','visible');
				}

			
////////////////PART CONCERNING THE TIMER /////////////////////////////////////////////////


			
				var gTimeFormat=function(seconds)
				{
					var m=Math.floor(seconds/60)<10?"0"+Math.floor(seconds/60):Math.floor(seconds/60);
					var s=Math.floor(seconds-(m*60))<10?"0"+Math.floor(seconds-(m*60)):Math.floor(seconds-(m*60));
					return m+":"+s;
				};

				var seekUpdate = function() 
				{
					
					$('#'+playerId+' img.loaderPlayer').css('visibility','hidden');
					var audioTimer 	= $('.audioTimer', bPlayer);
					var audioSeek 	= $('.audioSeek', bPlayer);
					var percentage = (listener.currentTime /durationInfo) * 100 + '%';
					if(percentage == "0%")
					{
						$('.audioSeek', bPlayer).css("width","0%");
						$('.scrubber', bPlayer).css("left","0%");
					}
					var currenttime = listener.currentTime;
					if(currenttime>durationInfo){nextTrack();}
					audioTimer.text(gTimeFormat(currenttime));
					$('.audioSeek', bPlayer).css("width",percentage);
					$('.scrubber', bPlayer).css("left",percentage);
									
				};

				
				var getTime = function(duration,format)
				{	
					var hours = parseInt(duration/3600);
					var minutes = parseInt(duration/60);
					var secondes = duration-(minutes * 60);
					if(secondes<10){secondes = '0'+secondes;}
	
					switch (format)
					{
						case('hour'):
						if(minutes<10){minutes = '0'+minutes;}
						return hours+':'+minutes+':'+secondes;
						break;
						case('minute'):
						return minutes+':'+secondes;
						break;
					}
				}
								
////////////////PART CONCERNING THE GENERAL CONSTRUCTION OF THE PLAYER /////////////////////////////////////////////////
				
				var constructGlobalContainer = function()
				{
					//var audio_wrap 	= $('<div></div>').addClass('audioPlayer').css('opacity',0).addClass(options.theme).addClass(options.childtheme);
					$('#'+playerId).addClass('audioPlayer').css('opacity',0).addClass(options.theme).addClass(options.childtheme);
					
					audio_container = $('#'+playerId);
				}
				
				var constructAudio = function()
				{
					var audio 		= '<audio id="Audio'+playerId+'">  Your browser does not support the audio element.</audio>';
					$('#'+playerId).append(audio);
					var playerObj	= document.getElementById('Audio'+playerId);
					return playerObj;
				}
				
				var constructSource = function(track)
				{
					$('.source'+playerId).remove();
					$('audio#Audio'+playerId).append('<source class="source'+playerId+'" />');
					$('.source'+playerId).attr('src',track);
				}

				
				var constructContentHigh = function(albumTitle,albumInfos,textsInfos)
				{
					
					// INFOS UP 
					
					var contentInfoUp 		= '<div class="contentInfoUp"></div>';
					var contentFullInfos 	= '<div class="contentFullInfos"><div  id="toto" style="width:390px;height:270px;padding-left:4px;" class="fullInfos"></div></div>';
					
					//NEWSLETTER
					
					var contentNewsletter  		= '<div class="contentNewsletter"></div>';
					var fullContentNewsletter 	= '<div class="fullContentNewsletter"></div>';
					var newsLeft 				= '<div class="newsLeft"></div>';
					var newsRight 				= '<div class="newsRight"></div>';
					var requiredFields			= '<div style="font-size:0.8em"><span class="redRequired">* </span>'+$(textsInfos).find('formuser requiredtext').text()+'</div>';
					
					// RETRIEVE LEGAL INFOS REGEX
					var legalInfos 	= $(textsInfos).find('misc legalNoticeText').html().replace(/<!--\[CDATA\[([^]*)\]\]-->/gm,"$1");
					legalInfos 		= legalInfos.replace(/[\?]+/g,"'");
	
					var legalContent			= '<div class="legalContent">'+legalInfos+'</div>';
					var confirmDE 				= '<div class="confirmDE"></div>';
					var messageFormReturn 		= '<div class="messageFormReturn"></div>';
					var badMail 				= '<div class="badMail">'+$(textsInfos).find('bademail').text()+'</div>';
					var headerNews				= '<div class = "headerNews"></div>';
					var headerNewsTitle			= '<div class="headerNewsTitle">Newsletter</div>';
					var headerNewsLeftCross		= '<div class="headerNewsLeftCross"><canvas height=25 width=25 id="headerNewsLeftCross" style="display:block;" ></canvas></div>';
					var textNewsLeft			= '<div class ="textNewsLeft">'+$(textsInfos).find('subscription subscribeTo').text()+' '+$(textsInfos).find('misc receiveFreeTracks').text()+'</div>';
					var formNewsLeft			= '<div class ="formNewsLeft"></div>';
					var legalNewsLeft			= '<div class ="legalNewsLeft"><p class="showLegal">'+$(textsInfos).find('misc legalNotice').text()+'</p></div>';
					
					// GENERAL CONTENT
					
					var contentHigh 		= '<div class="contentHigh"></div>';
					var viewOtherAlbums		= '<div class="viewOtherAlbums"><img src"#" rel="#"/></div>';
					var viewVolume 			= '<div class="viewVolume"></div>';
					var viewVolumeImg 		= '<img class="viewVolumeImg" src="'+options.prefix+'player/img/viewVolumeOn.png" />';
					var contentSquare 		= '<div class="contentSquare"></div>';
					var bigCover			= '<div class="bigCover"><img src="http://covers.believe.fr/'+options.playerWidth+'/'+UPC+'.jpg"/></div>';
					var contentFullHigh 	= '<div class="fullContentHigh"></div>';
					var headerContentHigh	= '<div class="headerContentHigh"><div class="albumTitle">'+albumTitle+'</div><canvas id="'+playerId+'contentHighHide" class="contentHighHide" height=25 width=25></canvas></div>';
					var leftContentHigh 	= '<div class="leftContentHigh"></div>';
					var rightContentHigh 	= '<div class="rightContentHigh"></div>';
					var smallCover 			= '<img class="smallCover" src="http://covers.believe.fr/101/'+UPC+'.jpg" /><img class="loaderPlayer" src="'+options.prefix+'player/img/playerLoader.gif"  />';
					var otherAlbum 			= '<div class="otherAlbum" style="padding:0 0 0 10px;"></div>';
					var trackListContent	= '<div class="trackList"></div>';
					var seekBar 			='<div class="audioSeekContainer"><div class="audioSeek"><div class="scrubberContainer"><div class="scrubber"></div></div></div></div><div class="audioTimer">00:00</div>';
					
					// HERE WE ADD BUILT STRUCTURE
					
					$('#'+playerId).append(contentHigh,contentInfoUp,bigCover,contentFullInfos,viewVolume,contentNewsletter,viewOtherAlbums);
					
					$('.contentHigh').addClass('playerHidden');
					$('.contentHigh',audio_container).append(contentFullHigh);
					
					var generalInfos = constructInfoUp(textsInfos);
					
					$('.contentInfoUp',audio_container).append(generalInfos);
					
					$('.viewVolume',audio_container).append(viewVolumeImg,contentSquare);
					
					var squareContent = constructSquare();
					$('.contentSquare',audio_container).append(squareContent);
					
					$('.fullContentHigh',audio_container).append(headerContentHigh,leftContentHigh,rightContentHigh);
					
					$('.leftContentHigh',audio_container).append(smallCover,otherAlbum);
					var listAlbum = constructOtherAlbum(albumInfos,textsInfos);
					
					$('.otherAlbum',audio_container).append(listAlbum);
					
					$('.rightContentHigh',audio_container).append(trackListContent);
					
					var trackList = constructTrackList(albumInfos);
					$('.trackList',audio_container).append(trackList);
					$('.rightContentHigh',audio_container).append(seekBar);

					
					//NEWSLETTER
					
					$('.contentNewsletter',audio_container).append(fullContentNewsletter);
					$('.fullContentNewsletter',audio_container).append(headerNews,newsLeft,newsRight,legalContent);
					
					$('.newsLeft',audio_container).append(textNewsLeft, formNewsLeft, legalNewsLeft);
					$('.headerNews',audio_container).append(headerNewsTitle,headerNewsLeftCross);
					
					var emailForm 			= constructEmailForm(textsInfos);
					var newsSubmissionForm 	= constructSubmissionForm(textsInfos);
					var confirmDEForm 		= constructDEForm(textsInfos);
					
					$('.newsRight').append(newsSubmissionForm, requiredFields,confirmDE,messageFormReturn);
					$('.confirmDE',audio_container).append(confirmDEForm);
					
					$('#birthdate').datepicker({
						changeMonth: true,
						changeYear: true,
						autoSize: true,
						yearRange: '1940:2010'
					});
					
					$('.formNewsLeft').append(emailForm,badMail);
				}
				
				// CONSTRUCTION OF THE INFO GENERAL CONTAINER
				var constructInfoUp = function(textInfos)
				{
					var html='';
					html+='<ul class="infosList">';
						html+='<li class="albumsInfos">'+$(textInfos).find('menu albums').text()+'</li>';
						html+='<li class="newsInfos">'+$(textInfos).find('menu news').text()+'</li>';
						html+='<li class="videosInfos">'+$(textInfos).find('menu videos').text()+'</li>';
						html+='<li class="photosInfos">'+$(textInfos).find('menu photos').text()+'</li>';
						html+='<li class="bioInfos">'+$(textInfos).find('menu bio').text()+'</li>';
					html+='</ul>';
					return html;
				}
				
				// CONSTRUCTION OF THE OTHER ALBUM CONTAINER
				
				var constructOtherAlbum = function(albumInfos,textsInfos)
				{
					var html = '';
					html+='<p style="color:#FFF;font-size:0.7em;">'+$(textsInfos).find('misc listAlbums').text()+'</p>';
					var $i= 0;
					$(albumInfos).find('albums album').each(function(){
					
					var albumsUpc = $(this).find('upc').text();
					var albumsImg = $(this).find('cover').text();
					
						if(albumsUpc!="")
						{
							if($i%4 == 0 && $i>0)
							{
								html+='<div style="clear:both;"></div>';
								html+='<div class="otherImg" style="float:left;margin:0 0 2px 2px;cursor:pointer;" onclick="getPlayerHTML5('+albumsUpc+')" ><img src="http://covers.believedigital.com/23/'+albumsUpc+'.jpg" /></div>';
							}
							else
							{
								html+='<div class="otherImg" style="float:left;margin:0 0 2px 2px;cursor:pointer;" onclick="getPlayerHTML5('+albumsUpc+')" ><img src="http://covers.believedigital.com/23/'+albumsUpc+'.jpg" /></div>';
							}
							$i++;
						} 
					});
					html+='<div style="clear:both;"></div>';
					return html;
				}
				
				// CONSTRUCTION OF THE MAIL FORM
				
				var constructEmailForm = function(textsInfos)
				{
					var html = '';
					html+= '<form>';
						html+='<table class="spaced">';
							html+='<tr>';
									html+= '<td  style="vertical-align:middle;"><label for="mail">'+$(textsInfos).find('subscription enteremail').text()+'</label></td>';  
									html+= '<td><input type="text" name="mail" id="mail"/></td>';  
									html+= '<td style="vertical-align:middle;"><canvas class="nextForm" id="nextForm" width=20 height=20></canvas></td>';  
							html+='</tr>';
						html+='</table>';
						html+='<table class="spaced">';
							html+='<tr>';
									html+= '<td class="badMail"  style="opacity:0;text-align:center;color:#880000;">'+$(textsInfos).find('subscription already').text()+'</td>';  
							html+='</tr>';
						html+='</table>';
					html+= '</form>';
					
					return html;
				}
				
				// CONSTRUCTION OF THE NEWSLETTER DATAS FORM
				
				var constructSubmissionForm =function(textsInfos)
				{
					var html = '';
					html+= '<form>';
						html+='<table class="spaced">';
							html+='<tr>';
									html+= '<td  style="vertical-align:middle;"><label for="surname">'+$(textsInfos).find('formuser lastname').text()+'  </label> <span class="redRequired">&#42</span></td>';  
									html+= '<td><input type="text" name="surname" id="surname" /></td>';  
									html+= '<td style="vertical-align:middle;font-size:0.6em;color:#FF0000;" class="surnameRequired"></td>';  
							html+= '</tr>';

							html+='<tr>';
									html+= '<td  style="vertical-align:middle;"><label for="firstname">'+$(textsInfos).find('formuser firstname').text()+'  </label> <span class="redRequired">&#42</span></td>';  
									html+= '<td><input type="text" name="firstname" id="firstname" /></td>'; 
									html+= '<td style="vertical-align:middle;font-size:0.6em;color:#FF0000;" class="firstnameRequired"></td>';  
 
							html+= '</tr>';
							html+='<tr>';
									html+= '<td  style="vertical-align:middle;"><label for="zipcode">'+$(textsInfos).find('formuser zipcode').text()+'  </label> <span class="redRequired">&#42</span></td>';  
									html+= '<td><input type="text" name="zipcode" id="zipcode" /></td>';
									html+= '<td style="vertical-align:middle;font-size:0.6em;color:#FF0000;" class="zipcodeRequired"></td>';  
							html+= '</tr>';							
							html+='<tr>';
									html+= '<td  style="vertical-align:middle;"><label for="birthdate" style="width:100px;">'+$(textsInfos).find('formuser birthdate').text()+'  </label></td>';  
									html+= '<td><input type="text" name="birthdate" id="birthdate" /></td>';  
							html+= '</tr>';
						html+='</table>';
						html+='<br />';
						html+='<table class="spaced">';
							html+='<tr>';
								html+= '<td style="vertical-align:middle;width:100px;"><label style="display:block;">'+$(textsInfos).find('formuser gender').text()+'  </label></td>';  
								html+= '<td><img src="'+options.prefix+'player/img/mars_symbol.png" width="25px" height="25px"/><input type="radio" name="gender" id="male" checked="checked" value="M"/></td>';  
								html+= '<td><img src="'+options.prefix+'player/img/venus_symbol.png" width="25px" height="25px"/><input type="radio" name="gender" id="female" value="F"/></td>';  
								html+= '<td><canvas height=20 width=20 class="previousRight" id="previousRight" ></canvas></td>';  
								html+= '<td><div class="submitForm">OK</div></td>';  
							html+= '</tr>';
							
						html+='</table>';
					html+= '</form>';
					
				return html;
				}
				
				// CONSTRUCTION OF THE FORM FOR DEUTSCH CASE
				
				var constructDEForm = function(textsInfos)
				{
					var html = '';
					html+= '<p style ="text-align:left;">'+$(textsInfos).find('formuser optintext').text()+'</p>';
					html+= '<br />';
					html+= '<p style ="text-align:right;"><label>Validate  </label><input type="checkbox" name="confirmDE" id="confirmDE" /><p>';  
					return html;
				}
						
				var constructSquare = function()
				{
					var html = '';
					for(var i = 0;i<10;i++)
					{	if(i<5)
						{
							html+='<div class="whiteSquare"></div>';
						}
						else
						{
							html+='<div class="blackSquare"></div>';
						}
					}
					return html;
				}
				
				var constructTrackList = function(albumInfos)
				{
					var html = '';
					var trackNum=1;
					html+='<div id="'+playerId+'trackup"  class="trackup trackCursor"></div>';
					
					html+='<div class="moveTrackList">';
					
						html+='<ul class="listTracks">';
						

						$(albumInfos).find('tracks').each(function()
						{
							
							$(this).find('trackPlayerIpad').each(function(index)
							{
								var artist 		= $(this).find('artist').text();
								var title 		= $(this).find('longTitle').text();
								var splitfile 	= $(this).find(options.format).text();
								
								var duration 	= $(this).find('duration').text();
								
									if(splitfile!='')
									{
										if(index==0)
										{
											html += '<li class="active">';
											$('audio#Audio'+playerId).append('<source class="source'+playerId+'" />');
											$('.source'+playerId).attr('src',splitfile);
										}
										else
										{
											html += '<li>';
										}
											html+='<a href="" rel="'+trackNum+' . '+title+'" src="'+splitfile+'">';
											html+='<div class="trackNum" style="clear:left;">'+trackNum+'</div>';					
											html+='<div class="trackTitle">'+title+'</div>';
											if(options.format=='fullTrack'){durationInfo=30;}else{durationInfo=duration;}				
											html+='<div class="trackDuration" rel="'+duration+'">'+getTime(durationInfo,'minute')+'</div>';				
											html+='</a>';
										html+='</li>';

									}
									trackNum++;
							});	
						});
						html+='</ul>';
						
					html+='</div>';
					
					html+='<div id="'+playerId+'trackdown"  class="trackdown trackCursor"></div>';
					
					return html;
				}
				
				var constructContentDown = function(artist,firstTrackNum,firstTrack)
				{
					var contentControls = '<div class="contentControls"></div>';
					var actionControls 	= '<div class="actionControls"></div>';
					var albumInfos 		= '<div class="albumInfos"></div>';
					var rewind 			= '<img class="rewind" src="'+options.prefix+'player/img/prev.png"/>';
					var play 			= '<img class="play" src="'+options.prefix+'player/img/play.png"/>';
					var forward 		= '<img class="forward" src="'+options.prefix+'player/img/next.png"/>';
					var OnOffVol 		= '<img class="OnOffVol" src="'+options.prefix+'player/img/sonOn.png"/>';
					var artistName   	= '<div class="artistName">'+artist+'</div>';
					var trackName		= '<div class="trackName">'+firstTrackNum+' . '+firstTrack+'</div>';
					var volumeUp		= '<img class="volumeUp" src="'+options.prefix+'player/img/upVolume.png"/>';
					var volumeDown		= '<img class="volumeDown" src="'+options.prefix+'player/img/downVolume.png"/>';
				
					$('#'+playerId).append(contentControls);
					$('.contentControls',audio_container).append(actionControls,albumInfos);
					$('.actionControls',audio_container).append(rewind,play,forward,OnOffVol,volumeUp,volumeDown);
					$('.albumInfos',audio_container).append(artistName,trackName);
				}
				
				var constructPlatformcarousel = function(albumInfos)
				{	
					var contentControls = '<div class="contentControls"></div>';
					var contentCarousel = '<div class="contentCarousel"></div>';
					var backPlatform 	= '<div class="backPlatform" id="'+playerId+'platLeft"></div>';
					var carousel 		= '<div class="carousel"></div>';
					var forwardPlatform = '<div class="forwardPlatform" id="'+playerId+'platRight"></div>';
					var newsLetter 		= '<div class="newsLetter">Newsletter</div>';
					
					$('.contentControls', audio_container).append(contentCarousel);
					$('.contentCarousel',audio_container).append(backPlatform,carousel,forwardPlatform,newsLetter);
					
					var carouselList = platformcarouselList(albumInfos);
					$('.carousel',audio_container).append(carouselList);
				}
				
				var platformcarouselList =function(albumInfos)
				{
					var html = '';
					html+='<ul class="platformList">';
						$(albumInfos).find('dms').each(function()
						{
							$(this).find('name').each(function(index)
							{
								
								var logo = $('altPicture',albumInfos).get(index).textContent; 
																

								var link = $('platformLink',albumInfos).get(index).textContent; 
								
								html+='<li>';
									html+='<a target="_blank" href="'+link+'" class="platformLogo">';
									html+='<img class="platformImg" src="'+logo+'"/>';
									html+='</a>';
								html+='</li>';
							});
						});	
					html+='</ul>';	
					return html;	
				}
				var lastBlock = function()
				{
				var lastBlock = '<div style="clear:both;"></div>';
				$('#'+playerId).prepend(lastBlock);
				
				}
				returnXml();
			});
		};
	})
(jQuery);


