﻿/// <reference name="MicrosoftAjax.js"/>

Type.registerNamespace("TUI.TipsCommunity.Templates.WebControls");

TUI.TipsCommunity.Templates.WebControls.ComboDropDownList = function(element) {
    TUI.TipsCommunity.Templates.WebControls.ComboDropDownList.initializeBase(this, [element]);
    this._customListItemName = null;
    this._customTextbox = null;
    this._listButton = null;
}

TUI.TipsCommunity.Templates.WebControls.ComboDropDownList.prototype = {
    initialize: function() {
        TUI.TipsCommunity.Templates.WebControls.ComboDropDownList.callBaseMethod(this, 'initialize');
        
        Sys.UI.DomElement.setVisibilityMode(this.get_customTextbox(), Sys.UI.VisibilityMode.collapse);
        Sys.UI.DomElement.setVisibilityMode(this.get_listButton(), Sys.UI.VisibilityMode.collapse);
        Sys.UI.DomElement.setVisibilityMode(this.get_element(), Sys.UI.VisibilityMode.collapse);
        $addHandlers(this.get_element(), { "change" : this.comboDropDownChanged }, this);
        $addHandlers(this.get_listButton(), { "click" : this.listButtonClicked }, this);
    },
    dispose: function() {
        //Add custom dispose actions here
        TUI.TipsCommunity.Templates.WebControls.ComboDropDownList.callBaseMethod(this, 'dispose');
    },
    comboDropDownChanged: function(event) {
        this.updateVisibility();
    },
    listButtonClicked: function(event) {
        event.preventDefault();
        this.get_element().selectedIndex = 0;
        this.get_customTextbox().value = '';
        this.updateVisibility();
    },
    updateVisibility: function() {
        var customState = this.get_element().value == this.get_customListItemName();
        Sys.UI.DomElement.setVisible(this.get_listButton(), customState);
        Sys.UI.DomElement.setVisible(this.get_customTextbox(), customState);
        Sys.UI.DomElement.setVisible(this.get_element(), !customState);
    },
    get_customListItemName: function() {
        return this._customListItemName;
    },
    set_customListItemName: function(value) {
        this._customListItemName = value;
    },
    get_customTextbox: function() {
        return this._customTextbox;
    },
    set_customTextbox: function(value) {
        this._customTextbox = value;
    },
    get_listButton: function() {
        return this._listButton;
    },
    set_listButton: function(value) {
        this._listButton = value;
    }
}
TUI.TipsCommunity.Templates.WebControls.ComboDropDownList.registerClass('TUI.TipsCommunity.Templates.WebControls.ComboDropDownList', Sys.UI.Control);

if (typeof(Sys) !== 'undefined') Sys.Application.notifyScriptLoaded();
