
var valid = 1;
var loginDispo = 0;
var login="";
var password="";
var pageSecure = false;

var formLoginWait ='<img src="design/images/wait.gif"><p>Identification en cours</p>';

function initQuickLogin()
{
	Event.stopObserving($("connect"), 'click', submitLogin);
	Event.observe($("connect"), 'click', submitLogin);
	Event.stopObserving($("newLogin"), 'click', submitLogin);
	Event.observe($("newLogin"), 'click', submitLogin);
	
	initObligForm();

}

function initObligForm()
{
	champsRequis = document.getElementsByClassName("oblig");
	for(var i=0;i<champsRequis.length;i++)
	{

		Event.stopObserving(champsRequis[i], 'change', control);
		Event.observe(champsRequis[i], 'change', control , false);


	}

}

function loginRequest(action,complements)
{
	
	new Ajax.Request('rpc.php',
	{

		method:'post',
		parameters: $H({'data':'login','modele':'login/resultatLogin.json','ajax':'oui','login':login,'password':password,'bouton':action}).toQueryString() + "&"+complements,
		onComplete : function(requester) {

			
			var resp = requester.responseText;
			var dataJson = eval("( "+ resp +")");
			switch(dataJson.resultat)
			{

				case "ok":
				var zoneMaj = $('quickLogin');
				zoneMaj.update(dataJson.quickSearch);
				initConnectedForm();
				returnToPage();
				break;
				
				case "loginDispo":
				var zoneMaj = $('errorMsg');
				loginDispo = 1;
				$("userlogin").setStyle({'background-color':'#1eec7a'});			
				zoneMaj.update("");
				break;
				
				case "loginNoDispo":
				var zoneMaj = $('errorMsg');
				loginDispo = 0;
				$("userlogin").setStyle({'background-color':'#ffaaaa'});			
				zoneMaj.update("Ce login n'est pas disponible.");
				break;


				
				case "creationCompteOk":
				var zoneMaj = $('corpsContenu');
				zoneMaj.update(dataJson.contenu);
				break;
				
				case "profil":
				pageSecure=true;
				var zoneMaj = $('corpsContenu');
				zoneMaj.update(dataJson.contenu);
				initFormProfil();
				break;
				
				case "majCompte":
				alert("Votre profil a été mis à jour");
				var zoneMaj = $('corpsContenu');
				zoneMaj.update(dataJson.contenu);
				initFormProfil();
				break;
				
				case "resetFormLogin":
				var zoneMaj = $('quickLogin');
				zoneMaj.update(dataJson.quickSearch);
				initQuickLogin();
				break;
				
				case "new":
				var zoneMaj = $('corpsContenu');
				zoneMaj.update(dataJson.contenu);
				var zoneMaj = $('quickLogin');
				zoneMaj.update(dataJson.quickSearch);
				initQuickLogin();
				initFormNew();
				break;
				
				case "recover":
				var zoneMaj = $('corpsContenu');
				zoneMaj.update(dataJson.contenu);
				var zoneMaj = $('quickLogin');
				zoneMaj.update(dataJson.quickSearch);
				initQuickLogin();
				initNoLoginRecover();
				break;
				
				case "logout":
				var zoneMaj = $('quickLogin');
				zoneMaj.update(dataJson.quickSearch);
				initQuickLogin();
				if(pageSecure)
				{
					returnToPage();
				}
				break;
				
				case "error":
				var zoneMaj = $('quickLogin');
				zoneMaj.update(dataJson.quickSearch);
				var zoneMaj = $('corpsContenu');
				zoneMaj.update(dataJson.contenu);
				initErrorForm();
				break;
			}




		}
	});
}

function returnToPage()
{
	
	new Ajax.Request('rpc.php',
	{
		method:'post',
		parameters: pageCourante,
		onComplete : function(requester) {
		
			var resp = requester.responseText;
			var zoneMaj = $('zoneContenu');
			zoneMaj.update(resp);
							
		}
	});
		
	
	Event.stop(event);	
}


function submitLogin(event)
{
	
	Event.stop(event);
	var demandeur = Event.findElement(event,'button');

	login=$("login").value;
	password =$("password").value;

	if(demandeur.id == "connect")
	{
		var zoneMaj = $('quickLogin');	
		zoneMaj.update(formLoginWait);	
	}
	
	loginRequest(demandeur.id,"")
}




function submitLoginAfterError(event)
{
	
	Event.stop(event);
	var demandeur = Event.findElement(event,'button');

	login=$("login2").value;
	password =$("password2").value;

	if(demandeur.id == "connect")
	{
		var zoneMaj = $('quickLogin');	
		zoneMaj.update(formLoginWait);	
	}
	
	loginRequest("connect","")
}

function logout(event)
{
	Event.stop(event);
	login = "";
	password="";
	loginRequest("logout","");
	
}


function getProfil(event)
{
	Event.stop(event);
	loginRequest("getProfil","");
	
}


function majProfil(event)
{
	valide = 1;
	Event.stop(event);
	
	for(var i=0;i<champsRequis.length;i++)
	{
		
		if(champsRequis[i].id != "password1" && champsRequis[i].id != "password2")
		{
			if(champsRequis[i].value=="")
			{
				valide = 0;
				champsRequis[i].setStyle({'background-color':'#ffaaaa'});			
			}
			else
			{
				champsRequis[i].setStyle({'background-color':'#1eec7a'});
				
			}
		}
				
	}
	
	controlMajPassword();
	
	if(!valide)
	{
		alert("Le formulaire est incomplet ou non correctement rempli.\n" + "Veuillez corriger les champs signalés et réessayez.");
		Event.stop(event);
	}
	else
	{	
		password=$("password1").value;
		loginRequest("majCompte",$("formMajProfil").serialize());
	}
	
}


