var to = null;
var errortext = '';
var currentheight = 106;

function clearOnCompletes()
{
  if ( ($('div_ForgotPassword')) && ($('spn_ForgotPasswordInfo')) && ($('div_Logon')) && ($('spn_InvalidLogon')) )
  {
    $('div_ForgotPassword').set('morph', {onComplete:function(h){}});
    $('spn_ForgotPasswordInfo').set('morph', {onComplete:function(h){}});
    $('div_Logon').set('morph', {onComplete:function(h){}});
    $('spn_InvalidLogon').set('morph', {onComplete:function(h){}});

    $('div_ForgotPassword').set('tween', {onComplete:function(h){}});
    $('spn_ForgotPasswordInfo').set('tween', {onComplete:function(h){}});
    $('div_Logon').set('tween', {onComplete:function(h){}});
    $('spn_InvalidLogon').set('tween', {onComplete:function(h){}});
  }

  // DO NOT MERGE THESE TWO IF STATEMENTS!! One is to logon and the other is when the user is logged on

  if ( ($('div_Personal')) && ($('spn_Message')) )
  {
    $('div_Personal').set('morph', {onComplete:function(h){}});
    $('spn_Message').set('morph', {onComplete:function(h){}});

    $('div_Personal').set('tween', {onComplete:function(h){}});
    $('spn_Message').set('tween', {onComplete:function(h){}});
  }
}


function doHideWarning()
{
  if ( ($('spn_Message')) && ($('div_Personal')) )
  {
    clearTimeout(to);
    clearOnCompletes();
    $('spn_Message').set('tween', {onComplete:function(h){clearOnCompletes(); $('div_Personal').morph({height:133}); $('spn_Message').innerHTML = '<a href="opwaarderen" style="color:#FFFFFF">Waar vind ik de code?</a>';$('spn_Message').fade('in');}});
    $('spn_Message').fade('out');
  }

  // DO NOT MERGE THESE TWO IF STATEMENTS!! One is to logon and the other is when the user is logged on

  if ( ($('spn_ForgotPasswordInfo')) && ($('div_Logon')) )
  {
    clearTimeout(to);
    clearOnCompletes();
    $('spn_ForgotPasswordInfo').set('tween', {onComplete:function(h){clearOnCompletes(); $('div_Logon').morph({height:currentheight-30});currentheight -= 30;}});
    $('spn_ForgotPasswordInfo').fade('out');
  }
}


function highlightSaldo()
{
  if ($('td_Saldo'))
  {
    $('td_Saldo').set('morph', {onComplete:function(h)
    {
      $('td_Saldo').set('morph', {onComplete:function(h)
      {
        $('td_Saldo').set('morph', {onComplete:function(h)
        {
          $('td_Saldo').set('morph', {onComplete:function(h){}});
          $('td_Saldo').morph({color:'#FFFFFF', 'font-weight':'bold'});
        }});
        $('td_Saldo').morph({color:'#57C105', 'font-weight':'bold'});
      }});
      $('td_Saldo').morph({color:'#FFFFFF', 'font-weight':'bold'});
    }});
    $('td_Saldo').morph({color:'#57C105', 'font-weight':'bold'});
  }
}


