﻿Type.registerNamespace('Intel.ARK.Silverlight1_0.Controls');

/////////////////////////////////////////////////////////////////////////////////////////////
//Setup
/////////////////////////////////////////////////////////////////////////////////////////////
Intel.ARK.Silverlight1_0.Controls.SelectionBrowser = function Intel$ARK$Silverlight1_0$Controls$SelectionBrowser(domElement)
{
    if(domElement)
    {
        /// <param name="domElement" domElement="true"></param>
        var e = Function._validateParams(arguments, [{name: "domElement", domElement: true }]);
        if (e) throw e;
        
        this._host = domElement;
        this._root_xmouse = 0;
        this._root_ymouse = 0;
        
        this._stripTemplate = null;
        this._matchingTemplate = null;
        
        this._matchingPlatformsBrowser = null;
        
        this._selected_family_id;
        this._selected_series_id;
        this._selected_group_id;
        this._selected_platform_id;
        this._isCodeNameMode = false;
        
        this._familyStrip;
        this._seriesStrip;
        this._groupStrip;
                
        Intel.ARK.Silverlight1_0.Controls.SelectionBrowser.initializeBase(this, [domElement]);
    }
}

function Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$initialize()
{    
    Intel.ARK.Silverlight1_0.Controls.SelectionBrowser.callBaseMethod(this, "initialize");
    
    this.doInitialization();
}
function Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$doInitialization()
{
    //need to make sure that the .net ajax extensions have been loaded (seen instances in Firefox where it wasn't at this point)
    if(!$get(this._host.id))
    {
        this._initializeTimeout = setTimeout(Silverlight.createDelegate(this, this.doInitialization), 250);
        return;
    }
    //need to give the silverlight control time to download the base xaml.  should only be necessary for people with slow connections.
    var element = this.get_element().content;
    if(this.get_element().content.root == null)
    {
        this._initializeTimeout = setTimeout(Function.createDelegate(this, this.doInitialization), 250);
        return;
    }

    this.get_element().content.root.findName("SelectionBrowserCanvas").addEventListener("MouseMove", Function.createDelegate(this, this.onMouseMove));
    
    this.get_element().content.root.findName("UsageModelButton").addEventListener("MouseEnter", Function.createDelegate(this, this.onModeMouseEnter));
    this.get_element().content.root.findName("CodeNameButton").addEventListener("MouseEnter", Function.createDelegate(this, this.onModeMouseEnter));
    this.get_element().content.root.findName("UsageModelButton").addEventListener("MouseLeave", Function.createDelegate(this, this.onModeMouseLeave));
    this.get_element().content.root.findName("CodeNameButton").addEventListener("MouseLeave", Function.createDelegate(this, this.onModeMouseLeave));
    this.get_element().content.root.findName("UsageModelButton").addEventListener("MouseLeftButtonDown", Function.createDelegate(this, this.onModeSelection));
    this.get_element().content.root.findName("CodeNameButton").addEventListener("MouseLeftButtonDown", Function.createDelegate(this, this.onModeSelection));

    this.styleModeButtons();

    //asynchronously download the selection strip template
    var downloader = this.get_element().createObject("downloader");
    downloader.addEventListener("completed", Function.createDelegate(this, this._stripTemplateDownloaded));
    downloader.open("GET", this.get_selectionStripTemplateUrl());
    downloader.send();
    
    var matchingDownloader = this.get_element().createObject("downloader");
    matchingDownloader.addEventListener("completed", Function.createDelegate(this, this._matchingTemplateDownloaded));
    matchingDownloader.open("GET", this.get_matchingPlatformsBrowserTemplateUrl());
    matchingDownloader.send();
}
function Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$dispose()
{
    this._disposed = true;
    
    Intel.ARK.Silverlight1_0.Controls.SelectionBrowser.callBaseMethod(this, "dispose");
}
/////////////////////////////////////////////////////////////////////////////////////////////
// End Setup - Begin Events
/////////////////////////////////////////////////////////////////////////////////////////////
function Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$stripTemplateDownloaded(sender, eventArgs)
{
    this._stripTemplate = sender.ResponseText;
    var id = 'selectionStrip_';
    var top = 0;
    
    for(var i = 0; i < 3; i++)
    {
        var strip = this.get_element().content.createFromXaml(this._stripTemplate, true);

        var stripInstance =  new Intel.ARK.PlatformBrowser.SelectionStrip(this.get_element(), strip, i, this.get_selectionStripButtonTemplateUrl(), 
                (i === 0) ? 'true' : 'false', this.get_dataMethod(), this.get_isCodeNameMode().toString());            
        
        strip["Canvas.Top"] = top;
        this.get_element().content.root.findName("SelectionStripsContainer").children.add(strip);
        switch(i) 
        {
            case 0:
                this._familyStrip = stripInstance;
                break;
            case 1:
                this._seriesStrip = stripInstance;
                break;
            case 2:
                this._groupStrip = stripInstance;
                break;
        }

        stripInstance.get_events().addHandler("ItemSelected", Function.createDelegate(this, this.onUsageModelSelected));
        
        top += 104;
    }    
    
    if(this.get_usageModelFamily() && this.get_usageModelSeries() && this.get_usageModelGroup())
    {
        this._familyStrip.loadButtons(null, null, null, this.get_usageModelFamily());
        this._seriesStrip.loadButtons(this.get_usageModelFamily(), null, null, this.get_usageModelSeries());
        this._groupStrip.loadButtons(this.get_usageModelFamily(), this.get_usageModelSeries(), null, this.get_usageModelGroup());
    }
    else if(this.get_usageModelFamily() && this.get_usageModelSeries())
    {
        this._familyStrip.loadButtons(null, null, null, this.get_usageModelFamily());
        this._seriesStrip.loadButtons(this.get_usageModelFamily(), null, null, this.get_usageModelSeries());
        this._groupStrip.loadButtons(this.get_usageModelFamily(), this.get_usageModelSeries(), null, "");
    }
    else if(this.get_usageModelFamily())
    {
        this._familyStrip.loadButtons(null, null, this.get_isCodeNameMode(), this.get_usageModelFamily());

        if(!this.get_isCodeNameMode())
        {
            this._seriesStrip.loadButtons(this.get_usageModelFamily(), null, null, "");
        }
    }
    else
    {
        this._familyStrip.loadButtons(null, null, this.get_isCodeNameMode(), "");
    }
}

function Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$matchingTemplateDownloaded(sender, eventArgs)
{
    this._matchingTemplate = sender.ResponseText;
    
    var browser = this.get_element().content.createFromXaml(this._matchingTemplate, true);
    var browserInstance = new Intel.ARK.PlatformBrowser.MatchingPlatformsBrowser(this.get_element(), browser, this.get_matchingPlatformsDataMethod(),
            this.get_usageModelFamily(), this.get_usageModelSeries(), this.get_usageModelGroup(), this.get_selectedPlatform(), 
            this.get_isCodeNameMode())
    
    browserInstance.get_events().addHandler("platformItemMouseLeftButtonDown", Function.createDelegate(this, this.onPlatformItemLeftMouseDown));

    this._matchingPlatformsBrowser = browserInstance;
    this.get_element().content.root.children.add(browser);
    
    
    //move matchingplatformsbrowser to its initial position.
    if(this.get_usageModelFamily() && this.get_usageModelSeries())
    {
        this.moveMatchingPlatformsBrowser(365);
    }
    else if(this.get_usageModelFamily() && !this.get_isCodeNameMode())
    {
        this.moveMatchingPlatformsBrowser(260);
    }
    
    if(this.get_selectedPlatform())
    {
        //find current coordinates of element passed in
        function findPos(obj) {
            var curleft = curtop = 0;
            if (obj.offsetParent) {
                curleft = obj.offsetLeft
                curtop = obj.offsetTop
                while (obj = obj.offsetParent) {
                    curleft += obj.offsetLeft
                    curtop += obj.offsetTop
                }
            }
            return [curleft,curtop];
        }
        
        var coordinates = findPos($get('platformDetails'));
        window.scrollTo(0, coordinates[1]);
    }
}

function Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$onMouseMove(sender, eventArgs)
{
    this._root_xmouse = eventArgs.getPosition(null).x;
    this._root_ymouse = eventArgs.getPosition(null).y;
    
    this.moveToolTip(sender);
}

function Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$onUsageModelSelected(sender, eventArgs)
{
    this._matchingPlatformsBrowser.clearSelections();
    if(sender == this._familyStrip)
    {
        this._seriesStrip.loadButtons(this._familyStrip.get_selectedSelectionButton().id);
        
        this._groupStrip.removeButtons();
        
        if(this._isCodeNameMode == false)
        { 
            this.moveMatchingPlatformsBrowser(260);
        }
    }
    else if(sender == this._seriesStrip)
    {
        this._groupStrip.loadButtons(this._familyStrip.get_selectedSelectionButton().id, this._seriesStrip.get_selectedSelectionButton().id);
        
        this.moveMatchingPlatformsBrowser(365);
    }
    else if(sender == this._groupStrip)
    {
    }
    
    if(!this._isCodeNameMode)
    {
        this._matchingPlatformsBrowser.loadButtons(this._familyStrip.get_selectedSelectionButton(), this._seriesStrip.get_selectedSelectionButton(), this._groupStrip.get_selectedSelectionButton(), "");
    }
    else
    {
        this._matchingPlatformsBrowser.loadButtons("", this._seriesStrip.get_selectedSelectionButton(), this._groupStrip.get_selectedSelectionButton(), this._familyStrip.get_selectedSelectionButton());
    }
}

function Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$onModeMouseEnter(sender, eventArgs)
{
    sender.findName(sender.name + "Overlay").visibility = "Visible";
}
function Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$onModeMouseLeave(sender, eventArgs)
{
    sender.findName(sender.name + "Overlay").visibility = "Collapsed";
}
function Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$onModeSelection(sender, eventArgs)
{
    if(sender.name === "UsageModelButton")
    {
        this.set_isCodeNameMode("false");
    }
    else if(sender.name === "CodeNameButton")
    {
        this.set_isCodeNameMode("true");
    }
    this.styleModeButtons();
        
    if(sender.name === "UsageModelButton")
    {
        this._isCodeNameMode = false;
        this._familyStrip.loadButtons(null, null, null, "");
        this._seriesStrip.removeButtons();
        this._groupStrip.removeButtons();
        this._matchingPlatformsBrowser.loadButtons();
        this._matchingPlatformsBrowser.clearSelections();
        this.moveMatchingPlatformsBrowser(155);
    }
    else if(sender.name === "CodeNameButton")
    {
        this._isCodeNameMode = true;
        this._familyStrip.loadButtons(null, null, true, "");
        this._seriesStrip.removeButtons();
        this._groupStrip.removeButtons();
        this._matchingPlatformsBrowser.loadButtons();
        this._matchingPlatformsBrowser.clearSelections();
        this.moveMatchingPlatformsBrowser(155);
    }
}

function Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$onPlatformItemLeftMouseDown(sender, eventArgs)
{
    var fam = this._familyStrip.get_selectedSelectionButton().id || '';
    var series = this._seriesStrip.get_selectedSelectionButton().id || '';
    var group = this._groupStrip.get_selectedSelectionButton().id || '';
    var mode = this._isCodeNameMode;

    window.location = 'platforms.aspx?fam=' + fam + '&series=' + series + '&group=' + group + '&platform=' + eventArgs.platformId + '&mode=' + mode;
}


