﻿// config 
urlBase 		= 'http://192.168.0.30/somusic/www/';
//urlBase 		= 'http://www.somusic.fr/';
urlBase			= 'http://int-somusic.integra.fr/';
url 			= 'connectProcess.php';
//urlHome			= 'http://int-somusic.integra.fr/index.php';
urlHome			= 	urlBase+'index.php';
//urlHome			= 'http://192.168.0.40/somusic/www/index.php';

delai			= 3000;

// assignation des valeurs
logguedMsg 		= 'Vous êtes connecté ';
unlogguedMsg 	= "Vous n'êtes pas connecté ";

ValidMsg		= '<img src="img/icon_valid.gif" alt="good" class="goodIcon" />';
msgFinalEphemere= 'Découvrez l\'ensemble des services <span class="orange">So Music</span> pendant 48h';
errPrestaIdMsg	= 'Veuillez entrer un numéro de prestation exact';
errEmailMsg		= 'Veuillez entrer un e-mail correct';
errPassMsg		= 'Veuillez entrer un mot de passe entre 4 et 8 caractères';
errPassCheckMsg	= 'Veuillez entrer deux mots de passe identiques';
errPseudoMsg	= 'Veuillez entrer un pseudo entre 4 et 8 caractères';
errAddressMsg	= 'Veuillez entrer une adresse';
errZipMsg		= 'Veuillez entrer un code postal correct';
errTownMsg		= 'Veuillez entrer une ville';
errBirthMsg		= 'Veuillez entrer une date de naissance correcte';
errCaptcha		= 'Veuillez copier correctement le code ci-dessus';
errCGU			= "Vous devez accepter les conditions d'utilisation pour vous inscrire à ce service.";

PrestaIdFlag 	= false;
EmailFlag		= false;
PassFlag		= false;
Pass2Flag		= false;
PseudoFlag		= false;
AddressFlag		= false;
ZipFlag			= false;
TownFlag		= false;
BirthDFlag		= false;
BirthMFlag		= false;
BirthYFlag		= false;

// fonction d'instanciation modale du formulaire de changement de mot de passe
function initPass(){
	var tmp = window.location.search.substring(1);
	if (tmp.indexOf("=")!=-1) var value = tmp.substring(tmp.indexOf("=")+1);
	if (value && value != '') {
		Lightview.show({
			href: 'passChangeForm.php?token='+value,
			rel: 'ajax',
			title: 'Changez votre mot de passe',
			options : {
				height: 220,
				scrolling: true
			}
		});
		showHideCLight('show');
	}
}

// fonction d'instanciation modale du formulaire pour le changement de mot de passe
function initForgotPass(){
	Lightview.show({
		href: 'passChangeForm.php',
		rel: 'ajax',
		title: 'Mot de passe oublié',
		options : {
			height: 280,
			scrolling: true
		}
	});
	showHideCLight('show');
}
function initForgotPass2(){
	Lightview.show({
		href: 'passChangeForm2.php',
		rel: 'ajax',
		title: 'Mot de passe oublié',
		options : {
			height: 340,
			menubar:false,
			scrolling: true
		}
	});
	showHideCLight('show');
}

// fonction de gestion des envois de mail de password oubliés
function validateChangePwd(){
	var email = $('loginChange').value;
	var body = 'action=getPass&email='+email;
	new Ajax.Request(url, {
		method: 'post',
		postBody:body,
		onSuccess: function(transport) {
			
			$('passChange').hide();
			$('passCheck').update(transport.responseText);
			setTimeout("Lightview.hide()", 3000);
			
			/*avant changement
			setTimeout("Lightview.hide()", 1000);
			*/
		}
	});
}
//fonction de rechargement de la home
function reloadHome()
	{
	//alert("ok");
	window.location.href = urlHome;
	}
// fonction de gestion des envois de mail de password oubliés externe
function validateChangePwd2(){
	
	var email = $('loginChange').value;
	var body = 'action=getPass&email='+email;
	new Ajax.Request(url, {
		method: 'post',
		postBody:body,
		onSuccess: function(transport) {
			//setTimeout("Lightview.hide()", delai);
			window.location.reload();
		}
	});
}

