/* ------------------------------------------------------------------------
	General Init function
------------------------------------------------------------------------- */
	var pagerObjs = []; // pagers
	$(document).ready(function(){ initSidebarHover(); });
/* ------------------------------------------------------------------------
	Vote
------------------------------------------------------------------------- */
	(function($) {
		$.fn.voteForThePoll = function(){
			var $this = this;
			$.getJSON("/uncachable/amIlogged.jsp?cb="+(Math.random())+"&frompage=" + window.location,function(data){	
				if(data.logged){
					$this.one('click',function(){
						$(this).attr({"rel" : "prettyPhoto"});
						$(this).prettyPhoto({allowresize: false, callback: function(){
							// lightbox callback
							//change la page ...
						}});
						$(this).bind('click', function(){
							//do my stuff
							//CUSTOM event!
							$(".ppt").live('click', function(){
								$('.floatedInfo p').width(195);
								if($('.mp_voteLightbox .voteInfo').height() > 130) {
									$('.mp_voteLightbox .voteInfo').height(130).jScrollPane({scrollbarWidth:14,scrollBarMargin:0});
								}
							});
							return false;
						});
						$(this).trigger('click');
						return false;
					});
				}
				else{
					$this.needLogin();
				}
			});
		};
	})(jQuery);
/* ------------------------------------------------------------------------
	Add to playlist
------------------------------------------------------------------------- */
	(function($) {
		$.fn.addToPlaylist = function(){	
			var $this = this;
			$.getJSON("/uncachable/amIlogged.jsp?cb="+(Math.random())+"&frompage=" + window.location,function(data){	
				if(data.logged){
					$this.one('click',function(){
						var videoId = $(this).attr('name');
						$(this).attr({
							"href" : "/ajax/getaddtoplaylisthtml.jsp?ajax=true&width=600&height=520&videoId="+videoId,
							"rel" : "prettyPhoto"
						});
						$(this).prettyPhoto({allowresize: false, callback: function(){
							//todo kill live events (die) for those found elem in mp_addToPlaylist
							//$('.mp_playlists').find('.mp_b_expand').trigger('click');
							ajaxedCallForPlaylist();
						}});
						$(this).bind('click', function(){
							addToPlaylistNow();
							return false;
						});
						$(this).trigger('click');
						return false;
					});
				}
				else{
					$this.needLogin();
				}
			});
		};
		var addToPlaylistNow = function(){
			//add to..
			$(".mp_addToPlaylist").find('.addToPlaylistSubmit').live('click', function(){
				var checkedNumber = $(".mp_addToPlaylist").find("input:checked").length;
				if(checkedNumber>0){
					var checkboxes = "";
					$(".mp_addToPlaylist").find("input:checked").each(function(index){
						checkboxes += "listId="+$(this).attr('value')+"&";
					});
					var videoId = $(".mp_addToPlaylist").find('.addToPlaylistSubmit').attr('name');
					addToPlaylistAjax(checkboxes,videoId)
					$('a.mp_b_close').click();
				}
				else{
					addToPlaylistError("Invalide: sélectionnez au moins une playlist");
				}
				return false;
			});
			//add new
			$(".mp_addToPlaylist").find('.createNewPlaylistSubmit').live('click', function(){
				var value = $(this).parent().find('.playlistNameInput').val();
				if(value!=""){
					var emptyCellCount = $(".mp_addToPlaylist").find('.empty').length;
					if(emptyCellCount > 0){
						$(this).parent().find('.playlistNameInput').val("").focus();
						return addNewPlaylistAjax(value);
					}
					else{ //la liste est pleine; impossible d'y ajouter une nouvelle playlist
						return addNewPlaylistError("Invalide: banque de playlist pleine");
					}
				}
				else{
					return addNewPlaylistError("Invalide: nom de la nouvelle playlist");
				}
			});
			return false;
		}
		//playlists contains each input name attributes
		var addToPlaylistAjax = function(listId,videoId){
			$.ajax({
				type: "get",
				cache: false,
				url: "/ajax/addtoplaylist.jsp",
				dataType: "json",
				//"listId" is already well formated.. so no need to put "&" char before "videoId" there.
				data: listId+"videoId="+videoId,
				success: function(data){
					//updater le playlist de la page courante avec les nouvelles valeurs
				}
			});
			return false;
		}
		var addNewPlaylistAjax = function(playListName){
			$.ajax({
				type: "get",
				cache: false,
				url: "/ajax/createplaylist.jsp",
				dataType: "json",
				data: "nom="+playListName,
				success: function(data){
					$(".mp_addToPlaylist").find('.empty:first').attr({value:playListName}).removeClass('empty').prev().removeAttr('disabled').attr({value:data});
				}
			});
			return false;
		}
		var addToPlaylistError = function(msg){
			$(".mp_addToPlaylist").find('.err:first').text(msg).slideDown().animate({alpha:1},2000).slideUp();
			return false;
		}
		var addNewPlaylistError = function(msg){
			$(".mp_addToPlaylist").find('.err:last').text(msg).slideDown().animate({alpha:1},2000).slideUp();
			return false;
		}
	})(jQuery);
