
/// reporting for embedded video

function registerNS(ns) { var nsParts = ns.split("."); var root = window; for(var i=0; i<nsParts.length; i++) { if(typeof root[nsParts[i]] == "undefined") root[nsParts[i]] = new Object(); root = root[nsParts[i]]; } } 

registerNS("TSCM.video");

function log(m){

   if(typeof console != "undefined"){ 
      console.log(m);
   }else{
      try {
      var d = document.getElementById('debug');
      d.innerHTML = m + "<br>"+ d;
      }catch(e){}
   }

};


function onTemplateLoaded() {
   callFlash("addEventListener", "streamStart", "onStreamStart");
}


function onStreamStart(o){
   callFlash("getCurrentTitle");
}

function bctoString(o){

   if(document.all){
      return o;
   }

   if(typeof o != "object"){
      return o;
   }
   var s = "";
   for(var i in o){
      if(typeof s == "string"){
         s += o[i];
      }
   }
   return s;
}



function getCurrentTitle_Result(video){
   TSCM.video.EmbeddedReporter.report(video);
}


TSCM.video.EmbeddedReporter = new function(){
   var dom = YAHOO.util.Dom;

    var P = "|";
    var D = ":";

   return {
      default_channel:"Latest Videos",
      default_hier1:"SW",
      section:"embeddedvideo",
      csection:"Commerce",
      ad:{sponsor:null,campaign:null},
      vdata:"video data",
      content_type:"embedded video",
      title:null,
      headline:null,
      callout:null,
      author:null,
      hier:null,
      contenttype:"VIDEO",
      channel:null,
      interval:"VideoInterval",
      init:function(){
      },
      link:function(pagename){
         ob = { pageName:pagename };
         pi = pagename;
         TSC.reporting.sendLinkEvent(pagename);
         //var ord = Math.floor(Math.random()*1000000);
         //var tracker = 'http://102.112.2O7.net/b/ss/streetprod/1/G.4--NS/' + ord +'?pe=lnk_o&pev2=VideoInterval-' + sponsor + '-' + campaign + '-Start+' + ch;
         //new Image().src = tracker;


      },
      /* interval trackign */
      adstart:function(){
         var pn = this.interval + D + this.ad.sponsor + D + this.ad.campaign + D + "start" + D + this.ad.channel;
         this.link(pn);
      },
      admiddle:function(){
         var pn = this.interval + D + this.ad.sponsor + D + this.ad.campaign + D + "middle" + D + this.ad.channel;
         this.link(pn);
      },
      adend:function(){
         var pn = this.interval + D + this.ad.sponsor + D + this.ad.campaign + D + "end" + D + this.ad.channel;
         this.link(pn);


      },
      reportPreroll:function(video){
         return;

         try {
          var channel; 
          channel = this.default_channel;
          var cg = this.default_hier1 + P+this.csection+P+channel; 
          var vidObj = new Object();
          var headline =  bctoString(video.shortDescription);
          vidObj["pageName"]=this.csection + ":" + this.content_type + ":" + headline;
          vidObj["channel"]=this.csection;
          vidObj["hier1"]=this.csection +P+this.vdata+P +"Preroll" + P + channel + P + headline;
          vidObj["contentCat"]=this.csection +P+this.vdata+P +"Preroll" + P + channel + P + headline;

          TSC.reporting.config(vidObj);	
          TSC.reporting.makeCall();

         } catch(e){
            log(e.message);

         }





      },
      /* function to report the main page when it loads */
      reportPage:function(){

         try {
          this.puc = TSC.util.getPuc();
          var headline = "Portal";
          var vidObj = new Object();
          var channel =getParameter("channel");
          if(!TSC.util.isDefined(channel))channel = "other";
          vidObj["pageName"]=this.csection + ":" + this.content_type + ":" + headline;
          vidObj["channel"]=this.csection;
          vidObj["hier1"]=this.csection +P+this.vdata+P+channel+P+headline;
          vidObj["puc"]=TSC.util.getPuc();							
          vidObj["contentCat"]=this.csection + P+this.vdata+P+channel;

          TSC.reporting.config(vidObj);	
          TSC.reporting.makeCall();

         } catch(e){
            log("ERROR: reporting");
            log(e.message);

         }

         return;
      },
      // this is borroed from tscm.video.guide 
      getTagValue:function(video,tagname){
         tagname+="=";
         var tags = video.tags;
         try {
            for(var i=0;i<tags.length;i++){
               var tag = bctoString(tags[i]);
               if(tag.indexOf(tagname)!=-1){
                  var ret = tag.substring(tagname.length+1);
                  ret = ret.substring(0,ret.lastIndexOf(']'));
                  return ret;
               }
            }
            return "";
         }catch(e){ log('ERROR' + e.message);}

      },

      /** function to report a video play **/
      report:function(video){

         try {
          var channel = "Embedded player";

          var orig_channel = this.getTagValue(video,"storyTypeDirName");

          var cg = this.default_hier1 + P+this.section+P+channel; 
          var vidObj = new Object();
          var headline =  bctoString(video.shortDescription);
          vidObj["pageName"]=this.default_hier1+ ":Video:" + headline;
          vidObj["channel"]=this.default_hier1;
          vidObj["hier1"]=this.default_hier1 +P+this.section+P + channel + P + headline;
          vidObj["contentCat"]=this.default_hier1 + P+this.section+P+ channel;
          vidObj["contentType"]=this.content_type;
          vidObj["videoChannel"]=orig_channel;

          var pubdate = this.getTagValue(video,"publishTimestamp");
          var myDate = new Date( Number(pubdate));
          //var datefmt = myDate.toGMTString()+myDate.toLocaleString();

             try {
                vidObj["pubDate"]=TSC.util.dateDisplay(myDate);
             }catch(e){log(e);}

          vidObj["articleId"]=bctoString(video.referenceId);
          vidObj["topArticles"]=headline;

          vidObj["authorName"]=this.getTagValue(video,"authors");

          vidObj["authorId"]= "" ; //
          vidObj["puc"]=TSC.util.getPuc();							
          vidObj["videoViews"]=headline;
          vidObj["keywords"]= ""; 
          var tickers = this.getTickers(video);

          vidObj["tickers"] = tickers;

          try {
             if(TSC.util.isValidPuc(vidObj.puc)){
                vidObj["stories"]=this.default_hier1 + P + vidObj.authorName + P + vidObj.articleId + P + vidObj.pubDate + headline;
             }			
          }catch(e){}	
		 vidObj["pi"]="SW|" + this.getTagValue(video,"authors") + " - " + headline + " (" + bctoString(video.referenceId) +  ") 1" + TSC.util.getPuc();
		  
          TSC.reporting.config(vidObj);	
          TSC.reporting.makeCall();


         } catch(e){
            log("ERROR: reporting");
            log(e.message);

         }

         window.rep = vidObj;

      } ,
      getTickers:function(video,formatlink){
      var t =  this.getTagValue(video,"tickerList");
      if(t == ""){
         t = this.getTagValue(video,"tickers");
      }
      
      try {

         if(t.toString().toLowerCase() == 'none'){
            return "";
         }

         if(typeof formatlink != 'undefined'){
            if(formatlink == true){
               t = t.replace(/ /g,"");
               var ticker = "['" + t.replace(/\|/g,"','") + "']";

               var tickarray = eval(ticker);

               var uniq = {};
               for(var i=0;i<tickarray.length;i++){
                  ticker = tickarray[i];
                  uniq[ticker] = 1;
               }

                  // remove duplicates
               var tickers = [];
               for(var i in uniq){
                  tickers.push(i);
               }

               ticker = "";
               tickarray = tickers;
               for(var i=0;i<tickarray.length;i++){
                  
                  if(TSC.util.isDefined(tickarray[i])){
                  var link = '<a target=new href="http://www.thestreet.com/stocks/quote/' + tickarray[i] + '">' + tickarray[i] + '</a>';
                  } else{
                     link = "";
                  }
                  ticker+=link;
                  ticker+= " | ";
               }
               ticker = ticker.substring(0,ticker.lastIndexOf('|')-1);
            }
         }else{
               var ticker = t.replace(/\|/g,", ");
         }

         return ticker;

      } catch(e){ log(e);return t; }
         return ticker;
     } 

                      
   };
};

