function unsetRegisterErrors() {
	document.getElementById('register_errors').innerHTML = '';
	document.getElementById('name').parentNode.className = 't2row';
	document.getElementById('name').parentNode.title = null;
	document.getElementById('surname').parentNode.className = 't2row';
	document.getElementById('surname').parentNode.title = null;
	document.getElementById('email').parentNode.className = 't2row';
	document.getElementById('email').parentNode.title = null;
	document.getElementById('company').parentNode.className = 't2row';
	document.getElementById('company').parentNode.title = null;
	document.getElementById('vatin').parentNode.className = 't2row';
	document.getElementById('vatin').parentNode.title = null;
	document.getElementById('password').parentNode.className = 't2row';
	document.getElementById('password').parentNode.title = null;
	document.getElementById('confirm').parentNode.className = 't2row';
	document.getElementById('confirm').parentNode.title = null;
}

function unsetResetErrors() {
	document.getElementById('reset_errors').innerHTML = '';
	document.getElementById('reset').parentNode.className = 't2row';
	document.getElementById('reset').parentNode.title = null;
}

function clearLogin() {
	document.getElementById('user').value = '';
	document.getElementById('pass').value = '';
}

function clearRegister() {
	document.getElementById('name').value = '';
	document.getElementById('surname').value = '';
	document.getElementById('email').value = '';
	document.getElementById('company').value = '';
	document.getElementById('vatin').value = '';
	document.getElementById('password').value = '';
	document.getElementById('confirm').value = '';
}

function clearReset() {
	document.getElementById('reset').value = '';
}

function doLogin() {
	var credentials = {
		'email': document.getElementById('user').value,
		'password': document.getElementById('pass').value
	};
	var response = Core.sendRequest('action.php?login', credentials);
	if(response.ok) document.location.reload();
	else if(response.error == 'invalid_credentials') {
		document.getElementById('login_errors').innerHTML = 'Credenziali non valide!';
	} else alert('Errore sconosciuto!');
}

function doLogout() {
	var response = Core.sendRequest('action.php?logout');
	if(response.ok) document.location.reload();
	else alert('Errore sconosciuto!');
}

function doRegister() {
	unsetRegisterErrors();
	var form = {
		'name': document.getElementById('name').value,
		'surname': document.getElementById('surname').value,
		'email': document.getElementById('email').value,
		'company': document.getElementById('company').value,
		'vatin': document.getElementById('vatin').value,
		'password': document.getElementById('password').value,
		'confirm': document.getElementById('confirm').value
	};
	var response = Core.sendRequest('action.php?register', form);
	if(response.ok) {
		document.getElementById('register_errors').innerHTML = 'Registrazione completata con successo! Il vostro account sar&agrave; abilitato entro 24 ore.';
		document.getElementById('register_errors').style.color = 'green';
		clearRegister();
	} else if(response.error == 'internal_error') {
		document.getElementById('register_errors').innerHTML = 'Registrazione fallita a causa di un problema interno.';
		clearRegister();
	} else if(typeof response.error == 'string') alert('Errore sconosciuto!');
	else {
		for(var id in response.error) {
			document.getElementById(id).parentNode.className = 't2row error';
			document.getElementById(id).parentNode.title = response.error[id];
		}
		document.getElementById('register_errors').innerHTML = 'Sono stati rilevati degli errori!';
	}
}

function doReset() {
	unsetResetErrors();
	var email = {
		'email': document.getElementById('reset').value
	};
	var response = Core.sendRequest('action.php?reset', email);
	if(response.ok) {
		document.getElementById('reset_errors').innerHTML = '&Egrave; stata inviato un messaggio e-mail all\'indirizzo di registrazione contenente le istruzioni per il ripristino della password.';
		document.getElementById('reset_errors').style.color = 'green';
		clearReset();
	} else if(response.error == 'not_registered') {
		document.getElementById('reset_errors').innerHTML = 'L\'indirizzo e-mail specificato non risulta registrato!';
	} else if(response.error == 'internal_error') {
		document.getElementById('reset_errors').innerHTML = 'Si &egrave; verificato un problema interno.';
	} else if(typeof response.error == 'string') alert('Errore sconosciuto!');
	else {
		for(var id in response.error) {
			if(id != 'email') continue;
			document.getElementById('reset').parentNode.className = 't2row error';
			document.getElementById('reset').parentNode.title = response.error[id];
		}
		document.getElementById('reset_errors').innerHTML = 'Sono stati rilevati degli errori!';
	}
}

function toggleBox(box) {
	switch(box) {
		case 'register':
			document.getElementById('login_box').style.height = '0';
			document.getElementById('register_box').style.height = null;
			document.getElementById('reset_box').style.height = '0';
			break;
		case 'reset':
			document.getElementById('login_box').style.height = '0';
			document.getElementById('register_box').style.height = '0';
			document.getElementById('reset_box').style.height = null;
			break;
		case 'login':
		default:
			document.getElementById('login_box').style.height = null;
			document.getElementById('register_box').style.height = '0';
			document.getElementById('reset_box').style.height = '0';
			break;
	}
}

function clearNew(event) {
	var newCatalog = event.target.previousElementSibling;
	if(newCatalog !== null) newCatalog.parentNode.removeChild(newCatalog);
}

function goToLogin() {
	Showroom.select(0);
	toggleBox('login');
}

