﻿var LogonLink;
var RemindLink;
var WaitLink;
var DefMsgCss;
var UserBox;
var MyMsgCss = { position: $.browser.msie ? 'absolute' :'fixed', left: 0, top: 0, border: "none", padding: 0, margin: 0 };
  $(document).ajaxError(function(a, b){
      $.unblockUI();
  });
var CurrentUser;
var RedirectOnLogin;

function GetUserInfo()
{
  jQuery.getJSON('/user.sdf', NewUserInfo);
}

function NewUserInfo(json) 
{
	if (!json.guest && RedirectOnLogin)
	{
		window.location = RedirectOnLogin + "?login=" + json.login;
		return;
	}

	CurrentUser = json;

  var div = UserBox;
  div.empty();
  jQuery( "#WaitTwo" ).hide();
  
  var body = jQuery("#body");
  if ( !body.length )
      body = document.body;
  div.appendTo(body);
  if ( json.guest )
  {
		jQuery( "#MyAccount").addClass("Invis");
		var welcome = jQuery( '<div>Welcome, </div>' ).addClass("welcome").appendTo( div );
		jQuery( '<span>guest!</span>' ).addClass("guest").appendTo( welcome );
		jQuery( '<a href="#">Login</a>' ).addClass("link lm10").appendTo( div ).click( DoLogin );
		jQuery( '<br>').appendTo( div );
		jQuery( '<a href="#">Forgot your password?</a>' ).addClass("link lm10").appendTo( div ).click( DoRemind );
		if ( json.error )
		{
			jQuery( "#Err", LogonLink ).html("<span>"+json.error+"<span>");
			return;
		}
  }
  else
  {
		jQuery( "#MyAccount").removeClass("Invis");
		var welcome = jQuery( '<div></div>' ).addClass("welcome").appendTo( div );
		jQuery( '<a href="#">Logout</a>' ).addClass("link floatRight").appendTo( div ).click( DoLogout );
		jQuery( '<span>'+json.nick+'</span>' ).addClass("guest").appendTo( div );
		if ( json.premium )
		{
			jQuery( '<div><img src="/images/premium.png" alt="Premium subscription"/> Premium subscription</div>').addClass('subs').appendTo( div );
		}
		else
		{
			jQuery( '<div><img src="/images/regular.png" alt="Regular subscription"/> Regular subscription</div>').addClass('subs').appendTo( div );
			var ugr = jQuery('<div class="pad20 padTop"><nobr>Page limit: <span class="freepages">' + json.freepages
				+ '</span> &#160; <a href="/buy-pages.sdf?login=' + json.login 
				+ '" class="link">Buy more</a></nobr></div>').appendTo(div);
			ugr.width( jQuery("a", ugr).width() );
		}
  }
  $.unblockUI();  
}

function DoRemind()
{
  $.blockUI.defaults.pageMessageCSS = MyMsgCss;
  RemindLink[0].it = true;
  $.blockUI( RemindLink );
  return false;
}

function MakeBusy( )
{
  UserBox.empty();
  jQuery( '<img src="/images/busy.gif" align="right">').appendTo( UserBox );
}

function DoRemind2()
{
  $.unblockUI( {callback2: DoRemind});
}

function DoLogin()
{
  jQuery( "#WaitTwo", LogonLink ).hide();
  jQuery( "#Err", LogonLink ).empty();
  $.blockUI.defaults.pageMessageCSS = MyMsgCss;
  $.blockUI( LogonLink );
  return false;
}

function NewUrlInfo(json)
{
  NewUserInfo(json);
  if ( json.url )
      location.href = decodeURI(json.url).replace( /\&amp;/g, "&");
}

function DoLogout()
{
  MakeBusy();
  jQuery.getJSON('/user.sdf?m=logout', NewUserInfo);
}

function SubmitLogin()
{
  var frm = jQuery( 'form#LoginFrm', LogonLink ).click( function() {return false;} );
  var l= jQuery( "input:text", frm).attr("value");
  var p = jQuery( "input:password", frm).attr("value");
  
  jQuery( "#WaitTwo" ).show();
  jQuery.getJSON('/user.sdf?m=login&l='+l+'&p='+p, NewUserInfo);
}

function SubmitRemind()
{
  var frm = jQuery( 'form#RemindFrm', RemindLink );
  var l= jQuery( "input:text", frm).attr("value");

  jQuery( "#WaitOne", RemindLink ).show();
  jQuery.getJSON('/user.sdf?m=remind&l='+l, RemindInfo);
}

function RemindInfo(json)
{
  jQuery( "#WaitOne", RemindLink ).hide();
  var err = json.error;
  json.error = false;
  NewUserInfo(json);
  alert( err );
}

function SetHooks()
{
	jQuery("#CancelLoginBtn").click( function() {  $.unblockUI() } );
	jQuery("#CancelRemindBtn").click( function() {  $.unblockUI() } );

	LogonLink = jQuery("#Logon");
	jQuery( 'form#LoginFrm', LogonLink ).submit( function() {SubmitLogin();return false;} );

	LogonLink.FixPosition = true;
	jQuery("#LoginBtn").click( SubmitLogin );

	RemindLink = jQuery("#Remind");
	RemindLink.FixPosition = true;
	jQuery( 'form#RemindFrm', RemindLink ).submit( function() {return false;} );
	jQuery("#RemindBtn").click( SubmitRemind );
	jQuery("#RemindBtn", LogonLink).click( DoRemind2 );
}

jQuery(document).ready(function() {

	UserBox = jQuery( "#user" );
	MakeBusy( );
	$.blockUI.defaults.pageMessage = '<div class="wait"><img src="/images/busy2.gif" /> Please Wait...</div>';
	$.blockUI.defaults.overlayCSS = { backgroundColor: '#f2faed', opacity: '0.5' };

	DefMsgCss = $.blockUI.defaults.pageMessageCSS;
	GetUserInfo();
	SetHooks();
});

