try { _gat._getTracker("UA-2591396-1")._trackPageview() } catch(err) {}

Array.prototype.grep = function(re) {
  var out = []
  this.each(function (i) {
    if (i.match(re)) out.push(i)
  })
  return out
}

function _(key) { return Translations[key] }

/* ADD BEHAVIOURS HERE */

Element.behaviour(function() {
  this.getElements('input.labeled').addEvent('focus', function() {
    if (!this.defval || this.value == this.defval) {
      this.defval = this.value
      this.value = ''
    }
  }).addEvent('blur', function() {
    if (this.value == '') this.value = this.defval
  })

  this.getElements('form.confirm').addEvent('submit', function() {
    return confirm((this.title ? this.title+': ' : '')+'Are you sure?')
  })

  this.getElements('form.ajax').addEvent('submit', function() {
    new Request({
      url: this.get('action'),
      method: this.get('method'),
      evalResponse: true }).send(this)
    return false
  })

  this.getElements('a.ajax-delete').addEvent('click', function() {
    if (confirm(_('sure_delete'))) {
      new Request({
        url: this.get('href').replace(/\/delete.*$/, ''),
        method: 'delete',
        evalResponse: true }).
      send({
        data: {
          authenticity_token: auth_token }})
    }
    return false
  })

  this.getElements('p.hint a.hide').addEvent('click', function() {
    $$('p.hint').hide()
    return false
  })
  
  if (form = this.getElement('form[class$=news_item]')) {
    this.getElements('a.transient').addEvent('click', function(e) {
      form = document.getElement('form[class$=news_item]')
      tag_list = form.getElement('p#tag_list');
      tagArray = tag_list.get('html').split(', ')
      tag_input = form.getElement('input#news_item_tag_list')
      setTimeout(function() {
        if (div = document.getElement('div.transient').getParent()) {
          for (i = 0; i < tagArray.length; i++) {
            permalink = tagArray[i].trim().replace(/ /g, '_')
            if (el = div.getElement('input[id='+permalink+']')) {
              el.checked = true;
            }
          }
          button = div.getElement('button')
          button.addEvent('click', function (e) {
            tags = ''
            first = true
            div.getElements('input').each(function(cb) {
              if (cb.checked) {
                tags += first ? cb.get('name') : ', '+cb.get('name')
                first = false
              }
            })
            tag_list.set('html', tags)
            tag_input.set('value', tags)
            div.dispose()
          })
        }
      }, 500)
    })
  }
  
  if (document.getElement('.old-news-list')) {
    this.getElements('.pagination a').each(function(a) {
      a.addEvent('click', function (e) {
        new Request({
          url: a.href,
          method: 'get', 
          evalResponse: true}).send()
        
        e.stop()
      })
    })
  }
  
  /*
  this.getElements('div.em input[type=checkbox]').each(function (cb) {
    cb.setStyle('visibility', 'hidden')
    var pos = cb.getPosition(); var size = cb.getSize()
    new Element('div', {
      'class': 'fancy-checkbox',
      events: {
        click: function() {
          this.toggleClass('checked')
          cb.checked = this.hasClass('checked')
        }}}).injectAfter(cb)
  })
  */

  // Htabs
  var self = this
  this.getElements('ul.htabs').each(function (ul) {
    items = ul.getChildren()
    ul.getElements('li').addEvent('click', function() {
      items.removeClass('active')
      this.addClass('active')
      self.getElements('.links-url').setStyle('display', 'none')
      self.getElement('.links-url#'+this.get('id')+'-list').setStyle('display', 'block')
      return false
    })
    ul.getElement('.active').fireEvent('click')
  })

  this.getElements('button.now').addEvent('click', function() {
    this.getParent().getElement('input[type=text]').value = 'now'
  })
  this.getElements('button.clear').addEvent('click', function() {
    this.getParent().getElements('input[type=text]').set('value', '')
  })

  this.getElements('select.add-new').addEvent('change', function() {
    var n = this.getParent().getParent().getElement('.new')
    if (this.value == '' && $A(this.options)[this.selectedIndex].get('text') != '') {
      // Add new..
      n.show().getElements('input, select, textarea').each(function(i) { i.disabled = false })
    } else {
      n.hide().getElements('input, select, textarea').each(function(i) { i.disabled = true })
    }
  }).fireEvent('change')
})

/* DO NOT TOUCH THIS */

window.addEvent('domready', function() {
  auth_token = document.getElement('meta[name=AuthenticityToken]').content
  $(document.body).updated()
})
