// JavaScript Document

var base_url     = location.protocol + '//' + location.hostname;
var ikon_communicating = '<img src="/images/loader_minitext.gif">';

setTimeout ( "get_header_loggedin_info()", 30000 );
setTimeout ( "get_game_activity()", 80000 );
setTimeout ( "get_infoboxitem_list_wide_small()", 4000 );

function header_user_sign_up_toggle () {
  var panel = $('headerSignupContainer');
  var btn = $('headerSignupBtn');
  if (panel.visible()) {
	btn.removeClassName('open');
	panel.hide();
  } else {
	btn.addClassName('open');
	panel.show();
	$('header_user_sign_up_username').focus();
  }
  $('headerRecoverPasswordContainer').hide();
  $('headerLoginErrorContainer').hide();
  $('headerRecoverPasswordBtn').removeClassName('open');
}
function header_user_sign_up () {
  $('signupLoader').show();

  var parameters = new Hash();
  parameters.set('action',     'ws_sign_up');
  parameters.set('username',   $('header_user_sign_up_username').value);
  parameters.set('email',      $('header_user_sign_up_email').value);
  parameters.set('password',   $('header_user_sign_up_password').value);
  parameters.set('accept_tos', $('header_user_sign_up_accept_tos').checked ? '1' : '0');

  new Ajax.Request('/user.pl', {
    parameters: parameters,
    onSuccess: function(transport) {
      if (transport.responseJSON) {
        json = transport.responseJSON;
        if (json.isSignUpSuccess) {
          document.location.href = document.location.href;
        } else {
          $('signupLoader').hide();
          $('header_user_sign_up_error_string').update(json.errorText);
          $('header_user_sign_up_error_string').show();
          json.username   ? $('header_user_sign_up_username').parentNode.addClassName('showError')   : $('header_user_sign_up_username').parentNode.removeClassName('showError');
          json.password   ? $('header_user_sign_up_password').parentNode.addClassName('showError')   : $('header_user_sign_up_password').parentNode.removeClassName('showError');
          json.email      ? $('header_user_sign_up_email').parentNode.addClassName('showError')      : $('header_user_sign_up_email').parentNode.removeClassName('showError');
          json.accept_tos ? $('header_user_sign_up_accept_tos').parentNode.addClassName('showError') : $('header_user_sign_up_accept_tos').parentNode.removeClassName('showError');
        }
      } else {
//        alert('no json in response');
      }
    }
  });
}

function header_user_recover_password_toggle () {
  var panel = $('headerRecoverPasswordContainer');
  var btn = $('headerRecoverPasswordBtn');
  if (panel.visible()) {
	btn.removeClassName('open');
	panel.hide();
  } else {
	btn.addClassName('open');
	panel.show();
	$('header_user_recover_password_email').focus();
  }
  $('headerSignupContainer').hide();
  $('headerSignupBtn').removeClassName('open');
}
function header_user_recover_password () {
  $('recoverPasswordLoader').show();

  var parameters = new Hash();
  parameters.set('action',     'ws_recover_password');
  parameters.set('email',      $('header_user_recover_password_email').value);

  new Ajax.Request('/user.pl', {
    parameters: parameters,
    onSuccess: function(transport) {
      if (transport.responseJSON) {
        $('recoverPasswordLoader').hide();

        json = transport.responseJSON;
        if (json.isRecoverPasswordSuccess) {
          $('headerRecoverPasswordContainer').update(json.successText);
        } else {
          $('header_user_recover_password_error_string').update(json.errorText);
          $('header_user_recover_password_error_string').show();
          $('header_user_recover_password_email').parentNode.addClassName('showError');
        }
      } else {
//        alert('no json in response');
      }
    }
  });
}
function header_user_login () {
  $('loginLoader').show();

  var parameters = new Hash();
  parameters.set('action',     'ws_login');
  parameters.set('username',   $('header_user_login_username').value);
  parameters.set('password',   $('header_user_login_password').value);

  new Ajax.Request('/user.pl', {
    parameters: parameters,
    onSuccess: function(transport) {
      if (transport.responseJSON) {
        $('loginLoader').hide();
        json = transport.responseJSON;
        if (json.isLoginSuccess) {
          $('headerLoginErrorContainer').hide();
          document.location.href = document.location.href;
        } else {
          $('headerSignupContainer').hide();
          $('headerRecoverPasswordContainer').hide();
          $('headerLoginErrorContainer').show();
          $('header_user_login_error_string').update(json.errorText);
          json.username   ? $('header_user_login_username').parentNode.addClassName('showError')   : $('header_user_login_username').parentNode.removeClassName('showError');
          json.password   ? $('header_user_login_password').parentNode.addClassName('showError')   : $('header_user_login_password').parentNode.removeClassName('showError');
        }
      } else {
//        alert('no json in response');
      }
    }
  });
}
function header_user_login_error_toggle () {
  var panel = $('headerLoginErrorContainer');
  if (panel.visible()) {
	panel.hide();
  } else {
	panel.show();
  }
}

function get_header_loggedin_info() {
    var http    = getHTTPObject();
    var ranking = document.getElementById('header_ranking');
    var balance = document.getElementById('header_balance');
    var session = document.getElementById('global_session_param_value');
    if (http && ranking && balance && session) {

        http.open(
            "POST",
            '/user_ws/?s=' + session.value + '&rand=' + Math.random(),
            true);

        http.onreadystatechange = function() {
            if (http.readyState == 4) {
                var re = /^<User><error/;
                if (re.test(http.responseText)) {
                    // handle error ?
                } else {
                    eval(http.responseText);
                    if (r && b) {
                        ranking.innerHTML = r;
                        balance.innerHTML = b;
                    }
                    setTimeout ( "get_header_loggedin_info()", 30000 );
                }
            } else {
                // no info to user
            }
        }

        http.send("<User><GetHeaderLoggedInInfo /></User>");
    }
}

function get_game_activity() {
    var container    = document.getElementById('game_activity_container');
    var game_type_id = document.getElementById('game_activity_game_type_id');
    var session      = document.getElementById('global_session_param_value');
    var skin_id      = document.getElementById('global_skin_id');

    if (container && game_type_id && session) {
        new Ajax.PeriodicalUpdater('game_activity_container', '/user_ws2.pl', {
            parameters: { s: session.value, action: 'get_game_activity', game_type_id: game_type_id.value, force_skin_id: skin_id.value },
            frequency: 20,
            decay: 1.1,
            evalScripts: true
        });
    }
}

function set_locale(locale_id) {
    var session      = document.getElementById('global_session_param_value');
    var skin_id      = document.getElementById('global_skin_id');

    if (locale_id && session) {
        new Ajax.Request('/user_ws2.pl', {
            parameters: { s: session.value, action: 'set_locale', locale_id: locale_id, force_skin_id: skin_id.value },
            onSuccess: function(transport) {
                document.location.href = document.location.href;
            }
        });
    }
}

function get_infoboxitem_list_wide_small() {
    var container    = document.getElementById('wrapperRightAds');
    var session      = document.getElementById('global_session_param_value');
    var skin_id      = document.getElementById('global_skin_id');

    if (container && session) {
        new Ajax.PeriodicalUpdater('wrapperRightAds', '/user_ws2.pl', {
            parameters: { s: session.value, action: 'get_infoboxitem_list_wide_small', force_skin_id: skin_id.value },
            frequency: 200,
            decay: 1,
            evalScripts: true
        });
    }
}


