/************************************************************************************************
*	Programmeur :		Daniel Rioux											*
*																		*
*	Date de céation :		21 Décembre 2008										*
*																		*
*	Description :		Script gérant les accès au système de l'application.					*
************************************************************************************************/
//netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserWrite"); 
//window.toolbar.visible=!window.toolbar.visible;
document.onkeydown = doNotF5;

var NavigatorType;

var Firstname;
var Lastname;

//Déterminer le type de navigateur que l'utiilisateur utilise
function getUserAgent()
{
	var browser = navigator.userAgent;

	if (browser.match(/MSIE/))
	{
		NavigatorType = "MSIE";
	}
	else if (browser.match(/Opera/))
	{
		NavigatorType = "OPERA";
	}
	else
	{
		NavigatorType = "Mozilla";
	}
	
}

//Déterminer si une session est démarrée sur le serveur
function getSession()
{
	var cHttp = new clsAJAX();
	var ServerResult;
	
	ServerResult = cHttp.Get("scripts/php/sessions.php","session_started","true",false);
	
	//Si oui, on charge la page des sommaires
	if (ServerResult == "true")
	{
		loadPage("welcome","session_name");
	}
	//Sinon, on charge la page de connexion
	else
	{
		loadMenu("public","Left");
		loadPage("welcome");
	}
}

//En cas d'un rafraichissement de la page
function reloadSession()
{
	var Logon;
	var cHttp = new clsAJAX();
	var ServerResult;
	var Page;
	
	
	ServerResult = cHttp.Get("scripts/php/sessions.php","session_started","true",false);
	
	
	if (ServerResult == "true")
	{
		getDBCredentials();
		
		ServerResult = cHttp.Get("scripts/php/sessions.php","session_current_page",document.cookie,false);
		Page = ServerResult;
		ServerResult = cHttp.Get("scripts/php/sessions.php","hidden_value",document.cookie,false);
		loadMenu("public","Left");
		Logon = document.getElementById("logon");
		Logon.innerHTML = null;
		Logon.innerHTML = '<a onclick="javascript: logoff();">D&eacute;connexion</a>';
		loadMenu("private","Right");
		loadPage(Page,ServerResult);
		//showTabs("show");
		//selectTab(ServerResult);
	}
	else
	{
		ServerResult = cHttp.Get("scripts/php/sessions.php","session_current_page",document.cookie,false);
		Page = ServerResult;
		ServerResult = cHttp.Get("scripts/php/sessions.php","hidden_value",document.cookie,false);
		//alert (ServerResult);
		loadMenu("public","Left");
		loadPage(Page,ServerResult);
	}
}

function destroySession()
{
	//alert(document.cookie);
	var cHttp = new clsAJAX();
	var ServerResult;
	
	cHttp.Post ("scripts/php/sessions.php","session_destroy",document.cookie,false);
}

function getDBCredentials()
{
	var cHttp = new clsAJAX();
	var ServerResult;
	
	ServerResult = cHttp.Get("scripts/php/sessions.php","session_name",document.cookie,false);
		
	Auth = eval ('(' + ServerResult + ')');
	//user = Auth.name;
	//passwd = Auth.passwd;
}

