var loginUrl = '';
var accountChecked = false;

function initialise( url )
{
	loginUrl = url;
    
	/* CPE Contact forms toggle 
  $(".textFieldToggleField").each( function()
  {
    $(this).data( "labelName", $(this).val() );
  });
  
  $('.textFieldToggleField').focus(function(){
  if ( $(this).val() == $(this).data("labelName") )
  {
    $(this).val("");
  }
  })
  .blur(function(){
    if ( $(this).val() == "" )
    {
      $(this).val($(this).data("labelName"));
    }
  }); 
  CPE Contact forms toggle END */

	/*
	$('#emailField').focus( function() { clearField( this,'email' ) } ).blur( function() { fillField( this,'email' ) } );
	$('#passField').focus( function() { clearField( this,'pass' ) } ).blur( function() { fillField( this,'pass' ) } );
	*/
	$('#loginForm').submit( function() { return login(); } );
}

function login()
{
	$('#loginMessage').text( 'Logging in...' );

	var email = $('#emailField').val();
	var pass = $('#passField').val();

	if( email && email.length == 8 && email.indexOf( '@' ) < 0 )
	{
		var options = '<option value="' + email + '">' + email + '</option>';
		$('#codeSelect').html( options );
	}

	if( $('#codeSelect').val() )
	{ 
	  if( accountChecked )
	  {
	    return true;
	  }
	  
	  var url = document.location.protocol + '//' + document.location.host + '/checksubscription.q?code=' + $('#codeSelect').val();
	  $.getJSON( url, function( data ) { checkAccount( data ); } );
		
		return false;
	}

	var date = new Date();
	var url = loginUrl + '?emailAddress=' + escape(email) + '&pass=' + escape(pass) + '&service=ormmanager&ac=' + date.getTime() + '&jsoncallback=?';
	$.getJSON( url, function( data ) { loginAccounts( data ); } );
	
	return false;
}

function loginAccounts( data )
{
	var accounts = data.accounts;

	if( accounts.length == 0 )
	{
		$('#loginMessage').text( 'Login failed, please try again.' );
		return;
	} 

	var options = '';
	for( var i = 0; i < accounts.length; i++ )
	{
		var account = accounts[i];
		options += '<option value="' + account.code + '" title="' + account.name + '">' + account.code + ' - ' + truncate( account.name, 25 ) + '</option>';
	}
	$('#codeSelect').html( options );
	
	if( data.lastAccount )
	{ 
		$('#codeSelect').val( data.lastAccount );
	}
	
	if( accounts.length == 1 )
	{
		$('#loginForm').submit();
	}
	else
	{
		$('#loginMessage').text( '' );
	
		$('.emailPass').toggle();
		$('#code').toggle();
	}
}

function checkAccount( data )
{
  if( data.status && data.status > 1 )
  {
    $('#redirectField').val( document.location.protocol + '//' + document.location.host + '/updatesubscription.q?code=' + $('#codeSelect').val() ); 
  }
  
  accountChecked = true;
  $('#loginForm').submit();
}

function truncate( str, length )
{
	if( str.length > length )
	{
		return str.substring( 0, length ) + '...';
	} 
	
	return str;
}

/*
function clearField( item, value )
{
	if( item.value == value )
	{
		item.value = "";
	}
} 

function fillField( item, value )
{
	if( item.value == "" )
	{
		item.value = value;
	}
} 
*/