/* ------------------------------------------------------------------------
	Need login. If a link needs to be changed into login caller.
------------------------------------------------------------------------- */
	(function($) {
		$.fn.needLogin = function(custom){
			$.extend($.fn.needLogin.defaults, custom);
			var $obj = null;
			if($.fn.needLogin.defaults.live){
				this.live('click', function(){
					$(this).settingLoginAttr();
					return quickRegisterationValidation();
				});
			}
			else{
				this.one('click',function(){
					$(this).settingLoginAttr();
					return quickRegisterationValidation();
				});
			}
		};
		$.fn.settingLoginAttr = function(){
			this.attr({
				"href" : "/ajax/connect.html?ajax=true&width=600&height=550",
				"rel" : "prettyPhoto"
			}).prettyPhoto({allowresize: false})
			this.triggerHandler('click');
			return false;
		}
		$.fn.needLogin.defaults = {live: false};
	})(jQuery);
/* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx */
/* XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX */
/* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx */
	// Init the hover on the sidebar
	var initSidebarHover = function() {
		$('.mp_slider>li').hover(function(){
			$(this).addClass('hover');
		}, function(){
			$(this).removeClass('hover');
		});
		$('.mp_slider li ul').hover(function(){
			$this = $(this);
			setTimeout(function(){
				$this.parent().removeClass('hover');
			},1)
		}, function(){
			$(this).parent().addClass('hover');
		});
	}
