function enableTheaterMode () {
  $('#theaterBlindsTop').fadeIn(800);
  $('#theaterBlindsBottom').fadeIn(800);
  setCookie('theaterMode', 'on', 1);
}

function disableTheaterMode () {
  $('#theaterBlindsTop').fadeOut(500);
  $('#theaterBlindsBottom').fadeOut(500);
  setCookie('theaterMode', 'off', 1);
}

function catchTabLoads () {
  $('#loadSpinner').hide();
  $('a.tabLoader').click(function() {
                          $('#loadSpinner').show();
                          $(this).parents('div.tabLoader').load($(this).attr('href'), null,
                                                                function() {
                                                                    $('#loadSpinner').hide();
                                                                    catchTabLoads();
                                                                });
    return false;
  });
}

function tabLoad (linkObj, url, container) {
  var container = container || 'div.tabLoader';

  $('#loadSpinner').show();
  $(linkObj).parents(container).load(url, null, function() { catchTabLoads(); });
}

function pageLoad(linkObj, url, container) {
  var container = container || '.pageResponse';
  
  $('#loadSpinner').show();
  $(linkObj).parents(container).children('ul').fadeOut();
  $(linkObj).parents(container).load(url, null, function() {
                                                  $(this).children('ul').fadeIn();
                                                  catchTabLoads();
                                                });
  return false;
}

function setCookie (name, value, daysToLive) {
  if (daysToLive) {
    var date = new Date();
    date.setTime(date.getTime()+(daysToLive*24*60*60*1000));
    var expires = '; expires=' + date.toGMTString();
  }
  else {
    var expires = '';
  }
  
  return document.cookie = name + '=' + value + expires + '; path=/';
}

function toggleShown (domId) {
  if ($('#'+domId).is(':visible')) {
    $('#'+domId).hide();
  }
  else {
    $('#'+domId).show();
  }
}

function qualitySwitch (size) {
  var daysToLive = 365;
  
  if (size == 'hd') {
    return setCookie('rev3_flvsize', 'hd', daysToLive);
  } else if (size == 'high') {
    return setCookie('rev3_flvsize', 'high', daysToLive);
  } else if (size == 'low') {
    return setCookie('rev3_flvsize', 'low', daysToLive);
  } else {
    return false;
  }
}

function toggleEnabled (domId) {
  var domEl = $('#'+domId);
  
  if (domEl.attr('disabled')) {
    domEl.removeAttr('disabled');
    domEl.focus();
  }
  else {
    domEl.attr('disabled', 'disabled');
  }
}

function getPlayer (num) {
  var num = num || 0;
  
  if ($.browser.msie) {
    return $('.rev3PlayerObject').get(num);
  }
  else {
    return $('.rev3PlayerEmbed').get(num);
  }
}

function playerJump (timecode) {
  var playerEl = getPlayer();
  
  if (playerEl != undefined) {
    playerEl.jump(timecode);
  }
}

 function flashDebug(msg) {
	var debugDiv = $('#flashDebug');
	if (debugDiv.get(0) != undefined) {
		debugDiv.append('<p>' + msg + '</p>');
	} else {
		$(document).ready(function() { 
			$('#flashDebug').append('<p>' + msg + '</p>');
		});
	}
}

function getURLJumpPoint () {
  var loc = window.location.href;
  var seekLoc = loc.indexOf('#seek');
  var jumpTime = 0;
  if (seekLoc > 0) {
    jumpTime = loc.substr(seekLoc).replace('#seek=', '');
  }
  
  var startTime = null;
  var endTime = null;

  if (jumpTime.indexOf(':') > 0) {
    var jumpArray = jumpTime.split(':');
    startTime = parseInt(jumpArray[0]);
    endTime = parseInt(jumpArray[1]);
  }
  else {
    startTime = parseInt(jumpTime);
  }
  
  if (startTime >= 0) {
    var playerEl = getPlayer();

    if (playerEl != undefined) {
      if (endTime > startTime) {
        playerEl.jumpSegment(startTime, endTime);
      }
      else if (startTime > 0) {
        playerEl.jump(startTime);
      }
    }
  }
}

function popupPlayer(width, height) {
	var playerEl = getPlayer();
  var jumpLoc = 0;
  var quality = 'high';

  if (typeof playerEl != 'undefined') {
    if (typeof playerEl.getPlaytime == 'function') {
      jumpLoc = playerEl.getPlaytime();
    }
    if (typeof playerEl.getQuality == 'function') {
      quality = playerEl.getQuality();
    }
    if (typeof playerEl.pause == 'function') {
      playerEl.pause();
    }
    if (typeof playerEl.getCurrentVideoId == 'function') {
      videoid = playerEl.getCurrentVideoId();
    }
  }
  
  var features = 'toolbar=0, location=0, directories=0, status=0, menubar=0, '
               + 'scrollbars=0, resizable=1, width=' + width + ', height=' + height;
  
  window.open('/show/popupPlayer?video_id=' + videoid + '&quality=' + quality + '&offset=' + jumpLoc, 'rev3_popup', features);
}

