function onlyNumbers(e, with_minus)
{
    var keynum;
    var keychar;
    var numcheck;

    if(window.event) // IE
        keynum = e.keyCode;
    else if(e.which) // Netscape/Firefox/Opera
        keynum = e.which;
    if (!keynum) return true;
    if ((keynum == 8) || (keynum == 37) || (keynum == 38) || (keynum == 39) || (keynum == 40)
         || (keynum == 27) || (keynum == 46)  || (keynum == 13) || (keynum == 15) || (keynum == 16))
         return true;
    if ((with_minus) && (keynum == 45))
        return true;
    keychar = String.fromCharCode(keynum);
    if (!keychar) return true;
    numcheck = /\d/;
    return numcheck.test(keychar);
}

DevXCapFilter = function DevXCapFilter(name, defDesc, loadUrl, params){
    this.params = params;
    this.prefix = (typeof(params['prefix']) != 'undefined')? params['prefix'] : '';
    this.maxDesc = 3;
    this.name = name;
    this.loadUrl = loadUrl;
    this.defDesc = defDesc;
    this.filterArray = new Array();
    this.filterCount = 0;
    this.defFilterArray = new Array();
    this.defFilterCount = 0;
    this.min = -1;
    this.filterCancelFlag = false;
    this.header1 = (params['header1'])? params['header1'] : '';
    this.header2 = (params['header2'])? params['header2'] : '';
    this.note = (params['note'])? params['note'] : '';
    this.clean = true;
    this.minval = 'min';
    this.maxval = 'max';
    Ext.QuickTips.init();

    this.FilterMenu = new Ext.menu.FilterMenu({
        id: this.name+'Menu',
        minWidth : 149,
        allowOtherMenus : true
    });

    var f = this;
    this.FilterMenu.on('hide', function(menu){
        document.getElementById('errorPopup').style.display = 'none';
        menu_button.menuWasHidden = true;
        if (!f.filterCancelFlag) f.hide();
    });
    this.FilterMenu.on('show', function(menu){
        if (((f.MenuButton.getEl().hasClass('x-btn-over'))
                || (f.MenuButton.getEl().hasClass('x-btn-menu-active-over')))
                && (Ext.get(f.name+'OkLink')))
            Ext.get(f.name+'OkLink').addClass('selected');
    })

    var tb = new Ext.Toolbar();
    tb.render(this.name+'FilterMenu');

    var menu_button = new Ext.Toolbar.DevxButton({
            text:'',
            iconCls: '',
            eventBeforeMenu : true,
            menu: this.FilterMenu
        });
    this.mbOvered = false;
    menu_button.menuWasHidden = true;
    menu_button.on('mouseover', function(button, e){
        if (Ext.get(f.name+'OkLink')) Ext.get(f.name+'OkLink').addClass('selected');
        if ((button.menu) && (button.menu.isVisible()))
            button.getEl().addClass('x-btn-menu-active-over');
            else button.getEl().addClass('x-btn-over');
    });
    menu_button.on('mouseout', function(button, e){
        if (f.mbOvered) return;
        if (Ext.get(f.name+'OkLink')) Ext.get(f.name+'OkLink').removeClass('selected');
        button.getEl().removeClass('x-btn-menu-active-over');
        button.getEl().removeClass('x-btn-over');
    });
    menu_button.on('click', function(button, e){
        if (button.menu){
            var errorPopup = document.getElementById('errorPopup');
            errorPopup.style.display = 'none';
            var open_menu = true;
            if ((typeof(f.params['column_filter']) != 'undefined')
                && (typeof(Filters[f.params['column_filter']]) != 'undefined'))
            {
                var filter = Filters[f.params['column_filter']];
                if (!filter.MenuButton.menuWasHidden) {
                    open_menu = false;
                    errorPopup.style.position = 'absolute';
                    var el = Ext.get(f.name+'Filter');
                    var dom_el = Ext.getDom(el);
                    var x = 0;
                    while (dom_el.offsetParent){
                        x += dom_el.offsetLeft;
                        dom_el = dom_el.offsetParent;
                    }
                    //x = Math.ceil(x + el.getWidth()) - 10;
                    var y = el.getY();
                    errorPopup.style.left = x + 'px';
                    errorPopup.style.top = y + 'px';
                    errorPopup.style.display = 'inline';
                }
            }
            if (button.menuWasHidden && open_menu){
                button.menuWasHidden = false;
                button.getEl().addClass('x-btn-menu-active-over');
                if (!button.menu.isVisible()) button.showMenu();
            }else if (button.menu.isVisible() && !button.ignoreNextClick){
                button.getEl().removeClass('x-btn-menu-active-over');
                button.menu.hide();
            }
        }
    });
    this.MenuButton = menu_button;

    tb.add(menu_button);
    this.firstTimeShow = true;

    var url = this.loadUrl;
    loader.data['onerror'] = function(){};
    loader.processGET(url, function(http){
        var res = JSON.parse(http.responseText);
        f.filterCount = parseInt(res['count']);
        var k = 0;
        var check_filter = false;
        while (k < f.filterCount){
            if (res[k]['checked']) check_filter = true;
            if (!f.filterArray[k]){
                f.filterArray[k] = new DevXCapFilterObj(res[k]['name'], res[k]['full_name'], res[k]['checked'], res[k]['st_id'],
                    res[k]['min_val'], res[k]['max_val']);
            }else if (f.filterArray[k].st_id != res[k]['st_id']){
                f.filterArray[k].reload(res[k]['name'], res[k]['full_name'], res[k]['checked'], res[k]['st_id'],
                    res[k]['min_val'], res[k]['max_val']);
            }
            k++;
        }
        f.setDefault();
        var stageFilter = '<table class="filter_checks">';
        k = 0;
        if (document.getElementById(f.name+'_cap_min')){
            document.getElementById(f.name+'_cap_min').readOnly = false;
            document.getElementById(f.name+'_cap_max').readOnly = false;
            document.getElementById(f.name+'_cap_min').style.background = '#FFFFFF';
            document.getElementById(f.name+'_cap_max').style.background = '#FFFFFF';
        }
        var filterChecked = false;
        while(k < f.filterCount){
            stageFilter += '<tr><td class="checkbox_td">';
            stageFilter += '<input type=checkbox name='+f.name+'[] id='+f.name+'_' + f.filterArray[k].st_id
                    + ' value="' + f.filterArray[k].st_id + '"' + ((f.filterArray[k].checked)?' checked ' : '')
                    + 'style="display:none"><img \n\
                    src="img/' + ((f.filterArray[k].checked)?'checked.gif' : 'unchecked.gif') + '" id='+f.name+'_img_' + f.filterArray[k].st_id+'\n\
                    onclick="document.getElementById(\''+f.name+'_' + f.filterArray[k].st_id+'\').checked = !document.getElementById(\''+f.name+'_' + f.filterArray[k].st_id+'\').checked;\n\
                    this.src=\'img/\'+((document.getElementById(\''+f.name+'_' + f.filterArray[k].st_id+'\').checked)? \'checked.gif\' : \'unchecked.gif\');\n\
                    Filters[\''+f.name+'\'].checkCap();">';
            stageFilter += '</td><td>';
            stageFilter += f.filterArray[k].name;
            stageFilter += '</td></tr>';
            if (f.filterArray[k].checked) filterChecked = true;
            if (document.getElementById(f.name+'_cap_min') && f.filterArray[k].checked){
                document.getElementById(f.name+'_cap_min').style.color = '#8E8E8E';
                document.getElementById(f.name+'_cap_max').style.color = '#8E8E8E';
                document.getElementById(f.name+'_cap_min').style.background = '#F5F4EA';
                document.getElementById(f.name+'_cap_max').style.background = '#F5F4EA';
                document.getElementById(f.name+'_cap_min').readOnly = true;
                document.getElementById(f.name+'_cap_max').readOnly = true;
            }
            k++;
        }
        f.minval = ((res['min_val'] == '')? 'min' : res['min_val']);
        f.maxval = ((res['max_val'] == '')? 'max' : res['max_val']);
        stageFilter += '</table>'
        var filterDiv = '<div id="'+f.name+'FilterDiv">';
        filterDiv = filterDiv + '<div class="save-cancel">\n\
            <a href="javascript:Filters[\''+f.name+'\'].ok()" id="'+f.name+'OkLink"\n\
            onmouseover="Filters[\''+f.name+'\'].mbOvered = true; Filters[\''+f.name+'\'].MenuButton.fireEvent(\'mouseover\', Filters[\''+f.name+'\'].MenuButton);"\n\
            onmouseout="Filters[\''+f.name+'\'].mbOvered = false; Filters[\''+f.name+'\'].MenuButton.fireEvent(\'mouseout\', Filters[\''+f.name+'\'].MenuButton);"\n\
            >save</a><a href="javascript:Filters[\''+f.name+'\'].cancel()" class="sv_save">cancel</a>\n\
            </div>\n\
            '+f.header1+((f.header2 != '')?'' : '')+'\n\
            <div id="'+f.name+'FilterRange" style="padding-top:0px;height:20px;padding-left:12px;">\n\
            <input maxlength=7 size=7 type="text" style="position:absolute;background-color:'+((check_filter)? '#F5F4EA;' : '#FFFFFF;')
            +(((res['min_val'] == '') || (res['min_val'] == 'min') || filterChecked)? 'color:#8E8E8E;' : '')
            +'width:50px" id="'+f.name+'_cap_min" size=5\n\
            value="'+((res['min_val'] == '')? 'min' : res['min_val'])+'"\n\
            "'+((check_filter)? ' readonly ' : '')+'"\n\
            onfocus="if (this.readOnly) return; this.style.color=\'black\'; if (this.value == \'min\') this.value=\'\';"\n\
            onblur="if (this.readOnly) return; if (this.value == \'\'){ this.value=\'min\'; this.style.color=\'#8E8E8E\'}"\n\
            onkeypress="return onlyNumbers(event, false);"\n\
            >&nbsp;\n\
            <input maxlength=7 size=7 type="text" \n\
            value="'+((res['max_val'] == '')? 'max' : res['max_val'])+'"\n\
            "'+((check_filter)? ' readonly ' : '')+'"\n\
            style="position:absolute;margin-left:53px;background-color:'+((check_filter)? '#F5F4EA;' : '#FFFFFF;')
            +(((res['max_val'] == '') || (res['max_val'] == 'max') || filterChecked)? 'color:#8E8E8E;' : '')
            +'width:50px" id="'+f.name+'_cap_max" size=5 \n\
            onfocus="if (this.readOnly) return;this.style.color=\'black\'; if (this.value == \'max\') this.value=\'\'"\n\
            onblur="if (this.readOnly) return;if (this.value == \'\'){ this.value=\'max\';this.style.color=\'#8E8E8E\';}"\n\
            onkeypress="return onlyNumbers(event, false);"\n\
            ><img src="img/error.gif" id="'+f.name+'ErrorIcon" style="position:absolute;margin-left:108px;display:none"\n\
            ext:qtip="Min value must be less than max value." ext:qwidth=120>\n\
            </div>\n\
            <div class="x-menu_hr" style="height:13px;margin-bottom:10px;"></div>'+f.header2+((f.header2 != '')?'' : '')+'\n\
            <div id="'+f.name+'FilterFilters" style="margin-top:5px;">'+stageFilter+'</div>\n\
            '+((f.note != '')?'<div class="x-menu_hr"></div>' : '')+'<span class="note">'+f.note+'</span>\n\
            </div>';
        var baseItem = new Ext.menu.TextItem({text : filterDiv});
        f.FilterMenu.add(baseItem);
        f.filterCancelFlag = true;
        f.MenuButton.showMenu();
        f.FilterMenu.hide();
        f.createDesc();
        filterLoaded['mcap'] = true;
        var reloadGrid = true;
        for(var n in filterLoaded) if (!filterLoaded[n]) reloadGrid = false;
        if (reloadGrid) showGrid(f.params.curr_tab, document.getElementById('view_menu_'+f.params.curr_tab));
    }, false, false);
}

