var supressDropDownClosing = false;

function OnClientDropDownClosing(sender, eventArgs)
{
    eventArgs.set_cancel(supressDropDownClosing);
}

function OnClientSelectedIndexChanging(sender, eventArgs)
{
    eventArgs.set_cancel(supressDropDownClosing);
}

function OnClientDropDownOpening(sender, eventArgs)
{
    supressDropDownClosing = true;
}

function OnClientBlur(sender)
{
    supressDropDownClosing = false;
    
    sender.toggleDropDown();
}                    

function checkboxClick(combo_id,hidden_id)
{            
    collectSelectedItems(combo_id,hidden_id);
}

function getItemCheckBox(item)
{
    //Get the 'div' representing the current RadComboBox Item.
    var itemDiv = item.get_element();
    
    //Get the collection of all 'input' elements in the 'div' (which are contained in the Item).
    var inputs = itemDiv.getElementsByTagName("input");
    
    for (var inputIndex = 0; inputIndex < inputs.length; inputIndex++)
    {   
        var input = inputs[inputIndex];
        
        //Check the type of the current 'input' element.
        if (input.type == "checkbox")
        {
            return input;
        }
    }
    
    return null;
}


function collectSelectedItems(combo_id,hidden_id)
{
    var combo = $find(combo_id);
    //alert(combo);
    var items = combo.get_items();
    
    var selectedItemsTexts = "";
    var selectedItemsValues = "";
    
    var itemsCount = items.get_count();
    
    for (var itemIndex = 0; itemIndex < itemsCount; itemIndex++)
    {
        var item = items.getItem(itemIndex);
       
        var checkbox = getItemCheckBox(item);
        
        //Check whether the Item's CheckBox) is checked.
        if (checkbox.checked)
        {
            selectedItemsTexts += item.get_text() + ", ";
            selectedItemsValues += item.get_value() + ",";
        }
    }

    selectedItemsTexts = selectedItemsTexts.substring(0, selectedItemsTexts.length - 2);
    selectedItemsValues = selectedItemsValues.substring(0, selectedItemsValues.length - 1);
    
    //Set the text of the RadComboBox with the texts of the selected Items, separated by ','.
    combo.set_text(selectedItemsTexts);

    //Set the comboValue hidden field value with values of the selected Items, separated by ','.
    document.getElementById(hidden_id).value = selectedItemsValues;
    
    if (selectedItemsValues == "")
    {
        combo.clearSelection();
        if (defaultComboText)
           combo.set_text(defaultComboText);
    }
}
function UpdateRadCombo(combo_id,hidden_id)
{
    var combo = $find(combo_id);
    var items = combo.get_items();
    var selArray = document.getElementById(hidden_id).value.split(',');
    var itemsCount = items.get_count();    
    for (var itemIndex = 0; itemIndex < itemsCount; itemIndex++)
    {
        var item = items.getItem(itemIndex);                       
        var checkbox = getItemCheckBox(item);
        checkbox.checked = false;
	    for (var i = 0; i <  selArray.length; i++)
	    {
	     if (item.get_value() == selArray[i])
	        {
            checkbox.checked = true;
            break;
            }               	 
	    }                    
    }                
}