function initConnectedForm()
{

	Event.stopObserving($("logout"), 'click', logout);
	Event.observe($("logout"), 'click', logout);
	
	Event.stopObserving($("monprofil"), 'click', getProfil);
	Event.observe($("monprofil"), 'click', getProfil);
	
	Event.stopObserving($("mestelechargements"), 'click', getProtectedPage);
	Event.observe($("mestelechargements"), 'click', getProtectedPage);

	Event.stopObserving($("mesoperations"), 'click', getProtectedPage);
	Event.observe($("mesoperations"), 'click', getProtectedPage);
}


function initFormProfil()
{
	
	initObligForm();
	Event.stopObserving($("majCompte"), 'click', majProfil);
	Event.observe($("majCompte"), 'click', majProfil);
}
 
function initFormNew()
{
	Event.stopObserving($("creerCompte"), 'click', createNewCompte);
	Event.observe($("creerCompte"), 'click', createNewCompte);
}

function createNewCompte(event)
{
	
	var valide = 1;
	for(var i=0;i<champsRequis.length;i++)
	{
		if(champsRequis[i].value=="")
		{
			valide = 0;
			champsRequis[i].setStyle({'background-color':'#ffaaaa'});			
		}
		else
		{
			champsRequis[i].setStyle({'background-color':'#1eec7a'});
		}
	}

	controlPassword();
	
	
	
	if(!valide || !loginDispo)
	{
			
		if(loginDispo == 0)
		{
			var zoneMaj = $('errorMsg');
			$("userlogin").setStyle({'background-color':'#ffaaaa'});			
			zoneMaj.update("Ce login n'est pas disponible.");
		
		}
		
		alert("Le formulaire est incomplet ou non correctement rempli.\n" + "Veuillez corriger les champs signalés et réessayez.");
		Event.stop(event);
	}
	
	

	
}


function getProtectedPage(event)
{
	Event.stop(event);
	var demandeur = Event.findElement(event,'a');

	new Ajax.Request('rpc.php',
	{

		method:'post',
		parameters: $H({'data':demandeur.id,'modele':'zoneContenu.tpl'}).toQueryString(),
		onComplete : function(requester) {
			pageSecure=true;
			var resp = requester.responseText;
			var zoneMaj = $('zoneContenu');
			zoneMaj.update(resp);

		}
	});




}


function initErrorForm()
{
	
	if($("identRequise")) pageCourante=$H({'data':'commande','modele':'zoneContenu.tpl','etape':'1'}).toQueryString();
	
	Event.stopObserving($("connect2"), 'click', submitLoginAfterError);
	Event.observe($("connect2"), 'click', submitLoginAfterError);
	
	Event.stopObserving($("linkNewLogin"), 'click', newCompte);
	Event.observe($("linkNewLogin"), 'click', newCompte);
	
	Event.stopObserving($("lost"), 'click', recoverCompte);
	Event.observe($("lost"), 'click', recoverCompte);
	
	//Event.stopObserving($("dspFormLogin"), 'click', resetQuickLogin);
	//Event.observe($("dspFormLogin"), 'click', resetQuickLogin);


}


function recoverCompte(event)
{
	Event.stop(event);
	loginRequest("lost",$('formLogin').serialize());

}

function newCompte()
{
	Event.stop(event);
	login = "";
	password="";
	loginRequest("newLogin","");
	
}



function initNoLoginRecover()
{
	Event.stopObserving($("linkNewLogin"), 'click', newCompte);
	Event.observe($("linkNewLogin"), 'click', newCompte);

}

function resetQuickLogin()
{
	Event.stop(event);
	loginRequest("resetFormLogin","");
	initQuickLogin();
}

function newLogin(event)
{
	Event.stop(event);
}

function control(event)
{
	var demandeur = Event.findElement(event,'input');
	
	
	if(demandeur.value.strip()=="")
	{
		valide = 0;
		demandeur.setStyle({'background-color':'#ffaaaa'});			
	}
	else
	{
		demandeur.setStyle({'background-color':'#1eec7a'});
	}
	
	
	if(demandeur.id == "userlogin")
	{
		login = $("userlogin").value;
		loginRequest("loginDispo","");
	
	}
	
	if(demandeur.id == "password2" || demandeur.id == "password1")
	{
		
		controlPasswordIdentique();
	}
	
	if(demandeur.id == "password1" || demandeur.id == "password2")
	{
		controlPassword1();
	}
	

}

function controlPasswordIdentique()
{
	
	if($("password2").value != $("password1").value)
	{
		valide = 0;
		$("password2").setStyle({'background-color':'#ffaaaa'});
		$("password1").setStyle({'background-color':'#ffaaaa'});
		$("errorMsg").update("Attention les champs mots de passe sont différents !");
			}
	else
	{
		$("password2").setStyle({'background-color':'#1eec7a'});
		$("password1").setStyle({'background-color':'#1eec7a'});
		$("errorMsg").update("&nbsp;");	
	}
}

function controlPassword1()
{
	if($("password1").value.length < 8)
	{
		valide = 0;
		$("password1").setStyle({'background-color':'#ffaaaa'});
		$("password2").setStyle({'background-color':'#ffaaaa'});
		$("errorMsg").update("La taille du mot de passe doit être supérieur à 8 caratères !");
	}
}

function controlPassword()
{
	controlPasswordIdentique();
	controlPassword1();
}
	
function controlMajPassword()
{
	if($("password2").value != "" || $("password1").value != "")
	{
		controlPasswordIdentique();
		controlPassword1();
	}
}