/* ------------------------------------------------------------------------
	Pager: filter(s) [dropdown placed just over a pager]
------------------------------------------------------------------------- */
	var showPagerFilters = function() {
		$(".mp_listing_filter").each(function () {
			var $listingFilterContainer = $(this);
			$listingFilterContainer.find('div:parent').each(function (index, domElem) {
				var $filterContainer = $(domElem);
				$filterContainer.find('ul').css("left", $filterContainer.find('span a').position().left - 4 + "px");
				$filterContainer.find('span a').hover(function(){
					$filterContainer.find('ul').show();
				},function(){
					$filterContainer.find('ul').hover(function(){
						$(this).show();
					},function(){
						$(this).hide();
					});
					$filterContainer.find('ul').hide();
				});
				$filterContainer.find('span a').click(function(){return false;});
				$filterContainer.find('ul li a').click(function(e){
					var useAjax = $filterContainer.find('code var').text();
					if(useAjax == "true"){
						var newTxt = $(this).text();
						$filterContainer.find('span a').text(newTxt);
						$filterContainer.find('span a').attr('name',$(this).attr('href'));
						// !!!!!!!!!! This part remove all the concept of the generic manner
						// sort dropdown must be placed next to filter one or it won't works
						//var videoTypeSelected = getUrlParam('videoType',$filterContainer.find('span a').attr('name'));
						//$filterContainer.next().find('ul li a').attr('href');
						// ----
						$filterContainer.find('ul').hide();
						//update dropdown position
						$listingFilterContainer.find('div:parent').each(function (index, domElem) {
							$(domElem).find('ul').css("left", $(domElem).find('span a').position().left - 4 + "px");
						});
						$.ajax({
							type: "get",
							cache: false,
							url: $(this).attr('href'),
							dataType: "json",
							success: function(data){
								//** we manipulate the pager that is supposed to be placed under the filter bar and over the media listing
								//   if this is not the case... you guys shall modify the code
								var classe = $filterContainer.attr('class');
								var fId = classe.substring(11, classe.indexOf('-'));
								$(".pagerId"+fId).find('code var:nth-child(1)').text("1");            //when you change a filter, the pager resets its pageCurrent
								$(".pagerId"+fId).find('code var:nth-child(2)').text(data.pageCount); //pageCount
								$(".pagerId"+fId).find('code var:nth-child(3)').text(data.pageUrl);   //pageUrl
								$(".pagerId"+fId).find('code var:nth-child(4)').text(data.pageQuery); //pageQuery
								//update pagers
								pagerObjs = [];
								setPagerFunctions(20); //create functions BEFORE
								setPagerListener(20); //set listeners AFTER
								var $firstpager = $listingFilterContainer.next(".mp_pager");
								$firstpager.find('img').animate({opacity: 0}, 400).remove();
								var $content = $firstpager.next();//the next elem need to be the <ul>
								$content.empty().prepend(data.htmlOutput);
								//update onMouseOver event
								initSidebarHover();
								//update add to my playlist link event
								$(".b_plus[name]").addToPlaylist();
								$content.animate({opacity: 1}, 400);
							}
						});
						var $firstpager = $listingFilterContainer.next(".mp_pager");
						var $content = $firstpager.next();
						$firstpager.css({'position':'relative'});
						$firstpager.append('<img src="/media/images/all/backgrounds/ajax-loader.gif" alt="" style="position: absolute; bottom: -'+ $content.height()/2.0 +'px; left:300px;"/>');
						$content.animate({opacity: 0}, 100);
						return false;
					}
				});
			});//end each
		});
	}
	var getUrlParam = function (name,url){
		name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
		var regexS = "[\\?&]"+name+"=([^&#]*)";
		var regex = new RegExp( regexS );
		var results = regex.exec( url );
		if( results == null ) return "";
		else return results[1];
	}
/* ------------------------------------------------------------------------
	Pager: listener setup (must be added in jquery "ready" function)
------------------------------------------------------------------------- */
	var setPagerListener = function(bgPosOffset) {
		var lastPagerIdReady = "";
		var pagerObjsCounterReady = 0;
		$(".mp_pager").each(function (index, dom) {
			var classes = $(dom).attr('class').split(' ');
			if(classes[1] != lastPagerIdReady){
				var pId = classes[1].substring(7); //digit(s) after "pagerId" string
				$(".pagerId"+pId).pager({
					pagerId: pId,
					pageCurrent: 1,
					buttonClickCallback: pagerObjs[pagerObjsCounterReady]
				}).css({
					'background-position' : -$(".pagerId"+pId+" ul").width() - bgPosOffset + 'px 6px'
				});
				pagerObjsCounterReady++;
			}
			lastPagerIdReady = classes[1];
		});
	}
/* ------------------------------------------------------------------------
	Pager: functions setup
------------------------------------------------------------------------- */
	var setPagerFunctions = function(bgPosOffset) {
		var lastPagerId = "";
		$(".mp_pager").each(function (index, dom) {
			var classes = $(dom).attr('class').split(' ');
			if(classes[1] != lastPagerId){
				var pId = classes[1].substring(7); //digit(s) after "pagerId" string
				var tempid = pagerObjs.length;
				pagerObjs.push(
					function(pageclickednumber) {
						$(".pagerId"+pId).pager({
							pagerId: pId,
							pageCurrent: pageclickednumber,
							buttonClickCallback: pagerObjs[tempid]
						}).css({
							'background-position' : -$(".pagerId"+pId+" ul").width() - bgPosOffset + 'px 6px'
						});
					}
				);
			}
			lastPagerId = classes[1];
		});
	}