function trackEvent (category, action, opt_label, opt_value) {
  var opt_label = opt_label || '';
  var opt_value = opt_value || false;

  dataString = 'category=' + escape(category) + '&action=' + escape(action);
  if (opt_label) dataString += '&opt_label=' + escape(opt_label);
  if (opt_value) dataString += '&opt_value=' + escape(opt_value);
  dataString += '&ua=' + escape(navigator.userAgent);
  
  trackerResponse = $.post('/api/trackActivity', dataString);
  
  if (opt_value) googleResponse = pageTracker._trackEvent(category, action, opt_label, opt_value);
  else googleResponse = pageTracker._trackEvent(category, action, opt_label);
  
  return true;
}

jQuery(document).ready(function() {
  $('.expandable .head').click(function() {
    $(this).next().slideToggle('normal');
    $(this).children('.show-hide').toggleClass('showing');
    $(this).children('.minimize-maximize').toggleClass('compact');
  }).next().hide();
  
  $('#episode-sidebar #episode-sidebar-share .expandable.expanded .head').next().show();
  $('#episode-sidebar #episode-sidebar-download .expandable.expanded .head').next().show();
  $('#episode-sidebar #episode-sidebar-subscribe .expandable.expanded .head').next().show();
    
  $('#userMessages, #userErrors').show('slide', {'direction': 'up'}, '1500');
  $('.rev3message, .rev3error').click(function() {
                                      $(this).hide('slide', {'direction': 'up'}, '1500');
                                   });
  
  $('#more-episodes .view-controls .grid').click(function(){
    $(this).addClass('active');
    $('#more-episodes .view-controls .list').removeClass('active');
    $('#more-episodes .episode-list-container').hide();
    $('#more-episodes .episode-grid-container').show();
    $('#more-episodes .expand:hidden').slideToggle('fast');
  });
  $('#more-episodes .view-controls .list').click(function(){
    $(this).addClass('active');
    $('#more-episodes .view-controls .grid').removeClass('active');
    $('#more-episodes .episode-grid-container').hide();
    $('#more-episodes .episode-list-container').show();
    $('#more-episodes .expand:hidden').slideToggle('fast');
  });
  
  $('#recommended-episodes .view-controls .grid').click(function(){
    $(this).addClass('active');
    $('#recommended-episodes .view-controls .list').removeClass('active');
    $('#recommended-episodes .episode-list-container').hide();
    $('#recommended-episodes .episode-grid-container').show();
  });
  $('#recommended-episodes .view-controls .list').click(function(){
    $(this).addClass('active');
    $('#recommended-episodes .view-controls .grid').removeClass('active');
    $('#recommended-episodes .episode-grid-container').hide();
    $('#recommended-episodes .episode-list-container').show();
  });
    
  $('#show-episodes .view-controls .grid').click(function(){
    $(this).addClass('active');
    $('#show-episodes .view-controls .list').removeClass('active');
    $('#show-episodes .episode-list-container').hide();
    $('#show-episodes .episode-grid-container').show();
  });
  $('#show-episodes .view-controls .list').click(function(){
    $(this).addClass('active');
    $('#show-episodes .view-controls .grid').removeClass('active');
    $('#show-episodes .episode-grid-container').hide();
    $('#show-episodes .episode-list-container').show();
  });
      
  $('ul#shows li').click(function(){
    window.location = $(this).children('a.thumbnail').attr('href');
  });
    
  $('#schedule-preferences-tab li.eventType').click(function() {
      var liClass = '.' + $(this).get(0).className.split(' ').slice(-1);
      $(this).siblings('li').removeClass('selected');
      $(this).addClass('selected');
      if (liClass == '.liAll') {
        $('.the-schedule li').show();
      }
      else {
        $('.the-schedule li').hide();
        $('.the-schedule li').filter(liClass).show();
      }
  });
  
  $('#schedule-calendar').datepicker({onSelect: function(input, data) {
    data.selectedMonth = data.selectedMonth + 1;
    data.selectedMonth = (data.selectedMonth <= 9) ? '0' + data.selectedMonth : data.selectedMonth;
    data.selectedDay = (data.selectedDay <= 9) ? '0' + data.selectedDay : data.selectedDay;
    
    var location = '/schedule/' + data.selectedYear + '/' + data.selectedMonth + '/' + data.selectedDay;
    window.location = location; 
  }});
  
  var active_color = '#000';
  var inactive_color = '#777';
  $('input.default-value').css('color', inactive_color);
  var default_values = new Array();
  $('input.default-value').focus(function() {
    if (!default_values[this.id]) {
      default_values[this.id] = this.value;
    }
    if (this.value == default_values[this.id]) {
      this.value = '';
      this.style.color = active_color;
    }
    $(this).blur(function() {
      if (this.value == '') {
        this.style.color = inactive_color;
        this.value = default_values[this.id];
      }
    });
  });
  
  $('#theaterToggle').click(function() {
                              if ($('#theaterBlindsTop').is(':visible')) {
                                disableTheaterMode();
                              }
                              else {
                                enableTheaterMode();
                              }
                            });
  
  $('.theaterModeOff').click(function() {
                              disableTheaterMode();
                           });
  
  catchTabLoads();
});
