window.addEvent('domready', auth_init);

function show_create() {
	document.getElementById("new_account").style.display="block";
	document.getElementById("cur_account").style.display="none";
}
function show_login() {
	document.getElementById("new_account").style.display="none";
	document.getElementById("cur_account").style.display="block";
}

function auth_init() {	
	// load account widget
	var account_widget_request = new Request({
		url:'/Auth/accountWidget',
		data: {},
		onSuccess : function(responseText, responseXML) {
			document.getElementById("account_widget").innerHTML = responseText;
			if (responseText.match("^Hello")!="Hello") {
				account_widget_login_init();
			}
		},
		onFailure : function () {}
	}).send();
}

function sign_in() {
	var username = document.getElementById("username").value;
	var password = document.getElementById("password").value;
	
	var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if (!filter.test(username)) {
		alert("Please provide a valid email address");
		return false;
	}

	
	if (password == "") {
		alert("Please enter a password");
		return false;
	}
	
	//If we get here then we're good
	var JSONrequest = new Request.JSON({
		url:'/Auth/processLogin',
		data: { username : username,
				password : password
		},
		onSuccess : function(responseJSON, responseText) {
			if (responseJSON.success == true) {
				window.location = "/Account/View";
			}
			else {
				document.getElementById("error_response").innerHTML = responseJSON.errors.join("\n");
			}
		},
		onFailure : function () {
			document.getElementById("error_response").innerHTML = "";
			alert("Account creation failed.  Please refresh the page and try again.");
		}
	}).send();
}


function log_out(){
	var account_widget_request = new Request({
		url:'/Auth/logout',
		data: {},
		onSuccess : function(responseText, responseXML) {
			if (responseText == "Success"){
				window.location.reload( true );
			} else {
				document.getElementById("error_response").innerHTML = "";
				alert("Logout failed. Please try again");
			}
		},
		onFailure : function () {
			document.getElementById("error_response").innerHTML = "";
			alert("Logout failed. Please try again");
		}
	}).send();
}

function account_widget_login_init() {
    $('username').addEvents({
            'focus': function() {
                this.value = '';
            },
                'blur': function() {
                    if ($('username').value == '') {
                        this.value = 'username';
                    }
                }
        });

    $('password').addEvents({
            'focus': function() {
                this.value = '';
                this.type = 'password';
            },
                'blur': function() {
                    if ($('password').value == '') {
                        this.value = 'password';
                        this.type = '';
                    }
                }
        });
  
}

function set_language(language_id) {
	var language_request = new Request({
		url:'/Page/SetLanguageSession',
		data: {language_id : language_id},
		onSuccess : function(responseText, responseXML) {
			if (responseText == "Success"){
				window.location.reload( true );
			} else {
				alert("Error: There was a problem switching the language session.  Please reload the page and try again.");
				document.getElementById("error_response").innerHTML = "";
			}
		},
		onFailure : function () {
			alert("Error: There was a problem switching the language session.  Please reload the page and try again.");
			document.getElementById("error_response").innerHTML = "";
		}
	}).send();
}

