$(document).ready(function(){
	$("#side_menu  .submit").click(function(){
		form = $(this).parent().parent().attr("id");
		fillAndSubmitForm(form);
		return false;
	});
	
	$('#toggleLogin').click(function(){
		
		lang = global.lang;
		var txt = {'master':{'en':'For management console login click here','ar':'انتقل لدخول مديرى المواقع'} ,'gawab':{'en':'Gawab Login','ar':'الدخول الي البريد'}};
		$(this).hasClass('master') ? $(this).html(txt['gawab'][lang]): $(this).html(txt['master'][lang]);
		$(this).toggleClass('master');
		$(this).toggleClass('user');
		$('.login').slideToggle('normal');
	});	
	$('#form4').submit(function(){
		return masterLoginValidate();
	});
});

function masterLoginValidate()
  {
	  if ($('#masterusername').val()=="" )
	  {
		  alert("Please, enter your username ");
		  $('#masterusername').focus();
		  return false ;
	  }

	  if ( $('#masterpassword').val() =="" )
	  {
		  alert("Please, enter your password ");
		  $('#masterpassword').focus();
		  return false;
	  }
  return true;
  }
  
function loginValidate(formId){
	if(formId == 'form4') return ;
	if ($("#username").val() == "" || $("#domain").val() ==""){
		if(global.lang == "en"){
			alert("Invalid email address ".$("#email").val());
		}else{
			alert("ادخل البريد الالكتروني الخاص بك!");
		}
		return false;	
	}
	if(formId == "form1" && $("#password").val() == ""){
		if(global.lang == "en"){
			alert("Password can't be empty");	
		}else{
			alert("كلمه المرور غير موجوده!");
		}
		return false;	
	}	
	return true;
}
function fillAndSubmitForm(formId){
	var userData = "";
	userData = $("#email").val().split('@');
	if (! userData[1]) userData[1]='gawab.com';
	$("#username").val(userData[0]);
	$("#domain").val(userData[1]);
	var validate = loginValidate(formId);
	if (!validate) return false;
	remember = $("#remember");
	rememberconfirm(userData[0], userData[1], remember, global.lang);	
	createCookie("lastloggedin", $("#username").val()+'@'+$("#domain").val(), "gawab.com", 365);
	$("#form1").submit();
}

function signInDiffUser()
{
	$("#account").html("");
	$("#accounts").html("");
	showLoginForm("1");	
	$('#cancel').parent().show();
	$('#cancel').show();
	
}

function checkLoggedInUsers()
{
	var emails = getAuthCookies();
	var lastLoggedInEmail = getLastLoggedInCookie();
	chooseLoginForm(emails, lastLoggedInEmail);
}	

function showLoginForm(id){
	for(i=1 ; i<4 ; i++){
		if( i == id){
			 $("#form"+i).removeClass("hide");
		}else{
			 $("#form"+i).addClass("hide") ;
		 }
	}	
}

function chooseLoginForm(emails, lastLoggedInEmail){
	srch = location.href;
	if ((emails.length == 0) || (srch.indexOf('gawaberr')>0))	//no logged in users cookies
	{
		showLoginForm("1");
		if (lastLoggedInEmail != null)	//no last logged in users cookies
		{
			username = lastLoggedInEmail.split('@')[0]; // lastLoggedInEmail CONTAINS the username?!
			if (username)
				$("#email").val(lastLoggedInEmail);
		}
		else
		{
			$("#email").val("");
		}
	}
	else if (emails.length == 1)	//only one user saved at cookie
	{
		showLoginForm("2");
		$("#account").html(emails[0]);
	}	
	else if (emails.length > 1)		//more than one cookie saved
	{
		showLoginForm("3");
		fillUserOptions(emails, lastLoggedInEmail);
		var lastLoggedInMatch = false;
		if (lastLoggedInEmail != null)
		{
			for (var i = 0; i < emails.length; i++)
			{
				if (emails[i] == lastLoggedInEmail)
				{						
					lastLoggedInMatch = true;
					break;
				} 
			}
		}
		
		if ((lastLoggedInEmail != null) && (lastLoggedInMatch == true))
			$("#email").html(lastLoggedInEmail);
		else
			$("#email").html(emails[0]);
	}		
}

function getAuthCookies() 
{
	var authCookieName = "gwbauth.";
	var cookies = document.cookie.split(';');
	var emails = new Array();
	var count = 0;
	for(var i = 0;i < cookies.length;i++) 
	{
		var c = cookies[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(authCookieName) == 0)
		{ 
			temp = c.split('=');
			emails[count] = temp[0].substring(authCookieName.length, temp[0].length);
			count++;
		}
	}
	return emails;
}
	
function getLastLoggedInCookie()
{
	var cookieName = "lastloggedin";
	var cookies = document.cookie.split(';');

	for(var i = 0; i < cookies.length; i++) 
	{
		var c = cookies[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(cookieName) == 0)
		{
			temp = c.split('=');
			return temp[1];
		}
	}
	return null;
}

function fillUserOptions(emails, lastEmail)
{
	var slctEmail = $("#accounts");
	var options = "";
	var selected = "";
	for (var i = 0; i < emails.length; i++)
	{
		if(lastEmail != null && emails[i] == lastEmail)
				selected = "selected";
				
		options += "<option "+ selected + "value='" + emails[i] + "'>" + emails[i] + "</option>";
	}
	slctEmail.html(options);	
}

function cancelSwitchUser()	//select from existance users
{
	$('#password').val("");
	$('#email').val("");
	checkLoggedInUsers();
}

function createCookie(name, value, domain, days) 
{
	if (days)
	{
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/"+"; domain="+domain;
}


// here what should we do if user checked the remember me?

function rememberconfirm(username, domain, remember, lang)
{
	if(! remember.attr('checked')) return;

	var cookieName  = 'seenRemember_' + username + '@' + domain
	var cookieExist = readCookie(cookieName)
	if (!cookieExist)
	{
		if (global.lang == "ar")
			var rem = confirm ("هل انت واثق انك تريد ان يتم تذكر كلمه المرور الخاصه بك علي هذا الجهاز؟");
		else
			var rem = confirm ("Are you sure you want " + domain + " to remember your password (so you can login to your account without password in the future)? ")
		
		if (rem)
		{
			 var date = new Date();
			 date.setTime(date.getTime()+(24*60*60*1000));
			 var expires = "; expires="+date.toGMTString();
			 document.cookie = cookieName+"=true" + expires + "; domain=gawab.com" +"; path=/";
		}
		else
			 remember.checked = false; 
	}

	return true; 
}

function readCookie(name) 
{
   var nameEQ = name + "=";
   var ca = document.cookie.split(';');
   for(var i=0;i < ca.length;i++) {
	var c = ca[i];
	while (c.charAt(0)==' ') c = c.substring(1,c.length);
	if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
   }
   return null;
}

checkLoggedInUsers();