//Authentification de l'utilisateur sur le serveur
function authenticate(AuthForm)
{
	//var cApp = new clsStartApp();
	var Logon = document.getElementById("logon");
	var DivName = document.getElementById("divName");
	var cHttp = new clsAJAX();
	var ServerResult;
	var AuthVarsName = new Array();
	var AuthCombination = new Array();
	var TblPrivateMenu;
	var Auth;
	
	AuthVarsName[0] = "Username";
	AuthVarsName[1] = "Password";
	AuthVarsName[2] = "Session";
	
	AuthCombination[0] = document.forms[AuthForm].elements.Username.value;
	AuthCombination[1] = document.forms[AuthForm].elements.Password.value;
	AuthCombination[2] = document.cookie;
	
	ServerResult = cHttp.Post("scripts/php/auth.php",AuthVarsName,AuthCombination,false);
	
	//Si le couple utilisateur et mor de passe est bon
	if (ServerResult == "true")
	{
		//On récupère le couple utilisateur et mot de passe qui ont été encodé et sérialisé
		//getDBCredentials();
		
		loadMenu("private","Right");
		
		ServerResult = cHttp.Get("scripts/php/sessions.php","session_person_name",document.cookie,false);
		
		Auth = eval( '(' + ServerResult + ')');
		
		Firstname = Auth.FirstName;
		Lastname = Auth.LastName;
		
		DivName.innerHTML = null;
		DivName.innerHTML = '<span style="font-size: 16px; color: #666666; font-weight: bold;">' + Auth.FirstName + ' ' + Auth.LastName + '</span>';
		
		Logon.innerHTML = null;
		Logon.innerHTML = '<a onclick="javascript: logoff();">D&eacute;connexion</a>';
		loadPage("secure_welcome");
		
		if ((Auth.is_admin))
		{
			TblPrivateMenu = document.getElementById("tblPrivateMenu");
			
			ServerResult = cHttp.Get("scripts/php/ajax.php","admin_panel",Auth.is_admin,false);
			
			if ((NavigatorType == 'MSIE') || NavigatorType == 'OPERA')
			{
				TblPrivateMenu.childNodes[0].childNodes[0].childNodes[0].innerHTML += ServerResult;
			}
			else
			{
				TblPrivateMenu.childNodes[1].childNodes[1].childNodes[1].innerHTML += ServerResult;
			}
			
			//alert (ServerResult);
		}
	}
	//Sinon, un affiche le message d'erreur
	else
	{
		showBadLogin(MSG_SQL_ACCESS_DENIED);
	}
}

//Fermeture de session
function logoff()
{
	var UserId = document.getElementById("UserId");
	var Logon = document.getElementById("smenu7");
	var DivName = document.getElementById("divName");
	var cHttp = new clsAJAX();
	var ServerResult;
	var SessionId = document.cookie; //L'identifiant de session est stocké dans un cookie chez le client
	
	ServerResult = cHttp.Post("scripts/php/sessions.php","session_close",SessionId,false);
	
	if (ServerResult == "true")
	{
		//showTabs("hide");
		DivName.innerHTML = "";
		UserId = null;
		unloadMenu("Right");
		loadMenu("public","Left");
		loadPage("welcome");
	}
	else
	{
		alert(ServerResult);
	}
	
	selectedTab = null;
}

//Désactivation de la touche F5 (refraichissement)
function doNotF5(key)
{
	var keycode;

	if (window.event)
	{
		
		keycode = window.event.keyCode;
		
		if (keycode == "116")
		{
			window.event.keyCode = 0;
			window.event.returnValue = false;
			return false;
		}
		
	}
	else if (key)
	{
		
		keycode = key.which;
		
		if (keycode == "116")
		{
			return false;
		}
		
	}
}

//Supprimer un utilisateur de la base de donnée
function deleteUser(UserId)
{
	var cHttp = new clsAJAX();
	var ServerResult;
	var PostVars = new Array();
	var PostValues = new Array();
	var Confirmation = confirm("Voulez-vous vraiment supprimer cet employé ?");
	
	if (Confirmation)
	{
		PostVars[0] = "action";
		PostVars[1] = "id";
		PostValues[0] = "delete";
		PostValues[1] = UserId;
		
		ServerResult = cHttp.Post("scripts/php/ajax.php",PostVars,PostValues,false);
		
		alert (ServerResult);
		
		loadPage('secure_user_list','edit');
		
		return Confirmation;
	}
	else
	{
		return Confirmation;
	}
	
	
}
//Comparer 2 champs mot de passe
function comparePasswords(PassField,ConfirmField)
{
	if (PassField == ConfirmField)
	{
		return true;
	}
	else
	{
		return false;
	}
}

//Récupération de contenu de page
function getPageContent(Page)
{
	var cHttp = new clsAJAX();
	var ServerResult;
	var PageContent = [user,passwd,Page];
	
	ServerResult = cHttp.Get("scripts/php/body.php","content",PageContent,false);
	
	return ServerResult;
}

//Détermine si un nombre est pair
function isEven(Number)
{
	return (Number%2 == 0)?true:false;
}


