// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults
var ProductImage = {
  
  open: function(id, width, height) {
    specs = 'location=no, menubar=no, resizable=no, width=' + (width + 15) + ', height=' + (height + 15);
    window.open('/image/raw/' + id, 'product_image', specs)
  }
  
};

var tickerItems;
var currentItem;

function add_event_related_audio(audio_index) {
  if (audio_index > -1) {
    audio_option = $('audio').options[audio_index];
    audio_id = audio_option.value;
    audio_name = audio_option.innerHTML;
    new_audio = "<li id='audio" + audio_id + "'>" + audio_name + "<input id='audio_name" + audio_id + "' type='hidden' value='" + audio_name + "'/><input type='hidden' name='event[audio_ids][]' value='" + audio_id + "'/> (<a href='#' onclick='remove_related_audio(" + audio_id + "); return false;'>Remove</a>)</li>";
    $('related_audio').innerHTML += new_audio;
    new_options = [];
    for (i = 0; i < $('audio').length; i++) {
      if ($('audio').options[i].value != audio_id) {
        new_options.push($('audio').options[i]);
      }
    }
    $('audio').length = 0;
    if (new_options.length == 0) {
      $('add_audio_button').disabled = true;
      $('audio').innerHTML = "<option value='-1'>No more audio</option>";
    } else {
      for (i = 0; i < new_options.length; i++) {
        try {
          $('audio').add(new_options[i], null);
        }
        catch (e) {
          $('audio').add(new_options[i]);
        }
      }
    }
  }
}


function add_event_related_document(doc_index) {
  if (doc_index > -1) {
    doc_option = $('docs').options[doc_index];
    doc_id = doc_option.value;
    doc_name = doc_option.innerHTML;
    new_doc = "<li id='doc" + doc_id + "'>" + doc_name + "<input id='doc_name" + doc_id + "' type='hidden' value='" + doc_name + "'/><input type='hidden' name='event[doc_ids][]' value='" + doc_id + "'/> (<a href='#' onclick='remove_related_document(" + doc_id + "); return false;'>Remove</a>)</li>";
    $('related_docs').innerHTML += new_doc;
    new_options = [];
    for (i = 0; i < $('docs').length; i++) {
      if ($('docs').options[i].value != doc_id) {
        new_options.push($('docs').options[i]);
      }
    }
    $('docs').length = 0;
    if (new_options.length == 0) {
      $('add_document_button').disabled = true;
      $('docs').innerHTML = "<option value='-1'>No more document</option>";
    } else {
      for (i = 0; i < new_options.length; i++) {
        try {
          $('docs').add(new_options[i], null);
        }
        catch (e) {
          $('docs').add(new_options[i]);
        }
      }
    }
  }
}

function add_related_document(doc_index) {
  if (doc_index > -1) {
    doc_option = $('docs').options[doc_index];
    doc_id = doc_option.value;
    doc_name = doc_option.innerHTML;
    new_doc = "<li id='doc" + doc_id + "'>" + doc_name + "<input id='doc_name" + doc_id + "' type='hidden' value='" +doc_name + "'/><input type='hidden' name='page[doc_ids][]' value='" + doc_id + "'/> (<a href='#' onclick='remove_related_document(" + doc_id + "); return false;'>Remove</a>)</li>";
    $('related_docs').innerHTML += new_doc;
    new_options = [];
    for (i = 0; i < $('docs').length; i++) {
      if ($('docs').options[i].value != doc_id) {
        new_options.push($('docs').options[i]);
      }
    }
    $('docs').length = 0;
    if (new_options.length == 0) {
      $('add_document_button').disabled = true;
      $('docs').innerHTML = "<option value='-1'>No more documents</option>";
    } else {
      for (i = 0; i < new_options.length; i++) {
        try {
          $('docs').add(new_options[i], null);
        }
        catch (e) {
          $('docs').add(new_options[i]);
        }
      }
    }
  }
}

