$(document).ready(function() {
  var $player  = $('div.video_player_cmg');
  var $archive = $('div.vp_full_archive');
  var $form    = $('form[name="vp_search"]');

  var updateCount = function() {
    var assetId = /asset_([0-9]+)/.exec($player.attr('class'))[1];
    $.post(window.location.href, {
      action: 'update_count',
      asset_id: assetId
    });
  }

  // make all the individual video links clickable
  $archive.find('.video_entry a').live('click', function() {
    var $this = $(this);

    $.post($this.attr('href'), {action: 'video'}, function(data) {
      // populate the video's meta data
      var $content = $('div#vp_content');
      var fields = ['date', 'title', 'topic', 'description', 'series', 'speaker', 'duration', 'permalink', 'donation_url', 'donation_details', 'audio', 'user_notes_url'];
      for (var i = 0; i < fields.length; i++) {
        if (fields[i] != 'audio'){
          $content.find('#video_' + fields[i]).html(data[fields[i]]);
        }else{
          if (data[fields[i]] == ''){
           $('#validate_file_exists').hide();
          }else{
            $('#validate_file_exists').show();
            $content.find('#video_' + fields[i]).attr('href', data[fields[i]]);
          }
        }
      }
      //Update the email subject and body
      var $emailData = 'mailto:?subject=Currently watching this video: ' + data.title + '&body=Hi, check out this great video:' + data.permalink;
      $('a.video_share_email').attr("href",$emailData);

      //Update the user notes section
      var $notesUrl = "javascript:pop('" + data.user_notes_url + "', 'pop', 'width=700, height=600, scrollbars=0');";
      $('a.video_share_notes').attr('href', $notesUrl);

      //UPDATE SOCAIL LINKS
      var $sURL = data.permalink;
      var $sTitle = data.title;

      //Facebook
      var $facebookData = 'http://www.facebook.com/share.php?u=' + $sURL +'&t=' + $sTitle;
      $('a.video_share_facebook').attr("href",$facebookData);
      $('li.facebook').find('a').attr("href",$facebookData);

      //Twitter
      var $twitterData = 'http://twitter.com/home?status=Currently watching this video: ' + $sURL;
      $('a.video_share_twitter').attr("href",$twitterData);
      $('li.twitter').find('a').attr("href",$twitterData);

      //MySpace
      //Todo - find the MySpace Share URL
      var $mySpaceData = 'http://www.myspace.com/Modules/PostTo/Pages/?u=' + $sURL;
      $('li.myspace').find('a').attr("href",$mySpaceData);

      //LinkedIn
      var $linkedInData = 'http://www.linkedin.com/shareArticle?mini=true&url=' + $sURL + '&title=' + $sTitle + '&summary=' + data.description+ '&source=Ramp';
      $('li.linkedin').find('a').attr("href",$linkedInData);

      //Stumble Upon
      var $stumbleUponData = 'http://www.stumbleupon.com/submit?url=' + $sURL + '&title=' + $sTitle;
      $('li.stumbleupon').find('a').attr("href",$stumbleUponData);

      //delicious
      var $deliciousData = 'http://del.icio.us/post?url=' + $sURL + '&title=' + $sTitle;
      $('li.delicious').find('a').attr("href",$deliciousData);

      //digg
      var $diggData = 'http://digg.com/submit?phase=2&url=' + $sURL + '&title=' + $sTitle;
      $('li.digg').find('a').attr("href",$diggData);

      //technorati
      var $technoratiData = 'http://technorati.com/faves?add=' + $sURL;
      $('li.technorati').find('a').attr("href",$technoratiData);

      //digg
      var $redditData = 'http://reddit.com/submit?url=' +$sURL + '&title=' + $sTitle;
      $('li.reddit').find('a').attr("href",$redditData);

      //Vimeo
      //TODO - find Vimeo Share URL
      var $vimeoData = '';
      $('li.vimeo').find('a').attr("href",$vimeoData);

      //You Tube
      //TODO - find You Tube Share URL
      var $youTubeData = '';
      $('li.youtube').find('a').attr("href",$youTubeData);

      //Flickr
      //TODO - find Flickr Share URL
      var $flickrData = '';
      $('li.flickr').find('a').attr("href",$flickrData);


      //Update the link data for the copy and paste
      $("input[id='video_short_url']").val(data.short_url);
      //Update the donation url data
      $('a#video_donate').attr("href",data.donation_url);
      //update the donation description data
      $('a#video_donate').attr("title",data.donation_details);


      //Update the email link
      var $emailHref = 'mailto:?subject=Sharing from media&body=Check out this site: ' + $sURL;
      $('a#share_this_email').attr("href", $emailHref);

/*
      Currently no ads
      // initiate the rotator
      var $banner = $('#video_banner');
      $banner.find('.rotator_content').cycle('destroy');
      $banner.html(data.ads);
      $banner.find('.rotator_cmg').cmgRotator();
//*/
      // embed the video player
      $player.replaceWith(data.embed);
      $player = $('div.video_player_cmg');
      $player.videoPlayer({onStart: updateCount});
    }, 'json');
    return false;
  });

  $player.videoPlayer({onStart: updateCount});

  var $selects = $('#select_category, #select_series, #select_speakers').hide();
  $('#select_filter').change(function() {
    $selects.hide().find('select').val('');
    if (this.value != '') {
      $('#select_' + this.value).show().attr('disabled', false);
    }
    $form.submit();
  });

  var getArchive = function(url) {
    if (!url || typeof url == 'object') {
      url = $form.attr('action') + '?' + $form.find(':input:visible').serialize();
    }
    var spinner = $('#loading_spinner').fadeIn('fast');
    $.post(url, {action: 'archive'}, function(html) {
      spinner.fadeOut('fast');
      $archive.html(html);
    });
    return false;
  };

  $form.submit(getArchive);
  $selects.change(getArchive);
  $form.find('#select_order').change(getArchive);

  // auto-submit the search query as the user's typing
  var timeout = undefined;
  var $search = $('#search');
  var $clear  = $('#search_box_clear');
  $search.keyup(function() {
    if (timeout != undefined) {
      clearTimeout(timeout);
    }
    timeout = setTimeout(function() { getArchive(); }, 500);
    $clear.toggle(this.value != '');
  });

  // when you click the clear button, hide it and submit the form
  $clear.click(function() {
    $search.val('');
    $form.submit();
    return false;
  });

  // load the paged results via ajax
  $('#pagination a').live('click', function() {
    getArchive($(this).attr('href'));
    return false;
  });

});