////////////////////////////////////////////////////////////////////////////////////////////////////////
// End Events - Begin Helper Methods 
////////////////////////////////////////////////////////////////////////////////////////////////////////
//TODO: refactor this to be part of the MatchingPlatformsBrowser class instead of this one.
function Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$moveMatchingPlatformsBrowser(destination)
{
    //this method moves the matchingplatformsbrowser and the platformdetails div to the destination
    var canvas = this._matchingPlatformsBrowser.target.findName("MatchingPlatformsCanvas");
    
    var details = $get("platformDetails") || document.createElement("div");
    
    var top = details.style.top.replace(/px/,'');
    var destDiff = destination - canvas["Canvas.Top"];
    var panDiff = top - canvas["Canvas.Top"];
    
    var moveTween = new Tween(new Object(),'st',Tween.strongEaseOut,canvas["Canvas.Top"], destination, .25);
    moveTween.onMotionChanged = function(event)
    {
        canvas["Canvas.Top"] = event.target._pos;
        details.style.top = event.target._pos + panDiff + 'px';
    }
    moveTween.onMotionFinished = function(event)
    {
        if(canvas["Canvas.Top"] !== destination)
        {
            canvas["Canvas.Top"] = destination;
        }
        if(details.style.top !== (destination + panDiff))
        {
            details.style.top = destination + panDiff;
        }
    }
    moveTween.start();

}
function Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$moveToolTip(sender)
{
//    window.status = this._root_xmouse + " " + this._root_ymouse;
    
    if(this._root_xmouse > 300)
    {
        this._host.content.root.findName("ToolTipCanvas")["Canvas.Left"] = this._root_xmouse - 235;
    }
    else
    {
        this._host.content.root.findName("ToolTipCanvas")["Canvas.Left"] = this._root_xmouse + 25;
    }
    sender.findName("ToolTipCanvas")["Canvas.Top"] = this._root_ymouse;
}
function Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$styleModeButtons()
{
    var sl = this._host.content.root;
    if(!this.get_isCodeNameMode())
    {
        sl.findName("UsageModelButtonSelected").visibility = "Visible";
        sl.findName("UsageModelButtonText").foreground = "#FFFFFFFF";
        sl.findName("CodeNameButtonSelected").visibility = "Collapsed";
        sl.findName("CodeNameButtonText").foreground = "#FF000000";
    }
    else
    {
        sl.findName("CodeNameButtonSelected").visibility = "Visible";
        sl.findName("CodeNameButtonText").foreground = "#FFFFFFFF";
        sl.findName("UsageModelButtonSelected").visibility = "Collapsed";
        sl.findName("UsageModelButtonText").foreground = "#FF000000";
    }
}

////////////////////////////////////////////////////////////////////////////////////////////////////////
// End Helper Methods - Begin Properties
////////////////////////////////////////////////////////////////////////////////////////////////////////
function Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$get_selectionStripTemplateUrl()
{
    /// <value type="String"></value>
    if (arguments.length !== 0) throw Error.parameterCount();
    return this._selectionStripTemplateUrl || "";
}
function Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$set_selectionStripTemplateUrl(value)
{
    var e = Function._validateParams(arguments, [{name: "value", type: String}]);
    if (e) throw e;
    
    this._selectionStripTemplateUrl = value;
}
function Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$get_selectionStripButtonTemplateUrl()
{
    /// <value type="String"></value>
    if (arguments.length !== 0) throw Error.parameterCount();
    return this._selectionStripButtonTemplateUrl || "";
}
function Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$set_selectionStripButtonTemplateUrl(value)
{
    var e = Function._validateParams(arguments, [{name: "value", type: String}]);
    if (e) throw e;
    
    this._selectionStripButtonTemplateUrl = value;
}
function Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$get_selectionStripStartupStoryBoardUrl()
{
    /// <value type="String"></value>
    if (arguments.length !== 0) throw Error.parameterCount();
    return this._selectionStripStartupStoryBoardUrl || "";
}
function Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$set_selectionStripStartupStoryBoardUrl(value)
{
    var e = Function._validateParams(arguments, [{name: "value", type: String}]);
    if (e) throw e;
    
    this._selectionStripStartupStoryBoardUrl = value;
}
function Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$get_showButtonsOnStartUp()
{
    /// <value type="String"></value>
    if (arguments.length !== 0) throw Error.parameterCount();
    return this._showButtonsOnStartUp || "";
}
function Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$set_showButtonsOnStartUp(value)
{
    var e = Function._validateParams(arguments, [{name: "value", type: String}]);
    if (e) throw e;
    
    this._showButtonsOnStartUp = value;
}

function Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$get_dataMethod()
{
    /// <value type="String"></value>
    if (arguments.length !== 0) throw Error.parameterCount();
    return this._dataMethod || "";
}
function Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$set_dataMethod(value)
{
    var e = Function._validateParams(arguments, [{name: "value", type: String}]);
    if (e) throw e;
    
    this._dataMethod = value;
}
function Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$get_matchingPlatformsDataMethod()
{
    /// <value type="String"></value>
    if (arguments.length !== 0) throw Error.parameterCount();
    return this._matchingPlatformsDataMethod || "";
}
function Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$set_matchingPlatformsDataMethod(value)
{
    var e = Function._validateParams(arguments, [{name: "value", type: String}]);
    if (e) throw e;
    
    this._matchingPlatformsDataMethod = value;
}
function Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$get_matchingPlatformsBrowserTemplateUrl()
{
    /// <value type="String"></value>
    if (arguments.length !== 0) throw Error.parameterCount();
    return this._matchingPlatformsBrowserTemplateUrl || "";
}
function Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$set_matchingPlatformsBrowserTemplateUrl(value)
{
    var e = Function._validateParams(arguments, [{name: "value", type: String}]);
    if (e) throw e;
    
    this._matchingPlatformsBrowserTemplateUrl = value;
}
function Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$get_selectedUsageModelButtonTemplateUrl()
{
    /// <value type="String"></value>
    if (arguments.length !== 0) throw Error.parameterCount();
    return this._selectedUsageModelButtonTemplateUrl || "";
}
function Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$set_selectedUsageModelButtonTemplateUrl(value)
{
    var e = Function._validateParams(arguments, [{name: "value", type: String}]);
    if (e) throw e;
    
    this._selectedUsageModelButtonTemplateUrl = value;
}

function Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$get_usageModelFamily()
{
    /// <value type="String"></value>
    if (arguments.length !== 0) throw Error.parameterCount();
    return this._selected_family_id || "";
}
function Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$set_usageModelFamily(value)
{
    var e = Function._validateParams(arguments, [{name: "value", type: String}]);
    if (e) throw e;
    
    this._selected_family_id = value;
}
function Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$get_usageModelSeries()
{
    /// <value type="String"></value>
    if (arguments.length !== 0) throw Error.parameterCount();
    return this._selected_series_id || "";
}
function Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$set_usageModelSeries(value)
{
    var e = Function._validateParams(arguments, [{name: "value", type: String}]);
    if (e) throw e;
    
    this._selected_series_id = value;
}
function Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$get_usageModelGroup()
{
    /// <value type="String"></value>
    if (arguments.length !== 0) throw Error.parameterCount();
    return this._selected_group_id || "";
}
function Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$set_usageModelGroup(value)
{
    var e = Function._validateParams(arguments, [{name: "value", type: String}]);
    if (e) throw e;
    
    this._selected_group_id = value;
}
function Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$get_selectedPlatform()
{
    /// <value type="String"></value>
    if (arguments.length !== 0) throw Error.parameterCount();
    return this._selected_platform_id || "";
}
function Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$set_selectedPlatform(value)
{
    var e = Function._validateParams(arguments, [{name: "value", type: String}]);
    if (e) throw e;
    
    this._selected_platform_id = value;
}
function Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$get_isCodeNameMode()
{
    /// <value type="Boolean"></value>
    if (arguments.length !== 0) throw Error.parameterCount();
    return this._isCodeNameMode || false;
}
function Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$set_isCodeNameMode(value)
{
    var e = Function._validateParams(arguments, [{name: "value", type: String}]);
    if (e) throw e;
    
    this._isCodeNameMode = Boolean.parse(value);
}

