var heightLogin = 149;

function showLogin(state)
{
	if (state)
	{
		hideLogin = true;
		$('loginbox_block').setStyle('display', 'block');
		show_transbox();
	}
	else
	{
		hideLogin = false;
		oHeight = heightLogin;
		hide_transbox();
	}
}

function show_transbox(){
	$('loginbox').setStyle('height', '1px');
	$('loginbox').setStyle('display', 'block');
	curr_objID  = 'loginbox';
	innerContent = 'loginbox_content';
	curr_objHeight = heightLogin;
	showContent();
}

function hide_transbox(){
	curr_objID  = 'loginbox';
	innerContent = 'loginbox_content';
	$(innerContent).setStyle('display', 'none');	
	hidecontent();
}

var i = 0;
var slide = true;
var curr_objID = null;
var innerContent = '';
var curr_objHeight = 0;
var incVal = 10;
var oHeight = incVal;
var incTimer = 1;

function showContent(){
	var obj = $(curr_objID);

	if (oHeight <= curr_objHeight)
	{
		obj.style.height = oHeight + 'px';
		oHeight = oHeight + incVal;
		setTimeout('showContent()', incTimer);
	}
	else
	{
		oHeight = heightLogin;
		i = 0;
		slide = true;
		curr_objID = null;
		curr_objHeight = 0;
		if (innerContent)
		{
			$(innerContent).setStyle('display', 'block');
			resetLoginMenu();
			$('login_email').focus();
		}

		innerContent = null;
	}
}

function hidecontent(){
	var obj = $(curr_objID);
	if (!obj)
	{
		return;
	}
	
	if (oHeight > 1)
	{
		oHeight = oHeight - incVal;
		obj.style.height = Math.max(oHeight, 0) + 'px';
		setTimeout('hidecontent()', incTimer);
	}
	else
	{
		if ($(curr_objID).getStyle('display') != 'none')
		{
			$(curr_objID).setStyle('display', 'none');
		}

		$('loginbox_block').setStyle('display', 'none');
		oHeight = incVal;
		i = 0;
		slide = true;
		curr_objID = null;
		curr_objHeight = 0;

		if (innerContent != '')
		{
			$(innerContent).setStyle('display', 'none');
		}

		innerContent = '';
	}
}

function resetLoginMenu()
{
	$('login_email').value = '';
	$('login_password').value = '';
	$('login_form_message').innerHTML = 'Enter your login details.';
}

function createMessage(form_id, messageText)
{
	var message_id = form_id + '_message';
	var message = $(message_id);

	if (messageText)
	{	
		if (!message)
		{
			message = new Element('div', {
				'events': {
					'click': function() {
						this.remove();
					}
				},
				'class': 'alert',
				'id': message_id,
				'title': 'Click to close this box'
			});
			
			message.injectBefore($(form_id));
		}
		
		message.innerHTML = messageText;

		$to_color = '#ffffff';
		$from_color = $(message).getStyle('background-color');
		var myFx = new Fx.Style(message.id, 'color', {duration:500}).start($from_color, $to_color);
	}
	else
	{
		if (message)
		{
			message.remove();
		}
	}
}

function submitForm(form)
{
	createMessage(form.id, 'Processing...');
	
	$(form.id).send({
		evalScripts: true,
		onFailure: function(request) {
			createMessage(form.id, 'Request failed.');
		},
		onSuccess: function(result) {
			createMessage(form.id, result);
		}
	});
	
	return false;
}

function confirmAction(selector, message)
{
	var selected = false;
	$$(selector).each(function(element){
		if (element.checked)
		{
			selected = true;
		}
	});
	
	if (selected)
	{
		if (!window.confirm(message))
		{
			return false;
		}
		else
		{
			return true;
		}
	}
	else
	{
		alert('Make a selection first.');

		return false;
	}
}

function selectAll(selector, state)
{
	$$(selector).each(function(element){element.checked = state})
}

function checkall(formName, boxName, checkval)
{
	for (i = 0; i < formName.elements.length; i++)
	{
		var formElement = formName.elements[i];

		if (formElement.type == 'checkbox' && formElement.name == boxName && formElement.disabled == false)
		{
			formElement.checked = checkval.checked;
		}
	}
}

function ValidateUploadForm(oFormName)
{
    flag = false;
    oForm = document.getElementById(oFormName);

    for (i = 0; i < oForm.elements.length; i++)
    {
        if (oForm.elements[i].type == 'file')
        {
             if (oForm.elements[i].value)
             {
                  flag = true;
             }
        }
    }

    if (!flag)
    {
         alert("You need to choose at least 1 file to upload.");

         return false;
    }

    return true;
}

var fileId = 0;

function AddUploadField(obj)
{
	if (obj)
	{
		var newField = new Element('input', {
			'styles': {
				'margin-bottom': '5px',
				'display': 'block'
			},
			'type': 'file',
			'name': 'file' + fileId,
			'class': 'input_text',
			'size': 70
		});

		newField.injectBefore($(obj));
		
		fileId++;
	}
}
