this.logginSuccess = false;
this.userIdValidation = 1;
this.passwordValidation = 1;
this.loginType = 'frontEnd';
this.fieldsHaveLabels = false;
_allowBrowserCheck = false;

function changeFieldLabels(o)
{
	if(o.value == _userIdLabel)
	{
		o.value = '';
	}
	
	
	if(o.value == _passwordLabel)
	{
		if(navigator.userAgent.indexOf('Firefox') >= 0)
		{
			o.value = '';
			o.type = 'password';
		}
		else
		{
			passwordField('password','','passHolder');
			setTimeout("$('password').focus()", 300);
		}
		
	}
}

function autoLog()
{
	//browserCheck();
	autoLogUserId = $('autoLog-userId').value;
	autoLogPassword = $('autoLog-password').value;

	DWREngine._execute(_cfVTS6_AjaxCalls, null, 'login', autoLogUserId, autoLogPassword , 'N','frontEnd',autoLog_Return);
}

function logUser(validateUserOnly,checkBrowser)
{
	/*if(checkBrowser)
	{
		browserCheck();
		$('logFormBox').onsubmit = false;	
	}*/
	
	if($('userId').value != '')
	{
		_userId = $('userId').value;
		_password = $('password').value;
		_checkUserOnly = (validateUserOnly)?'Y':'N';
		
		$('loginBoxMessage').className = '';
		$('loginBoxMessage').innerHTML = '';
		
		DWREngine._execute(_cfVTS6_AjaxCalls, null, 'login', _userId, _password , _checkUserOnly,this.loginType,logUser_Return);		
	}
	else
	{
		if(this.fieldsHaveLabels)
		{
			$('userId').value = _userIdLabel;
		}
	}
}

function autoLog_Return(result) 
{
	response = convertKeyStructure(result);
	window.location = '/' + siteLang + response.redirect;
}


function logUser_Return(result)
{
	
	response = convertKeyStructure(result);
	
	if(response.useronly == 'true')
	{
		if(response.userlogged == 'false')
		{
			$('loginBoxMessage').className = 'warn';
			$('loginBoxMessage').innerHTML = userIdError;
			this.userIdValidation = 1;
		}		
		else
		{
			$('loginBoxMessage').className = '';
			$('loginBoxMessage').innerHTML = '';
			this.userIdValidation = 0;
		}
	}
	else
	{
		if(response.loginsuccess == 'true')
		{
			if(response.logintype.toUpperCase() == 'FRONTEND')
			{
				window.location = '/' + _lang  + response.redirect;
			}
			else
			{
				window.location =  response.redirect;		
			}
			
		}
		else
		{
			reasonJoin = response.loginfailedreason.join('~');
			reason = reasonJoin.split('~');
			$('loginBoxMessage').innerHTML = '';
			
			for(y=0; y < reason.length; y++)
			{
				$('loginBoxMessage').className = 'warn';
				$('loginBoxMessage').innerHTML += reason[y]+'<br>';
			}	
		}	
	}
	
	logButtonBehavior(checkSubmitButtonAvailability());
}

function checkLoginStatus(o)
{
	if(o.value.length >= 5)
	{
		this.passwordValidation = 0;
	}
	else
	{
		this.passwordValidation = 1;
	}
	logButtonBehavior(checkSubmitButtonAvailability());
}


function browserCheck()
{
	if(this.allowBrowserCheck && $('ManagementPop'))
	{
		$('ManagementPop').src = siteUrl + '/bhawk/browserCheck.cfm';
	}
}

function checkSubmitButtonAvailability()
{
	return (this.userIdValidation + this.passwordValidation == 0)?false:true;
}


function validatePassword(o)
{
	if(o.value != '')
	{
		if(o.value.length >= 5)
		{
			$('loginBoxMessage').className = '';
			$('loginBoxMessage').innerHTML = '';
			this.passwordValidation = 0;
		}
		else
		{
			$('loginBoxMessage').className = 'warn';
			$('loginBoxMessage').innerHTML = passwordLength;
			this.passwordValidation = 1;
		}
		logButtonBehavior(checkSubmitButtonAvailability());
	}
	else
	{
		if(this.fieldsHaveLabels)
		{
			
			if(navigator.userAgent.indexOf('Firefox') >= 0)
			{
				o.type = 'text';
				o.value = _passwordLabel; 
			}
			else
			{
				passwordField('text',_passwordLabel,'passHolder');
			}
		}
		this.passwordValidation = 1;
		logButtonBehavior(checkSubmitButtonAvailability());
	}
	
}

function passwordField(t,val,objHolder)
{
	pass = document.createElement('INPUT');
	pass.id = 'password';
	pass.name = 'password';
	pass.type = t;
	pass.value = val;
	pass.className = 'text';
	
	pass.onclick = function ()
	{
		changeFieldLabels(this);
	};
	
	pass.onblur = function ()
	{
		validatePassword(this);
	};
	
	pass.onfocus = function ()
	{
		changeFieldLabels(this);
	};
	
	$(objHolder).innerHTML = '';
	$(objHolder).appendChild(pass);
}

function logButtonBehavior(boo)
{
	$('log').disabled = boo;
}

