
function updateSupportType(){
    if ($F('ServiceServiceSupportTypeId')!='') {
        new Ajax.Request('/service_support_types/ajax_get_children/' + $F('ServiceServiceSupportTypeId'),
            {
                method: 'get',
                onSuccess: processSupportTypeUpdate,
                onFailure: function(r){
                    throw new Error('error');
                }   
                
            }
        );      
    } else {
        var subElement = $('subElement');
        removeElements(subElement);
        subElement.add(
            new Option("Select a Support Type   ",""),document.all ? 0 : null
        );
        subElement.disabled = true;     
    }
}

function showServiceTypes(elementNumber){
    var detailsElement = $('types_' + elementNumber)
    var detailsLink = $('types_link_' + elementNumber);
    if (detailsElement.style.display == 'none') {
        detailsElement.style.display = 'block';
        detailsLink.innerHTML = "Hide Details";
    } else {
        detailsElement.style.display = 'none';
        detailsLink.innerHTML = "Show Details";
    }
}
function processSupportTypeUpdate(r){
    var data = eval("(" + r.responseText + ")");
    var subElement = $('subElement');

    removeElements(subElement);
    
    if(data.length==0){
        subElement.add(
            new Option("There are no sub categories   ",""),document.all ? 0 : null
        );
        subElement.disabled = true;
    } else {

        subElement.add(
            new Option("Select sub type if desired   ",""),document.all ? 0 : null
        );

        selectedValue = $F('sub_service_support_type_id');        
        for (var n=0; n<data.length; n++) {
            var selected = false;

            if(data[n].ServiceSupportType.id==selectedValue){
                selected = true;
            }
            var opt = new Option(data[n].ServiceSupportType.name,data[n].ServiceSupportType.id, selected);
            opt.selected = selected;
            
            try {
                subElement.add(opt, null);
            } catch (e) {
                subElement.add(opt);
            }
        }

        subElement.disabled = false;
    }
}

function removeElements (element) {
    while (element.options.length>1) {
        element.remove(1);  
    }
    element.remove(0);
}