function doLogon(u,p)
{
  if ( ($('spn_InvalidLogon')) && ($('div_Logon')) && ($('frm_userdata_challenge')) )
  {
    errortext = '';
    if (u == 'E-mail adres')
      errortext = 'Je moet je e-mailadres invullen om in te kunnen loggen.';

    if ( (errortext == '') && (p == '++++++++++') )
      errortext = 'Je moet je wachtwoord invullen om in te kunnen loggen.';

    if (errortext != '')
    {
      if ($('spn_InvalidLogon').style.visibility == 'hidden')
      {
        
        $('div_ForgotPassword').set('morph');
        $('div_ForgotPassword').morph({'top':120});
        
        $('stayloggedon').set('morph');
        $('stayloggedon').morph({'top':106});
        
        $('div_Logon').set('morph', { onComplete:function(h){ $('spn_InvalidLogon').innerHTML = errortext; $('spn_InvalidLogon').fade('in'); } } );
        $('div_Logon').morph({height:currentheight+30});
        
        currentheight += 30;
      }
      else
      {
        $('spn_InvalidLogon').set('tween', { onComplete:function(h){ clearOnCompletes();$('spn_InvalidLogon').innerHTML = errortext; $('spn_InvalidLogon').fade('toggle'); } } );
        $('spn_InvalidLogon').fade('toggle');
      }
      return false;
    }
    
    u = u.toLowerCase();
    p = sha256_digest('magneds.com'+u+p) ;
    p = sha256_digest(p+$('frm_userdata_challenge').value) ;

    var u_safe = URLEncode(u);
    var p_safe = URLEncode(p);

    var remember = $('remme').checked;

    var req = new Request({
      url:'userdata.php',
      method: 'post',
      data:'ajax=logon&username='+u_safe+'&password='+p_safe+'&remme='+remember,
      onComplete:function(t, x){
        var html = x.getElementsByTagName('html');
        if ( (html) && (html.length > 0) )
          window.location=document.location.href;
        else
        {
          var update = x.getElementsByTagName('item');
          if (update)
          { var errortext = update[0].firstChild.data ;
            var challenge = update[0].getAttribute('challenge');
            var newheight = currentheight + 15*Math.floor(errortext.length/30) ;
          }
          if ($('spn_InvalidLogon').style.visibility == 'hidden')
          {
            $('div_Logon').set('morph', {onComplete:function(h){ $('spn_InvalidLogon').innerHTML = errortext; $('frm_userdata_challenge').value = challenge; $('spn_InvalidLogon').fade('in');}});
/*
            $('div_Logon').morph({height:newheight});
            currentheight = newheight;
*/
            $('div_ForgotPassword').set('morph');
            $('div_ForgotPassword').morph({'top':120});
            
            $('stayloggedon').set('morph');
            $('stayloggedon').morph({'top':106});

            $('div_Logon').morph({height:currentheight+30});
            currentheight += 30;

          }
          else
          {
            $('spn_InvalidLogon').set('tween', {onComplete:function(h){clearOnCompletes(); $('spn_InvalidLogon').innerHTML = errortext; $('frm_userdata_challenge').value = challenge; $('spn_InvalidLogon').fade('toggle');}});
            $('spn_InvalidLogon').fade('toggle');
          }
        }
      }
    }).send();
  }
}


function doLogoff()
{
  var req = new Request({
    url:'userdata.php',
    method: 'post',
    data:'ajax=logoff',
    onComplete:function(t, x){
      window.location=document.location.href;
    }
  }).send();
}


