/**
  js.zebraResults
  ---------------
  Adds even and odd class names to search results so they can be zebra striped by CSS.
*/
js.zebraResults = function () {
  var i = 0;
  $each($$('#main .node'), function (n) {
    if (i%2 == 0)
      n.addClass('even');
    else
      n.addClass('odd');
    i++;
  });
}
/**
  js.allowDeselectLast
  ---------------
  If there is only one term selected, makes it a link to the search start page so that users aren't confused by being unable to deselect it.
*/
js.allowDeselectLast = function () {
  var p = $$('body')[0].id.substr(5);

  if (p == 'taxonomy') {
    var s = $$('#intro .selected');
    if (s.length == 1) {
      s = s[0];
      a = new Element('a', {href: '/explore'});
      a.addClass('selected');
      s.removeClass('selected');
      s.getParent().appendChild(a);
      a.appendChild(s);
    }
  }
}
/**
  js.arrangeAdvancedSearch
  ---------------
  1) Moves the search widgets up into the intro area.
  2) Adds tabs to switch between salary and hourly wage.
*/
js.arrangeAdvancedSearch = function () {
  var p = $$('body')[0].id.substr(5);

  if (p == 'search-placements')
    $$('#intro .wrap3')[0].appendChild($$('.view-search form')[0]);

  /* Create radios */
  var tabs = new Element('div', {id: 'pay-tabs'});
  var labelRate = new Element('label', {'for': 'pay-tabs-rate', 'text': 'Hourly rate'});
  var labelSalary = new Element('label', {'for': 'pay-tabs-salary', 'text': 'Salary'});
  var tabRate = new Element('input', {id: 'pay-tabs-rate', type: 'radio', name: 'pay-type', checked: 'checked'}).inject(labelRate, 'top');
  var tabSalary = new Element('input', {id: 'pay-tabs-salary', type: 'radio', name: 'pay-type'}).inject(labelSalary, 'top');
  // Add radios
  labelRate.inject(tabs);
  labelSalary.inject(tabs);
  tabs.inject($('edit-r-min-wrapper').getParent().getParent(), 'top');
  
  // Sort out units
  new Element('span', {text: '£'}).inject($('edit-r-min-wrapper'), 'top');
  new Element('span', {text: '£'}).inject($('edit-s-min-wrapper'), 'top');
  //$('edit-d-min-wrapper').getParent().getParent().getElements('.unit')[0].set('text', ' weeks').inject($('edit-d-max-wrapper'));
  
  tabRate.addEvent('click', js.switch2Rate);
  tabRate.addEvent('keypress', js.switch2Rate);
  tabSalary.addEvent('click', js.switch2Salary);
  tabSalary.addEvent('keypress', js.switch2Salary);

  // Hide salary initially
  js.switch2Rate({key:'return'});
  
  /*
    Arrange duration fields
  */
  var dWrap = new Element('div', {id: 'duration-wrapper'});
  var dMin = $('edit-d-wrapper');
  var dMax = $('edit-dm-wrapper');
  
  var dMinWrap = dMin.getParent().getParent().addClass('d-min-wrap');
  var dMaxWrap = dMax.getParent().getParent().addClass('d-max-wrap');
  var dMinLabel = dMinWrap.getChildren('label')[0].addClass('d-min-label');
  var dMaxLabel = dMaxWrap.getChildren('label')[0].addClass('d-max-label');
  
  dMinLabel.set('text', 'Placement lasts between');
  dMaxLabel.set('text', 'and');
  
  var dWrapWrap = dMin.getParent().getParent().getParent();
  var submitWrap = $$('#intro .form-submit')[0].getParent();

  dMaxWrap.inject(dWrap);
  dMinWrap.inject(dWrap, 'top');
  dMinLabel.inject(dMinWrap, 'before');
  dMaxLabel.inject(dMinWrap, 'after');
  new Element('span', {text: ' week(s)'}).inject(dMax, 'bottom');
  dWrap.inject(dWrapWrap);
  submitWrap.inject(dWrapWrap);
}

js.switch2Salary = function (event) {
  if (event.key && event.key != 'return') return;
  $('edit-r-min-wrapper').getParent().getParent().addClass('hidden');
  $('pay-tabs-rate').removeClass('current');
  $('edit-s-min-wrapper').getParent().getParent().removeClass('hidden');
  $('pay-tabs-salary').addClass('current');
  $('pay-tabs').inject($('edit-s-min-wrapper').getParent().getParent(), 'top');

  // Alter labels to make sense
  $('pay-tabs').getParent().getChildren('label')[0].set('text', 'is between');

  // Force de/selection of radios for IE
  $('pay-tabs-salary').set('checked', 'checked');
  $('pay-tabs-rate').erase('checked');
}

js.switch2Rate = function (event) {
  if (event.key && event.key != 'return') return;
  $('edit-s-min-wrapper').getParent().getParent().addClass('hidden');
  $('pay-tabs-salary').removeClass('current');
  $('edit-r-min-wrapper').getParent().getParent().removeClass('hidden');
  $('pay-tabs-rate').addClass('current');
  $('pay-tabs').inject($('edit-r-min-wrapper').getParent().getParent(), 'top');

  // Alter labels to make sense
  $('pay-tabs').getParent().getChildren('label')[0].set('text', 'is between');
  
  // Force de/selection of radios for IE
  $('pay-tabs-rate').set('checked', 'checked');
  $('pay-tabs-salary').erase('checked');
}


/* Add events */

window.addEvent('domready', js.zebraResults);
window.addEvent('domready', js.allowDeselectLast);
window.addEvent('domready', js.arrangeAdvancedSearch);

