﻿//Configuration du bouton ADD THIS
var addthis_config = {
	ui_language: "fr"
}

jQuery(document).ready(function(){
	jQuery('.scrollPage').click(function() {
		var elementClicked = jQuery(this).attr("href");
		var destination = jQuery(elementClicked).offset().top;
		jQuery("html:not(:animated),body:not(:animated)").animate({ scrollTop: destination-20}, 500 );
	return false;
	});
});

// Classement des titre d'une playlist
jQuery(document).ready(function() {
	jQuery(".sortable").sortable({
  	containment: 'parent',
    opacity: 0.6,
    update: function() {
    	var data = jQuery(this).sortable('toArray');
      jQuery.post('/cfc/audio.cfc?method=order_playlist',{order:data},function() {
      	jQuery.jGrowl("La liste à été mémorisé");
    	});
     },
   });
});

// Permet de supprimer un élément video
function delVideo(id,customer_id) {
  if (id > 0) {
    jQuery.post("/cfc/services/videoServices.cfc?method=del_video&returnformat=json",{UID:customer_id,VIDEO_ID:id},
      function(data) {
      	var myReturn = eval(data);
        if (myReturn == true) {
        	jQuery('#item_' + id + '').fadeTo("slow", 0, function(){  
      			jQuery(this).hide();  
      		});
      		jQuery.jGrowl("Votre clip à bien été supprimé.");
        } else {
        	alert("Vous n'avez pas le droit de supprimer ce fichier !");
        }
    });
  }
}

// Permet de supprimer un élément clip audio
function delAudio(id,customer_id) {
  if (id > 0) {
    jQuery.post("/cfc/audio.cfc?method=del&returnformat=json",{customer_id:customer_id,id:id},
      function(data) {
      	var myReturn = eval(data);
        if (myReturn == true) {
        	jQuery('#item_' + id + '').fadeTo("slow", 0, function(){  
      			jQuery(this).hide();  
      		});
      		jQuery.jGrowl("Votre titre à bien été supprimé.");
        } else {
        	alert("Vous n'avez pas le droit de supprimer ce fichier !");
        }
    });
  }
}

// Permet de supprimer un élément event
function delEvent(id,customer_id) {
  if (id > 0) {
    jQuery.post("/cfc/services/eventServices.cfc?method=delEvent&returnformat=json",{UID:customer_id,event_id:id},
      function(data) {
      	var myReturn = eval(data);
        if (myReturn == true) {
        	jQuery('#item_' + id + '').fadeTo("slow", 0, function(){  
      			jQuery(this).hide();  
      		});
      		jQuery.jGrowl("Votre titre à bien été supprimé.");
        } else {
        	alert("Vous n'avez pas le droit de supprimer ce fichier !");
        }
    });
  }
}

// Afficher et Cacher le formulaire d'ajout de titre MP3
function displayAudioForm() {
	jQuery(document).ready(function($) {
		jQuery('#audioForm').slideToggle('slow');
	});
}

// Afficher et Cacher le formulaire d'ajout d'événement

function display_event_form() {
	jQuery(document).ready(function($) {
		jQuery('#event_form').slideToggle('slow');
	});
}

// Initialisation des paramètres datePicker
// Paramètres permettant d'initialiser le composant DatePicker en français
var datePickerOpts_FR = { 
	dateFormat: 'dd/mm/yy',
	appendText: '(dd/mm/yyyy)',
	clearText: 'vide', 
	closeText: 'Fin', 
	currentText: 'Courant', 
	dayNamesMin: [ 'Lu', 'Ma', 'Me', 'Je', 'Ve', 'Sa', 'Di' ], 
	dayNamesShort: [ 'Lun', 'Mar', 'Mer', 'Jeu', 'Ven', 'Sam', 'Dim' ],
	firstDay:0, 
	monthNames: [ 'Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre' ], 
	monthNamesShort: [ 'Jan','Fév', 'Mar', 'Avr', 'Mai', 'Jui', 'Jul', 'Aoû', 'Sep', 'Oct', 'Nov', 'Déc' ],
	nextText: 'Après', 
	prevText: 'Préc',  
	changeMonth: true,
	changeYear: true,
	yearRange: '-109:+0',
}; 				