function clearImage() {
  $('pageimagespan').innerHTML = '';
  $('page_imagefile').value = '';
  $('page_imagename').value = '';
  $('clearBtn').disabled = true;
}

function clearEventImage() {
  $('eventimagespan').innerHTML = '';
  $('event_imagefile').value = '';
  $('event_imagename').value = '';
  $('clearBtn').disabled = true;
}

function fadeTicker(item) {
  new Effect.Fade(item, {duration: .2, delay: 3});
}

function next_product_thumbnail() {
  var i = 0;
  do {
    thumbnail = $('thumbnail' + i);
    if (thumbnail.style.display != 'none') {
      thumbnail.style.display = 'none';
      $('thumbnail' + (i + 1)).style.display = 'inline';
      $('previousLink').innerHTML = "<a href='#' onclick='previous_product_thumbnail();'>&lt; Previous</a>";
      if (!$('thumbnail' + (i + 2))) {
        $('nextLink').innerHTML = 'Next &gt;'
      }
      done =true;
    }
    i++;
  } while (!done);
}

function openImageManager() {
  height = 600;
  width = 800;
  window.open('/javascripts/imagemanager/popup.htm', '_blank', 'width = ' + width + ', height = ' + height + ', scrollbars=yes');
}

function previous_product_thumbnail() {
  var i = 1;
  do {
    thumbnail = $('thumbnail' + i);
    if (thumbnail.style.display != 'none') {
      thumbnail.style.display = 'none';
      $('thumbnail' + (i - 1)).style.display = 'inline';
      $('nextLink').innerHTML = "<a href='#' onclick='next_product_thumbnail();'>Next &gt;</a>";
      if (!$(thumbnail + (i - 2))) {
        $('previousLink').innerHTML = '&lt; Previous';
      }
      done = true;
    }
    i++;
  } while (!done);
}

function remove_product_image(id) {
  $('product_images_thumbnail' + id).remove();
}

function remove_related_document(doc_id) {
  doc_name = $('doc_name' + doc_id).value;
  doc_option = document.createElement('option');
  doc_option.value = doc_id;
  doc_option.text = doc_name
  $('add_document_button').disabled = false;
  if ($('docs').length == 1 && $('docs').options[0].value == -1) {
    $('docs').remove(0);
  }
  try {
    $('docs').add(doc_option, null);
  }
  catch (e) {
    $('docs').add(doc_option);
  }
  Element.remove($('doc' + doc_id));
}

function remove_related_audio(audio_id) {
  audio_name = $('audio_name' + audio_id).value;
  audio_option = document.createElement('option');
  audio_option.value = audio_id;
  audio_option.text = audio_name
  $('add_audio_button').disabled = false;
  if ($('audio').length == 1 && $('audio').options[0].value == -1) {
    $('audio').remove(0);
  }
  try {
    $('audio').add(audio_option, null);
  }
  catch (e) {
    $('audio').add(audio_option);
  }
  Element.remove($('audio' + audio_id));
}

function showTicker(item) {
  new Effect.Appear(item, {duration: .2});
  //new Effect.toggle(item, 'slide');
}

function startTicker() {
  tickerItems = document.getElementsByClassName('newsTickerItem');
  currentItem = 0;
  if (tickerItems.length > 0) {
    showTicker(tickerItems[currentItem]);
    fadeTicker(tickerItems[currentItem]);
    currentItem++;
    new PeriodicalExecuter(function () {
        if (currentItem >= tickerItems.length)
          currentItem = 1;
        showTicker(tickerItems[currentItem]);
        fadeTicker(tickerItems[currentItem]);
        currentItem++;
	
      },
    3.5);
  }
}

function switch_tab(tab_name) {
  $(current_tab + '_tab').className = 'inactive';
  $(current_tab + '_tab_content').className = 'inactive';
  $(tab_name + '_tab').className = 'active';
  $(tab_name + '_tab_content').className = 'active';
  current_tab = tab_name;
}

