/**
 * Not authenticated menu bar components
 * 
 * @author Pierre HUBERT
 */

ComunicWeb.components.menuBar.notAuthenticated = {
	/**
	 * Add not-authenticated user specific elements
	 * 
	 * @param {HTMLElement} menuHeader The container element of the Menubar
	 */
	addElements: function(menuHeader){

		//Create main menu
		var menuElem = createElem("div", menuHeader);
		menuElem.className = "navbar navbar-static-top";

		//Create nav element
		var navElem = createElem("nav", menuElem);
		navElem.className = "navbar navbar-static-top";

		//Create conatiner
		var container = createElem("div", navElem);
		container.className = "container";

		//Create navbar header
		var navbarHeader = createElem("div", container);
		navbarHeader.className = "navbar-header";

		//Create site name link
		var siteNameElem = createElem("a", navbarHeader);
		siteNameElem.className = "navbar-brand";
		siteNameElem.innerText = "Comunic";
		siteNameElem.onclick = (function(){
			ComunicWeb.common.page.openPage("home");
		});

		//Create navbar collapsed button
		var navbarCollapsedButton = createElem("button", navbarHeader);
		navbarCollapsedButton.type = "button";
		navbarCollapsedButton.className = "navbar-toggle collapsed";
		navbarCollapsedButton.setAttribute("data-toggle", "collapse");
		navbarCollapsedButton.setAttribute("data-target", "#navbar-collapse");

		//Create navbar icon
		var navbarCollapsIcon = createElem("i", navbarCollapsedButton);
		navbarCollapsIcon.className = "fa fa-bars";


		//Create an auto-collapsed element
		var navbarCollapse = createElem("div", container);
		navbarCollapse.id = "navbar-collapse";
		navbarCollapse.className = "navbar-collapse pull-right collapse";

		//Create login form
		var loginForm = createElem("form", navbarCollapse);
		loginForm.className = "navbar-form navbar-left menubar-loginForm";
		loginForm.setAttribute("role", "login");

		//Add email address formGroup
		var emailFormGroup = createElem("div", loginForm);
		emailFormGroup.className = "form-group";

		//Add email input
		var emailInput = createElem("input", emailFormGroup);
		emailInput.className = "form-control";
		emailInput.placeholder = lang("_menu_bar_login_email");
		emailInput.type = "email";
		emailInput.value = ComunicWeb.components.mailCaching.get();

		//Add password formGroup
		var passwordFormGroup = createElem("div", loginForm);
		passwordFormGroup.className = "form-group";

		//Add password input
		var passwordInput = createElem("input", passwordFormGroup);
		passwordInput.className = "form-control";
		passwordInput.placeholder = lang("_menu_bar_login_passwd");
		passwordInput.type = "password";

		//Add submit button formGroup
		var submitFromGroup = createElem("div", loginForm);
		submitFromGroup.className = "form-group";

		//Add submit input
		var submitInput = createElem("input", submitFromGroup);
		submitInput.className = "form-control";
		submitInput.value = lang("_menu_bar_login_btn");
		submitInput.type = "submit";

		//Add submit form behaviour
		loginForm.onsubmit = function(){
			//Enable screen overlay (use .remove() to remove)
			var screenOverlay = ComunicWeb.common.page.showTransparentWaitSplashScreen();

			//Try to login user; in case of failure redirect to login page
			//What to do once user is logged in (or not)
			var afterTryLogin = function(loginResult){

				//First, remove overlay
				screenOverlay.remove();

				//Check if login failed
				if(!loginResult){
					
					//Redirect to login page
					ComunicWeb.common.page.openPage("login", {
						loginFailedMessage: true,
						emailInput: emailInput.value,
					});

					//Return false
					return false;
			}
				
				//Open home page
				ComunicWeb.common.page.openPage("home");
			};

			//Try to login user
			ComunicWeb.user.userLogin.loginUser(emailInput.value, passwordInput.value, true, afterTryLogin);

			//Block form
			return false;
		}
	}
}