// Les liens intégrant un rel=facebox seront présentés dans un popup
jQuery(document).ready(function($) {
  $('a[rel*=facebox]').facebox()
})

// Mise en place de l'UPLOAD Ajax pour la soumission d'un MP3 dans la page artiste
jQuery(document).ready(function() {
	jQuery('#audioForm_file').uploadify({
		'uploader'				: '/libs/flash/uploadify.swf',
		'script'					: '/libs/scripts/uploadify/uploadify.cfm',
		'scriptData'			: {'artistID':jQuery('input[name$=parent_id]').val(),'mode':'add_music'},
		'folder'					: '/upload/artists/'+jQuery('input[name$=parent_id]').val()+'/mp3/',
		'cancelImg' 			: '/libs/css/uploadify/images/cancel.png',
		'buttonImg'				: '/themes/revenonsalamusique/images/form/select_mp3.png',
		'fileDesc'				: 'Ajouter votre fichier MP3',
		'fileExt'					: '*.mp3',
		'sizeLimit'				: '10000000',
		'auto'           	: true,
		'height'					: '58',
		'width'						: '316',
		'rollover'				: true,
		'queueID'        	: 'fileQueue_mp3',
		'wmode'						: 'transparent',
		'onComplete'			: function(event, queueID, fileObj, response, data){
			var json = eval('(' + response + ')');
			jQuery('<input type="hidden" name="audioForm_file_name" id="audioForm_file_name" value="'+json.FILE+'" />').insertBefore('input[name$=component]');
			jQuery('<p class="confirm"><img src="/themes/revenonsalamusique/images/form/mp3_ok.png" alt="MP3 OK" /></p>').insertBefore('#audioForm_file').parent('div').fadeIn('slow');
     	jQuery('#audioForm_fileUploader').hide();
		},    
	});
});

// Mise en place de l'UPLOAD Ajax pour la soumission de cover dans la page artiste
jQuery(document).ready(function() {
	jQuery('#audioForm_cover').uploadify({
		'uploader'				: '/libs/flash/uploadify.swf',
		'script'					: '/libs/scripts/uploadify/uploadify.cfm',
		'scriptData'			: {'artistID':jQuery('input[name$=parent_id]').val(),'mode':'add_cover'},
		'folder'					: '/upload/artists/'+jQuery('input[name$=parent_id]').val()+'/cover/',
		'cancelImg' 			: '/libs/css/uploadify/images/cancel.png',
		'buttonImg'				: '/themes/revenonsalamusique/images/form/select_picture.png',
		'fileDesc'				: 'Ajouter votre cover',
		'fileExt'					: '*.jpg;*.jpeg;*.png;*.gif',
		'sizeLimit'				: '10000000',
		'auto'           	: true,
		'height'					: '58',
		'width'						: '316',
		'rollover'				: true,
		'queueID'        	: 'fileQueue_cover',
		'wmode'						: 'transparent',
		'onComplete'			: function(event, queueID, fileObj, response, data){
			var json = eval('(' + response + ')');
			jQuery('<input type="hidden" name="audioForm_cover_name" id="audioForm_cover_name" value="'+json.FILE+'" />').insertBefore('input[name$=component]');
	   	jQuery('<p class="confirm"><img src="/themes/revenonsalamusique/images/form/cover_ok.png" alt="Cover OK" /></p>').insertBefore('#audioForm_cover').parent('div').fadeIn('slow');
      jQuery('<div><label>Votre cover</label><img src="'+json.DIR+json.FILE+'" width="300" alt="" class="image" /></div>').insertAfter('#audioForm_cover').parent('div').fadeIn('slow');
      jQuery('#audioForm_coverUploader').hide();
		},    
	});
});

