/**
 * @author Administrator
 */

/**
 * event used by login controls.
 */

function LoginControl() {
	this.UserLoginEvent = new YAHOO.util.CustomEvent("UserLogin", this);
	// this.UserLogoutEvent = new YAHOO.util.CustomEvent("UserLogin", this);
}

LoginControl.prototype.renderControl = function(results) {
		var loginControl = document.getElementById('loginControl');
		if (typeof(loginControl) == "object") {
			loginControl.innerHTML = results;
		}
		else {
			alert("logincontrol not found? " + typeof(loginControl));
		}
	}

LoginControl.prototype.LoginResults = function(results) {
	//	Sys.Debug.clearTrace();
	//	Sys.Debug.traceDump(results, "Results");
	//	errCell.innerHTML = results.message;
	if (results.loggedIn) {
			//		alert("LoginResults - render controls service");

		LoginService.renderLoginControl(theLoginControl.renderControl);
		if (this.UserLoginEvent) this.UserLoginEvent.fire(results);
	}
	else {
		// login failed, let user know...
		var errorDiv = document.getElementById('errorMessage');
		errorDiv.style.display = 'block';
		errorDiv.innerHTML = results.message;
	} 
}

LoginControl.prototype.LogoutResults = function(results) {
	LoginService.renderLoginControl(theLoginControl.renderControl);
	if (this.UserLoginEvent) this.UserLoginEvent.fire(results);
}

LoginControl.prototype.DoLogin = function(theForm) {
		var handle = theForm.elements['loginId'].value;
		var pwd = theForm.elements['pwd'].value;
		// use a closure to preserve "this" reference
		var lc = this;
		LoginService.loginMember(handle, pwd, function(results){
	//		alert("login callback");
			lc.LoginResults(results);
	//		alert("login callback completes");
		});
//		alert("after invoke service");
		return false;
}

LoginControl.prototype.DoLogout = function(theForm) {
		// use a closure to preserve "this" reference
		var lc = this;
		LoginService.logoutMember(function(results){
			lc.LogoutResults(results);
		});
		return false;
}

LoginControl.prototype.ShowLoginForm = function (bShow) {

	var displayValue = (bShow ? "block" : "none");
	document.getElementById('LoginForm').style.display = displayValue;
	var loginField = document.getElementById('loginId');
	if ((loginField != null) && bShow) loginField.focus();
	return false;
}

var theLoginControl = new LoginControl();