// fonction d'envoi du changement de password
function changePwdFinal(){
	var pwd 	= $('passwordChangeFirst').value;
	var token 	= $('token').value;
	var body = 'action=setPass&pwd='+pwd+'&token='+token;
	new Ajax.Request(url, {
		method: 'post',
		postBody:body,
		onSuccess: function(transport) {
			$('passChangeForm').hide();
			$('passChangeFormResult').update(transport.responseText);
			setTimeout("reloadHome()", 1000);
		}
	});
}

// fonction d'instanciation modale du formulaire de login
function initLogin(url,showMenuBar){
	if(showMenuBar == undefined) showMenuBar = false;
	Lightview.show({
		href: urlBase+'loginForm.php',
		rel: 'ajax',
		title: 'Bienvenue sur So\'Music',
		options : {
			/*height: 270,
			menubar: showMenuBar,
			scrolling: true*/
			autosize:true,
			menubar:false,
			topclose:false
		}
	});
	document.observe('lightview:opened', function(event) {
		if(url == undefined) url = urlHome;
		$('url').value = url;
	});
	if(showMenuBar == undefined || showMenuBar == false) showHideCLight('hide');
}
function initLogin2(){
	/*Lightview.show({
		href: 'loginForm.php',
		rel: 'ajax',
		title: 'Bienvenue sur So\'Music',
		options : {
			height: 250
		}
	});
	document.observe('lightview:opened', function(event) {
		if(url == undefined) url = urlHome;
		$('url').value = url;
	});
	showHideCLight('hide');*/
	alert('coucou');
}
// fonction d'instanciation modale du formulaire de première connexion
function showFirstLogin(){
	Lightview.show({
		href: 'connectForm.php',
		rel: 'ajax',
		title: 'Identifiez-vous',
		options : {
			height: 300,
			scrolling:true,
			autosize:true,
			menubar:false,
			topclose:false
		}
	});
	//showHideCLight('hide');
}

// fonction d'instanciation modale du formulaire de première connexion
function initFirstLogin(){
	Lightview.show({
		href: 'connectForm.php',
		rel: 'ajax',
		title: 'Identifiez-vous',
		options : {
			autosize:true
		}
	});
	showHideCLight('show');
}
function showLoginStep()
	{
	Lightview.show({
			href: 'pas-a-pas.php',
			rel: 'ajax',
			title: 'Bienvenue sur So Music',
			options : {
				autosize:true,
				menubar:false,
				topclose:false
			}
		});
		showHideCLight('hide');
	}
// fonction d'instanciation modale du formulaire de première connexion externe
function initFirstLogin2(){
	Lightview.show({
		href: 'connectForm2.php',
		rel: 'ajax',
		title: 'Identifiez-vous',
		options : {
			menubar:	false,
			autosize:true
		}
	});
	showHideCLight('show');
}

// fonction de connexion modale
function connectSoMusicModal() {
	var urlGO 		= $('url').value;
	var login  		= $('loginModal').value;
	var password 	= $('passwordModal').value;
	var url_back 	= $('url_back').value;
	var body		= 'action=logUser&login='+login+'&password='+password;
	new Ajax.Request(urlBase+url, {
		method: 'post',
		postBody:body,
		onSuccess: function(transport) {
			var obj = transport.responseJSON;
			if(obj.status == 1){
				var parent = window.opener;
				if (parent != undefined) parent.location.href = parent.location;
				if(url_back != ''){
					re = /\?/;
					if (re.test(url_back))
						{
						//http://www.somusic.fr/index.php?url_back=http://www.url.com/index.php?menu=1?michel=2
						var tabUrl = url_back.split("?");
						var urlRet = tabUrl[0]+"?ticketId="+obj.ticketId;
						for(var i=1;i<tabUrl.length;i++) urlRet += "&"+tabUrl[i];
						window.location.href = urlRet;
						}
					else window.location.href = url_back+"?ticketId="+obj.ticketId;
				}
				else window.location.href = urlGO;
			}
			else{
				$('noticeModal').update(obj.msg);
			}
		}
	});
	return false;
};

