function SocialMediaEventHandler() {};

SocialMediaEventHandler.prototype.initiatePixelTag = function(media) {
    function get_serviceMediaName(key) {
      return {
        fb: "Facebook",
        tw: "Twitter",
        email: "Email",
        print: "Print",
        faves: "Faves"
      }[key];
    };
    function get_pageName(media) {
      return SHARE + mediaName + ((media == 'email') ? 'Form' : '');
    }
    function get_pageLayout(media) {
      return SHARE + mediaName + ((media == 'email') ? 'Form' : '');
    }
    function get_pageLabel(media) {
      var pageLabel = 'linkout_ST_',
          mailprintLabel = {'email' : 'ShareEmail_', 'print': 'SharePrint_'};
      if (media in mailprintLabel) pageLabel = mailprintLabel[media];
      return pageLabel + ContextManager.getPageName();
    }
    function get_queryString(media) {
      var queryStr = '';
      switch (media) {
        case 'fb':
        case 'tw':
        case 'faves':
          queryStr = 'cs:lo=' + SHARETHIS + pageType;
          break;
        default:
          break;
      }
      return queryStr;    
    }

    var SHARE = "Share", THIS = "This", SHARETHIS = SHARE + THIS,
       pageType = this.getPageType(),
       mediaName = get_serviceMediaName(media),
       pageName   = get_pageName(media),
       pageLayout = get_pageLayout(media),
       pageLabel  = get_pageLabel(media),
       queryString= get_queryString(media);

    this.publishView({
      pageName: pageName,
      pageLayout: pageLayout,
      pageLabel: pageLabel,
      queryString : queryString
    });
};

SocialMediaEventHandler.prototype.initiatePixelTagEmailSubmissions = function(obj) {
    var SHARE_THIS = "ShareThis";
	  var SHARE_EMAIL_THANK_YOU = "ShareEmailThankYou";
	  var pageType = this.getPageType();
	  var queryStr = 'cs:lo=' + SHARE_THIS + pageType;
	  var pageLabelStr = 'SETY_' + ContextManager.getPageName();
	  var pixelTagData = obj || {
	    pageName: SHARE_EMAIL_THANK_YOU,
	    pageLayout: SHARE_EMAIL_THANK_YOU,
	    pageLabel: pageLabelStr,
	    queryString : queryStr
	  };
	  
	  this.publishView(pixelTagData);
};

SocialMediaEventHandler.prototype.initiatePixelTagPrintSubmissions = function() {
	  var PRINTER_FRIENDLY = "PrinterFriendly";
	  var pageType = this.getPageType();
	  var queryStr = 'cs:lo=' + PRINTER_FRIENDLY + pageType + '&cs:pro=csm&cs:e=print';
	  var pageLabelString = 'linkout_' + PRINTER_FRIENDLY + pageType;
	 
	  var pixelTagData = {  
	    pageName: PRINTER_FRIENDLY,
	    pageLayout: PRINTER_FRIENDLY,
	    pageLabel: pageLabelString,
	    queryString : queryStr
	  };
	  this.publishView(pixelTagData);
};

SocialMediaEventHandler.prototype.getPageType = function() {
	return "VD";
};

SocialMediaEventHandler.prototype.publishView = function(publishData) {
  var eventName = publishData.eventName || 'com.cobaltgroup.ws.view.shareThis';
  delete publishData.eventName;
  EventManager.publish({
    eventName : eventName,
    publisherData : publishData
  });
};