DevXCapFilterObj = function(short_name, name, checked, st_id, min_val, max_val){
    this.name = name;
    this.checked = checked;
    this.short_name = short_name;
    this.st_id = st_id;
    this.min_val = min_val;
    this.max_val = max_val;
}

DevXCapFilterObj.prototype.reload = function(short_name, name, checked, st_id, min_val, max_val){
    this.name = name;
    this.checked = checked;
    this.short_name = short_name;
    this.st_id = st_id;
    this.min_val = min_val;
    this.max_val = max_val;
}

DevXCapFilterObj.prototype.clone = function(){
    var cloneObj = new DevXCapFilterObj();
    var obj = this;
    for (var k in obj) {
        cloneObj[k] = obj[k];
    }
    return cloneObj;
}

DevXCapFilter.prototype.clear = function(){
    if (this.tip) this.tip.destroy();
    this.clean = true;
    checkResetAll();
    this.min = -1;
    var k = 0;
    var params = 'tmp=1';
    while(k < this.filterCount){
        this.filterArray[k].checked = false;
        params += '&filter['+k+']='+this.filterArray[k].checked;
        if (document.getElementById(this.name+'_'+this.filterArray[k].st_id)){
            document.getElementById(this.name+'_'+this.filterArray[k].st_id).checked = false;
            document.getElementById(this.name+'_img_'+this.filterArray[k].st_id).src = 'img/unchecked.gif';
        }
        k++;
    }
    this.minval = 'min';
    this.maxval = 'max';
    if (document.getElementById(this.name+'_cap_min')){
        document.getElementById(this.name+'_cap_min').value = 'min';
        document.getElementById(this.name+'_cap_max').value = 'max';
        document.getElementById(this.name+'_cap_min').style.color = '#8E8E8E';
        document.getElementById(this.name+'_cap_max').style.color = '#8E8E8E';
        document.getElementById(this.name+'_cap_min').style.background = '#FFFFFF';
        document.getElementById(this.name+'_cap_max').style.background = '#FFFFFF';
        document.getElementById(this.name+'_cap_min').readOnly = false;
        document.getElementById(this.name+'_cap_max').readOnly = false;
        document.getElementById(this.name+'ErrorIcon').style.display='none';
        Ext.get(this.name+'_cap_min').setStyle('border-color', '');
        Ext.get(this.name+'_cap_max').setStyle('border-color', '');
    }
    this.filterCancelFlag = true;
    this.FilterMenu.hide();
    this.filterCancelFlag = false;
    if (document.getElementById(this.name+'FilterDesc').innerHTML != this.defDesc){
        Ext.get('updButton').addClass('btn_result');
        Ext.get('updButton').removeClass('btn_result_dis');
        updClicked = false;
    }
    document.getElementById(this.name+'FilterDesc').innerHTML = this.defDesc;
    document.getElementById(this.name+'FilterDesc').style.cursor = 'pointer';
    params += '&min_val=min&max_val=max';
    var url='index.php?act=filters&hdl=save&filter='+this.prefix+this.name;
    loader.data['onerror'] = function(){};
    loader.processPOST(url, params, function(http){}, false, false);
}