function doAddCode(c)
{
  if ( ($('img_AjaxLoader')) && ($('userdata_content')) && ($('spn_Message')) && ($('div_Personal')) )
  {
    clearTimeout(to);
    if (c.length > 0)
    {
      $('img_AjaxLoader').style.display = '';
      var req = new Request({
        url:'userdata.php',
        method: 'post',
        data:'ajax=addcode&code='+c,
        onComplete:function(t, x){
          $('img_AjaxLoader').style.display = 'none';
          var error = x.getElementsByTagName('item');
          if (error)
            var id = error[0].getAttribute('id');
          if ( (error) && (id) && (id == 'timeout') )
          {
            alert('Omdat er te lang geen activiteit is geweest op de site Optimel Eurosparen hebben wij je uit veiligheidsredenen automatisch uitgelogd. Je wordt nu doorgestuurd naar de startpagina waar je opnieuw kan inloggen.');
            window.top.location.href = '/eurosparen';
          }
          else
          {
            var html = x.getElementsByTagName('html');
            if ( (html) && (html.length > 0) )
            {
              $('userdata_content').innerHTML = html[0].firstChild.data;
              highlightSaldo();
              $('spn_Message').innerHTML = 'Je spaarpunten zijn opgehoogd';
              doUserdataInit();
            }
            else
            {
              var error = x.getElementsByTagName('item');
              
              if (error)
              {
                var newheight = error[0].getAttribute('newheight');
                var errortext = error[0].firstChild.data;
                
                clearOnCompletes();
                $('spn_Message').set('tween', {onComplete:function(h){clearOnCompletes(); $('div_Personal').morph({height:newheight}); $('spn_Message').innerHTML = errortext;$('spn_Message').fade('in');}});
                $('spn_Message').fade('out');
                to = setTimeout ( doHideWarning, 7000 );
              }
              //$('spn_Message').innerHTML = errortext;
              
            }
            /*if ($('spn_Message').innerHTML != '<a href="opwaarderen" style="color:#FFFFFF">Waar vind ik de code?</a>')
            {
              clearOnCompletes();
              $('div_Personal').set('morph', {onComplete:function(h){$('spn_Message').fade('in');}});
              $('div_Personal').morph({height:newheight});
              to = setTimeout ( doHideWarning, 7000 );
            }
            else
            {
              $('spn_Message').set('tween', {onComplete:function(h){clearOnCompletes();$('spn_Message').fade('toggle');}});
              $('spn_Message').fade('toggle');
              to = setTimeout ( doHideWarning, 7000 );
            }*/
          }
        }
      }).send();
    }
  }
}


function doRefreshSaldo()
{
  if ($('userdata_content'))
  {
    var reqRefresh = new Request(
    {
      url:'userdata.php',
      method: 'post',
      data:'ajax=refresh',
      onComplete:function(t, x)
      {
        var html = x.getElementsByTagName('html');
        if ( (html) && (html.length > 0) )
        {
          $('userdata_content').innerHTML = html[0].firstChild.data;
          doUserdataInit();
        }
      }
    }).send();
  }
}


function doSendPassword(e)
{
  if ( ($('spn_ForgotPasswordInfo')) && ($('div_Logon')))
  {
    errortext = '';

    if (e == 'E-mail adres')
      errortext = 'Vul je e-mailadres in.';

    if (errortext != '')
    {
      $('spn_ForgotPasswordInfo').innerHTML = errortext;
      if ($('spn_ForgotPasswordInfo').style.visibility == 'hidden')
      {
        clearOnCompletes();
        $('div_Logon').set('morph', {onComplete:function(h){ $('spn_ForgotPasswordInfo').fade('in');}});
        $('div_Logon').morph({height:currentheight+30});
        currentheight += 30;
        to = setTimeout ( doHideWarning, 7000 );
      }
      else
      {
        $('spn_ForgotPasswordInfo').set('tween', {onComplete:function(h){clearOnCompletes(); $('spn_ForgotPasswordInfo').fade('toggle');}});
        $('spn_ForgotPasswordInfo').fade('toggle');
        to = setTimeout ( doHideWarning, 7000 );
      }
      return false;
    }

    var e_safe = URLEncode(e);

    var req = new Request({
      url:'userdata.php',
      method: 'post',
      data:'ajax=forgotpassword&email='+e_safe,
      onComplete:function(t, x)
      {
        var html = x.getElementsByTagName('html');
        if ( (html) && (html.length > 0) )
          $('spn_ForgotPasswordInfo').innerHTML = 'Je ontvangt binnen enkele minuten een mail met instructies.';
        else
        {
          var error = x.getElementsByTagName('item');
          if (error)
          {
            var newheight = error[0].getAttribute('newheight');
            var errortext = error[0].firstChild.data;
          }
          $('spn_ForgotPasswordInfo').innerHTML = errortext;
        }
        if ($('spn_ForgotPasswordInfo').style.visibility == 'hidden')
        {
          clearOnCompletes();
          $('div_Logon').set('morph', {onComplete:function(h){ $('spn_ForgotPasswordInfo').fade('in');}});
          $('div_Logon').morph({height:currentheight+30});
          currentheight += 30;
          to = setTimeout ( doHideWarning, 7000 );
        }
        else
        {
          $('spn_ForgotPasswordInfo').set('tween', {onComplete:function(h){clearOnCompletes(); $('spn_ForgotPasswordInfo').fade('toggle');}});
          $('spn_ForgotPasswordInfo').fade('toggle');
          to = setTimeout ( doHideWarning, 7000 );
        }
      }
    }).send();
  }
}


