﻿//*****************************
//   CONSTRUCTOR
//*****************************
function NavSpeaker(oControl, oRootElement) {

    //*****************************
    //   PROPERTIES
    //*****************************
    var _oControl = oControl;
    var _oRootElement = oRootElement;
    var _oScope = this;

    //NAV ELEMENTS
    var _oNavElements = new Object();
    var _oCurrentOptionSelected = new Object();
    
    //CALL BACKS
    var onClickEvent;
    
    //MOUSE EVENTS
    var _mouseEventer = new Events(_oControl, _oRootElement, this);
    
    
    //*****************************
    //   GETTER / SETTERS
    //*****************************
    
    this.addNavProperties = function(oNavElements) {_oNavElements = oNavElements;};
    this.navProperties = function() {return _oNavElements;};
    
    //*****************************
    //   PRIVATE
    //*****************************
    
    //******************************
    //  GENERAL PROPERTIES
    //******************************
    function initateProperties() {
        var oText = _oScope.navProperties().speaker1_txt;
        highlightSelection(oText)
    }
    
    
    //*****************************
    //  INITIATE EVENT
    //*****************************
    function initiateMouseEvents() {
      //PROPERTIES
      var oTarget = _oScope.navProperties();
      var oSpeaker1 = oTarget.speaker1_btn;
      var oSpeaker2 = oTarget.speaker2_btn;
      var oSpeaker3 = oTarget.speaker3_btn;
      
      
     
     //ADD EVENTS TO LISTEN
     _mouseEventer.add("Speaker1", oSpeaker1, "MouseLeftButtonDown", speaker1Click);
     _mouseEventer.add("Speaker2", oSpeaker2, "MouseLeftButtonDown", speaker2Click);
     _mouseEventer.add("Speaker3", oSpeaker3, "MouseLeftButtonDown", speaker3Click);
     
    }
    
    //******************************
    //MOUSE EVENTS
    //******************************
    
    //BALLMER
    function speaker1Click(event, args) {
      var oText = _oScope.navProperties().speaker1_txt;
       dispatchEvent(event);
       highlightSelection(oText);
       
    }
    
    //OTHER GUY
    function speaker2Click(event, args) {
        var oText = _oScope.navProperties().speaker2_txt;
       dispatchEvent(event);
       highlightSelection(oText);
    }
    
    //TIM
    function speaker3Click(event, args) {
        var oText = _oScope.navProperties().speaker3_txt;
       dispatchEvent(event);
       highlightSelection(oText);
    }
    
    //*****************************
    //  DISPATCH EVENT - CALL BACK
    //*****************************
    
    function dispatchEvent(oButton) {
         if( _oScope.onClickEvent != undefined) {
             _oScope.onClickEvent(oButton);
        }
    }
    
    //******************************
    //  VIDEO SELECTION HIGHLIGHT
    //******************************
    function highlightSelection(oTarget) {
        var oTarget = oTarget;
        
        //IF NOT FIRST TIME RUNNING
        if(_oCurrentOptionSelected.name != undefined) {
            _oCurrentOptionSelected.Foreground = "White";
         }
         
         oTarget.Foreground = "Yellow";
        _oCurrentOptionSelected = oTarget;
    }
   
   
    //*****************************
    //   PUBLIC
    //*****************************
    
   this.initiate = function() {
        initiateMouseEvents();
        initateProperties();
    }
}