CONFMAN.importer = function(import_type) {
  
  var form = $('upload_form');
  var message_box = $$('.message-box').first();
  
  var enable_form = function() {
    $$('input[type=submit]').invoke('show');
    $$('.loader').invoke('hide');
    form.reset();
    return this;
  };
  
  var disable_form = function() {
    $$('input[type=submit]').invoke('hide');
    $$('.loader').invoke('show');
    return this;
  };
  
  var display_messages = function(messages) {
    messages.each(function(m) {
      message_box.insert(m+'<br />');
    });
    message_box.show();
    return this;
  };
  
  var reset_messages = function() {
    message_box.hide();
    message_box.update();
    return this;
  };
  
  form.observe('submit', function() {
    var timestamp = new Date().getTime();
    var frame = new Element('iframe', {'name': 'uploader'+timestamp, 'src': ''});
    var response;
    
    if (import_type === 'user' || import_type === 'reviewer') {
      form.down('input[type=hidden]').value = $('selected_role').value;
    }
    
    frame.setStyle({'display': 'none'});
    
    disable_form();
    reset_messages();
    form.insert({after: frame});
    frame.observe('load', function() {
        response = window.frames[frame.name].document.getElementsByTagName('body')[0].innerHTML.evalJSON();
        display_messages(response.messages);
        enable_form();
        setTimeout(function() { frame.remove(); }, 100);
    });
    form.writeAttribute({
      'action': 'import_handler.cfm', 
      'method': 'post',
      'enctype': 'multipart/form-data',
      'encoding': 'multipart/form-data',
      'target': frame.name
    });
    form.submit();
  });
  
};

