﻿//**************************
//  CONSTRUCTOR
//**************************
function DropDownFramework(control, rootElement) {

    //****************************
    //  PROPERTIES
    //****************************
    
    var _control = control;
    var _rootElement = rootElement;
    var _scope = this;
    
    //VIDEO FRAMEWORK
    var _videoClass = new Object();
    
    //CLASS REFERENCE
    var _elements = new Elements(_control, _rootElement);
    var _dropDown = new NavDropDown(_control, _rootElement);
    
    //DROP DOWN PROPERTIES
    var _oWMVProperties = new Object();
    var _oSilverProperties = new Object();
    
    
    //****************************
    //  GETTER / SETTERS
    //**************************** 
    
    this.addVideo = function(videoClass) {_videoClass = videoClass;};
    this.video = function() {return _videoClass;};
    
  
    //NAV PROPERTIES - WMV
    this.addWMVProperties = function(oWMVProperties) {_oWMVProperties = oWMVProperties;};
    this.WMVProperties = function() {return _oWMVProperties;};
    
    //NAV PROPERTIES - SILVERLIGHT
    this.addSilverProperties = function(oSilverProperties) {_oSilverProperties = oSilverProperties;};
    this.SilverProperties = function() {return _oSilverProperties;};

    //****************************
    // PRIVATE
    //****************************
    
    function initiateComponents() {
        
        //NAV ELEMENTS REFERENCE FROM XAML
        _elements.addItem("DropDown_container");
        _elements.addItem("DropDown_Nav_container");
        _elements.addItem("title_Default");
        _elements.addItem("Default_option");
        _elements.addItem("Secondary_option");
        _elements.addItem("title_Secondary");
        _elements.addItem("VideoLinks_container");
        _elements.addItem("option_1");
        _elements.addItem("option_2");
        _elements.addItem("option_3");
    }
    
    //****************************
    // DROP DOWN LIST   
    //****************************
    
//    //SILVERLIGHT
//    function dropDownSilverlightInfo() {
//    
//        //OPTION PROPERTIES
//        var oOption1 = new Object();
//        var oOption2 = new Object();
//        var oOption3 = new Object();
//        
//        oOption1.title = "750K: 480x270";
//        oOption1.url = "http://wm.istreamplanet.com/customers/ms/750_ms_aus_081106.asx";
//        oOption2.title = "300K: 384x216";
//        oOption2.url = "http://wm.istreamplanet.com/customers/ms/300_ms_aus_081106.asx";
//        oOption3.title = "100k: 256x144";
//        oOption3.url = "http://wm.istreamplanet.com/customers/ms/100_ms_aus_081106.asx";
//        
//        _dropDown.addDropDownProperties("Silverlight",oOption1, oOption2, oOption3, true);
//      }
//     
//      //MEDIA PLAYER
//      function dropDownWMVInfo() {
//        var oOption1 = new Object();
//        var oOption2 = new Object();
//        var oOption3 = new Object();
//        
//        oOption1.title = "750K: 480x270";
//        oOption1.url = "http://wm.istreamplanet.com/customers/ms/750_ms_aus_081106.asx";        
//        oOption2.title = "300K: 384x216";
//        oOption2.url = "http://wm.istreamplanet.com/customers/ms/300_ms_aus_081106.asx";
//        oOption3.title = "100k: 256x144";
//        oOption3.url = "http://wm.istreamplanet.com/customers/ms/100_ms_aus_081106.asx";
//        
//        _dropDown.addDropDownProperties("Media Player",oOption1, oOption2, oOption3, false);
//        
//     }
     
     //***************************
     // INITIATE PROPERTIES
     //***************************
     function initiateProperties() {
        var WMVProperties = _scope.WMVProperties();
        var SilverProperties = _scope.SilverProperties();
     
        //APPLY PROPERTIES
        parseProperties(SilverProperties);
        parseProperties(WMVProperties);
       
     }
     
     //***************************
     // PARSE PROPERTIES
     //***************************
     function parseProperties(oProperties) {
        var oTarget = oProperties;
        
    
        
        //PROPERTIES BREAKUP
        var oTitle = oTarget.Title;
        var oOption1 = oTarget.Option1;
        var oOption2 = oTarget.Option2;
        var oOption3 = oTarget.Option3;
        var bIsSilverlight = oTarget.isSilverlight;
       
       //APPLY PROPERTIES 
       _dropDown.clearDropDownProperties();
       _dropDown.addDropDownProperties(oTitle,oOption1, oOption2, oOption3, bIsSilverlight);
       _dropDown.applyUpdate();
        
     }
     
     
     //***************************
     // NAV DROPDOWN CLASS
     //***************************
    function initiateNavDropDownLogic() {
        var navElements = new Object();
        
        //DROP DOWN
        navElements.defaultButton = _elements.getItem("Default_option");
        navElements.secondaryButton = _elements.getItem("Secondary_option");
        
        //TEXT BLOCK
        navElements.defaultTitle = _elements.getItem("title_Default");
        navElements.secondaryTitle = _elements.getItem("title_Secondary");
        navElements.dropDownContainer = _elements.getItem("DropDown_Nav_container");
       
        //OPTIONS
        navElements.option1 = _elements.getItem("option_1");
        navElements.option2 = _elements.getItem("option_2");
        navElements.option3 = _elements.getItem("option_3");
        
        //APPLY INITIATE
        
       // alert(_scope.video().name);
        
        _dropDown.addNavElements(navElements);
        _dropDown.addVideoFramework(_scope.video()); 
        _dropDown.initiate();
    }
 
    //****************************
    //  PUBLIC 
    //****************************
    
    
    //INITIATE
    this.initiate = function() {
        initiateComponents();
        //dropDownSilverlightInfo();
       // dropDownWMVInfo();
        //initiateProperties();
        initiateNavDropDownLogic();
    }
    
    //***************************
    //  SET NEW PROPERTIES
    //***************************
    this.applyProperties = function() {
        initiateProperties();
        //dropDownWMVInfo();
    }
}