// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults

function fireEvent(element,event){
    if (document.createEventObject){
        // dispatch for IE
        var evt = document.createEventObject();
        return element.fireEvent('on'+event,evt)
    }
    else{
        // dispatch for firefox + others
        var evt = document.createEvent("HTMLEvents");
        evt.initEvent(event, true, true ); // event type,bubbling,cancelable
        return !element.dispatchEvent(evt);
    }
}

function externalLinks() {
 $$("a[rel=external]").each(function(anchor) {
   anchor.target = "_blank";
 });
}

// Oculta todos los elementos del menú de búsqueda, si existen
function hide_all_search_menu_elements() {
  $$("ul.search_submenu").each(function(value, index) {
    value.hide();
  });
}

function search_menu_item_tabs() {
  select_elem = $('search_menu_item_item_type');
  if (select_elem) {
    select_elem.observe('change', function(value) {
      $$('div.search_menu_item_tab').each(function(value) {
        value.hide();
      });
      $('tab_'+this.value).show();
    });
    fireEvent(select_elem, 'change');
  }
}

// Hacemos que por defecto la duración de los efectos sea 0.5s en lugar de 1s.
Effect.DefaultOptions.duration = 0.5;

// Inicialización en cuanto está cargado el DOM
document.observe('dom:loaded', function(event) {
  externalLinks();
  hide_all_search_menu_elements();
  search_menu_item_tabs();
  if ($('tabs')) { new Fabtabs('tabs'); };
});