DevXCapFilter.prototype.ok = function(){
    this.filterCancelFlag = false;
    if (this.validate()) this.FilterMenu.hide();
}

DevXCapFilter.prototype.validate = function(){
    var k = 0;
    var preDefRange = false;
    while(k < this.filterCount){
        if (document.getElementById(this.name+'_'+this.filterArray[k].st_id).checked){
            preDefRange = true;
            break;
        }
        k++;
    }
    if (!preDefRange && (document.getElementById(this.name+'_cap_max').value != 'max')
             && (document.getElementById(this.name+'_cap_min').value != 'min')){
        var minval = parseFloat(document.getElementById(this.name+'_cap_min').value);
        var maxval = parseFloat(document.getElementById(this.name+'_cap_max').value);
        Ext.get(this.name+'_cap_min').setStyle('border-color', 'red');
        Ext.get(this.name+'_cap_max').setStyle('border-color', 'red');
        if (minval > maxval){
            document.getElementById(this.name+'ErrorIcon').style.display='inline';
            return false;
        }
    }
    document.getElementById(this.name+'ErrorIcon').style.display='none';
    Ext.get(this.name+'_cap_min').setStyle('border-color', '');
    Ext.get(this.name+'_cap_max').setStyle('border-color', '');
    return true;
}

DevXCapFilter.prototype.createDesc = function(){
    this.clean = false;
    var shortDesc = new Array();
    var tipDesc = new Array();
    var k = 0; var i = 0;
    while(k < this.filterCount){
        if (this.filterArray[k].checked){
            if (i < this.maxDesc) shortDesc[i] = this.filterArray[k].short_name;
            var re1 = /<td>/gi;
            var re2 = /<\/td>/gi;
            var re3 = /<td class="sep_td">/gi;
            var re4 = /<img src="img\/sep.gif">/gi;
            var re5 = /<br>/gi;
            tipDesc[i] = this.filterArray[k].name.replace(re4, '-').replace(re1, '').replace(re3, '').replace(re2, '&nbsp;').replace(re5, '&nbsp;');
            i++;
        }
        k++;
    }
    var desc = implode(', ', shortDesc);
    if ((desc == '') && (document.getElementById(this.name+'_cap_min'))){
        if (this.tip) this.tip.destroy();
        if ((document.getElementById(this.name+'_cap_min').value == 'min') && (document.getElementById(this.name+'_cap_max').value == 'max')){
            document.getElementById(this.name+'FilterDesc').innerHTML = this.defDesc;
            this.clean = true;
            document.getElementById(this.name+'FilterDesc').style.cursor = 'pointer';
            return;
        }
        document.getElementById(this.name+'_cap_min').readOnly = false;
        document.getElementById(this.name+'_cap_max').readOnly = false;
        document.getElementById(this.name+'_cap_min').style.background = '#FFFFFF';
        document.getElementById(this.name+'_cap_max').style.background = '#FFFFFF';
        desc = document.getElementById(this.name+'_cap_min').value + ' - ' + document.getElementById(this.name+'_cap_max').value + ' M';
    }else if ((desc == '') && ((this.minval != 'min') || (this.maxval != 'max'))){
        if (this.tip) this.tip.destroy();
        desc = this.minval + ' - ' + this.maxval + ' M';
    }else if (desc == ''){
        document.getElementById(this.name+'FilterDesc').innerHTML = this.defDesc;
        this.clean = true;
        document.getElementById(this.name+'FilterDesc').style.cursor = 'pointer';
        return;
    }else{
        if (document.getElementById(this.name+'_cap_min')){
            document.getElementById(this.name+'_cap_min').readOnly = true;
            document.getElementById(this.name+'_cap_max').readOnly = true;
            document.getElementById(this.name+'_cap_min').style.background = '#F5F4EA';
            document.getElementById(this.name+'_cap_max').style.background = '#F5F4EA';
            document.getElementById(this.name+'_cap_min').style.color = '#8E8E8E';
            document.getElementById(this.name+'_cap_max').style.color = '#8E8E8E';
        }
        if (i > this.maxDesc) desc += '<img src="img/more.gif" style="position: absolute; top: 7px; right: 6px;"/>';
        var tip = implode('<br>', tipDesc);
        document.getElementById(this.name+'FilterDesc').innerHTML = desc;
        if (tip != ''){
            if (this.tip) this.tip.destroy();
            else{
                Ext.get('updButton').addClass('btn_result');
                Ext.get('updButton').removeClass('btn_result_dis');
                updClicked = false;
            }
            this.tip = new Ext.FilterTip({
                target : this.name+'FilterDesc',
                dismissDelay : 0,
                defaultAlign : 'tl-br?',
                showEl : Ext.get(this.name+'FilterDesc'),
                showOffset : [10, -4],
                defaultAlign : 'tl-bl?',
                html : tip
            });
            Ext.QuickTips.init();
        } else {
            if (this.tip) this.tip.destroy();
        }
    }
    this.min = 1;
    document.getElementById(this.name+'FilterDesc').innerHTML = desc;
    document.getElementById(this.name+'FilterDesc').style.cursor = (this.clean)? 'pointer' : '';
    checkResetAll();
}