var onClick_Userdata_DoLogon = function ()
{
  if ( ($('frm_userdata_username')) && ($('frm_userdata_password')) )
    doLogon($('frm_userdata_username').value, $('frm_userdata_password').value);
}


var onClick_Userdata_DoSendPassword = function ()
{
  if ($('frm_userdata_email'))
    doSendPassword($('frm_userdata_email').value);
}


var onClick_Userdata_DoAddCode = function ()
{
  if ($('frm_userdata_code'))
    doAddCode($('frm_userdata_code').value);
}


var onClick_Userdata_DoLogoff = function ()
{
  doLogoff();
}


var onClick_Userdata_ShowForgotPassword = function ()
{
//  TB_show('Binnenkort beschikbaar', '#TB_inline?height=75&width=300&inlineId=div_binnenkortbeschikbaar', false);

  if ( ($('div_FPHidden')) && ($('div_Logon')) )
  {
    if ($('div_FPHidden').style.display == 'none')
    {
      $('div_Logon').set('morph', {onComplete:function(h){ $('div_FPHidden').style.display = ''; $('div_FPHidden').fade('in');}});
      $('div_Logon').morph({height:currentheight+30});
      currentheight += 30;
    }
  }

}

var onClick_Userdata_MijnCodesInvoeren = function ()
{
  window.top.location.href = 'opwaarderen';
}

var onBlur_Userdata_UserName = function ()
{
  if ( $('frm_userdata_username') )
    if ( $('frm_userdata_username').value == '' )
      $('frm_userdata_username').value = 'E-mail adres';
}


var onBlur_Userdata_Password = function ()
{
  if ( $('frm_userdata_password') )
    if ( $('frm_userdata_password').value == '' )
      $('frm_userdata_password').value = '++++++++++';
}


var onBlur_Userdata_ForgotPassword = function ()
{
  if ( $('frm_userdata_email') )
    if ( $('frm_userdata_email').value == '' )
      $('frm_userdata_email').value = 'E-mail adres';
}


var onFocus_Userdata_UserName = function ()
{
  if ( $('frm_userdata_username') )
  {
    $('frm_userdata_username').select();
    if ($('frm_userdata_username').value == 'E-mail adres')
      $('frm_userdata_username').value='';
  }
}


var onFocus_Userdata_Password = function ()
{
  if ( $('frm_userdata_password') )
  {
    $('frm_userdata_password').select();
    if ($('frm_userdata_password').value == '++++++++++')
      $('frm_userdata_password').value='';
  }
}


var onFocus_Userdata_ForgotPassword = function ()
{
  if ( $('frm_userdata_email') )
  {
    $('frm_userdata_email').select();
    if ($('frm_userdata_email').value == 'E-mail adres')
      $('frm_userdata_email').value='';
  }
}


var onKeyDown_DoLogon = function (e)
{
  if (e.key == 'enter')
  {
    e.stop();
    if ( $('frm_userdata_username') && ($('frm_userdata_password')) )
      doLogon($('frm_userdata_username').value, $('frm_userdata_password').value);
  }
}


var onKeyDown_DoSendPassword = function (e)
{
  if (e.key == 'enter')
  {
    e.stop();
    if ( $('frm_userdata_email') )
      doSendPassword($('frm_userdata_email').value);
  }
}