function showForgotPassword() 
{
	//alert('maintenant dans showForgotPassword');
	this.passwordValidation = 0;
	$('password').style.display = "none";
	$('pass_label').style.display = "none";
	
	if(_loginBoxType == 0)
	{
		$('loginText').innerHTML = _recoverPasswordH2;
		$('log').innerHTML = _recoverText;
	}
	else if(_loginBoxType != 1) 
	{
		alert('_loginBoxpe != 1');
		$('pass_label').style.display = "none";
		$('log').innerHTML = _recoverText;
	}
	else if(_loginBoxType == 1) 
	{
		$('loginBox').className = "password";
		//alert(_recoverText);
		setTimeout('applyBoxChanges(false)',10);
	}
	
	$('forgotPass_link').innerHTML = showLoginText;
	$('forgotPass_link').onclick = function() 
	{
		backToLogin();
	}
	
	$('log').onclick = function() 
	{
		recoverPassword();
		return false;
	}
}

function showForgotPasswordCWL(backLoginBoxClass, backLoginButtonText) 
{
	//alert('maintenant dans showForgotPassword');
	this.passwordValidation = 0;
	$('password').style.display = "none";
	$('pass_label').style.display = "none";
	
	if(_loginBoxType == 0)
	{
		$('loginText').innerHTML = _recoverPasswordH2;
		$('log').innerHTML = _recoverText;
	}
	else if(_loginBoxType != 1) 
	{
		alert('_loginBoxpe != 1');
		$('pass_label').style.display = "none";
		$('log').innerHTML = _recoverText;
	}
	else if(_loginBoxType == 1) 
	{
		$('loginBox').className = "password";
		$('log').innerHTML = _recoverText;
		setTimeout('applyBoxChanges(false)',10);
	}
	
	$('forgotPass_link').innerHTML = showLoginText;
	$('forgotPass_link').onclick = function() 
	{
		backToLoginCWL(backLoginBoxClass, backLoginButtonText);
	}
	
	$('log').onclick = function() 
	{
		recoverPassword();
		return false;
	}
}

//This function is a fix for IE6. The background images would disapear if we didn't put a timeout for the following JS changes.
function applyBoxChanges(goback)
{
	if(!goback)
	{
		$('loginText').innerHTML = passRecoveryText;
		$('log').innerHTML = _recoverText;
		$('reg').style.display = "none";
		$('loginText').className = "password";
	}
	else
	{
		$('loginText').innerHTML = _loginText;
		$('log').innerHTML = _loginText;
		$('reg').style.display = "";
		$('loginText').className = "login";
	}
	
}

function backToLogin()
{
	$('password').style.display = "";
	$('pass_label').style.display = "";
	if(_loginBoxType != 1) 
	{
		$('log').innerHTML = _loginText;
	}
	$('forgotPass_link').innerHTML = forgotPasswordText;
	$('forgotPass_link').onclick = function() 
	{
		showForgotPassword();
	}
	
	if(_loginBoxType == 0)
	{
		$('loginText').innerHTML = _loginText;
	}
	else if(_loginBoxType == 1)
	{
		//$('loginText').className = "login";
		setTimeout('applyBoxChanges(true)',10);
	}
	
	sendUserId = $('userId').value;
	
	$('log').onclick = function() 
	{
		logUser(false);
	}
	$('loginBoxMessage').innerHTML = '';
	$('loginBoxMessage').className = '';
}

function backToLoginCWL(loginBoxClass, loginButtonText)
{
	$('')
	$('password').style.display = "";
	$('pass_label').style.display = "";
	$('loginBox').className = loginBoxClass;
	$('log').innerHTML = loginButtonText;
	if(_loginBoxType != 1) 
	{
		$('log').innerHTML = _loginText;
	}
	$('forgotPass_link').innerHTML = forgotPasswordText;
	$('forgotPass_link').onclick = function() 
	{
		showForgotPasswordCWL(loginBoxClass, loginButtonText);
	}
	
	if(_loginBoxType == 0)
	{
		$('loginText').innerHTML = _loginText;
	}
	else if(_loginBoxType == 1)
	{
		//$('loginText').className = "login";
		$('loginBox').className = loginBoxClass;
		setTimeout('applyBoxChanges(true)',10);
	}
	
	sendUserId = $('userId').value;
	
	$('log').onclick = function() 
	{
		logUser(false);
	}
	$('loginBoxMessage').innerHTML = '';
	$('loginBoxMessage').className = '';
}


function recoverPassword() 
{
	sendUserId = $('userId').value;
	
	if(sendUserId == "") 
	{
		$('loginBoxMessage').className = "warn";
		$('loginBoxMessage').innerHTML = "Email is empty";
		$('log').onclick = function() 
		{
			recoverPassword();
			return false;
		}
	}
	else if (!checkEmail(sendUserId))
	{
		$('loginBoxMessage').className = "warn";
		$('loginBoxMessage').innerHTML = "Email is invalid";
		$('log').onclick = function() 
		{
			recoverPassword();
			return false;
		}
	}
	else
	{
		//alert('Will now send the forgot password email!');
		//DWREngine._execute(_cfVTS6_AjaxCalls, null, 'sendEmail', '0', _lang, passwordEmail, sendUserId, '', '', recoverPassword_Return);
		DWREngine._execute(_cfVTS6_AjaxCalls, null, 'forgotPassword', sendUserId, recoverPassword_Return);
	}

	
}

function recoverPassword_Return(result)
{
	if (result.toUpperCase() == 'SUCCESS')
	{
		$('loginBoxMessage').className = "pass";
		$('loginBoxMessage').innerHTML = _forgotPasswordMessage;
	}
	else
	{
		$('loginBoxMessage').className = "fail";
		$('loginBoxMessage').innerHTML = result;
	}
}



/*function convertKeyStructure(o)
{
	struct = new Object();
	for(x=0;x < o.length; x++)
	{
		struct[o[x].KEY.toLowerCase()] = o[x].VALUE;
	}	
	
	return struct;
}*/