//------------------------------------------------------------
// Some utility Ajax methods for retrieving user-related info for client
// side fun. 
//------------------------------------------------------------

function getUserName (user_id, cb) {
	
	if (!user_id) return null;
	
	// Just using the get_genome method which also returns the username 
	new Ajax.Request('/vortexuser_get_genome?user_id=' + user_id,
	{
	    method:'get',
	    onSuccess: function(transport){
	    	var res = null;
	    	if (transport.responseText) {
	    		try {
	    			res = eval('(' + transport.responseText + ')');
	    		}
	    		catch (e) {}
	    	}
	    	if (cb) {
	    		cb(res ? res.user_name : null);
	    	}
	    }
	});
}

//------------------------------------------------------------
// Presentation components for login panel on static site (uses
// prototype stuff).
//------------------------------------------------------------

var login_button= new Image();
var processing_button= new Image();

function ShowUsername () {

	// Preload the buttons
	login_button.src = '/@@/vortexpresentation/images/login-button.jpg';
	processing_button.src = '/@@/vortexpresentation/images/processing.jpg';

	// Get the user ID from the cookie, if it exists.
	var cookies = document.cookie.split(';');
	var user_id = null;
	
	try {
		if (cookies.length > 0) {
			for (i=0; i<cookies.length; i++) {
				parts = cookies[i].split('=');
				if (parts.length > 0) {
					if (parts[0].indexOf('VortexLogin') > 0) {
						details = parts[1].split('-');
						if (details.length > 0) {
							var user_id = details[0];
						}
					}
				}
			}
		}
	}
	catch (e) {}
	
	// If no cookie set, just show the login links.
	if (!user_id) {
		showLoggedInPanel(false);
		return;
	}
	
	// Get the username and do something with it.
	var username = getUserName(user_id, function (username) {
		// Show it
		if (username) {
			$('username').innerHTML = username;
			showLoggedInPanel(true);
		}
		else {
			showLoggedInPanel(false);
		}
	});
};

function showLoggedInPanel(status) {
	$('logged_in_panel').style.display = status ? '' : 'none';					
	$('signup_panel').style.display = status ? 'none' : '';					
}

var button_values = {};

function showButtonWaiting(button_id, status) {
	if (status) {
		var button = $(button_id);
		button_values[button_id] = button.src;
		button.src = processing_button.src;
	}
	else {					
		$(button_id).src = button_values[button_id];
	}
}

function login (username, password, rememberme) {

	// Show the button waiting state.
	showButtonWaiting('login_button', true);

	var user_email = $('user_email').value;
	var password = $('password').value;

	// [3/5/07] Disabling remember me for now.
	//var remember_me = $('remember_me').checked ? 'true' : 'false';
	var remember_me = 'false';
	
	new Ajax.Request('/vortexuser_login?user_email=' + escape(user_email) +
		'&amp;password=' + escape(password) +
		'&amp;remember_me=' + escape(remember_me),
	{
	    method:'get',
	    onSuccess: function(transport){
	    	var res = null;
	    	if (transport.responseText) {
	    		try {
	    			res = eval('(' + transport.responseText + ')');
	    		}
	    		catch (e) {
					showButtonWaiting('login_button', false);
	    			return;
	    		}
	    		
	    		// If we successfully logged in, redirect to the /dna page.
	    		if (res && res.user_name) {
	    			window.location.href = '/dna';
	    		}
	    		else {
	    			// Reset the login button and display the message.
					showButtonWaiting('login_button', false);
					var messages = $('messages');
					messages.style.display = '';
					messages.innerHTML = res.message;
	    		}
	    	}
	    }
	});
}

function fixEvent (event) {
	if(!event){
		if(window["event"]){
			event = window.event;
		}
	}
	return event;
}

function loginOnEnter(event) {
	event = fixEvent(event);
    if (event.keyCode == 13) {
    	// don't submit on textareas, very bad!
		login();
        return false;
    }
    return true;
}