// fonction de déconnexion
function unlogSoMusic() {
	//alert("unlogSoMusic");
	var body		= 'action=unlog';
	new Ajax.Request(urlBase+url, {
		method: 'post',
		postBody:body,
		onSuccess: function(transport) {
			//alert("retour unlogSoMusic :"+obj);
			var obj = transport.responseJSON;
			if(obj) window.location.href = urlHome;
		}
	});
}
function unlogSoMusicForced() {
	var login = "";
	if($('loginStep')) login = $('loginStep').value;
	if($('loginModal')) login = $('loginModal').value;
	
	var body		= 'action=unlogForced&email='+login;
	new Ajax.Request(urlBase+url, {
		method: 'post',
		postBody:body,
		onSuccess: function(transport) {
			var obj = transport.responseJSON;
			if(obj == true)
				{
				window.location.href = urlHome;
				}
			//else alert("pas de mail");
		}
	});
}

//function de déconnexion via le mail de première inscription
function unlogSoMusicForcedViaMail(mail) {
	var body		= 'action=unlogForced&email='+mail;
	new Ajax.Request(urlBase+url, {
		method: 'post',
		postBody:body,
		onSuccess: function(transport) {
			var obj = transport.responseJSON;
			if(obj == true)
				{
				window.location.href = urlHome;
				}
			//else alert("pas de mail");
		}
	});
}
// fonction de connexion
function connectSoMusic() {
	//console.log(window.location);
	var login  		= $('login').value;
	var password 	= $('password').value;
	var url_back 	= $('url_back').value;
	var body		= 'action=logUser&login='+login+'&password='+password;
	new Ajax.Request(url, {
		method: 'post',
		postBody:body,
		onSuccess: function(transport) {
			var obj = transport.responseJSON;
			if(obj.status == 1){
				if(url_back != '') window.location.href = url_back+"?ticketId="+obj.ticketId;
				else window.location.href = window.location;
				//else window.location.href = urlHome;
			}
			else{
				$('notice').update(obj.msg);
			}
		}
	});
	return false;
};
function connectSoMusicStep() {
	//console.log(window.location);
	//if(noticeMsg != undefined) var fieldError = noticeMsg;
	//else fieldError = "notice";
	var login  		= $('loginStep').value;
	var password 	= $('passwordStep').value;
	var body		= 'action=logUser&login='+login+'&password='+password;
	new Ajax.Request(url, {
		method: 'post',
		postBody:body,
		onSuccess: function(transport) {
			var obj = transport.responseJSON;
			
			if(obj.status == 1){
			
				window.location.href = window.location;
				//else window.location.href = urlHome;
			}
			else{
				$('noticeStep').update(obj.msg);
			}
		}
	});
	return false;
};
// fonction de vérification des champs
function checkThisInput(obj, type){
	var id = obj.getAttribute('ID');
	switch(type){
		case 'prestaId':
			if(obj.value == '') $(id+'Error').update(errPrestaIdMsg);
			else {
				$(id+'Error').update(ValidMsg);
				PrestaIdFlag = true;
			}
		break;
		case 'email':
			var re = new RegExp("\\b[A-Za-z0-9\\._%-]+@[A-Za-z0-9\\.-]+\\.[A-Za-z]{2,4}\\b");
			if(!re.test(obj.value) || obj.value == '')$(id+'Error').update(errEmailMsg);
			else {
				$(id+'Error').update(ValidMsg);
				EmailFlag = true;
			}
		break;
		case 'pass':
			if(obj.value.length < 4 || obj.value.length > 8 || obj.value == '')$(id+'Error').update(errPassMsg);
			else {
				$(id+'Error').update(ValidMsg);
				PassFlag = true;
			}
		break;
		case 'pass2':
			var pass = id.split('Check');
			if(obj.value.length < 4 || obj.value.length > 8 || obj.value == '')$(id+'Error').update(errPassMsg);
			if($(pass[0]).value != $(id).value)$(id+'Error').update(errPassCheckMsg);
			else {
				$(id+'Error').update(ValidMsg);
				Pass2Flag = true;
			}
		break;
		case 'pseudo':
			if(obj.value.length < 4 || obj.value.length > 8)$(id+'Error').update(errPseudoMsg);
			else {
				$(id+'Error').update(ValidMsg);
				PseudoFlag = true;
			}
		break;
		case 'address':
			if(obj.value == '')$(id+'Error').update(errAddressMsg);
			else {
				$(id+'Error').update(ValidMsg);
				AddressFlag = true;
			}
		break;
		case 'zipcode':
			if(isNaN(obj.value) || obj.value.length != 5)$(id+'Error').update(errZipMsg);
			else {
				$(id+'Error').update(ValidMsg);
				ZipFlag = true;
			}
		break;
		case 'town':
			if(obj.value == '')$(id+'Error').update(errTownMsg);
			else {
				$(id+'Error').update(ValidMsg);
				TownFlag = true;
			}
		break;
		case 'birthD':
			var idBirth = id.split('_');
			if(isNaN(obj.value) || obj.value.length != 2 || obj.value>31)$(idBirth[0]+'Error').update(errBirthMsg);
			else {
				$(idBirth[0]+'Error').update(ValidMsg);
				BirthDFlag = true;
			}
		break;
		case 'birthM':
			var idBirth = id.split('_');
			if(isNaN(obj.value) || obj.value.length != 2 || obj.value>12 )$(idBirth[0]+'Error').update(errBirthMsg);
			else {
				$(idBirth[0]+'Error').update(ValidMsg);
				BirthMFlag = true;
			}
		break;
		case 'birthY':
			var idBirth = id.split('_');
			if(isNaN(obj.value) || obj.value.length != 4 || obj.value<1900 || obj.value>1995)$(idBirth[0]+'Error').update(errBirthMsg);
			else {
				$(idBirth[0]+'Error').update(ValidMsg);
				BirthYFlag = true;
			}
		break;
	}
}

