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 (embed, title, 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();
    }
  }
  
  var replacement='$1' + quality + '$3';
  embed = embed.replace(/(<param name=flashvars value=\"quality=)(.+)(&autoStart=.*\"><embed)/gm, replacement);
  embed = embed.replace(/(flashvars=\"quality=)(.+)(&autoStart=.*\")/gm, replacement);
  
  var head = '<script type="text/javascript">\n'
           + '  var hasJumped = false;\n'
           + '  function getPlayer () {\n'
           + '    if ($.browser.msie)\n'
           + '      return $(\'.rev3PlayerObject\').get(0);\n'
           + '    else\n'
           + '      return $(\'.rev3PlayerEmbed\').get(0);\n'
           + '  }\n\n'
           + '  function getURLJumpPoint () {\n'
           + '    var playerEl = getPlayer();\n'
           + '    if (playerEl != undefined && !hasJumped) {\n'
           + '      playerEl.jump("' + jumpLoc + '");\n'
           + '      hasJumped = true;'
           + '    }\n'
           + '  }\n'
           + '</script>';
  
  popupWindow(embed, title, width, height, head);
}

function popupWindow (body, title, width, height, head) {
  var features = 'toolbar=0, location=0, directories=0, status=0, menubar=0, '
               + 'scrollbars=0, resizable=0, width=' + width + ', height=' + height;
   
  var dlg = window.open('', 'rev3_popup', features);
  dlg.document.write('<html>\n<head>\n<title>' + title + '</title>\n');
  dlg.document.write('<script type="text/javascript" src="/_/js/jquery/jquery-1.3.2.min.js"></script>\n');
  if (head) {
    dlg.document.write(head);
  }
  dlg.document.write('\n</head>\n'); 
  dlg.document.write('<body style="background-color: #000; text-align: center; margin: auto; padding: 0px;">\n'); 
  dlg.document.write(body);
  dlg.document.write('\n<!-- ClickTale Bottom part -->
<div id="ClickTaleDiv" style="display: none;"></div>
<script type="text/javascript">
if(document.location.protocol!='https:')
  document.write(unescape("%3Cscript src='http://s.clicktale.net/WRb.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
if(typeof ClickTale=='function') ClickTale(13406,0.642,"www02");
</script>
<!-- ClickTale end of Bottom part -->
</body>\n</html>'); 
  dlg.document.close();
}

function strandTrack (action, itemId, requestId) {
  var trackUrl = '/api/strandTrack/' + action + '/' + itemId;
  
  if (requestId > 0) trackUrl = trackUrl + '/' + requestId;
  
  $.get(trackUrl);
}

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();
});