if(typeof Jev == "undefined") {
  var Jev = {};
}
Jev.hostnames = ["www.jevck.com", "jevck.com", "beta.jevck.com", "jevck.cjb.net", "www.jevck.cjb.net"];

/* GA static tracking */
var gaTracker = _gat._getTracker("UA-2381066-1");
var pageName = window.location.pathname;
var slug = $('meta[name=slug]').attr("content");
if(pageName != "/") { pageName = pageName.replace(/\/$/, ""); }
pageName += window.location.search;
if(slug == "404") {
  gaTracker._trackPageview("/404");
  gaTracker._trackEvent("404", "404", window.location.pathname + window.location.search);
} else {
  gaTracker._trackPageview(pageName);
}

/* GA dynamic tracking */
$(document).ready(function() {
  loadTime = new Date();

  /* Track documents (pdf) and videos as pageview */
  $('a[href$=pdf],a[href$=avi],a[href$=mpg],a[href$=wmv],a[href$=flv]').click(function(event){
    gaTracker._trackPageview(event.currentTarget.pathname);
  });

  /* Track documents (pdf) as events */
  $('a[href$=pdf]').click(function(event){
    gaTracker._trackEvent("Documents", "Download", event.currentTarget.pathname);
  });

  /* Track videos as events */
  $('a[href$=avi],a[href$=mpg],a[href$=wmv],a[href$=flv]').click(function(event){
    gaTracker._trackEvent("Videos", "Download", event.currentTarget.pathname);
  });

  /* Track internal links as events */
  $('a[href^=/]').click(function(event){
    gaTracker._trackEvent("Inbound", "Click", event.currentTarget.pathname.replace(/\/$/, ""), parseInt((new Date() - loadTime)/1000));
  });

  /* Track external links as events */
  $('a[href^=http]').click(function(event){
    if($.inArray(event.currentTarget.hostname, Jev.hostnames) != -1) {
      // hey, you're not a real external link !!!
      gaTracker._trackEvent("Inbound", "Click", event.currentTarget.pathname.replace(/\/$/, ""), parseInt((new Date() - loadTime)/1000));
    } else {
      gaTracker._trackEvent("Outbound", "Click", event.currentTarget.href, parseInt((new Date() - loadTime)/1000));
    }
  });
});

/* FlowPlayer config objects */
if(typeof FlowPlayerConfig == "undefined") {
  var FlowPlayerConfig = {};
}

FlowPlayerConfig.defConfig = {
  clip: {
    autoPlay: false,
    autoBuffering: true,
    scaling: 'orig',
    provider: 'streaming',
    onStart: function(clip) {
      gaTracker._trackEvent("Videos", "Play", clip.url);
    },
    onPause: function(clip) {
      gaTracker._trackEvent("Videos", "Pause", clip.url, parseInt(this.getTime()));
    },
    onStop: function(clip) {
      gaTracker._trackEvent("Videos", "Stop", clip.url, parseInt(this.getTime()));
    },
    onFinish: function(clip) {
      gaTracker._trackEvent("Videos", "Finish", clip.url);
    }
  },
  plugins: {
    streaming: {
      url: '/flash/flowplayer.pseudostreaming-3.1.2.swf'
    },
    controls: {
      stop: true
    } 
  }
}

FlowPlayerConfig.autoPlay = $.extend(true, {}, FlowPlayerConfig.defConfig);
FlowPlayerConfig.autoPlay.clip.autoPlay = true;

FlowPlayerConfig.homePage = $.extend(true, {}, FlowPlayerConfig.autoPlay);
FlowPlayerConfig.homePage.playlist = ['/videos/lipdub2009.flv', '/videos/comment_venir_a_jev.flv'];
FlowPlayerConfig.homePage.plugins.controls.playlist = true;


/* Twitter */
if(typeof Twitter == "undefined") {
  var Twitter = {};
}

Twitter.handleSidebox = function(tweets) {
  var twitterElementId = 'twitter_sidebox';
  var htmlTweets = '';
  for(var i = 0; i < tweets.length ; i++) {
    var tweet = tweets[i];
    var htmlTweet = '<span class="tweet_sidebox_text">' + Twitter.linkify(tweet.text) + '</span>';
    htmlTweet += '<br /><span class="tweet_sidebox_date">' + Twitter.formatDate(tweet.created_at) + '</span>';
    htmlTweet = '<li class="tweet_sidebox">' + htmlTweet + '</li>';
    htmlTweets += htmlTweet;
  }
  htmlTweets = '<ul class="tweets_sidebox">' + htmlTweets + '</ul>';
  document.getElementById(twitterElementId).innerHTML = htmlTweets;
}

Twitter.handlePage = function(tweets) {
  var twitterElementId = 'twitter_page';
  var htmlTweets = '';
  for(var i = 0; i < tweets.length ; i++) {
    var tweet = tweets[i];
    var extraClasses = '';
    if(i == 0) {
      extraClasses += ' tweet_current';
    }
    if(tweet.favorited) {
      extraClasses += ' tweet_favorite';
    }
    var htmlTweet = '<span class="tweet_page_text' + extraClasses + '">' + Twitter.linkify(tweet.text) + '</span>';
    htmlTweet += '<br /><span class="tweet_page_date">' + Twitter.formatDate(tweet.created_at) + '</span>';
    htmlTweet = '<li class="tweet_page">' + htmlTweet + '</li>';
    htmlTweets += htmlTweet;
  }
  htmlTweets = '<ul class="tweets_page">' + htmlTweets + '</ul>';
  document.getElementById(twitterElementId).innerHTML = htmlTweets;
}

Twitter.linkify = function(text) {
  return text.replace(/((https?|s?ftp|ssh)\:\/\/[^"\s\<\>]*[^.,;'">\:\s\<\>\)\]\!])/g , function(url){
    return '<a href="' + url + '">' + url + '</a>';
  });
}

Twitter.formatDate = function(twitterDate) {
  var monthNames = new Array("Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre");
  var date = new Date(Twitter.parseDate(twitterDate));
  return "le " + date.getDate() + " " + monthNames[date.getMonth()] + " " + date.getFullYear();
}

/* twitterDate format : Mon Feb 02 21:20:43 +0000 2009 */
/* ietfDate format    : Mon, 02 Feb 2009 21:20:43 GMT+0000 */
Twitter.parseDate = function(twitterDate) {
  var dateElems = twitterDate.split(" ");
  var ietfDate = dateElems[0] + ", " + dateElems[2] + " " + dateElems[1] + " " + dateElems[5] + " " + dateElems[3] + " GMT" + dateElems[4];
  return Date.parse(ietfDate);
}