window.addEvent('domready', function() {
	if($defined($('loginform'))){
		$('loginform').addEvent('submit', function(e) {
			e.stop();
			this.removeEvent('submit');
			var loginButton = $$('.login_button input');
			var loginMes = $('loading_login');
			loginButton.set('tween', {duration: 75});
			loginMes.set('html','');
			loginMes.set('opacity','0');
			loginMes.removeClass('loading_message');
			loginMes.removeClass('loading_message_error');
			loginMes.removeClass('loading_message_info');
			loginMes.removeClass('loading_message_success');
			loginMes.removeClass('loading_progress');
			(function (){
				loginMes.addClass('loading_progress');
				loginMes.removeClass('display_none');
				loginMes.fade(1);
			}).delay(78);
			loginButton.tween('opacity',0).addClass('display_none');
			this.set('send', {
				onSuccess: function(response) {
						var showButton = false;
						var loginRedirect = false;
						var messType = 'info';
						loginMes.addClass('display_none');
						loginMes.removeClass('loading_progress');
						loginMes.setStyles({
							'opacity': '0',
							'bottom': '-38px'
						});
						loginMes.removeClass('display_none');
						var logResponse = response.trim().split('||');
						var responseMes = logResponse[1];
						switch(logResponse[0]){
							case 'ERROR':
								showButton = true;
								messType = 'error';
							break;
							case 'NEUTRAL':
								showButton = true;							
							break;
							case 'SUCCESS':
								loginRedirect = true;
								messType = 'success';
							break;
							default:
								showButton = true;
								responseMes = response;
							break;
						}
						loginMes.addClass('loading_message').addClass('loading_message_'+messType).set('html', responseMes);
						loginMes.morph({
							'opacity': '.75',
							'bottom': '-61px'
						});
						if(showButton){
							loginButton.removeClass('display_none');
							loginButton.tween('opacity',1);
							this.addEvent('submit');
						}
						if(loginRedirect){
							(function(){
								window.location='/admin/';		  
							}).delay(1500);
						}
				},
				onFailure: function() {
					loginMes.addClass('display_none');
					loginMes.removeClass('loading_progress');
					loginMes.setStyles({
						'opacity': '0',
						'bottom': '-38px'
					});
					loginMes.removeClass('display_none');
					loginMes.addClass('loading_message').addClass('loading_message_error').set('html', 'An Unknown Error Occured');
					loginButton.removeClass('display_none');
					loginMes.morph({
						'opacity': '.75',
						'bottom': '-61px'
					});
					loginButton.tween('opacity',1);
					this.addEvent('submit');
				}
			});
			(function(){
				this.send();
			}.bind(this)).delay(1600);
		});
	}
});