// fonction de validation du premier step de la 1ere inscription
function validateFirst(){
	if(PrestaIdFlag){ // Champs obligatoires
		var presta 	= $('prestaFirst').value;
		var body 	= 'action=get&prestaId='+presta;
		new Ajax.Request(url, {
			method: 'post',
			postBody:body,
			onSuccess: function(transport) {
var bloqued = false;
				var obj = transport.responseJSON;
				if(obj.msg){
					$('prestaNumberError').update(obj.msg);
				}
				else if(obj != false && obj.id != null){
					if(obj.birthdate){
						var date = obj.birthdate.split('-');
						$('birthdate_d').value 	= date[2];
						$('birthdate_m').value 	= date[1];
						$('birthdate_y').value 	= date[0];
						checkThisInput($('birthdate_d'), 'birthD');
						checkThisInput($('birthdate_m'), 'birthM');
						checkThisInput($('birthdate_y'), 'birthY');
					}
					if(obj.name && obj.lastname){
						$('ShowUserName').update('Bonjour '+obj.name+' '+obj.lastname);
						$('name').value 		= obj.name;
						$('lastname').value 	= obj.lastname;
					}
					if(obj.address){
						$('address').value 		= obj.address;
						checkThisInput($('address'), 'address');
					}
					if(obj.zipcode){
						$('zipcode').value 		= obj.zipcode;
						checkThisInput($('zipcode'), 'zipcode');
					}
					if(obj.town){
						$('town').value 		= obj.town;
						checkThisInput($('town'), 'town');
					}
					if(obj.age_status){
						$('age').value 			= obj.age_status;
					}
					if(obj.isEphemere != null && obj.isEphemere == 'true'){
						//alert("c'est un éphémère !!!");
						bloqued = true;
						$('msgFinal').update(msgFinalEphemere);
					}
					if(!bloqued){
						
						$('firstLoginFormStep1').hide();
						$('firstLoginFormStep2').show();
						//Lightview.resize({ width: 450, height: 650});
						Lightview.updateViews();
						//Lightview.resize({ width: 450, height: 650});
						setTimeout('resizeView();',500);
					}
					else{
						$('prestaFirst'+'Error').update(errPrestaIdMsg);
					}
				}
				else{
					$('prestaFirst'+'Error').update(errPrestaIdMsg);
				}
			}
		});
	}
	else{
		checkThisInput($('prestaFirst'), 'prestaId');
	}
}

function resizeView(l,h)
	{
	//alert("resize");
	Lightview._resize({ width: 450, height: 600});
	}
