﻿//********************************
//  CONSTRUCTOR
//********************************
function SpeakerContFramework(oControl, oRootElement) {

	//alert("Hello");
    //********************************
    //  PROPERTIES
    //********************************
    var _oControl = oControl;
    var _oRootElement = oRootElement;
    var _oScope = this;

    //VIDEO PLAYER PROPERTIES
    var _oDropDownClass = new Object();
    var _oNavOptions = new Object();
    
    
    //SPEAKER PROPERTIES
    var _aSpeakers = new Array();
    
    //CUSTOM CLASS
    var _navUI = new NavSpeaker(_oControl, _oRootElement);
    var _elements = new Elements(_oControl, _oRootElement);
    
    //********************************
    //  GETTER / SETTER
    //********************************
    
    this.addDropDown = function(oDropDownClass) {_oDropDownClass = oDropDownClass;};
    this.dropDown = function() {return _oDropDownClass;};

    //********************************
    //  PRIVATE
    //********************************

    function initiateGeneralProperties() {
       applyMatchData("speaker1_btn", initiateSpeakerProperties().speaker1);
       applyMatchData("speaker2_btn", initiateSpeakerProperties().speaker2);
       applyMatchData("speaker3_btn", initiateSpeakerProperties().speaker3);
    }
    
    function applyMatchData(sReference, oMethodCall) {
        _aSpeakers.push({reference:sReference, methodCall:oMethodCall});
    }


    //***********************************************
    //  SPEAKER FUNCTIONALITY
    //***********************************************
    function initiateSpeakerOption() {
        _elements.addItem("speaker1_btn");
        _elements.addItem("speaker2_btn");
        _elements.addItem("speaker3_btn");
        
        _elements.addItem("speaker1_text");
        _elements.addItem("speaker2_text");
        _elements.addItem("speaker3_text");
      }


    //********************************
    // SPEAKER DATA
    //********************************
    function initiateSpeakerProperties() {
    
        //INITIATE SPEAKER 1
        this.speaker1 = function() {
        
             //WMV PROPERTIES
            var oWMV_Option = new Object();
            oWMV_Option.Title = "Media Player"
            oWMV_Option.Option1 = setData("750K: 480x270", "http://msvcatalog-3.wmod.llnwd.net/a2249/e1/ft/share2/f361/0/34618_LibDay_Ballmer_MBR.wmv");
            oWMV_Option.Option2 = setData("300K: 384x216", "http://msvcatalog-3.wmod.llnwd.net/a2249/e1/ft/share2/f361/0/34618_LibDay_Ballmer_MBR.wmv");
            oWMV_Option.Option3 = setData("100k: 256x144", "http://msvcatalog-3.wmod.llnwd.net/a2249/e1/ft/share2/f361/0/34618_LibDay_Ballmer_MBR.wmv");
            oWMV_Option.isSilverlight = false;
            
             //WMV PROPERTIES
            var oSilver_Option = new Object();
            oSilver_Option.Title = "Silverlight"
            oSilver_Option.Option1 = setData("750K: 480x270", "http://msvcatalog-3.wmod.llnwd.net/a2249/e1/ft/share2/f361/0/34618_LibDay_Ballmer_MBR.wmv");
            oSilver_Option.Option2 = setData("300K: 384x216", "http://msvcatalog-3.wmod.llnwd.net/a2249/e1/ft/share2/f361/0/34618_LibDay_Ballmer_MBR.wmv");
            oSilver_Option.Option3 = setData("100k: 256x144", "http://msvcatalog-3.wmod.llnwd.net/a2249/e1/ft/share2/f361/0/34618_LibDay_Ballmer_MBR.wmv");
            oSilver_Option.isSilverlight = true; 
            
            //INITIATE 
            applyData(oWMV_Option, oSilver_Option);
        }
        
        //INITIATE SPEAKER 2
        this.speaker2 = function() {
            
            //WMV PROPERTIES
            var oWMV_Option = new Object();
            oWMV_Option.Title = "Media Player"
            oWMV_Option.Option1 = setData("750K: 480x270", "http://msnvideo.wmod.llnwd.net/a392/d1/cmg/34618_LibDay_Carraro_MBR.wmv");
            oWMV_Option.Option2 = setData("300K: 384x216", "http://msnvideo.wmod.llnwd.net/a392/d1/cmg/34618_LibDay_Carraro_MBR.wmv");
            oWMV_Option.Option3 = setData("100k: 256x144", "http://msnvideo.wmod.llnwd.net/a392/d1/cmg/34618_LibDay_Carraro_MBR.wmv");
            oWMV_Option.isSilverlight = false;
            
             //WMV PROPERTIES
            var oSilver_Option = new Object();
            oSilver_Option.Title = "Silverlight"
            oSilver_Option.Option1 = setData("750K: 480x270", "http://msnvideo.wmod.llnwd.net/a392/d1/cmg/34618_LibDay_Carraro_MBR.wmv");
            oSilver_Option.Option2 = setData("300K: 384x216", "http://msnvideo.wmod.llnwd.net/a392/d1/cmg/34618_LibDay_Carraro_MBR.wmv");
            oSilver_Option.Option3 = setData("100k: 256x144", "http://msnvideo.wmod.llnwd.net/a392/d1/cmg/34618_LibDay_Carraro_MBR.wmv");
            oSilver_Option.isSilverlight = true; 
            
            //INITIATE 
            applyData(oWMV_Option, oSilver_Option);
        }
        
        //INITIATE SPEAKER 3
        this.speaker3 = function() {
        
             //WMV PROPERTIES
            var oWMV_Option = new Object();
            oWMV_Option.Title = "Media Player"
            oWMV_Option.Option1 = setData("750K: 480x270", "http://msvcatalog-3.wmod.llnwd.net/a2249/e1/ft/share2/c52e/0/34618_Sneath_MBR.wmv");
            oWMV_Option.Option2 = setData("300K: 384x216", "http://msvcatalog-3.wmod.llnwd.net/a2249/e1/ft/share2/c52e/0/34618_Sneath_MBR.wmv");
            oWMV_Option.Option3 = setData("100k: 256x144", "http://msvcatalog-3.wmod.llnwd.net/a2249/e1/ft/share2/c52e/0/34618_Sneath_MBR.wmv");
            oWMV_Option.isSilverlight = false;
            
             //WMV PROPERTIES
            var oSilver_Option = new Object();
            oSilver_Option.Title = "Silverlight"
            oSilver_Option.Option1 = setData("750K: 480x270", "http://msvcatalog-3.wmod.llnwd.net/a2249/e1/ft/share2/c52e/0/34618_Sneath_MBR.wmv");
            oSilver_Option.Option2 = setData("300K: 384x216", "http://msvcatalog-3.wmod.llnwd.net/a2249/e1/ft/share2/c52e/0/34618_Sneath_MBR.wmv");
            oSilver_Option.Option3 = setData("100k: 256x144", "http://msvcatalog-3.wmod.llnwd.net/a2249/e1/ft/share2/c52e/0/34618_Sneath_MBR.wmv");
            oSilver_Option.isSilverlight = true; 
            
            //INITIATE 
            applyData(oWMV_Option, oSilver_Option);
        }
        
        return this;
    }

    //*******************************
    //  SET DATA
    //*******************************
    function setData(sTitle, sURL) {
        var oData = new Object();
        oData.title = sTitle;
        oData.url = sURL;
        return oData;
    }

    //********************************
    //  APPLY DATA
    //********************************
    
    function applyData(oWMVProperties, oSilverProperties) {
        var oDropDown = _oScope.dropDown();
        var oWMVProp = oWMVProperties;
        var oSilverProp = oSilverProperties;
        
        //APPLY PROPERTIES
        oDropDown.addWMVProperties(oWMVProp);
        oDropDown.addSilverProperties(oSilverProp);
        
        //INITIATE
        oDropDown.applyProperties();
    }
    
    
    
    //*********************************
    //  INITATE UI
    //*********************************
    
    function initiateUI() {
        
        //PROPERTIES
        var oNavProp = new Object();
        
        //BUTTON PROPERTIES
        oNavProp.speaker1_btn = _elements.getItem("speaker1_btn");
        oNavProp.speaker2_btn = _elements.getItem("speaker2_btn");
        oNavProp.speaker3_btn = _elements.getItem("speaker3_btn");
        
        //TEXT PROPERTIES
        oNavProp.speaker1_txt = _elements.getItem("speaker1_text");
        oNavProp.speaker2_txt = _elements.getItem("speaker2_text");
        oNavProp.speaker3_txt = _elements.getItem("speaker3_text");
        
        //CALL BACK LISTENER
        _navUI.onClickEvent = function(oButton) {
            checkNav(oButton.name);
        }
        
        
        //APPLY PROPERTIES
        _navUI.addNavProperties(oNavProp);
        _navUI.initiate();
    }
    
    //***********************************
    //  CHECK NAV PRESSED AND PUSH DATA
    //***********************************
    function checkNav(sTarget) {
     var aTarget = _aSpeakers;
     var nLength = aTarget.length;
   
     //CHECK FOR MATCH
     for(var i = 0; i < nLength; i++ ) {
        if(_aSpeakers[i].reference == sTarget) {
          aTarget[i].methodCall();
         
        }
     }
     
    }
    
    
    //********************************
    //  PUBLIC
    //********************************
    this.initiate = function() {
       initiateSpeakerOption();
       initiateUI();
       initiateGeneralProperties();
       initiateSpeakerProperties().speaker1();
     }
    
}