var onKeyDown_AddCode = function(e)
{
  if (e.key == 'enter')
  {
    e.stop();
    if ( $('frm_userdata_code') )
      doAddCode($('frm_userdata_code').value);
  }
}

/*
        var onKeyPress_ValidCharacters = function (evt)
        {
           var charCode = (evt.which) ? evt.which : event.keyCode
           if (charCode > 31 && (charCode < 48 || charCode > 57) && (charCode < 65 || charCode > 90) && (charCode < 97 || charCode > 122))
              return false;

           return true;
        }
*/

var linkUserdataEvents = function()
{
  if ( ($('frm_userdata_username')) )
  {
    $('frm_userdata_username').addEvent( 'keydown', onKeyDown_DoLogon );
    $('frm_userdata_username').addEvent( 'blur',    onBlur_Userdata_UserName );
    $('frm_userdata_username').addEvent( 'focus',   onFocus_Userdata_UserName );
  }
  
  if ( ($('remme')) )
  {
    $('remme').addEvent( 'keydown', onKeyDown_DoLogon );
  }
    
  if ( ($('frm_userdata_password')) )
  {
    $('frm_userdata_password').addEvent( 'keydown', onKeyDown_DoLogon );
    $('frm_userdata_password').addEvent( 'blur',    onBlur_Userdata_Password );
    $('frm_userdata_password').addEvent( 'focus',   onFocus_Userdata_Password );
  }

  if ( ($('frm_userdata_email')) )
  {
    $('frm_userdata_email').addEvent( 'keydown', onKeyDown_DoSendPassword );
    $('frm_userdata_email').addEvent( 'blur',    onBlur_Userdata_ForgotPassword );
    $('frm_userdata_email').addEvent( 'focus',   onFocus_Userdata_ForgotPassword );
  }

  if ( ($('frm_userdata_code')) )
  {
    $('frm_userdata_code').addEvent( 'keydown', onKeyDown_AddCode );
//    $('frm_userdata_code').addEvent( 'keypress', onKeyPress_ValidCharacters );
  }

  if ( ($('btn_userdata_logon')) )
  {
    $('btn_userdata_logon').addEvent( 'click', onClick_Userdata_DoLogon );
  }

  if ( ($('btn_userdata_forgotpassword')) )
  {
    $('btn_userdata_forgotpassword').addEvent( 'click', onClick_Userdata_ShowForgotPassword );
  }

  if ( ($('btn_userdata_sendpassword')) )
  {
    $('btn_userdata_sendpassword').addEvent( 'click', onClick_Userdata_DoSendPassword );
  }

  if ( ($('btn_userdata_addcode')) )
  {
    $('btn_userdata_addcode').addEvent( 'click', onClick_Userdata_DoAddCode );
  }

  if ( ($('btn_userdata_logoff')) )
  {
    $('btn_userdata_logoff').addEvent( 'click', onClick_Userdata_DoLogoff );
  }

  if ( ($$('.tipper')) )
  {
    $$('.tipper').addEvent( 'click', onClick_Userdata_MijnCodesInvoeren );
  }
}


var linkMooTooltips = function()
{
  new MooTooltips(
  {
    hovered:'.tipper',
    ToolTipClass:'ToolTips',
    toolTipPosition:1,
    sticky:false,
    fromTop: -135,
    fromLeft: -10,
    duration: 300,
    fadeDistance: 20
  });
}


var setUserdataVariables = function()
{
//  if ( ($('spn_Message')) )
//    $('spn_Message').fade('hide');
  if ( ($('spn_InvalidLogon')) )
    $('spn_InvalidLogon').fade('hide');
  if ( ($('spn_ForgotPasswordInfo')) )
    $('spn_ForgotPasswordInfo').fade('hide');
  if ( ($('div_FPHidden')) )
    $('div_FPHidden').fade('hide');
}


var doUserdataInit = function()
{
//  linkMooTooltips();
  linkUserdataEvents();
  setUserdataVariables();
}


window.addEvent( 'domready', doUserdataInit );