

var omniture = {
  initialize: function() {
		//console.log('omniture loaded');
    omniture.initTrackDownload();
    omniture.initPrintPageClick();
  },
  
  initTrackDownload: function() {

		jQuery("a").live("click",function(ev){
			var trackedDownload = this;
			
		  var trackedDownloadExt = trackedDownload.href.split(".").pop();
                
      if (trackedDownloadExt.match(/(pdf|exe|zip|doc|xls|ppt|mov|mpg|wmv|pptx|pps)/) && jq$(this).attr('class') !== 'jakebox') {
				
				omniture.trackDownload(this);
				
      }; 
			
		});
    
  },

  trackDownload: function(el) {
    
    var href = el.href;
    
    var fileName = href.split("/").pop();

    s.linkTrackVars='events,prop11,eVar11,prop15,eVar15';
    s.linkTrackEvents='event7';
    s.prop15=s.eVar15=fileName;
    s.events='event7';
    s.tl(this,'d',s.pageName+'|'+fileName);
    s.linkTrackVars='prop35,prop36,prop37,prop38,eVar35,eVar36,eVar37,eVar38';
    s.linkTrackEvents='None';

		//console.log(s.pageName+'|'+fileName);

  },
  
  toolUsage: function(event) {

      s.linkTrackVars='events,prop16,eVar16';
      s.linkTrackEvents='event8';
      s.prop16=s.eVar16='biooncology:onc:all:oncology_clinical_trials';
      s.events='event8';
      s.tl(this,'o',s.pageName+'|oncology_clinical_trials');
      s.linkTrackVars='prop35,prop36,prop37,prop38,eVar35,eVar36,eVar37,eVar38';
      s.linkTrackEvents='None';

          //console.log(s.prop16+" - tool activated!");

    },
  
  initPrintPageClick: function() {
  
   jq$('li.print a').each(function() {
      jq$(this).click(function() { omniture.printPageClick(); });
   });
       
  },
  
  printPageClick: function() {
    s.linkTrackVars='events';
    s.linkTrackEvents='event10';
    s.events='event10';
    s.tl(this,'o',s.pageName+'|printpage');
    s.linkTrackVars='prop35,prop36,prop37,prop38,eVar35,eVar36,eVar37,eVar38';
    s.linkTrackEvents='None';

		//console.log(s.pageName+'|printpage');
        
  }, 
  
  emailPage: function(status) {
    
		if (status == undefined) {
			//Do nothing.
		} else if (status == "error") {
			s.linkTrackVars='events';
			s.linkTrackEvents='event14';
			s.events='event14';
			s.tl(this,'o',s.pageName+'|emailpage');
			s.events='';
			s.linkTrackVars='prop35,prop36,prop37,prop38,eVar35,eVar36,eVar37,eVar38';
			s.linkTrackEvents='None';
		} else if (status == "success") {
			s.linkTrackVars='events';
			s.linkTrackEvents='event11';
			s.events='event11';
			s.tl(this,'o',s.pageName+'|emailpage');
			s.events='';
			s.linkTrackVars='prop35,prop36,prop37,prop38,eVar35,eVar36,eVar37,eVar38';
			s.linkTrackEvents='None';
		}
  },
  
  changeFontSize: function(fontSize,fontIndex) {

  /*
    In order for this to function the TextZoom.js file needs to be modified.
    There are three functions within the TextZoom.js file zoomOut, zoomIn and zoomDefault.
    Within each one of these functions you will need to add:
      fontSize = this.LEVELS[this.index];
      fontIndex = this.index;
      omniture.changeFontSize(fontSize,fontIndex); 
  */

      if (fontIndex == 0) {
        whatSize = "small";
      };
      
      if (fontIndex == 1) {
        whatSize = "medium-small";
      };
      
      if (fontIndex == 2) {
        whatSize = "medium-large";
      };
      
      if (fontIndex == 3) {
        whatSize = "large";
      };
      
      doTheTracking();
      
      function doTheTracking(){
                  
        s.linkTrackVars='events,eVar21';
        s.linkTrackEvents='event13';
        s.eVar21=whatSize;
        s.events='event13';
        s.tl(this,'o',s.pageName+'|'+whatSize);
        s.linkTrackVars='prop35,prop36,prop37,prop38,eVar35,eVar36,eVar37,eVar38';
        s.linkTrackEvents='None';
        
        //console.log(s.pageName+'|'+whatSize);
      
      }
          
  }, 
  
  slideDeckStart: function(title) {
    googleAnalytics.trackSlideDeck('play', title);
    this.slideDeckTrack('event18', title);
  },
  
  slideDeckReplay: function(title) {
    googleAnalytics.trackSlideDeck('replay', title);
    this.slideDeckTrack('event23', title);
  },

  slideDeckComplete: function(title) {
    googleAnalytics.trackSlideDeck('100% played', title);
    this.slideDeckTrack('event19', title);
  },

  slideDeckChange: function(percent, title) {
    var _event = null, _gaEvent = null;
    
    switch(percent) {
      case 25:
        _event = "event20";
        _gaEvent = '25% played';
        break;
      case 50:
        _event = "event21";
        _gaEvent = '50% played';
        break;
      case 75:
        _event = "event22";
        _gaEvent = '75% played';
        break;
    };
    
    if (_event) {
      googleAnalytics.trackSlideDeck(_gaEvent, title);
      this.slideDeckTrack(_event, title);
    }
  },
  
	slideDeckTrack: function(_event,_title) {
	  
		_title = omniture.stripTags(_title);
		var _caption = "";
		
		
		switch(_event) {
			case ('event18'):
        _caption = "slidedeck_start"
        break;
			
			case ('event19'):
        _caption = "slidedeck_complete"
        break;
			
      case ('event20'):
        _caption = "25%_viewed"
        break;

      case ('event21'):
        _caption = "50%_viewed"
        break;

      case ('event22'):
         _caption = "75%_viewed"
        break;

			case ('event23'):
         _caption = "slidedeck_replay"
        break;
    }
		
		s.linkTrackVars='events,eVar17,prop17';
		s.linkTrackEvents=_event;
		s.prop17=s.eVar17=_title;
		s.events=_event;
		s.tl(this,'o',s.pageName+'|'+ _title + '|'+_caption);
		s.events='';
		s.linkTrackVars = 'prop35,prop36,prop37,prop38,eVar35,eVar36,eVar37,eVar38';
		s.linkTrackEvents = 'None';
		
	},
	
	stripTags: function(string) {
		return string.replace(/<br\s?\/?>/," ").replace(/<(.|\n)*?>/g,"");
	},
	
	videoWatch: function(percentPlayed, videoName){

    var caption = percentPlayed + "%_viewed",
        _event = null;

    switch(percentPlayed) {
      case 25:
        _event = "event20";
        break;
      case 50:
        _event = "event21";
        break;
      case 75:
        _event = "event22";
        break;
    };
  
    if (_event) this._omnitureVideoHelper(_event, videoName, caption);
  },

  videoStart: function(videoName){
    this._omnitureVideoHelper('event18', videoName, 'video_start');
  },

  videoReplay: function(videoName){
    this._omnitureVideoHelper('event23', videoName, 'video_replay');
  },

  videoComplete: function(videoName){
    this._omnitureVideoHelper('event19', videoName, 'video_complete');
  },

  _omnitureVideoHelper: function(_event, videoName, msg) {
    s.linkTrackVars='events,eVar17,prop17';
    s.linkTrackEvents=_event;
    s.prop17=s.eVar17=videoName;
    s.events=_event;
    s.tl(this,'o',s.pageName+'|'+ videoName + '| '+msg);
    s.events='';
    s.linkTrackVars = 'prop35,prop36,prop37,prop38,eVar35,eVar36,eVar37,eVar38';
    s.linkTrackEvents = 'None';
  },
	
	trackSearch: function(terms, count){ 
    var s_linkTrackVarsTemp = s.linkTrackVars; 
    var s_linkTrackEventsTemp = s.linkTrackEvents; 
    s.linkTrackVars='events,prop4,eVar4,prop5,eVar5'; 
    s.linkTrackEvents='event1'; 
    if (count=='0') { count='None'; } 
    s.prop4=s.eVar4=terms.toLowerCase(); 
    s.prop5=s.eVar5=count; 
    s.tl(this,'o',s.pageName + '|search'); 
    s.linkTrackVars = s_linkTrackVarsTemp; 
    s.linkTrackEvents = s_linkTrackEventsTemp; 
    clearOmniVar(); 
  }
	
};

jq$(document).ready(function() {
  omniture.initialize();
  jq$(document).bind("onVideoTimeUpdate onVideoPlay onVideoReplay", function(event, name, time) {
    switch (event.type) {
      case "onVideoTimeUpdate":
        if (time === 100) {
          omniture.videoComplete(name);
        } else {
          omniture.videoWatch(time, name);
        }
        break;
      case "onVideoPlay":
        omniture.videoStart(name);
        break;
      case "onVideoReplay":
        omniture.videoReplay(name);
        break;
    }
  }).bind("onSlidedeckPlay onSlidedeckReplay onSlidedeckEnd onSlidedeckUpdate", function(event, id, complete) {
    switch (event.type) {
      case "onSlidedeckPlay":
        omniture.slideDeckStart(id)
        break;
      case "onSlidedeckReplay":
        omniture.slideDeckReplay(id);
        break;
      case "onSlidedeckEnd":
        omniture.slideDeckComplete(id);
        break;
      case "onSlidedeckUpdate":
        omniture.slideDeckChange(complete, id)
        break;
    }
  })
});
