function galens_login(){

	var $preloader = ($('#ajax-loader').length ? $('#ajax-loader') : $('<img></img>').attr({'src': galens.base_url + '/images/loaders/default.gif', 'id' : 'ajax-loader'}));
	var $login_dialog = $('<div></div>').attr({id : 'login-dialog'}).hide();
	$('body').append($login_dialog);
	
	$('a.login').live('click', function(){
		var $self = $(this);
		$login_dialog.html($preloader).dialog({
			bgiframe: true,
			resizable: ($.browser.msie&&$.browser.version<7?false:true),
			modal: true,
			height: 200,
			title: 'Galens.net login',
			overlay: {
				backgroundColor: '#fff',
				opacity: 0.5
			}
		}).dialog('open');
	
		$.ajax({
			dataType: 'json',
			url: $self.attr('href'),
			success : function(data) {
				$login_dialog.html(data.html);
				var $form = $login_dialog.find('form');
				ajaxify_form($form);
			}
		});
		
		return false;
	});
	
	function ajaxify_form($form){
		$form.bind('submit', function(){
			if ($form.valid()) {
				$.ajax({
					dataType: 'json',
					type: 'post',
					url: $form.attr('action'),
					success : function(data) {
						if (data.status == 'ok') {
							window.location = (data.redirect ? data.redirect : window.location.href);
						}
						else {
							$login_dialog.html(data.html);
							var $form = $login_dialog.find('form');
							ajaxify_form($form);
						}
					},
					data: $form.serialize()
				});
			}
			
			return false;
		});
	}
}

$(galens_login);