/* ------------------------------------------------------------------------
	Email Validator function
------------------------------------------------------------------------- */
	var isValidEmailAddress = function(emailAddress) {
 		var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
 		return pattern.test(emailAddress);
	}
/* ------------------------------------------------------------------------
	For the rating (mp_player vote)
------------------------------------------------------------------------- */
	var rateatom = function(direction, videoId){
		$.ajax({
			type: "get",
			cache: false,
			url: "/ajax/rate.jsp",
			dataType: "json",
			data: "objectType="+17+"&rateType="+direction+"&objectId="+videoId,
			success: function(data){
				//todo: bloquer l'utilisateur pour modifier son choix
				//todo: afficher par défaut la valeur s'il a déja voté auparavent
				rateUpdateStyle(data.direction);
				//change appreciation
				if(data.percentage != null){
					$('#mp_player .mp_appreciation strong').fadeOut('fast').text(data.percentage+"%").fadeIn('slow');
				}
			}
		});
		return false;
	}
	var rateUpdateStyle = function(rateValue){
		if(rateValue=='up'){
			$('#mp_player .mp_vote_up').addClass("mp_vote_up_on").animate({opacity:0.2}, 0).animate({opacity:1}, 400);
			$('#mp_player .mp_vote_down').attr("class", "mp_vote_down");
		}
		else if(rateValue=='down'){
			$('#mp_player .mp_vote_up').attr("class", "mp_vote_up");
			$('#mp_player .mp_vote_down').addClass("mp_vote_down_on").animate({opacity:0.2}, 0).animate({opacity:1}, 400);
		}
		else{
			$('#mp_player .mp_vote_up').attr("class", "mp_vote_up");
			$('#mp_player .mp_vote_down').attr("class", "mp_vote_down");
		}
	}
/* ------------------------------------------------------------------------
	Qu'en penses-tu?
------------------------------------------------------------------------- */
	var feedbackatom = function(memberId,topId,videoId){
		$.ajax({
			type: "get",
			cache: false,
			url: "/ajax/wdyt.jsp",
			dataType: "json",
			data: "topId="+topId+"&objectId="+videoId+"&objectType=17" ,
			success: function(data){
				$('#mp_player .mp_tags:last a').removeClass("hover");//clear
				$('#mp_player .mp_tags:last a[id="'+data.id+'"]').addClass("hover").animate({opacity:0.2}, 0).animate({opacity:1}, 400); //fx
			}
		});
		return false;
	}
/* ------------------------------------------------------------------------
	Forgot my password
------------------------------------------------------------------------- */
	var forgotMyPassword = function(){
		//set href content with attr name's value
		var hrefVal = $(".mp_forgotPasswordLink").attr('name');
		$(".mp_forgotPasswordLink").removeAttr('name').attr('href',hrefVal);
		$(".mp_forgotPasswordLink").one('click',function(){
			$(this).prettyPhoto({allowresize: false, callback: function(){
				$(".mp_forgot-password").find('.submit').die();
				$(".mp_forgot-password").find("#mp_full_name").die();
			}});
			$(this).bind('click', function(){
				return forgotMyPasswordValidation();
			});
			$(this).trigger('click');
			return false;
		});
	}
	var forgotMyPasswordValidation = function(){
		$(".mp_forgot-password").find('.submit').live('click', function(){ forgotPasswordError("Courriel Vide"); });
		$(".mp_forgot-password").find("#mp_full_name").live("keyup",function(){
			$elem = $(this);
			var email = $elem.val();
			if(email != ""){
				//email is valid. We are ready to ajaxify our form
				if(isValidEmailAddress(email)){
					$elem.parents().find('.valid').css({"background-position": "left top"});
					$elem.parents().find('.submit').die();
					//add a listener on the "submit" button
					$elem.find('.submit').live('click', function(e){
						$(this).parents().find('.state1').hide();
						$(this).parents().find('.state2').show();
						$.ajax({
							type: "get",
							cache: false,
							url: "/membres/ajax/lostpassword.jsp",
							dataType: "json",
							data: "email="+email,
							success: function(data){
								$('.mp_forgot-password').find('.state2').hide();
								//show confirmations message
								if(data.success){
									$('.mp_forgot-password').find('.state3').fadeIn();
								}
								//failed at server validation
								else{
									$('.mp_forgot-password').find('.state1').fadeIn().find('.valid').css({"background-position": "right top"});
									var errmsg = "Courriel introuvable";
									forgotPasswordError(errmsg);
								}
							}
						});
					});
				}
				//still not a well formated email :)
				else {
					$elem.parents().find('.valid').css({"background-position": "right top"});
					$elem.parents().find('.submit').die();
					$elem.find('.submit').live('click', function(e){
						forgotPasswordError("Courriel invalide");
					});
				}
			//email input is empty
			} else {
				$elem.parents().find('.valid').css({"background-position": "16px top"});
				$elem.parents().find('.submit').die();
				$elem.find('.submit').live('click', function(e){
					forgotPasswordError("Courriel vide");
				});
			}
		});
		var forgotPasswordError = function(errMsg){
			$(".mp_forgot-password").find('.err').text(errMsg).slideDown().animate({alpha:1},2000).slideUp();
		}
		return false;
	}
		
