var toggle_edit_link_possible = true;

function toggle_edit_link(on, show_container, edit_container) {
  if (toggle_edit_link_possible == false) return
  
  if (on) {
    if($(show_container)) $(show_container).style.background='url(/images/hover-gradient.gif) left repeat-y'
    Element.showIf(edit_container, edit_container + "2")
  } else {
    if($(show_container)) $(show_container).style.background='none'
    Element.hideIf(edit_container, edit_container + "2")
  }
}

Element.empty = function(id) {
  return $(id).innerHTML.match(/^\s*$/);
}

Element.visible = function(element) {
  return ($(element).style.display != "none")
}

Element.showAll = function(array) {
  Element.show.apply(Element.show, array)
}

Element.hideAll = function(array) {
  Element.hide.apply(Element.hide, array)
}

Element.showIf = function() {
  for(var i = 0; i < arguments.length; i++ ) {
    var element = $(arguments[i])
    if(element) Element.show(element)
  }
}

Element.hideIf = function() {
  for(var i = 0; i < arguments.length; i++ ) {
    var element = $(arguments[i])
    if(element) Element.hide(element)
  }
}

Element.previousSibling = function(anchor, type) {
  sib = anchor.previousSibling
  while(sib) {
    if(sib.tagName && sib.tagName == type) break
    sib = sib.previousSibling
  }
  return sib
}

Element.nextSibling = function(anchor, type) {
  sib = anchor.nextSibling
  while(sib) {
    if(sib.tagName && sib.tagName == type) break
    sib = sib.nextSibling
  }
  return sib
}

function scrollWindowTo(id) {
  element = $(id)
  x = ( element.x ? element.x : element.offsetLeft )
  y = ( element.y ? element.y : element.offsetTop )
  window.scrollTo(x,y)
}

Element.activate = function(element, activate) {
  element = $(element)

  var inactive_text = element['bp:inactive_text']
  if(!inactive_text) {
    element['bp:inactive_text'] = element.innerHTML
    inactive_text = element.innerHTML
  }

  var active_text = element.getAttribute('bp:active_text') || element.innerHTML
  var active_class = element.getAttribute('bp:active_class') || element.className

  if(!activate) {
    element.innerHTML = inactive_text
    if(active_class) Element.removeClassName(element, active_class)
    element['bp:active'] = false
  } else {
    element.innerHTML = active_text
    if(active_class) Element.addClassName(element, active_class)
    element['bp:active'] = true
  }
}