function get(id) {
	var e;
  if(document.getElementById) e=document.getElementById(id);
  else if(document.all) e=document.all[id];
  return e;
}

function createBookmark(title, url) {
	if(!title) title=document.title;
	if(!url) url=window.location;
	if (document.all)
		window.external.AddFavorite(url, title);
	else if (window.sidebar)
		window.sidebar.addPanel(title, url, "");
	return false;
}

// Search panel
function onSearchClick(evt) {
  if (!evt) var evt = window.event;    
  window.location = _searchPageUrl + "?q=" + $(_searchQuery).value;
  Event.stop(evt);
  return false;
}

function onSearchKeyDown(evt) {
  if (!evt) var evt = window.event;  

  if(evt.keyCode == Event.KEY_RETURN) {
    evt.keyCode="32"
    window.location = _searchPageUrl + "?q=" + $(_searchQuery).value;
  }
}

function onNationalAssocClick(evt) {
  if (!evt) var evt = window.event;
  window.location = $(_nationalAssocList).value;
  Event.stop(evt);
  return false;
}


// Cookies
var Cookie = {
  create: function(name, value, days) {
    if (days) {
      var date = new Date();
      date.setTime(date.getTime()+(days*24*60*60*1000));
      var expires = "; expires="+date.toGMTString();
    }
    else 
      expires = "";
    document.cookie = name+"="+value+expires+"; path=/";
  },

  read: function(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++) {
      var c = ca[i];
      while (c.charAt(0)==' ') c = c.substring(1,c.length);
      if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
    }
    return null;
  }
}


// Acronyms and definitions
var cancelHideDef;
var defContainer;
var defFixer;

function prepareAcronyms() {    
  var acs = $A(document.getElementsByTagName('acronym'));    
  if(acs.length > 0) { 
  
    new Insertion.Bottom(document.body, '<div id="defcontainer" style="display:none;z-index:999"><div id="deftitle"></div><div id="definner"></div></div>');
    new Insertion.Bottom(document.body, '<iframe id="defFixer" src="about:blank" scrolling="no" frameborder="0" style="position:absolute;display:none;z-index:998"></iframe>');
    
    defContainer = $('defcontainer');
    defFixer = $('defFixer');
    
    Event.observe(defContainer, 'mouseout', hideDef, true);
    Event.observe(defContainer, 'mouseover', function(e) { cancelHideDef = true; }, true);
    
    acs.each(     
      function(e) {         
        if(e.title != '') {
          e.setAttribute('abbrtitle', e.title);
          e.title = '';      
        }     
        Event.observe(e, 'mouseover', showDef, true);        
      });
  }
}
  
function showDef(e) {
  if(Event && Event.element) {
    if(elem = Event.element(e)) {         
      pos = Position.cumulativeOffset(elem);          
      Element.update('deftitle', elem.innerHTML.replace(/\w+/g, function(a){return a.charAt(0).toUpperCase() + a.substr(1).toLowerCase();}));    
      var abbrtitle = elem.getAttribute('abbrtitle');    
      if(abbrtitle == null) return;      
      Element.update('definner', abbrtitle.replace(/\\n/g, '<br /><br />'));
      Element.setStyle(defContainer, {left: (pos[0] + 5) + 'px', top: (pos[1] + elem.offsetHeight + 5) + 'px'});      
      Event.observe(elem, 'mouseout', hideDef, true);            
      Event.stop(e);
      
      
      cancelHideDef = true;          
      window.setTimeout('showDef2()', 500);
    }
  }
}    
function showDef2() {
  Element.show(defContainer);  
  $('definner').clientHeight > 190 ? $('definner').style.height = '190px' : $('definner').style.height = 'auto' ;  
  Position.clone(defContainer, defFixer);
  Element.show(defFixer);  
}
function hideDef(e) {
  cancelHideDef = false;
  setTimeout('hideDef2()', 1000);
}
function hideDef2(e) {  
  if(!cancelHideDef) {   
    Element.hide(defContainer);       
    Element.hide(defFixer);       
  }
}  

// optional precise footer positioning
function posFooter(e) {
  var n = $('navigation');
  var c = $('content');
  var p = $('panels');
  var f = $('footer');
  var y = 0;
  if(c) y = Position.cumulativeOffset(c)[1] + c.offsetHeight; 
  if(n) y = Math.max(y, Position.cumulativeOffset(n)[1] + n.offsetHeight);
  if(p) y = Math.max(y, Position.cumulativeOffset(p)[1] + p.offsetHeight);    
  f.style.marginTop = (y - Position.cumulativeOffset(f)[1]) + 30 +'px';      
}

if(typeof(Event) != 'undefined' && Event.observe) {
  Event.observe(window, 'load', prepareAcronyms, true);
  Event.observe(window, 'load', posFooter, true);  
}

function toggleFS(id) {
  var fs = $(id);
  if(fs) {
    if(Element.hasClassName(fs, 'collapsed')) {
      Element.removeClassName(fs, 'collapsed');      
      Element.addClassName(fs, 'expanded');      
    }
    else {
      Element.removeClassName(fs, 'expanded');      
      Element.addClassName(fs, 'collapsed');      
    }
    return false;
  }
}


