function setSubcategories( category_id , select_id , selected_value , default_value , default_title , loading )
{
    clearSelect( select_id );
    $(select_id).disabled = true;
    $(select_id).options[0] = new Option( loading , "" );
    var url = '/ajax/subcategories.php' ;
    var pars = 'category_id=' + category_id + '&select_id=' + select_id + '&selected_value=' + selected_value + '&default_value=' + default_value + '&default_title=' + default_title;
    var myAjax = new Ajax.Request
    (
        url,
        {
                method          : 'get',
                parameters      : pars,
                onComplete      : simpleFillSelect,
                asynchronous    : 'true'
        }
    );
}

function simpleFillSelect( originalRequest )
{
        var i,length,target_select,nextOption;
        var root_nodes = originalRequest.responseXML.childNodes;
        
        for ( i = 0 ; i < root_nodes.length ; i++ )
            if ( root_nodes.item(i).nodeName == "category" )
                category = root_nodes.item(i);
              
        category_nodes = category.childNodes;    
    
        for ( i = 0 ; i < category_nodes.length ; i++ )
        {
            if ( category_nodes.item(i).nodeName == "subcategories" )
                subcategories = category_nodes.item(i).childNodes;
            if ( category_nodes.item(i).nodeName == "default_title" )
                default_title = getXmlNodeValue( category_nodes.item(i) );
        }
    
        for( i = 0 ; i < category.attributes.length ; i++ )
        {
            if( category.attributes.item(i).nodeName == 'select_id' )
                target_select_id = category.attributes.item(i).nodeValue;
            if( category.attributes.item(i).nodeName == 'selected_value' )
                selected_value = category.attributes.item(i).nodeValue;
            if( category.attributes.item(i).nodeName == 'default_value' )
                default_value = category.attributes.item(i).nodeValue;                
        }
        
        target_select = document.getElementById( target_select_id );
        clearSelect( target_select );
        nextOption = target_select.options.length;
        
        if( default_title )
            target_select.options[nextOption] = new Option( default_title , default_value );
    
        for ( i = 0 ; i < subcategories.length ; i++ )
            if ( subcategories.item(i).nodeName == "category" )
            {
                category = subcategories.item(i);
                for( j = 0 ; j < category.attributes.length ; j++ )
                    if( category.attributes.item(j).nodeName == 'id' )
                    {
                        nextOption = target_select.options.length;
                        target_select.options[nextOption] = new Option( getXmlNodeValue( category ) , category.attributes.item(j).nodeValue );
                        if ( category.attributes.item(j).nodeValue == selected_value )
                            target_select.options[nextOption].selected = "true";
                    }
            }
            
        target_select.disabled = false;
}
    
function getXmlNodeValue(xmlNode)
{
    if( xmlNode.textContent != undefined )
        return unescape( xmlNode.textContent );
        
    if( xmlNode.text != undefined )
        return unescape( xmlNode.text );        
}    