///////////////////////////////////////////////////////////////////////////////////////////////
//End Properties - Begin Prototype
///////////////////////////////////////////////////////////////////////////////////////////////

Intel.ARK.Silverlight1_0.Controls.SelectionBrowser.prototype = 
{
    //properties
    get_selectionStripTemplateUrl: Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$get_selectionStripTemplateUrl,
    set_selectionStripTemplateUrl: Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$set_selectionStripTemplateUrl,
    get_selectionStripButtonTemplateUrl: Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$get_selectionStripButtonTemplateUrl,
    set_selectionStripButtonTemplateUrl: Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$set_selectionStripButtonTemplateUrl,
    get_selectionStripStartupStoryBoardUrl: Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$get_selectionStripStartupStoryBoardUrl,
    set_selectionStripStartupStoryBoardUrl: Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$set_selectionStripStartupStoryBoardUrl,
    get_showButtonsOnStartUp: Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$get_showButtonsOnStartUp,
    set_showButtonsOnStartUp: Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$set_showButtonsOnStartUp,
    get_dataMethod: Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$get_dataMethod,
    set_dataMethod: Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$set_dataMethod,
    get_matchingPlatformsDataMethod: Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$get_matchingPlatformsDataMethod,
    set_matchingPlatformsDataMethod: Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$set_matchingPlatformsDataMethod,
    get_matchingPlatformsBrowserTemplateUrl: Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$get_matchingPlatformsBrowserTemplateUrl,
    set_matchingPlatformsBrowserTemplateUrl: Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$set_matchingPlatformsBrowserTemplateUrl,
    get_selectedUsageModelButtonTemplateUrl: Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$get_selectedUsageModelButtonTemplateUrl,
    set_selectedUsageModelButtonTemplateUrl: Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$set_selectedUsageModelButtonTemplateUrl,

    get_usageModelFamily: Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$get_usageModelFamily,
    set_usageModelFamily: Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$set_usageModelFamily,
    get_usageModelSeries: Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$get_usageModelSeries,
    set_usageModelSeries: Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$set_usageModelSeries,
    get_usageModelGroup: Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$get_usageModelGroup,
    set_usageModelGroup: Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$set_usageModelGroup,
    get_selectedPlatform: Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$get_selectedPlatform,
    set_selectedPlatform: Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$set_selectedPlatform,
    get_isCodeNameMode: Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$get_isCodeNameMode,
    set_isCodeNameMode: Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$set_isCodeNameMode,
    
    //private methods
    _stripTemplateDownloaded: Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$stripTemplateDownloaded,
    _matchingTemplateDownloaded: Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$matchingTemplateDownloaded,

    //event handlers
    onMouseMove: Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$onMouseMove,
    onUsageModelSelected: Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$onUsageModelSelected,
    onPlatformItemLeftMouseDown: Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$onPlatformItemLeftMouseDown,
        
    onModeMouseEnter: Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$onModeMouseEnter,
    onModeMouseLeave: Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$onModeMouseLeave,
    onModeSelection: Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$onModeSelection,
    
    //public methods
    moveToolTip: Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$moveToolTip,
    moveMatchingPlatformsBrowser: Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$moveMatchingPlatformsBrowser,
    styleModeButtons: Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$styleModeButtons,
    
    doInitialization: Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$doInitialization,
    initialize: Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$initialize,
    dispose: Intel$ARK$Silverlight1_0$Controls$SelectionBrowser$dispose
}

Intel.ARK.Silverlight1_0.Controls.SelectionBrowser.registerClass("Intel.ARK.Silverlight1_0.Controls.SelectionBrowser", Intel.ARK.Silverlight1_0.Controls.Xaml);
