// esempio login tramite JavaScript
// Andrea Giammarchi 21/10/2005

// funzione di trim, elimina spazi a inizio e fine di una stringa
function trim(str) {
	str = str.replace(/&nbsp;$/g, ' ');
	return str.replace(/^\s*|\s*$/g, '');
}

// funzione per gestire il submit
function logInit(user, pass, button) {
	
	// variabile di ritorno, disabilito il submit di default
	var result = false;
	
	// valutazione riassegnazione campi a variabili
	// compatibile da IE4 in su
	var toeval = '';
	if(navigator.userAgent.toLowerCase().indexOf('msie 4') == -1) {
		toeval = 'user = document.getElementById(user);'
		+ 'pass = document.getElementById(pass);'
		+ 'button = document.getElementById(button);';
	}
	else {
		toeval = 'user = document.all[user];'
		+ 'pass = document.all[pass];'
		+ 'button = document.all[button];';
	}
	eval(toeval);
	
	// disabilito il bottone di login
	// ( evita il doppio click e indica all' utente che sta' accadendo qualcosa )
	button.disabled = true;
	
	// disabilito l' autocomplete degli input
	// ( impedisce al browser di salvare la password, piu' sicuro )
	user.setAttribute('autocomplete', 'off');
	pass.setAttribute('autocomplete', 'off');
	
	// effettuo il trim dei dati sensibili
	// e li riassegno ai campi
	user.value = trim(user.value);
	pass.value = trim(pass.value);
	
	// verifico che user e pass siano stati inseriti
	// [ se devono essere alfanumerici di almeno N caratteri
	// gestire in RegExp questo controllo ]
	if(user.value != '' && pass.value != '' && user.value != 'user' && user.value != 'Login errato') {
		
		// scrivo un messaggio di attesa sul bottone
		button.value = 'wait';
		
		// rendo invisibili i campi
		user.style.display = pass.style.display = 'none';
		user.style.visibility = pass.style.visibility = 'hidden';
		
		// effettuo l' hash di utente e password
		user.value = hex_md5(user.value);
		pass.value = hex_md5(pass.value);
		
		// abilito il submit
		result = true;
	}
	else {
		// scrivo un messaggio di errore login
		user.value = 'Login errato';
		
		// riabilito il bottone per il submit
		button.disabled = false;
	}
	
	return result;
}