/**
 * Shareing
 * Allows user to share content on various social networks
 * Auth: Chris Reeves, POKE, 2010-02-18
 */

/**
 * POKE.share namespace
 */
POKE.share = {}

/**
 * Required attributes
 */
POKE.share.url = escape(window.location.href);
POKE.share.title;
POKE.share.windowOps = {
  width       : '600',
  height      : '350',
  top         : '50',
  left        : '50',
  scrollbars  : 'yes'
};

/**
 * Init method
 * Sets up events and any other requirments
 */
POKE.share.init = function() {
  this.bindEvents();
  POKE.share.title = escape($("#share_title").attr('value'));
}

/**
 * Bind events
 * Binds required events for shareing links
 */
POKE.share.bindEvents = function() {
  $('#sharing .facebook a').bind('click', this.facebook);
  $('#sharing .twitter a').bind('click', this.twitter);
  $('#sharing .delicious a').bind('click', this.delicious);
  $('#sharing .stumbleupon a').bind('click', this.stumbleupon);
  $('#sharing .digg a').bind('click', this.digg);
  $('#sharing .email a').bind('click', this.email);
}

/**
 * Build window features string
 * Buolds the wibdow features string for shareing popup window based on values from POKE.share.windowOps object
 */
POKE.share.buildWindowFeatures = function() {
  var features = this.windowOps;
  var string = '';
  var i = 1;
  for(feature in features) {
    var name = feature;
    var value = features[feature];
    string += name+'='+value+'';
    if(i < POKE.size(features)) {
      string += ',';
    }
    i++;
  }
  return string;
}

/**
 * Open Window
 * Opens the shareing window
 * @param string url
 */
POKE.share.openWindow = function(url) {
  window.open(url, '_blank', POKE.share.buildWindowFeatures());  
}

/**
 * Facebook shareing
 * Shares page with facebook
 */
POKE.share.facebook = function() {
  var url = 'http://www.facebook.com/sharer.php?u='+POKE.share.url+'&t='+POKE.share.title;
  POKE.share.openWindow(url);
  return false;
}

/**
 * Twitter
 * Shares pages with twitter
 */
POKE.share.twitter = function() {
  var url = 'http://twitter.com/home?status='+POKE.share.title+' - '+POKE.share.url;
  POKE.share.openWindow(url);
  return false;
}

/**
 * Delicious
 * Bookmark page using Delicious
 */
POKE.share.delicious = function() {
  var url = 'http://delicious.com/save?v=5&noui&jump=close&url='+POKE.share.url+'&title='+POKE.share.title;
  POKE.share.openWindow(url);
  return false;
}

/**
 * Stumbleupon
 * Bookmark pages using Stumbleupon
 */
POKE.share.stumbleupon = function() {
  var url = 'http://www.stumbleupon.com/submit?url='+POKE.share.url+'&title='+POKE.share.title;
  POKE.share.openWindow(url);
  return false;  
}

/** 
 * Digg
 * Post story to digg
 */
POKE.share.digg = function() {
  var url = 'http://digg.com/submit?phase=2&url='+POKE.share.url+'&title='+POKE.share.title;  
  POKE.share.openWindow(url);
  return false;
}

/**
 * Email
 * Email me functionality
 */
POKE.share.email = function() {
  window.location.href = 'mailto:?subject='+POKE.share.title+'&body='+POKE.share.url;
  return false;
}