DevXCapFilter.prototype.hide = function(){
    var k = 0; var not_checked = true;
    var params = 'tmp=1';
    while(k < this.filterCount){
        if (this.filterArray[k].checked != document.getElementById(this.name+'_'+this.filterArray[k].st_id).checked){
            Ext.get('updButton').addClass('btn_result');
            Ext.get('updButton').removeClass('btn_result_dis');
            updClicked = false;
        }
        this.filterArray[k].checked = document.getElementById(this.name+'_'+this.filterArray[k].st_id).checked;
        params += '&filter['+k+']='+this.filterArray[k].checked;
        if (this.filterArray[k].checked) not_checked = false;
        k++;
    }
    if (not_checked){
        if ((this.minval != document.getElementById(this.name+'_cap_min').value) ||
                (this.maxval != document.getElementById(this.name+'_cap_max').value)){
            Ext.get('updButton').addClass('btn_result');
            Ext.get('updButton').removeClass('btn_result_dis');
            updClicked = false;
        }
    }
    this.minval = document.getElementById(this.name+'_cap_min').value;
    this.maxval = document.getElementById(this.name+'_cap_max').value;
    params += '&min_val='+this.minval+'&max_val='+this.maxval;
    this.min = 1;
    this.createDesc();
    var url='index.php?act=filters&hdl=save&filter='+this.prefix+this.name;
    loader.data['onerror'] = function(){};
    loader.processPOST(url, params, function(http){}, false, false);
}

