﻿var strControlSelec; var http_request = false; var objetoReceptor = null; function DarNombreControlCombo(strControl) { var nombreControl = strControl.split("_").reverse()[2] + strControl.split("_").reverse()[1]; return nombreControl.replace("undefined", "") }
function DarObjetoCalculadoCB(IDControl) {
    if (IDControl)
        try {
        var control = null; if (IDControl.search("obj") == -1)
            control = eval("".concat("obj", IDControl)); else
            control = eval(IDControl); return control;
    }
    catch (ex)
{ return null; }
    else
        return null;
}
var ComboBox = function(ControlID, strComboBoxID, strHiddenFieldID, strHiddenFieldNombre, DataSourceUrl, TextoCuandoEstaVacio, ComboBoxCascadeID, AutoPostBack, EsPostBack, Adicional, UpdatePanel, BuscarNombre, DataSourceUrlTodos)
{ this.ID = ControlID; this.ComboBox = document.getElementById(strComboBoxID); this.HiddenField = document.getElementById(strHiddenFieldID); this.HiddenFieldNombre = document.getElementById(strHiddenFieldNombre); this.DataSourceUrl = DataSourceUrl; this.TextoVacio = TextoCuandoEstaVacio; this.ComboBoxCascadeID = ComboBoxCascadeID; this.AutoPostBack = AutoPostBack; this.EsPostBack = EsPostBack.toLowerCase(); this.Adicional = Adicional; this.UpdatePanel = UpdatePanel; this.BuscarNombre = BuscarNombre; this.DataSourceUrlTodos = DataSourceUrlTodos; }; ComboBox.prototype.ID = null; ComboBox.prototype.ComboBox = null; ComboBox.prototype.HiddenField = null; ComboBox.prototype.HiddenFieldNombre = null; ComboBox.prototype.DataSourceUrl; ComboBox.prototype.TextoVacio; ComboBox.prototype.ComboBoxCascadeID; ComboBox.prototype.AutoPostBack; ComboBox.prototype.EsPostBack; ComboBox.prototype.Adicional; ComboBox.prototype.BuscarNombre; ComboBox.prototype.DataSourceUrlTodos; ComboBox.prototype.RemoverTodo = function() {
    if (this.ComboBox == null) return; this.ComboBox.options.length = 0; this.ComboBox.options[0] = new Option(this.TextoVacio, "-1"); var objCasacade = DarObjetoCalculadoCB(this.ComboBoxCascadeID); if (objCasacade != null)
    { objCasacade.RemoverTodo(); } 
}; ComboBox.prototype.Llenar = function(e) {
    if (this.ComboBox == null) return; this.ComboBox.onchange = this.OnChangeComboBox; this.RemoverTodo(); if (this.DataSourceUrl.search("varId") == -1)
    { makeRequest(this.DataSourceUrl, this); }
    else
    { makeRequest(this.DataSourceUrl.replace("varId", e.toString()), this); }
    var objCasacade = DarObjetoCalculadoCB(this.ComboBoxCascadeID); if (objCasacade != null) {
        if (objCasacade.HiddenField.value != "-1" && objCasacade.HiddenField.value != "")
        { this.CambioValorComboBox(); } 
    } 
}; ComboBox.prototype.ArmarDatos = function(Xml) {
    var encontroDato = false; if (Xml.getElementsByTagName("key").length != 0) {
        for (i = 0; i < Xml.getElementsByTagName("key").length; i++) {
            var _key = DarValorXML(Xml.getElementsByTagName("key")[i]); var _value = DarValorXML(Xml.getElementsByTagName("value")[i]); this.ComboBox.options[i + 1] = new Option(_value, _key); if (!this.BuscarNombre && this.HiddenField.value != "-1" && this.HiddenField.value == _key)
            { this.ComboBox.options[i + 1].selected = true; encontroDato = true; }
            if (this.BuscarNombre = "true" && this.HiddenFieldNombre.value != "" && this.HiddenFieldNombre.value == _value)
            { this.ComboBox.options[i + 1].selected = true; encontroDato = true; } 
        } 
    }
    if (this.Adicional != "")
    { this.ComboBox.options[i + 1] = new Option(this.Adicional, "-2"); }
    if (!encontroDato && (this.HiddenFieldNombre.value != "" || this.HiddenField.value != "-1") && this.HiddenField.value != "0" && this.DataSourceUrlTodos != "")
    { this.RemoverTodo(); makeRequest(this.DataSourceUrlTodos, this); } 
}; ComboBox.prototype.OnChangeComboBox = function(e)
{ e = e ? e : window.event; var idComboBox = DarNombreControlCombo(EsIE() ? e.srcElement.id : e.target.id); var objComboBox = DarObjetoCalculadoCB(idComboBox); if (objComboBox == null) return; objComboBox.CambioValorComboBox(); }; ComboBox.prototype.CambioValorComboBox = function() {
    if (this.ComboBox == null) return; var _id = this.ComboBox.options[this.ComboBox.selectedIndex].value; var _text = this.ComboBox.selectedText; var objHidden = this.HiddenField; objHidden.value = _id; var objHiddenNombre = this.HiddenFieldNombre; objHiddenNombre.value = _text; if (this.ComboBox.selectedIndex >= 0) {
        var objCasacade = DarObjetoCalculadoCB(this.ComboBoxCascadeID); if (objCasacade != null) {
            if (_id == -1)
            { objCasacade.ComboBox.disabled = true; objCasacade.RemoverTodo(); }
            else
            { objCasacade.ComboBox.disabled = false; objCasacade.Llenar(_id); } 
        }
        if (this.AutoPostBack)
        { __doPostBack(objHidden.id, ""); } 
    } 
}; function LLenarComboBox(idClientComboBox) {
    var idComboBox = DarNombreControlCombo(idClientComboBox); var objComboBox = DarObjetoCalculadoCB(idComboBox); if (objComboBox == null) return; if (objComboBox.DataSourceUrl && objComboBox.DataSourceUrl.search("varId") == -1)
    { objComboBox.Llenar(); if (objComboBox.EsPostBack == "true") objComboBox.CambioValorComboBox(); }
    else
    { objComboBox.RemoverTodo(); } 
}
function LLenarComboBox2(idClientComboBox) {
    var idComboBox = DarNombreControlCombo(idClientComboBox); var objComboBox = DarObjetoCalculadoCB(idComboBox); if (objComboBox == null) return; if (objComboBox.DataSourceUrl && objComboBox.DataSourceUrl.search("varId") == -1) { objComboBox.Llenar(); }
    else { objComboBox.RemoverTodo(); } 
}
function DefinirTextoVacioComboBox(idClientComboBox, TextoCuandoEstaVacio)
{ var idComboBox = DarNombreControlCombo(idClientComboBox); var objComboBox = DarObjetoCalculadoCB(idComboBox); if (objComboBox == null) return; objComboBox.TextoVacio = TextoCuandoEstaVacio; }
function DefinirDataSourceUrlComboBox(idClientComboBox, DataSourceUrl)
{ var idComboBox = DarNombreControlCombo(idClientComboBox); var objComboBox = DarObjetoCalculadoCB(idComboBox); if (objComboBox == null) return; objComboBox.DataSourceUrl = DataSourceUrl; }
function DefinirPostBackComboBox(idClientComboBox, AutoPostBack)
{ var idComboBox = DarNombreControlCombo(idClientComboBox); var objComboBox = DarObjetoCalculadoCB(idComboBox); if (objComboBox == null) return; objComboBox.AutoPostBack = AutoPostBack; }