var Flash = {
  close : function(el) {
    $(el).hide();
  }
};


var Aar = {
  closeFacebox : function() {
    if($('facebox')) new Effect.Fade('facebox', {duration: .3});
  }
}


/**
 * Functions for Brix setup wizard.
 */
var BrixWizard = {
  reboot : function() {
    new Ajax.Request('/setup/reboot', {
      method: 'get'
    });
  },
  
  checkConfig : function() {
    new Ajax.Request('/setup/check_config', {
      method: 'get'
    });
  }
};


/**
 * Functions for Brix search.
 */
var BrixSearch = {
  /**
   * Search box blured.
   */
  onBlur : function(el) {
    el = $(el);
    var prompt = el.getAttribute('data-prompt');
    if($F(el) == '') {
      el.value = prompt;
      el.up('form').addClassName('prompt');
      el.up('form').addClassName('empty');
    } else {
      el.up('form').removeClassName('prompt');
      el.up('form').removeClassName('empty');
    }
  },
    
  /**
   * Search box focused.
   */
  onFocus : function(el) {
    el = $(el);
    var prompt = el.getAttribute('data-prompt');
    if($F(el) == prompt) {
      el.value = '';
      el.up('form').removeClassName('prompt');
      el.up('form').addClassName('empty');
    }
  },
    
  /**
   * Search query changes.
   */
  onKeyUp : function(el) {
    if($F(el) == '') {
      el.up('form').addClassName('empty')
    } else {
      el.up('form').removeClassName('empty')
    }
  },
    
  /**
   * Validate form.
   */
  onSubmit : function(form) {
    var el = form.down('input.form-text');
    var prompt = el.getAttribute('data-prompt');
    return !($F(el) == '' || $F(el).toLowerCase() == prompt.toLowerCase());
  }
};


/**
 *
 */
var DynamicFormHelp = {
  /**
   *
   */
  blur : function(el) {
    var activeElement = $(document.activeElement);
    var container = el.up('.form-item');
    var help = container.down('.help');
    var prompt = el.getAttribute('data-prompt');
        
    if(container) container.removeClassName('focused-form-item');
    if(help) {
      if(activeElement.up('.help') != help) {
        help.hide();
      }
    }
    if(prompt) {
      if($F(el) == '') {
        el.value = this.prompt;
        el.addClassName('prompt');
      } else {
        el.removeClassName('prompt');
      }
    }
  },
  
  /**
   *
   */
  focus : function(el) {
    el.up('form').select('.help').each(function(h) {
      if(h.visible()) {
        DynamicFormHelp.blur(h.up('.form-item').down('.form-field'));
      }
    });

    var container = el.up('.form-item');
    var help = container.down('.help');
    var prompt = el.getAttribute('data-prompt');
    
    if(container) container.addClassName('focused-form-item');
    if(help) help.show();
    if(prompt) {
      if($F(el) == prompt) {
        el.value = '';
        el.removeClassName('prompt');
      }
    }    
  }
}


/**
 *
 */
var FormPopup = {
  cleanup : function(from, text, value) {
    if($('facebox')) new Effect.Fade('facebox', {duration: .3});
    if(from) {
      var option = new Element('option', {value: value}).update(text);
      $(from).insert(option);
      $(from).setValue(value);
    }
  }
}