DevXCapFilter.prototype.cancel = function(){
    this.filterCancelFlag = true;
    this.setCheckBoxes();
    this.FilterMenu.hide();
}

DevXCapFilter.prototype.setCheckBoxes = function() {
    var k = 0;
    var readonly = false;
    while(k < this.filterCount){
        document.getElementById(this.name+'_'+this.filterArray[k].st_id).checked = this.filterArray[k].checked;
        document.getElementById(this.name+'_img_'+this.filterArray[k].st_id).src = 'img/'+
            ((document.getElementById(this.name+'_'+this.filterArray[k].st_id).checked)?'checked.gif' : 'unchecked.gif');
        if (this.filterArray[k].checked) readonly = true;
        k++;
    }
    Ext.get(this.name+'_cap_min').setStyle('border-color', '');
    Ext.get(this.name+'_cap_max').setStyle('border-color', '');
    document.getElementById(this.name+'ErrorIcon').style.display='none';
    document.getElementById(this.name+'_cap_min').value = this.minval;
    document.getElementById(this.name+'_cap_max').value = this.maxval;
    if (readonly){
        document.getElementById(this.name+'_cap_min').style.color = '#8E8E8E';
        document.getElementById(this.name+'_cap_max').style.color = '#8E8E8E';
        document.getElementById(this.name+'_cap_min').readOnly = true;
        document.getElementById(this.name+'_cap_max').readOnly = true;
        document.getElementById(this.name+'_cap_min').style.background = '#F5F4EA';
        document.getElementById(this.name+'_cap_max').style.background = '#F5F4EA';
    }else{
        document.getElementById(this.name+'_cap_min').readOnly = false;
        document.getElementById(this.name+'_cap_max').readOnly = false;
        document.getElementById(this.name+'_cap_min').style.background = '#FFFFFF';
        document.getElementById(this.name+'_cap_max').style.background = '#FFFFFF';
        if (this.minval == 'min')
            document.getElementById(this.name+'_cap_min').style.color = '#8E8E8E';
        else
            document.getElementById(this.name+'_cap_min').style.color = '#000000';
        if (this.maxval == 'max')
            document.getElementById(this.name+'_cap_max').style.color = '#8E8E8E';
        else
            document.getElementById(this.name+'_cap_max').style.color = '#000000';
    }
}

