/**
 * @author pierre
 */

var timer = null;
var idUser = null;
var RightList = null;
var PopupAlert = new YkeUI.YkePopup.YkeAlert('alertPopup');
var popupconfirm = new YkeUI.YkePopup.YkeConfirm("confirmPopup");
var WEBSERVICE_URL = 'WS_SDISHYDR';
var popuploading = null;




function signIn()
{
	var lelogin="";
	var lepwd="";
	if( YkeUI.YkeString.Trim($('tLogin').value)!=-1 )
	{
		$('tLogin').value = YkeUI.YkeString.Trim($('tLogin').value);
		lelogin = YkeUI.YkeString.Trim($('tLogin').value);
	}
	if( YkeUI.YkeString.Trim($('tPwd').value)!=-1 )
	{
		$('tPwd').value = YkeUI.YkeString.Trim($('tPwd').value);
		lepwd = YkeUI.YkeString.Trim($('tPwd').value);
	}
	if(lelogin!="" && lepwd!="")
	{		
	}
	else
	{
		PopupAlert.Render("Veuillez saisir un identifiant et un mot de passe");
	}
}

function SignInCallBack(e, success, exception, info)
{
	timer.Stop();
	if(success)
	{
		if(e.Success)
		{
			popuploading.Close();
			var ds = e.RetUser;
			idUser = ds["Id"];
			RightList = ds["RightList"].string;	
		}
		else
		{
			popuploading.Print("L'identifiant ou le mot de passe est invalide");
		}
		
	}
	else
	{
		popuploading.Print("Problème de connection : " + e.UIMessage);
	}
}

function changePassword()
{
	
	var properties = new Array();		
	properties[0] =  new YkeUI.YkePopup.Field();		
	properties[0].name = "Identifiant";	
	properties[0].sourceName = "nom";
	properties[0].controlType = "fonction";
	properties[0].controlFunc =  function (html,obj,hightLight,disable)
	{
		var YkeInputText = new Yke.UI.InputText();
		YkeInputText._size = 70;
		YkeInputText._maxLength = 20;
		YkeInputText.render(html);
		if(obj.ykeControls==null)
			obj.ykeControls = new Array();
			
		if(obj.ykeControls['NomCtrl']!=null)
			YkeInputText.setValue(obj.ykeControls['NomCtrl'].getValue());
			
		obj.ykeControls.NomCtrl = YkeInputText;
		return obj;
	}
	properties[0].saveFunc =  function (dataPopup,dataObj)
	{
		dataPopup['Nom'] = dataObj.ykeControls['NomCtrl'].getValue();
		return dataPopup;
	}
	
	properties[1] =  new YkeUI.YkePopup.Field();		
	properties[1].name = "Ancien mot de passe";	
	properties[1].sourceName = "oldPassword";
	properties[1].controlType = "fonction";
	properties[1].controlFunc =  function (html,obj,hightLight,disable)
	{
		var YkeInputText = new Yke.UI.InputText();
		YkeInputText._size = 70;
		YkeInputText._mode = "password";
		YkeInputText._maxLength = 20;
		YkeInputText.render(html);
		
		if(obj.ykeControls['oldPasswordCtrl']!=null)
			YkeInputText.setValue(obj.ykeControls['oldPasswordCtrl'].getValue());
			
		obj.ykeControls.oldPasswordCtrl = YkeInputText;
		return obj;
	}
	properties[1].saveFunc =  function (dataPopup,dataObj)
	{
		dataPopup['oldPassword'] = dataObj.ykeControls['oldPasswordCtrl'].getValue();
		return dataPopup;
	}
	
	properties[2] =  new YkeUI.YkePopup.Field();		
	properties[2].name = "Nouveau mot de passe";	
	properties[2].sourceName = "newPassword";
	properties[2].controlType = "fonction";
	properties[2].controlFunc =  function (html,obj,hightLight,disable)
	{
		var YkeInputText = new Yke.UI.InputText();
		YkeInputText._size = 70;
		YkeInputText._mode = "password";
		YkeInputText._maxLength = 20;
		
		YkeInputText.render(html);
		
		if(obj.ykeControls['newPasswordCtrl']!=null)
			YkeInputText.setValue(obj.ykeControls['newPasswordCtrl'].getValue());
			
		obj.ykeControls.newPasswordCtrl = YkeInputText;
		return obj;
	}
	properties[2].saveFunc =  function (dataPopup,dataObj)
	{
		dataPopup['newPassword'] = dataObj.ykeControls['newPasswordCtrl'].getValue();
		return dataPopup;
	}
	
	popup = new YkeUI.YkePopup.EditPopup('editpopup',null,properties,"Changemement de mot de passe <br /> Veuillez saisir votre identifiant pour changer votre mot de passe",null,null);
	popup.UpdateEvent = SaveNewPassWord;
	popup.Render();
	
	function SaveNewPassWord(inputvalues, dataObject)
	{
		var mesError = new Array();
		for(var j=0;j<3;j++) properties[j].hightLight=false;
		
		if( YkeUI.YkeString.Trim(inputvalues["Nom"])!=-1 )
			inputvalues["Nom"] = YkeUI.YkeString.Trim(inputvalues["Nom"]);
		if(inputvalues["Nom"]=="")
		{
			mesError[mesError.length] = "Nom";
			properties[0].hightLight=true;
		}
		
		if( YkeUI.YkeString.Trim(inputvalues["oldPassword"])!=-1 )
			inputvalues["oldPassword"] = YkeUI.YkeString.Trim(inputvalues["oldPassword"]);
		if(inputvalues["oldPassword"]=="")
		{
			mesError[mesError.length] = "ancien mot de passe";
			properties[1].hightLight=true;
		}
		
		if( YkeUI.YkeString.Trim(inputvalues["newPassword"])!=-1 )
			inputvalues["newPassword"] = YkeUI.YkeString.Trim(inputvalues["newPassword"]);
		if(inputvalues["newPassword"]=="")
		{
			mesError[mesError.length] = "nouveau mot de passe";
			properties[2].hightLight=true;
		}
						
					
		if(mesError.length>0)
		{
			if(mesError.length==1)
				PopupAlert.Render("Veuillez saisir le champ suivant : "+mesError.toString()+".");
			else
				PopupAlert.Render("Veuillez saisir les champs suivants : "+mesError.toString()+".");
			popup.UpdateRender();
		}				
		else
		{
			var ChangeUserPasswordObj  = {login: inputvalues['Nom'],
										oldPassword : inputvalues['oldPassword'],
										newPassword : inputvalues['newPassword']
										};
			//--- print a loading popup ---
			popuploading = new YkeUI.YkePopup.LoadingPopup('loadingPopup',"Opération en cours...");
			popuploading.Render();
	
			/* launch into the timer ! */
			timer = new Yke.YkeTimer.Timer(20);
			timer.endTimerEvent = stopWebServLogin;
			timer.go();
			/*-------------------------*/
			
			function ChangeUserPasswordCallBack(e, success, exception, info)
			{
				timer.Stop();
				if(success==false)
					popuploading.Print("Problème lors de l'enregistrement. " + e.UIMessage);
				else
				{
					if(e.Success)
					{
						popuploading.Close();
						popup.Close();
						PopupAlert.Render(e.UIMessage);
						
					}
					else
						popuploading.Print(e.UIMessage);
				}
			}

			var proxy = new YkeJsoap(WEBSERVICE_URL, 'ChangeUserPassword', ChangeUserPasswordObj , ChangeUserPasswordCallBack);
			proxy.go();	
		}
	}
}