// Mise en place de l'UPLOAD Ajax pour la soumission de photo
jQuery(document).ready(function() {
	jQuery('#galleryForm_file').uploadify({
		'uploader'				: '/libs/flash/uploadify.swf',
		'script'					: '/libs/scripts/uploadify/uploadify.cfm',
		'scriptData'			: {'parent_id':jQuery('input[name$=parent_id]').val(),'mode':'gallery'},
		'folder'					: '/upload/'+  jQuery('input[name$=mode_name]').val() + '/' + jQuery('input[name$=parent_id]').val() + '/gallery/',
		'cancelImg' 			: '/libs/css/uploadify/images/cancel.png',
		'buttonImg'				: '/themes/revenonsalamusique/images/form/select_picture.png',
		'fileDesc'				: 'Ajouter votre image',
		'fileExt'					: '*.jpg;*.jpeg;*.png;*.gif',
		'sizeLimit'				: '5000000',
		'auto'           	: true,
		'height'					: '58',
		'width'						: '316',
		'rollover'				: true,
		'queueID'        	: 'fileQueue',
		'wmode'						: 'transparent',
		'onComplete'			: function(event, queueID, fileObj, response, data){
			var json = eval('(' + response + ')');
			jQuery('<input type="hidden" name="item_name" id="item_name" value="'+json.FILE+'" />').insertBefore('input[name$=component]');
      jQuery('#galleryForm_file').parent('div').hide();
      jQuery('<div><label>Votre image</label><img src="'+json.DIR+json.FILE+'" width="300" alt="" class="image" /></div>').insertAfter('#title').parent('div').fadeIn('slow');
		},    
	});
});

// Mise en place de l'UPLOAD Ajax pour la soumission de musique
jQuery(document).ready(function() {
	jQuery('#submitMusic_file').uploadify({
		'uploader'				: '/libs/flash/uploadify.swf',
		'script'					: '/libs/scripts/uploadify/uploadify.cfm',
		'scriptData'			: {'customerID':jQuery('input[name$=customer_id]').val(),'mode':'submit_music'},
		'folder'					: '/upload/customers/' + jQuery('input[name$=customer_id]').val() + '/mp3/temp/',
		'cancelImg' 			: '/libs/css/uploadify/images/cancel.png',
		'buttonImg'				: '/themes/revenonsalamusique/images/form/select_mp3.png',
		'fileDesc'				: 'Ajouter votre fichier MP3',
		'fileExt'					: '*.mp3',
		'sizeLimit'				: '10000000',
		'auto'           	: true,
		'height'					: '58',
		'width'						: '316',
		'rollover'				: true,
		'queueID'        	: 'fileQueue',
		'wmode'						: 'transparent',
		'onComplete'			: function(event, queueID, fileObj, response, data){
			var json = eval('(' + response + ')');
			jQuery('<input type="hidden" name="submitMusic_mp3_id" id="submitMusic_mp3_id" value="'+json.ID+'" />').insertBefore('input[name$=component]');
			jQuery('<p class="confirm">Votre fichier à bien été téléchargé sur le serveur</p>').insertAfter('#submitMusic_file');
		},    
	});
});

//Validation des données du formulaire d'ajout d'image en galerie
jQuery(document).ready(function() {
  jQuery("#galleryForm").validate({
    rules: {					
      title: 'required',
      },
    messages: {
      title: "Vous devez saisir un titre pour votre photo !",
    },
  });
});

//Validation des données du formulaire de gestion de la galerie
jQuery(document).ready(function() {
  jQuery("#adminGallery").validate({
    rules: {					
      title: 'required',
      },
    messages: {
      title: "Vous devez saisir un titre pour votre photo !",
    },
  });
});

//Validation des données du formulaire reminder
jQuery(document).ready(function() {
  jQuery("#reminderForm").validate({
    rules: {					
      email: {
        required:true,
        email: true,
      },
    },
    messages: {
      email: {
        required: "Vous devez saisir une adresse email !",	
        email: "Votre adresse email n'est pas bien formatée, identifiant@domain.ext",
      },
    },
  });
});

//Validation des données du formulaire de dépôt de candidature
jQuery(document).ready(function() {
	jQuery("#submitCandidacyForm").validate({
		rules: {					
			submitCandidacy_job: 'required',
			submitCandidacy_web_site : 'url',
			submitCandidacy_cv : 'required',
			submitCandidacy_cgu : 'required',
		},
		messages: {
			submitCandidacy_job: "Vous devez saisir un métier !",	
			submitCandidacy_web_site : "N'oubliez pas de commencer votre lien par http:// !",	
			submitCandidacy_cv : "Nous avons besoin de vos références !",
			submitCandidacy_cgu : "Vous devez accépter les conditions générales d'utilisaton du site !",
		},
	});
});
	
