/**
 * @preserve Share this button script (c) iPressroom 2008-2012
 * @version v 2.1.0
 *  
 * Click-based version
 */
 
   

var prShare;

if (typeof jQuery != 'undefined') { (function($){


/** 
 * prShareThis class constructor
 */
function prShareThis () {
  // store href templates
  $(".shareSocial a").each(function(){
    this.prhref = this.href;
  });       

  // events binding
  $(".prShareThis").click( function() {
   prShare.show(this);
   return false;
  } );

  $(".shareThis .shareTip").each(function () {
    $(this).hover(shareHover, shareHover);
  });

  // ie helper functions
  if (jQuery.browser.msie) {
   $(".shareThis .shareLink").hover(iframeHelper, iframeHelper); 
  };
  
  // tabs events
  $(".shareThis .shareTabsList a").filter(
   function () {
    return $(this).attr("onclick") == undefined;    
   }
  ).click(shareChangeTab);
  $(".shareTabsList a:eq(1)", ".shareThis").click(shareShowSend);
  
  // activate first item
  $("a:first", ".shareThis .shareTabsList").click();
}

/**
 * Show share window
 */ 
prShareThis.prototype.show = function(a) {
 var ps = $(".prShare");
 var a = $(a);
 var w = $(window);
 
 // close function
 $("body").click( function(evt){
  if ((ps[0] != evt.target) && (ps.find("*").index(evt.target) == -1 ))
   prShare.hide(ps);
 });
 
 // filling send, print values
 $(".shareTabsList a", ps)
  .eq(1).attr("href", a.attr("prsend") || "").end()
  .eq(2).attr("href", a.attr("prprint") || "");
 
 // filling social links values
 $(".shareSocial a", ps).each( function(){
  this.href = this.prhref
   .replace("ITEMURL", a.attr("prurl") || "")
   .replace("TITLEENCODE", a.attr("prtitle") || ""); 
 })
 
 // setting share window position
 // store values for speed
 var apos = {
  offset: a.offset(),
  ow: a.outerWidth(),
  oh: a.outerHeight()
 }
 var pspos = {
  ow: ps.outerWidth(),
  oh: ps.outerHeight()
 }
 ps.css({
  //left position
  left: (apos.offset.left + pspos.ow < w.width()) || (pspos.ow > apos.offset.left + apos.ow) ? 
         apos.offset.left :                               // open to the right 
         apos.offset.left - pspos.ow + apos.ow,           // open to the left 
  // top positon       
  top: (apos.offset.top + pspos.oh < w.height()) || (pspos.oh > apos.offset.top + apos.oh) ?
         apos.offset.top :                             // open down
         apos.offset.top - pspos.oh + apos.oh          // open up
 })
 .show();
}

/** 
 * Hide share window
 */
prShareThis.prototype.hide = function(inst) {
 inst.hide();
 
 // reset to initial state 
 $(".shareTabsList a:first", inst).click();
 $("iframe", inst).removeAttr("src");
}


/**
 * Сhanges current tab
 */ 
function shareChangeTab() {
  var p = $(this).parents(".shareTabs");
  if (p.length) {
   var i = $(".shareTabsList a", p).index(this);
   
   // hide current
   $(".shareTabsList .active", p).removeClass("active");
   $(".shareTab[class!='hidden']", p).addClass("hidden");
   
   // show new
   $(".shareTab", p).eq(i).removeClass('hidden');
   $(".shareTabsList li", p).eq(i).addClass('active');
  }
  return false;
}

/**
 * Show send link on demand
 */ 
function shareShowSend () {
  var p = $(this).parents(".shareTabs"); 
  var ifr = $("iframe", p)[0];
  if (!ifr.src) {
   $(ifr).load(function() {$(".sendLink .loading", p).css('display', 'none'); }); // don't use hide() here
   ifr.src= this.href;
  }
}


/**
 * Adds special class on mouseover
 */ 
function shareHover(evt) {
  // detects enough space for popup
  function isSpace(offset, elSpace, allSpace) {
    return (offset+elSpace <= allSpace) || (offset < elSpace);
  }

  if (evt.type == 'mouseenter') {
   // opera incorrect detects dimensions with negative margins
   var b = ($.browser.opera) ? $("body") : $(document);
   var el = $(this);
   var tip = el.find(".shareTipPop");   
   
   $(this)
     .addClass( isSpace(el.offset().left, tip.width(), b.width()) ? 'hovered-right' : 'hovered-left')
     .addClass( isSpace(el.offset().top, tip.height(), b.height()) ? 'hovered-bottom' : 'hovered-top' )
     .addClass('hovered');
  }
  else {
   $(this).removeClass('hovered hovered-left hovered-right hovered-top hovered-bottom');
  } 
}

/**
 * Dummy iframe update on kiosk popup. IE fix
 */ 
function iframeHelper(evt) {
 $("iframe", this).css("visibility", "visible");
}

/**
 * Create share object on load
 */ 
$(function(){
 window.prShare = new prShareThis();
});

})(jQuery); }
else { /*jQuery not found*/ }