function forgetPassword()
{
	
	var properties = new Array();		
	properties[0] =  new YkeUI.YkePopup.Field();		
	properties[0].name = "E-mail";	
	properties[0].sourceName = "email";
	properties[0].controlType = "fonction";
	properties[0].controlFunc =  function (html,obj,hightLight,disable)
	{
		var YkeInputText = new Yke.UI.InputText();
		YkeInputText._size = 70;
		YkeInputText._maxLength = 20;
		YkeInputText.render(html);
		if(obj.ykeControls==null)
			obj.ykeControls = new Array();
			
		if(obj.ykeControls['NomCtrl']!=null)
			YkeInputText.setValue(obj.ykeControls['NomCtrl'].getValue());
			
		obj.ykeControls.NomCtrl = YkeInputText;
		return obj;
	}
	properties[0].saveFunc =  function (dataPopup,dataObj)
	{
		dataPopup['email'] = dataObj.ykeControls['NomCtrl'].getValue();
		return dataPopup;
	}
	
	
	
	popup = new YkeUI.YkePopup.EditPopup('editpopup',null,properties,"Mot de passe oublier",null,null);
	popup.UpdateEvent = SaveNewPassWord;
	popup.Render();
	
	function GetNewPassWord(inputvalues, dataObject)
	{
		var mesError = new Array();
		for(var j=0;j<3;j++) properties[j].hightLight=false;
		
		if( YkeUI.YkeString.Trim(inputvalues["email"])!=-1 )
			inputvalues["email"] = YkeUI.YkeString.Trim(inputvalues["email"]);
		if(inputvalues["email"]=="")
		{
			mesError[mesError.length] = "email";
			properties[0].hightLight=true;
		}
						
					
		if(mesError.length>0)
		{
			if(mesError.length==1)
				PopupAlert.Render("Veuillez saisir le champ suivant : "+mesError.toString()+".");
			else
				PopupAlert.Render("Veuillez saisir les champs suivants : "+mesError.toString()+".");
			popup.UpdateRender();
		}				
		else
		{
			var forgetPassword  = {email: inputvalues['email']};
			//--- print a loading popup ---
			popuploading = new YkeUI.YkePopup.LoadingPopup('loadingPopup',"Opération en cours...");
			popuploading.Render();
	
			/* launch into the timer ! */
			timer = new Yke.YkeTimer.Timer(20);
			timer.endTimerEvent = stopWebServLogin;
			timer.go();
			/*-------------------------*/
			
			function ChangeUserPasswordCallBack(e, success, exception, info)
			{
				timer.Stop();
				if(success==false)
					popuploading.Print("Problème lors de l'envoie de mail. " + e.UIMessage);
				else
				{
					if(e.Success)
					{
						popuploading.Close();
						popup.Close();
						PopupAlert.Render(e.UIMessage);
						
					}
					else
						popuploading.Print(e.UIMessage);
				}
			}

			var proxy = new YkeJsoap(WEBSERVICE_URL, 'ChangeUserPassword', ChangeUserPasswordObj , ChangeUserPasswordCallBack);
			proxy.go();	
		}
	}
}

function stopWebServLogin()
{
	if(popuploading)
		popuploading.Close();
	if(popup)
		popup.Close();
	PopupAlert.Render("Problème de connexion aux services : délai dépassé");
	
}