// Création d'un masque de saisi de date d'anniversaire pour le compte client
jQuery(document).ready(function() {
	jQuery("#createAccount_birth_day_date").mask("99/99/9999");
});

jQuery(document).ready(function() {
	jQuery("input.date").mask("99/99/9999");
});

jQuery(document).ready(function() {
	jQuery("input.time").mask("99:99");
});

// Création d'un masque de saisi de la durré d'un titre MP3
jQuery(document).ready(function() {
	jQuery("#audioForm_duration").mask("99:99");
});     

// Validation des données du formulaire de création de compte
jQuery(document).ready(function() {
  jQuery("#account_form").validate({
    rules: {
      createAccount_gender: {
        required: true,	
        digits: true,
      },
      createAccount_first_name: 'required',
      createAccount_last_name: 'required',
      createAccount_email: {
        required: true,
        email: true,
        remote: {
          url: "/scripts/ajax_check.cfm",
          type: "post",
          data: {
            action: 'available_user_email',
            userEmail: function() {
              return jQuery("#createAccount_email").val();
            },
          },
        },
      },
      createAccount_conf_email: {
        required: true,
        equalTo: "#createAccount_email"
      },
      createAccount_password: {
        required: true,
        minlength: 6
      },
      createAccount_conf_password: {
        required: true,
        equalTo: "#createAccount_password",
      },
			createAccount_birth_day_date: {
				required: true,
			},
      createAccount_user_name: {
        required: true,
        remote: {
          url: "/scripts/ajax_check.cfm",
          type: "post",
          data: {
            action: 'available_user_name',
            userName: function() {
              return jQuery("#createAccount_user_name").val();
            },
          },
        },
      },
      createAccount_cgv: 'required',
    },
    // Les messages d'erreurs dédiés
    messages: {
      createAccount_gender: "La civilité est obligatoire !",
      createAccount_first_name: "Le prénom est obligatoire !",
      createAccount_last_name: "Le nom est obligatoire !",
      createAccount_email: {
        required: "L'adresse email est obligatoire !",
        email: "Le format de votre adresse email n'est pas conforme identifiat@domain.ext !",
        remote: "Cette adresse email est déjà utilisée pour un autre membre !",
      },
      createAccount_conf_email: {
        required: "Vous devez confirmer l'adresse email !",
        equalTo: "Vos deux adresses email ne sont pas identiques",
      },
      createAccount_password: {
        required: 'Le mot de passe est obligatoire !',
        minlenght:'Votre mot de passe doit faire un minimum de 6 caractères',
      },
      createAccount_conf_password: {
        required: "Vous devez confirmez votre mot de passe !",
        equalTo: "Vos deux mots de passe ne sont pas identiques !",
      },			
			createAccount_birth_day_date: {
				required: "La date d'anniversaire est obligatoire !",
			},
      createAccount_user_name: {
        required: "Le nom d'utilisateur est obligatoire !",
        remote: "Ce nom d'utilisateur n'est pas disponible",
      },
      createAccount_cgv: "Vous devez accépter les conditions générales d'utilisation",
   },
  });
});
  
// Validation des données du formulaire de changement de mot de passe
jQuery(document).ready(function() {
	jQuery("#changePass").validate({
		rules: {					
			current: "required",
			new_pass: {
				required: true,
				minlength: 6,
			},
			new_conf: {
				required: true,
				equalTo: "#new_pass",
			},
		},
		messages: {
			current: "Le mot de passe est obligatoire !",	
			new_pass: {
				required: "Le mot de passe est obligatoire !",	
				minlength: "Votre mot de passe doit faire un minimum de 6 caractères !",
			},
			new_conf: {
				required: "Le mot de pass est obligatoire !",	
				equalTo: "Vos deux mots de passe ne sont pas identiques !",
			}
	 }
	});
});
    