DevXCapFilter.prototype.checkCap = function(){
    var k = 0;
    if (document.getElementById(this.name+'_cap_min').value != 'min')
        document.getElementById(this.name+'_cap_min').style.color = '#000000';
    if (document.getElementById(this.name+'_cap_max').value != 'max')
        document.getElementById(this.name+'_cap_max').style.color = '#000000';
    while(k < this.filterCount){
        if (document.getElementById(this.name+'_'+this.filterArray[k].st_id).checked){
            document.getElementById(this.name+'ErrorIcon').style.display='none';
            Ext.get(this.name+'_cap_min').setStyle('border-color', '');
            Ext.get(this.name+'_cap_max').setStyle('border-color', '');
            document.getElementById(this.name+'_cap_min').readOnly = true;
            document.getElementById(this.name+'_cap_max').readOnly = true;
            document.getElementById(this.name+'_cap_min').style.background = '#F5F4EA';
            document.getElementById(this.name+'_cap_max').style.background = '#F5F4EA';
            document.getElementById(this.name+'_cap_min').style.color = '#8E8E8E';
            document.getElementById(this.name+'_cap_max').style.color = '#8E8E8E';
            return;
        }
        k++;
    }
    document.getElementById(this.name+'_cap_min').readOnly = false;
    document.getElementById(this.name+'_cap_max').readOnly = false;
    document.getElementById(this.name+'_cap_min').style.background = '#FFFFFF';
    document.getElementById(this.name+'_cap_max').style.background = '#FFFFFF';
}

