/*
 * Timeline related JS functions.
 *
 * $Id: timeline.js,v 1.8 2008-07-15 20:44:59 fd2 Exp $
 */

//------------------------------------------------------------------------------
// Lightbox
//------------------------------------------------------------------------------
function showLightbox()
{
	toggle(['light', 'fade'], true);
}

function hideLightbox()
{
	toggle(['light', 'fade'], false);
}


function showWindow(id)
{
	toggle([id, 'fade'], true);
}

function hideWindow(id)
{
	toggle([id, 'fade'], false);
}


function setupCalendar(inputId, buttonId, parentId)
{
  Calendar.setup(
      {
        inputField  : inputId,
        ifFormat    : "%Y-%m-%d %H:%M",    // the date format
        button      : buttonId,
        showsTime   : true,
        parent      : parentId
      }
  );
}

/*
 * Timeline addition functions.
 */
var watched_error = false;

function showDetailsForm() {
  toggle($('timeline_advanced_1'), true);//.style.display='table-row';
  toggle($('timeline_advanced_2'), true);//.style.display='table-row';
  toggle($('timeline_advanced_3'), true);//.style.display='table-row';
  toggle($('timeline_advanced_4'), true);//.style.display='table-row';
  toggle($('timeline_advanced_5'), true);//.style.display='table-row';
  toggle($('timeline_details_btn'), false);//.style.display='none';
}

function resetTimeline() {
  toggle($('timeline_advanced_1'), false);
  toggle($('timeline_advanced_2'), false);
  toggle($('timeline_advanced_3'), false);
  toggle($('timeline_advanced_4'), false);
  toggle($('timeline_advanced_5'), false);
  toggle($('timeline_details_btn'), true);
  toggle($('timeline_form'), false);
  $('timeline_form').reset();
}

function showHidef(visible, force) {
  __showHidef('media_hidef_row', visible, force);
}

function showHidefDiv(visible, force) {
  __showHidef('media_hidef_div', visible, force);
}

function __showHidef(id, visible, force) {
  if (visible) {
    toggle(id, visible);
    if (force == null) {
      $('media_hidef').disabled = false;
    } else {
      $('media_hidef').checked = true;
      $('media_hidef').disabled = 'disabled';
    }
  } else {
    toggle(id, false);
    $('media_hidef').checked = false;
    $('media_hidef').disabled = false;
  }
}

function submitTimelineForm(form) {
  var form = $('timeline_form');
  if (!form.watched.value.match(/[\d]{4}\-[\d]{2}\-[\d]{2}( [\d]{2}([\d]{2}([\d]{2})?)? )?/)) {
    form.watched.focus();
    if (!watched_error) {
      new Effect.BlindDown('timeline_watched_error', {duration: 0.20});
      watched_error = true;
      setTimeout('watched_error = false; new Effect.BlindUp(\'timeline_watched_error\', {duration: 0.2});', 2000);
    }
  } else {
    $('browser_date').value=getBrowserDate();
    $('timeline_form').submit();
  }
}

function today() {
  __populateWatched(new Date());
}

function yesterday() {
  var d = new Date();
  d.setTime(d.getTime() - 1000 * 60 * 60 * 24);
  __populateWatched(d);
}

function __populateWatched(date) {
  var month = date.getMonth() + 1;
  if (month < 10) month = '0' + month;
  var day = date.getDate();
  if (day < 10) day = '0' + day;
  var str = date.getFullYear() + '-' + month + '-' + day + ' ';
  $('timeline_form').watched.value = str;
  $('timeline_form').watched.focus();
}

function highlightUserTimeline(entry, on) {
  highlightTimeline(entry.day, entry.weekend, on);
}

function highlightTimeline(day, weekend, on) {

  var toprow = $('timeline_top');
  var midrow = $('timeline_middle');
  var botrow = $('timeline_bottom');

  findTdAndChangeBg(toprow, day, (on) ? 'timeline_g_top_mouseover.png' : 'timeline_g_top' + ((weekend) ? '_weekend' : '') + '.png');
  findTdAndChangeBg(midrow, day, (on) ? 'timeline_g_middle_mouseover.png' : 'timeline_g_middle' + ((weekend) ? '_weekend' : '') + '.png');
  findTdAndChangeBg(botrow, day, (on) ? 'timeline_g_bottom_mouseover.png' : 'timeline_g_bottom' + ((weekend) ? '_weekend' : '') + '.png');

}

function highlightCelebrityTimeline(entry, on) {
  var td = $('td_' + entry.movie.year);
  if (td) {
    var bg = (on) ? 'timeline_actor_mouseover.png' : 'timeline_actor.png';
    td.style.backgroundImage = "url('/black/pics/" + bg + "')";
  }
}



function findTdAndChangeBg(tr, day, bg) {
  var tdNr = 1;
  for (var i = 0; i < tr.childNodes.length; i = i + 1) {
    var childNode = tr.childNodes[i];
    if (childNode.tagName == 'TD') {
      if (day == tdNr) {
        if (typeof imgurl=='undefined') childNode.style.backgroundImage = 'url(/pictures/' + bg + ')';
        else  childNode.style.backgroundImage = 'url('+imgurl+'/' + bg + ')';
        return;
      }
      tdNr = tdNr + 1;
    }
  }
}

function confirmEntryRemoval() {
  __toggleEntryRemoval(true);
}
function cancelEntryRemoval() {
  __toggleEntryRemoval(false);
}
function __toggleEntryRemoval(confirm) {
  toggle('entrymp_remove', !confirm);
  toggle('entrymp_remove_confirm', confirm);
}

function editEntry() {
  toggle('edit_entry');
  edit = $('edit_entry').style.display != 'none';
}

function saveEntry() {
  var form = $('edit_entry_form');
  if (!form.watched.value.match(/[\d]{4}\-[\d]{2}\-[\d]{2}( [\d]{2}([\d]{2}([\d]{2})?)? )?/)) {
    toggle('watched_error', true);
    form.watched.focus();
  } else {
    form.submit();
  }
}

function initialEntryMpOn() {
  var params = getAjaxParams();
  var eid = params['show'];
  if (eid != null && entries[eid] != null) {
    entryMpOn($('e' + eid), eid);
  }
}