// fonction de validation du deuxieme step de la 1ere inscription
function validateSecond() { 
	if(EmailFlag && PassFlag && Pass2Flag && PseudoFlag && AddressFlag 
	&& ZipFlag && TownFlag && BirthDFlag && BirthMFlag && BirthYFlag) { // Champs obligatoires
		var body 	= 'action=checkCaptcha&captcha='+$('captcha').value;
		new Ajax.Request(url, {
			method: 'post',
			postBody:body,
			onSuccess: function(transport) {
				var txt = transport.responseText;
				if(txt == 'true'){
					var body 	= 'action=checkUser&login='+$('loginFirst').value+'&password='+$('passwordFirst').value;
					new Ajax.Request(url, {
						method: 'post',
						postBody:body,
						onSuccess: function(transport) {
							var obj = transport.responseJSON;
							if(obj && obj.msg != ''){
								$('captchaError').update(obj.msg);
							}
							else{
								$('firstLoginFormStep2').hide();
								$('firstLoginFormStep3').show();
								Lightview.resize({ width: 450, height: 480 });
							}
						}
					});
				}
				else{
					$('captchaError').update(errCaptcha);
				}
			}
		});
	}
	else{
		checkThisInput($('loginFirst'), 	'email');
		checkThisInput($('passwordFirst'), 	'pass');
		checkThisInput($('pseudo'), 		'pseudo');
		checkThisInput($('birthdate_d'), 	'birthD');
		checkThisInput($('birthdate_m'), 	'birthM');
		checkThisInput($('birthdate_y'), 	'birthY');
		checkThisInput($('address'), 		'address');
		checkThisInput($('zipcode'), 		'zipcode');
		checkThisInput($('town'), 			'town');
	}
}

// fonction de connexion première
function connectFirstSoMusic(){
	var login  		= $('loginFirst').value;
	var password 	= $('passwordFirst').value;
	var presta 		= $('prestaFirst').value;
	var name 		= $('name').value;
	var lastname	= $('lastname').value;
	var age_status	= $('age').value;
	var pseudo 		= $('pseudo').value;
	var address 	= $('address').value;
	var zipcode 	= $('zipcode').value;
	var town 		= $('town').value;
	var birthdate 	= $('birthdate_y').value+'-'+$('birthdate_m').value+'-'+$('birthdate_d').value;
	var mobile 		= $('mobile').value;
	var check_so 	= 0;
	if($('check_so').checked) check_so = $('check_so').value;
	var check_um 	= 0;
	if($('check_um').checked) check_um = $('check_um').value;
	var body		= 'action=logUserFirst&login='+login+'&password='+password+'&presta='
		+presta+'&name='+name+'&lastname='+lastname+'&age_status='+age_status+'&pseudo='
		+pseudo+'&address='+address+'&zipcode='+zipcode+'&town='+town+'&birthdate='+birthdate+'&mobile='+mobile+'&check_so='+check_so+'&check_um='+check_um;
	new Ajax.Request(url, {
		method: 'post',
		postBody:body,
		onSuccess: function(transport) {
			var obj = transport.responseJSON;
			if(obj.status == 1){
				$('firstLoginFormStep3').hide();
				$('firstLoginFormStep4').show();
				Lightview.resize({ width: 350, height: 170 });
			}
			else{
				$('noticeStep3').update(obj.msg);
				setTimeout("Lightview.hide()", delai);
			}
		}
	});
};

// fonction de validation du troisieme step de la 1ere inscription
function validateThird() {
	if($('cgu').checked) { // Champs obligatoires
		connectFirstSoMusic();
	}
	else{
		$('noticeStep3').update(errCGU);
	}
}

// fonction de redirection si url de retour fournie
function validateFourth(){
	Lightview.hide();
	var url_back  	= $('url_back').value;
	if(url_back != '') window.location.href = url_back;
	else window.location.href = window.location;
}
function gotoStep(divToHide,divToShow)
	{
	var largeur = $(divToShow).style.width.split("px").join('');
	var hauteur = $(divToShow).style.height.split("px").join('');
	$(divToHide).hide();
	Lightview.resize({ width: parseInt(largeur), height: parseInt(hauteur)});
	setTimeout("showNextStep('"+divToShow+"')", 2000);
	}
function showNextStep(divToShow)
	{
	$(divToShow).show();
	}
// fonction d'appel aux informations rolling-stones pour les non RS
function gotoInfosRS(){
	Lightview.show({
		href: urlBase+'rs-info.php',
		rel: 'ajax',
		title: 'Cartes Rolling-Stones',
		options : {
			menubar:	true,
			autosize:true
		}
	});
	showHideCLight('show');
}		
	