DevXCapFilter.prototype.getValues = function(){
    if (this.clean) return '';
    var k = 0; var i = 0;
    var idArr = new Array();
    while(k < this.filterCount){
        if (this.filterArray[k].checked){
            idArr[i] = this.name+'[min'+k+']='+this.filterArray[k].min_val;
            i++;
            idArr[i] = this.name+'[max'+k+']='+this.filterArray[k].max_val;
            i++;
        }
        k++;
    }
    if ((i == 0) && (this.min > 0)){
        idArr[0] = this.name+'[min]='+this.minval;
        idArr[1] = this.name+'[max]='+this.maxval;
        i = 1;
    }
    if (i > 0){
        return implode('&', idArr)+'&filters[]='+this.name;
    }
    return '';
}

DevXCapFilter.prototype.setDefault = function(){
    this.defFilterArray = new Array();
    this.defFilterCount = this.filterCount;
    for(var k = 0; k < this.filterCount; k++){
        this.defFilterArray[k] = this.filterArray[k].clone();
    }
}


DevXCapFilter.prototype.resetToDefault = function(){
    this.filterArray = new Array();
    this.filterCount = this.defFilterCount;
    for(var k = 0; k < this.filterCount; k++){
        this.filterArray[k] = this.defFilterArray[k].clone();
    }
    this.setCheckBoxes();
    this.createDesc();
}