/* ------------------------------------------------------------------------
	Quick register
------------------------------------------------------------------------- */
	var quickRegisteration = function(){
		//set href content with attr name's value
		var hrefVal = $(".mp_quickRegisterLink").attr('name');
		$(".mp_quickRegisterLink").removeAttr('name').attr('href',hrefVal);
		$(".mp_quickRegisterLink").one('click',function(){
			$(this).prettyPhoto({allowresize: false, callback: function(){
				$(".mp_quick-register").find('.submit').die();
				$(".mp_quick-register").find("#mp_email").die();
			}});
			$(this).bind("click", function(){
				quickRegisterationValidation();
				return false;
			});
			$(this).trigger('click');
			return false;
		});
		return false;
	}
	var quickRegisterationValidation = function(){
		//login (mime onSubmit)
		$("#mp_login_form").find('input:image').live('click', function(){
			$(this).before('<input type="hidden" name="frompage" value="'+window.location+'"/>');
			return true;
		});
		//-----------
		var quickRegisterFirstname = [false, "prénom"];
		var quickRegisterLastname =  [false, "nom"];
		var quickRegisterPassword =  [false, "mot de passe"];
		var quickRegisterEmail    =  [false, "courriel"];
		//submit button lilstener
		$(".mp_quick-register").find('.submit').live('click', function(){
			return quickRegisterValidator();
		});
		//key up listener for email
		$(".mp_quick-register").find("#mp_email").live("keyup",function(){
			$elem = $(this);
			var email = $elem.val();
			if(email != ""){
				//email is valid. We are ready to ajaxify our form
				if(isValidEmailAddress(email)){
					quickRegisterEmail[0] = true;
					$elem.parents().find('.valid').css({"background-position": "left top"});
					$elem.parents().find('.submit').die();
					$elem.find('.submit').live('click', function(e){
						return quickRegisterValidator();
					});
				}
				//invalid email
				else {
					quickRegisterEmail[0] = false;
					$elem.parent().find('.valid').css({"background-position": "right top"});
					$elem.parents().find('.submit').die();
					$elem.find('.submit').live('click', function(e){
						return quickRegisterValidator();
					});
				}
			//email input is empty
			} else {
				quickRegisterEmail[0] = false;
				$elem.parent().find('.valid').css({"background-position": "16px top"});
				$elem.parents().find('.submit').die();
				$elem.find('.submit').live('click', function(e){
					return quickRegisterValidator();
				});
			}
		});
		//validator and error output function
		var quickRegisterValidator = function(errMessage){
			quickRegisterLastname[0] = $(".mp_quick-register").find("#mp_last_name").val() != "";
			quickRegisterFirstname[0] = $(".mp_quick-register").find("#mp_first_name").val() != "";
			quickRegisterPassword[0] = $(".mp_quick-register").find("#mp_password").val() != "";
			if(!quickRegisterFirstname[0] || !quickRegisterLastname[0] || !quickRegisterPassword[0] || !quickRegisterEmail[0]){
				if(errMessage==null || errMessage==""){
					htmlMessage = "";
					msgSeparator = ", ";
					if(!quickRegisterFirstname[0]){
						htmlMessage += quickRegisterFirstname[1];
					}
					if(!quickRegisterLastname[0]){
						if(htmlMessage!="")	htmlMessage += msgSeparator;
						htmlMessage += quickRegisterLastname[1];
					}
					if(!quickRegisterPassword[0]){
						if(htmlMessage!="")	htmlMessage += msgSeparator;
						htmlMessage += quickRegisterPassword[1];
					}
					if(!quickRegisterEmail[0]){
						if(htmlMessage!="")	htmlMessage += msgSeparator;
						htmlMessage += quickRegisterEmail[1];
					}
					htmlMessage = "Invalide: " + htmlMessage + ".";
					$(".mp_quick-register").find('.err').text(htmlMessage).slideDown().animate({alpha:1},2000).slideUp();
				}
				else{
					$(".mp_quick-register").find('.err').text(errMessage).slideDown().animate({alpha:1},2000).slideUp();
				}
			}
			else{
				prenom         = $(".mp_quick-register").find("#mp_first_name").val();
				nom            = $(".mp_quick-register").find("#mp_last_name").val();
				password       = $(".mp_quick-register").find("#mp_password").val();
				email          = $(".mp_quick-register").find("#mp_email").val();
				if($(".mp_quick-register").find("#mp_mplus_news").is(':checked')){
					cb_mp          = $(".mp_quick-register").find("#mp_mplus_news").val();
				}else{
					cb_mp = -1;
				}
				
				if($(".mp_quick-register").find("#mp_mplus_partners").is(':checked')){
					cb_partenaires = $(".mp_quick-register").find("#mp_mplus_partners").val();
				}else{
					cb_partenaires = -1;
				}
				
				$('.mp_quick-register').parents().find('.state1').hide();
				$('.mp_quick-register').parents().find('.state2').show();
				$.ajax({
					type: "get",
					url: "/ajax/inscription.jsp",
					data: "prenom="+prenom+"&nom="+nom+"&password="+password+"&email="+email+"&cb_mp="+cb_mp+"&cb_partenaires="+cb_partenaires,
					dataType: 'json',
					timeout: 20000,
					contentType: "text/html; charset=ISO-8859-1",
					success: function(data){
						$('.mp_quick-register').find('.state2').hide();
						//show confirmations message
						if(data.success){
							quickRegisterEmail[0] = true;
							$('.mp_quick-register').find('.state3 h2').append("&nbsp;"+data.userName+",");
							Cufon.replace('.state3 h2', { fontFamily: 'Arial Rounded MT Bold' });
							$('.mp_quick-register').find('.state3').fadeIn();
						}
						//failed at server validation
						else{
							quickRegisterEmail[0] = false;
							$('.mp_quick-register').find('.state1').fadeIn().find('.valid').css({"background-position": "right top"});
							if(data.err == 2){
								quickRegisterValidator("Le courriel fourni est d\u00E9j\u00E0 utilis\u00E9");
							}
							else{
								quickRegisterValidator("Une erreur est survenue");
							}
						}
					}
				});
			}
			return false;
		}
		return false;
	}
