var loginOn = false;
var loggedIn = false;
var submittedLogin = false;
var submittedLogout = false;

var showLoading = function() {
	$('overlay2').appear({duration:0.5, to: 0.8, afterFinish: function() { $('laodingText').show(); } });
}

var hideLoading = function() {
	$('overlay2').fade({duration:0.5, afterFinish: function() { $('laodingText').hide(); } });
}

var showSmallLoading = function() {
	$('smallLoading').show();
}

var hideSmallLoading = function() {
	$('smallLoading').hide();
}

var loadArticle = function(which) {
	if(which == 'full') {
		url = "/article/load/" + $('article-content-container').readAttribute('rel') + "/full";
		$('article-content-container').blindUp({
			duration: 1,
			afterFinish: function() {
				new Ajax.Updater('article-content-container', url, {
					onComplete: function() {
						$('article-content-container').blindDown({ duration: 1, afterFinish: function() {
							$('comment-tab-button').show();
							initSmallComments();
							hideLoading();
							hideSmallLoading();
						}});
					}
				});
			}
		});
	} else if (which == 'excerpt') {
		url = "/article/load/" + $('article-content-container').readAttribute('rel') + "/excerpt";
		articleTabClick();
		$('article-content-container').blindUp({
			duration: 1,
			afterFinish: function() {
				$('comments-box1').update('');
				$('comment-tab-button').hide();
				new Ajax.Updater('article-content-container', url, {
					onComplete: function() {
						$('article-content-container').blindDown({ duration: 1, afterFinish: function() { hideLoading(); }});
					}
				});
			}
		});
	}
}

var logout = function() {
	if(!submittedLogout) {
		submittedLogout = true;
		var url = '/users/ajax_logout_cyclenews';
		new Ajax.Request(url,{
			method: 'post',
			onLoading: function() {
				showLoading();
			},
			onSuccess: function(transport) {
				$('loginInformation').fade({
					duration: 1,
					afterFinish: function() {
						//$('a#nav_online').first().writeAttribute('href', "https://subscribe.cyclenews.com/account/online_magazine");
						$('loginInformation').update('<div><a href="javascript:;" id="login-link" class="left yellow">Login &dArr;</a></div>');
						init();
						$('loginInformation').appear({
							afterFinish: function() {
								if($('article-content-container')) { //On article view page
									if($('article-content-container').readAttribute('paddock_pass') == 1)
										loadArticle('excerpt');
									else {
										if($('comment-tab-button').hasClassName('tab_selected'))
											initLargeComments();
										else
											initSmallComments();
									}
								} else {
									hideLoading();
									hideSmallLoading();
								}
								submittedLogin = false;
							}
						});
					}
				});
			}
		});
	}
}

var toggleLoginBox = function() {
	new Effect.toggle('login-box', 'blind', { duration: 0.5, afterFinish: function() { if(!ie) $('ThinkLoginFormThinkEmail').focus(); }});
	if(loginOn) {
		loginOn = false;
		$('login-link').removeClassName('active');
		$('login-link').update('Login <span id="login_arrow">&dArr;</span>');
	} else {
		$('login-link').addClassName('active');
		$('login-link').update('Login <span id="login_arrow">&uArr;</span>');
		loginOn = true;
	}

}

var showError = function(error_text) {
	$('error-div').select('div').first().update(error_text);
	$('error-div').blindDown({
		duration: 1,
		afterFinish: function() {
			$('error-div').blindUp({
				duration: 1,
				delay: 2
			});
		}
	});
}

var submitThinkLoginForm = function() {
	if(!submittedLogin) {
		submittedLogin = true;
		$('ThinkLoginForm').request({
			onLoading: function() {
				showLoading();
			},
			onComplete: function(transport) {
				authObject = transport.responseText.evalJSON();
				if(authObject['isAuthenticated']) {
					if(authObject['auto_reg'])
						location.href = 'http://forums.cyclenews.com/ucp.php?i=profile&mode=reg_details&auto_reg=1';
					loggedIn = true;
					toggleLoginBox();
					$('loginInformation').fade({
						duration: 1,
						afterFinish: function() {
							$('loginInformation').update('<div>Hello, ' + authObject['email'] + '.&nbsp;&nbsp;<a id="logout-link" class="yellow" href="#">Logout</a></div>');
							init();
							$('loginInformation').appear({
								afterFinish: function() {
									//$('a#nav_online').first().writeAttribute('href', authObject['hash_url']);
									if($('article-content-container')) { //On article view page
										if($('article-content-container').readAttribute('paddock_pass') == 1)
											loadArticle('full');
										else {
											if($('comment-tab-button').hasClassName('tab_selected'))
												initLargeComments();
											else
												initSmallComments();
										}
									} else {
										hideLoading();
										hideSmallLoading();
									}
									submittedLogout = false;
								}
							});
						}
					});
				} else if(authObject['isError']) {
					hideLoading();
					submittedLogin = false;
					showError(authObject['error_text']);
				}
			}
		});
	}
}

var init = function() {
	if($('login-link')) {
		$('ThinkLoginForm').observe('submit', function(e) {
			e.stop();
			submitThinkLoginForm();
		});
		$('login-link').observe('click', toggleLoginBox);
		$('login-button').observe('click', submitThinkLoginForm);
	} else {
		$('logout-link').observe('click', logout);
	}
}

var windowLoad = function() {
	init();
}

Event.observe(window, 'load', windowLoad);