function toggle_expire_on(val) {
  if (val) {
    $('expiryField').style.display = 'block';
  } else {
    $('expiryField').style.display = 'none';
  }
}

function updateCommentForm(val) {
  if (val == 'login') {
    $('commentGuestForm').style.display = 'none';
    $('commentLoginForm').style.display = 'block';
  } else if (val == 'guest') {
    $('commentGuestForm').style.display = 'block';
    $('commentLoginForm').style.display = 'none';
  }
}

function updateAll() {
  var category = $F('category');
  window.location = '/calendar/all/' + category;
}

function updateDay() {
  var year = document.getElementById('year');
  var month = $('month');
  var day = $('day');
  var category = $('category');
  window.location = "/calendar/day/" + year.value + '/' + month.value + '/' + day.value + '/' + category.value;
}

function updateMonth() {
  var year = document.getElementById('year');
  var month = document.getElementById('month');
  var year = $('year');
  var category = document.getElementById('category');
  window.location = "/calendar/month/" + year.value + '/' + month.value + '/' + category.value;
}

function updatePrice(el) {
  optvalprice = (Number($('price[' + el.value + ']').value));
  switch (el.type) {
    case 'checkbox':
    case 'radio':
      if (!el.checked) {
        optvalprice = -optvalprice;
      }
    break;
  }
  $('total_price').innerHTML = (Number($('total_price').innerHTML) + optvalprice).toFixed(2);
}

function updateWeek() {
  var year = $('year');
  var week = $('week');
  var category = $('category');
  window.location = "/calendar/week/" + year.value + '/' + week.value + '/' + category.value;
}

function updateYear() {
  var year = $('year');
  var category = $('category');
  window.location = "/calendar/year/" + year.value + '/' + category.value;
}

var current_tab = 'news';

var QuickShop = {

  clearForm: function () {
    $('product_code').value = '';
    $('description_field').innerHTML = '';
    $('quantity').value = '1';
    $('add_to_basket_button').disabled = true;
  }

}

var EventsForm = {
  
  updateStartDateDays: function() {
    var dayValue = $F('event_start_date_3i');
    var monthValue = $F('event_start_date_2i');
    var yearValue = $F('event_start_date_1i');
    var daysInMonth = this.daysInMonth(monthValue, yearValue);
    var daysBox = $('event_start_date_3i');
    this.updateDaySelect(daysBox, daysInMonth);
  },
  
  updateDaySelect: function(daySelect, daysInMonth) {
    if (daysInMonth < daySelect.length) {
      for (i = daySelect.length; i > daysInMonth; i--) {
        daySelect.remove(i - 1);      
      }
    } else if (daysInMonth > daySelect.length) {
      for (i = daySelect.length + 1; i <= daysInMonth; i++) {
        var option = document.createElement('option');
        option.text = i;
        option.value = i;
        try {
          daySelect.add(option, null);
        }
        catch(ex) {
          daySelect.add(option);
        }
      }
    }
  },
  
  updateEndDateDays: function() {
    var dayValue = $F('event_end_date_3i');
    var monthValue = $F('event_end_date_2i');
    var yearValue = $F('event_end_date_1i');
    var daysBox = $('event_end_date_3i');
    var daysInMonth = this.daysInMonth(monthValue, yearValue);
    this.updateDaySelect(daysBox, daysInMonth);
  },
  
  optionsForDate: function(day, month, year) {
    alert("day = " + day);
    alert("month = " + month);
    alert("year = " + year);
    var daysInMonth = this.daysInMonth(month, year)
    if (day > daysInMonth) {
      day = 1;
    }
    var out = '';
    for (i = 1; i <= daysInMonth; i++) {
      out += "<option value='" + i + "'";
      if (i == day) {
        out += " selected='selected'";
      }
      out += ">" + i + "</option>";
    }
    alert(out);
    return out;
  },
  
  daysInMonth: function(month, year) {
    var dd = new Date(year, month, 0);
    return dd.getDate();
  }
  
};