/* ------------------------------------------------------------------------
	Right filter arrow positionning
------------------------------------------------------------------------- */
	var filterArrowPositionning = function(){
		$('.mp_filter-content').each(function(){
			var a = $(this).find(".mp_content ul li.selected").offset().top;
			if(a != 0){
				var b = $(this).find(".mp_top").offset().top;
				var topStyle = a - b - 12;
				$(this).find(".mp_top .mp_filter-arrow").css({
					'top' : topStyle + 'px'
				});
			}
		});
	}
		
/* ------------------------------------------------------------------------
	Playlist ajaxcall, show or update function
------------------------------------------------------------------------- */
	var ajaxedCallForPlaylist = function(){
		$.getJSON("/uncachable/boxplaylist.jsp?cb="+(Math.random())+"&frompage=" + window.location,function(data){										
			$('.mp_playlists').playlist({logged:data.logged});			
		});	
	}	



/* ------------------------------------------------------------------------
	Send to a Friend Contest
------------------------------------------------------------------------- */

	var sendToAFriendValidation = function(id,type,alias){
		//login (mime onSubmit)
		$("#mp_login_form").find('input:image').live('click', function(){
			$(this).before('<input type="hidden" name="frompage" value="'+window.location+'"/>');
			return true;
		});
		//-----------

		var emailContainer = Array([false,0,""],[false,0,""],[false,0,""],[false,0,""],[false,0 ,""]);


		//submit button lilstener
		$(".mp_sendtoafriend").find('.submit').live('click', function(){
			return sendToAFriend(id,type,alias);
		});
		//key up listener for email
		$(".mp_sendtoafriend").find(".email").live("keyup",function(){
			$elem = $(this);
			var email = $elem.val();
			if(email != ""){
				//email is valid. We are ready to ajaxify our form
				if(isValidEmailAddress(email)){									
					emailContainer[$('.mp_sendtoafriend p').index($elem.parent())][0] = true;
					emailContainer[$('.mp_sendtoafriend p').index($elem.parent())][1] = 1;
					emailContainer[$('.mp_sendtoafriend p').index($elem.parent())][2] = $elem.attr('value');
					$elem.parent().find('.validEmail').css({"background-position": "left top"});
					$elem.parents().find('.submit').die();
					$elem.find('.submit').live('click', function(e){
						return sendToAFriend(id,type,alias);
					});
				}
				//invalid email
				else {
					emailContainer[$('.mp_sendtoafriend p').index($elem.parent())][0] = false;
					emailContainer[$('.mp_sendtoafriend p').index($elem.parent())][1] = 1;
					emailContainer[$('.mp_sendtoafriend p').index($elem.parent())][2] = $elem.attr('value');
					$elem.parent().find('.validEmail').css({"background-position": "right top"});										
					$elem.parents().find('.submit').die();
					$elem.find('.submit').live('click', function(e){
						return sendToAFriend(id,type,alias);
					});
				}
			//email input is empty
			} else {
				emailContainer[$('.mp_sendtoafriend p').index($elem.parent())][0] = false;
				emailContainer[$('.mp_sendtoafriend p').index($elem.parent())][1] = 0;
				emailContainer[$('.mp_sendtoafriend p').index($elem.parent())][2] = "";
				$elem.parent().find('.validEmail').css({"background-position": "16px top"});
				$elem.parents().find('.submit').die();
				$elem.find('.submit').live('click', function(e){
					return sendToAFriend(id,type,alias);
				});
			}
		});
		//validator and error output function
		var sendToAFriend = function(id,type,alias){							
			var postData = "";
			var elem = 0;
			var valid = false;
			while(emailContainer[elem]){
			
			
			
				if(emailContainer[elem][1] == 1){									
					if(emailContainer[elem][0] != true){																																
						valid = false;
						break;
					}
					else{
						postData += "&email=" + emailContainer[elem][2];
						valid = true;
					}
				}									
				elem++;
			}

			if(valid){
				$.ajax({
				type: "get",
				url: "/ajax/sendtoafriend.jsp",
				data: "type="+type+"&id="+id+"&alias="+alias+""+postData,
				dataType: 'json',
				timeout: 20000,
				contentType: "text/html; charset=ISO-8859-1",
				success: function(data){
						//show confirmations message
						if(data.success){												
							$(".mp_sendtoafriend").find('.msg').text('Votre message a bien \u00E9t\u00E9 envoy\u00E9.').slideDown().animate({alpha:1},2000).slideUp();
						}
						//failed at server validation
						else{
							$(".mp_sendtoafriend").find('.msg').text('Une erreur est survenue lors de l\'envoi de votre message. R\u00E9essayez plus tard.').slideDown().animate({alpha:1},2000).slideUp();
						}
					}
				});
			}
			else{
				$(".mp_sendtoafriend").find('.msg').text('V\u00E9rifiez les adresses courriel entr\u00E9es.').slideDown().animate({alpha:1},2000).slideUp();								
			}

			return false;								
		}
		return false;
	}