function myJavaScript() {
	var self = this;
	var param;
	this.reloginTries = false;

	this.nobody = function() {
		if (!self.reloginTries) {
			if (tplf.getHtmlTemplate && !document.getElementById('login')) {
				document.getElementById('otherPages').innerHTML += tplf.getHtmlTemplate;
			}
			if (document.getElementById('loginForm')) {
				document.getElementById('loginForm').style.display = 'block';
			}
			if (pAuth.get_userforlogin()) { document.getElementById('passport_mail').value = pAuth.get_userforlogin(); }
			if (pAuth.get_rememberme()) { document.getElementById('passport_rememberme').checked = true; }
		}
		else {
			self.reloginTries = false;
			try {
				tplf.login();
			}
			catch(e) { return false; }
		}
	}
	this.invalidLogin = function() {
		document.body.style.cursor = '';
		if (document.getElementById('passport_mail') && document.getElementById('passport_password')) {
			document.getElementById('passport_mail').disabled = false;
			document.getElementById('passport_password').disabled = false;
			document.getElementById('passport_submit').disabled = false;
			document.getElementById('passport_rememberme').disabled = false;
			document.getElementById('wrongPass').style.display = 'block';
		}
		else {
			self.onInit();
		}
	}
	this.logout = function() {
		window.location.href = 'index.php';
	}
	this.freeMail = function() {
		document.getElementById('passport_mail').disabled = false;
		document.getElementById('mailExists').innerHTML = 'This e-mail is free';
	}
	this.mailExists = function() {
		document.getElementById('passport_mail').disabled = false;
		document.getElementById('mailExists').innerHTML = 'This e-mail already exists';
	}
	this.freeUser = function() {
		document.getElementById('passport_username').disabled = false;
		document.getElementById('usernameExists').innerHTML = 'This username is free';
	}
	this.userExists = function() {
		document.getElementById('passport_username').disabled = false;
		document.getElementById('usernameExists').innerHTML = 'This username already exists';
	}
	this.checkMail = function(param) {
		document.getElementById('passport_mail').disabled = true;
		pAuth.checkMail(param);
	}
	this.checkUsername = function(param) {
		document.getElementById('passport_username').disabled = true;
		pAuth.checkUser(param);
	}
	this.changeCapture = function() {
		pAuth.getCapture('capture',1);
	}
	this.wrongCode = function() {
		document.getElementById('captureCheck').innerHTML = 'This code is wrong !';
	}
	this.rightCode = function() {
		document.getElementById('captureCheck').innerHTML = 'This code is right !';
	}
	this.invalidMail = function() {
		document.getElementById('passport_mail').disabled = false;
		document.getElementById('mailExists').innerHTML = 'This e-mail is invalid';
	}
	this.invalidUser = function() {
		document.getElementById('passport_username').disabled = false;
		document.getElementById('usernameExists').innerHTML = 'This username is invalid';
	}
	this.invalidPassword = function() {
		document.getElementById('passport_password').disabled = false;
		document.getElementById('passwordText').innerHTML = 'This password is invalid';
	}
	this.onInit = function() {
		if (tplf.getUrlParam('passport') && tplf.getUrlParam('passport') == 'register') { this.getRegisterPage(); return true; }
		if(!pAuth.is_logged()) {
			if (!document.getElementById('login')) {
				tplf.getHtml('interface/templates/login.html',true,'myjs.nobody();');
			}
			else { self.nobody(); }
		}
		else {
			if (!self.reloginTries) {
				document.getElementById('otherPages').style.display = 'none';
				pAuth.tryCookies();
				iScript.init();
			}
			else { self.reloginTries = false; }
		}
	}
	this.processRegister = function() {
		var error = false;
		if (!document.getElementById('passport_agree').checked) {
			error = true;
		}
		if (document.getElementById('passport_password').value != document.getElementById('passport_password2').value || !document.getElementById('passport_password').value) {
			if (!document.getElementById('passport_password').value) {
				document.getElementById('passwordText').innerHTML = 'Please type a password.';
			}
			else { document.getElementById('passwordText').innerHTML = 'The password 1 and 2 are different.'; }
			error = true;
		}
		else { document.getElementById('passwordText').innerHTML = ''; }
		if (!document.getElementById('passport_mail').value) {
			error = true;
			document.getElementById('mailExists').innerHTML = 'Please type an email address.';
		}
		else { document.getElementById('mailExists').innerHTML = ''; }
		if (!document.getElementById('passport_username').value) {
			error = true;
			document.getElementById('usernameExists').innerHTML = 'Please type username.';
		}
		else { document.getElementById('usernameExists').innerHTML = ''; }
		if (!error) {
			var data = '';
			data += '<firstname>'+document.getElementById('passport_firstname').value+'</firstname>';
			data += '<lastname>'+document.getElementById('passport_lastname').value+'</lastname>';
			pAuth.register(document.getElementById('passport_mail').value,document.getElementById('passport_username').value,document.getElementById('passport_password').value,document.getElementById('captureText').value,data);
		}
	}
	this.login = function() {
		document.body.style.cursor = '';
		self.onInit();
	}
	this.onRegister = function() {
		document.body.style.cursor = '';
		self.onInit();
	}
	this.processLogin = function() {
		if (document.getElementById('passport_rememberme').checked) { var r = 1; }
		else { var r = 0; }
		var res = pAuth.login(document.getElementById('passport_mail').value,document.getElementById('passport_password').value,r);
		if (res) {
			document.body.style.cursor = 'wait';
			document.getElementById('passport_mail').disabled = true;
			document.getElementById('passport_password').disabled = true;
			document.getElementById('passport_submit').disabled = true;
			document.getElementById('passport_rememberme').disabled = true;
			document.getElementById('wrongPass').style.display = 'none';
		}
	}
	this.relogin = function() {
		self.reloginTries = true;
		pAuth.whoami();
	}
	this.getRegisterPage = function(param) {
		if (param != true) {
			document.body.style.cursor = 'wait';
			if (document.getElementById('login')) {
				document.getElementById('login').parentNode.removeChild(document.getElementById('login'));
			}
			tplf.getHtml('interface/templates/register.html',true,'myjs.getRegisterPage(true);');
			return true;
		}
		if (document.getElementById('otherPages') && tplf.getHtmlTemplate) {
			document.body.style.cursor = '';
			document.getElementById('otherPages').innerHTML = tplf.getHtmlTemplate;
			document.getElementById('login').style.display = 'block';
			self.changeCapture();
		}
	}
	this.getLostPasswordPage = function(param) {
		if (param != true) {
			document.body.style.cursor = 'wait';
			if (document.getElementById('login')) {
				document.getElementById('login').parentNode.removeChild(document.getElementById('login'));
			}
			tplf.getHtml('interface/templates/lost-password.html',true,'myjs.getLostPasswordPage(true);');
			return true;
		}
		if (document.getElementById('otherPages') && tplf.getHtmlTemplate) {
			document.body.style.cursor = '';
			document.getElementById('otherPages').innerHTML = tplf.getHtmlTemplate;
			document.getElementById('login').style.display = 'block';
			self.changeCapture();
		}
	}
	this.sendLostPassword = function(param) {
		if (!param) {
			if (!document.getElementById('passport_mail')) { self.getLoginPage(); }
			var pMail = document.getElementById('passport_mail').value;
			if (!pMail || !pAuth.is_validMail(pMail)) {
				document.getElementById('passwordError').style.display = 'block';
			}
			else {
				document.body.style.cursor = 'wait';
				document.getElementById('passwordError').style.display = 'none';
				document.getElementById('passport_mail_object').style.display = 'none';
				document.getElementById('passport_mail_name').style.display = 'none';
				document.getElementById('passport_mail_text').style.display = 'none';
				document.getElementById('passport_submit').style.display = 'none';
				pAuth.processForbiddenPassword(pMail,"myjs.sendLostPassword(true);");
			}
		}
		else {
			document.getElementById('passwordSuccess').style.display = 'block';
			document.body.style.cursor = '';
		}
	}
	this.getLoginPage = function(param) {
		if (param != true) {
			document.body.style.cursor = 'wait';
			if (document.getElementById('login')) {
				document.getElementById('login').parentNode.removeChild(document.getElementById('login'));
			}
			tplf.getHtml('interface/templates/login.html',true,'myjs.getLoginPage(true);');
			return true;
		}
		if (document.getElementById('otherPages') && tplf.getHtmlTemplate) {
			document.body.style.cursor = '';
			document.getElementById('otherPages').innerHTML = tplf.getHtmlTemplate;
			document.getElementById('login').style.display = 'block';
			self.onInit();
		}
	}
	this.onCookiesInfo = function() {
	}
	this.onAuthKey = function() {
	}
	this.onChangeMail = function() {
		if (typeof(iSet) == 'object') {
			iSet.getNewMail();
		}
		else if (typeof(iProfile) == 'object') {
			iProfile.updateVariable('mail',pAuth.get_mail());
		}
	}
	this.onChangeUser = function() {
		if (typeof(iSet) == 'object') {
			iSet.getNewUser();
		}
		else if (typeof(iProfile) == 'object') {
			iProfile.updateVariable('nickname',pAuth.get_username());
		}
	}
}
var myjs = new myJavaScript;