// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// name/control.js
//
// copyright (c) 2008-2009 drow <drow@bin.sh>
// all rights reserved.

// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// configuration

var form = 'name_form';
var rpc_url = '/name/rpc.cgi';

// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// initialize form

function init_form () {
  client_form(form);

  if (! init_type(form)) {
    var form_elem = $(form).elements;
    var cookie = get_cookies();
      if (value = cookie['name.type']) setv(form_elem['type'],value);
  }
  type_reaction(); get_name();
}
function type_reaction () {
  var form_elem = $(form).elements;
  var type_sel = form_elem['type'];
  var type = selv(type_sel);

  for (i = 0; i < type_sel.options.length; i++) {
    var id = type_sel.options[i].value;
    if ($(id)) { if (id == type) { $(id).show() } else { $(id).hide() } }
  }
}

// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// set field

function set_field (field) {
  field_cookie('name',field); get_name();
}
function set_type (field) {
  type_reaction(); set_field(field);
}

// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// get random name

function get_name () {
  var form_elem = $(form).elements;
  var type = selv(form_elem['type']);
    if (form_elem[type]) type = selv(form_elem[type]);
    if (! type) return rpc_error('Invalid name type');

  var query = { 'type': type, 'n': form_elem['list'].rows };
  var opts = { 'method': 'get', 'parameters': query,
    'onSuccess': function (req) { got_name(req.responseText); },
    'onFailure': function (req) { rpc_error(req.statusText); },
    'onException': function (req,err) { rpc_error('System Error'); } };

  new Ajax.Request(rpc_url,opts);
  form_elem['list'].value = 'Working...';
}
function got_name (text) {
  var form_elem = $(form).elements;
  form_elem['list'].value = text;
}
function rpc_error (string) {
  var form_elem = $(form).elements;
  form_elem['list'].value = string;
}

// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// showtime

document.observe('dom:loaded',init_form);

// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

