// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults

function submit_search_form(e) {
  loc = document.location
  params = loc.search.toQueryParams()
  params.q = $F('search_q')
  document.location = loc.protocol + '//' + loc.host + loc.pathname + '?' + Object.toQueryString(params)
  return false;
}
 
function upload_with_progress(frm) {
  Element.toggle('upload_field');
  Element.toggle('upload_spinner');
  frm.submit();
}
 
function toggle_room_selector() {
  $('room_link').style.display = 'none';
  $('room_selector').style.display = 'inline';
}
 
function enter_room(sel) {
  if(sel.value != '') {
    window.location = sel.value;  
  }
}
 
// from http://gist.github.com/2663
// based on implementation from rails http://rails-doc.org/rails/ActionView/Helpers/DateHelper/distance_of_time_in_words
// explanation at http://blog.peelmeagrape.net/2008/7/26/time-ago-in-words-javascript-part-1
// unittests at http://blog.peelmeagrape.net/assets/2008/7/26/distanceOfTimeInWords.html
function distanceOfTimeInWords(fromTime, toTime, includeSeconds) {
  var fromSeconds = fromTime.getTime();
  var toSeconds = toTime.getTime();
  var distanceInSeconds = Math.round(Math.abs(fromSeconds - toSeconds) / 1000)
  var distanceInMinutes = Math.round(distanceInSeconds / 60)
  if (distanceInMinutes <= 1) {
    if (!includeSeconds)
      return (distanceInMinutes == 0) ? '< 1 minute' : '1 minute'
    if (distanceInSeconds < 5)
      return '< 5 seconds'
    if (distanceInSeconds < 10)
      return '< 10 seconds'
    if (distanceInSeconds < 20)
      return '< 20 seconds'
    if (distanceInSeconds < 40)
      return 'half a minute'
    if (distanceInSeconds < 60)
      return '< 1 minute'
    return '1 minute'
  }
  if (distanceInMinutes < 45)
    return distanceInMinutes + ' minutes'
  if (distanceInMinutes < 90)
    return "1 hour"
  if (distanceInMinutes < 1440)
    return "" + (Math.round(distanceInMinutes / 60)) + ' hours'
  if (distanceInMinutes < 2880)
    return "1 day"
  if (distanceInMinutes < 43200)
    return (Math.round(distanceInMinutes / 1440)) + ' days'
  if (distanceInMinutes < 86400)
    return "1 month"
  if (distanceInMinutes < 525600)
    return (Math.round(distanceInMinutes / 43200)) + ' months'
  if (distanceInMinutes < 1051200)
    return "1 year"
  return "" + (Math.round(distanceInMinutes / 525600)) + ' years'
}