// Validation des données du formulaire de changement d'email
jQuery(document).ready(function() {
	jQuery("#emailForm").validate({
		rules: {					
			new_email: {
				required: true,
				email: true,
				remote: {
        	url: '/cfc/customers.cfc?method=checkAvailableEmail&returnformat=json',
         	type: 'post',
         	data: {
         		userEmail: function() {return jQuery("#new_email").val();},
          	currentEmail: function() {return jQuery("#currentEmail").val();},  
         	},
        },
			},
			conf_email: {
				required: true,
				equalTo: "#new_email"
			},
			password: "required",
		},
		messages: {
			new_email: {
				required: "L'adresse email est obligatoire",
				email: "Votre adresse email n'est pas correctement formatée ! identifiant@domain.ext",
				remote: "Cette adresse email n'est pas disponible !"
			},
			conf_email: {
				required: "Vous devez saisir une adresse email !",
				equalTo: "Vos deux mots adresses email ne sont pas identiques !"
			},
			password: "Vous devez confirmez votre mot de passe !",	
		}
	});
}); 
    
// Valisation des données de changment de profil
jQuery("#proForm").validate({
	rules: {
		proForm_user_name: {
			required: true,
			remote: "/scripts/check_new_user_name.cfm",
		},
		proForm_localization : 'required',
	},
	// Les messages d'erreurs dédiés
	messages: {
		proForm_user_name: {
			required: "Vous devez saisir un nom d'utilisateur",
			remote: "Ce nom d'utilisateur n'est pas disponible, vous devez en choisir un autre",
		},
		proForm_localization :'Vous devez choisir une licalisation',
	}
});
    
// Validation des données de soumission d'un titre par un artiste
jQuery(document).ready(function() {
	jQuery("#submitMusicForm").validate({
		rules: {					
			submitMusic_name: {
				required: true,
				remote: {
					url: "/scripts/ajax_check.cfm",
					type: "post",
					data: {
						action: 'available_artist_name',
						artistName: function() {
							return jQuery("#submitMusic_name").val();
						},
					},
				},
			},
			submitMusic_web_site: 'url',
			submitMusic_title: 'required',
			submitMusic_rights: 'required',
			submitMusic_cgu: 'required',
			submiMusic_mp3_id: 'required',
		},
		messages: {
			submitMusic_name: {
				required: "Vous devez saisir le nom de la formation !",	
				remote: "Ce nom n'est pas disponible !",
			},
			submitMusic_web_site: "Votre lien doit commencer par http:// !",	
			submitMusic_title: "Vous devez saisir un titre pour votre morceau !",
			submitMusic_rights: "Vous devez valider être détenteur des droits sur le titre !",	
			submitMusic_cgu: "Vous devez valider les conditions générals du site !",	
			submiMusic_mp3_id: "Vous n'avez pas soumis votre fichier MP3 !",
	 }
	});
});

// Validation des données du formulaire de modification de liens communautaires
jQuery(document).ready(function() {
	jQuery("#linksForm").validate({
			rules: {					
				link: {
				required: true,
				url: true,
			},
		},
			messages: {
				link: {
				required: 'Vous devez ajouter un lien !',
				url: 'Le lien doit commencer par http://',
			},
		},
	});
});

// Validation des données du formulaire de soumission de liens communautaires
jQuery(document).ready(function() {
  jQuery("#newLinksForm").validate({
    rules: {					
      link: {
        required: true,
        url: true,
      },
    },
    messages: {
      link: {
        required: 'Vous devez ajouter un lien !',
        url: 'Le lien doit commencer par http://',
      },
    },
  });
});
  
// Validation des données du formulaire d'upload d'image
jQuery(document).ready(function() {
  jQuery("#changeAvatarForm").validate({
    rules: {					
      // L'adresse email
      avatarForm_file: {
        required: true,
      },
    },
    messages: {
      // L'adresse email
      avatarForm_file: {
        required: "Vous devez choisir une image !",
      },
   }
  });
});  

// Validation des données du formulaire de publication d'événements
jQuery(document).ready(function() {
	jQuery("#event_form").validate({
		rules: {					
			title_fr: 'required',
			date		: 'required',
			time		: 'required',
			url		: 'url',
		},
		messages: {
			title_fr: 'Vous devez ajouter une titre !',
			date		: 'Vous devez saisir une date !',
			time		: 'Vous devez préciser l\'heure !',
			url			: 'Votre lien doit commencer par http:// !',
	 	}
	});
});