function filteredSearchOptions(index, abs_url, reset) {
    window.addEvent('domready', function() {
        var firstload = true;
        $('btn_clear').addEvent('click', function(e) { runDistinctSearch(true); });
        function runDistinctSearch(reset) {                
            var url    = abs_url + ':getDistinctIndexJson?dindex=';
            var params = '';
            var indexs = new Array();
            var values = new Array();            
            for(i=0;i<index.length; i++) {
                var val = '';                
	            if(index[i][2] == true) { indexs[indexs.length] = 'o.'+index[i][1]; } 
		        else { indexs[indexs.length] = index[i][1]; }
                if($(index[i][1]) && reset == false) {
                    val = $(index[i][1]).options[$(index[i][1]).selectedIndex].value;
                    values[index[i][1]] = val;
                    if(val == 'reset') $(index[i][1]).options[$(index[i][1]).selectedIndex].value = ''; 
                } 
		        if($(index[i][1])) { $(index[i][1]).options[0] = new Option('Updating', '', true); }
		        if($('search_update')) { $('search_update').style.display = ''; }
                if(val == '' && firstload == false) val = 'reset';            
		        if(reset == true) val = 'reset';
                params = params + '&' + index[i][1] + '=' + escape(val);
            } 
  
            url = url + indexs.join(',') + params + '&refresh=' + Math.random();  	    

            var jSonRequest = new Json.Remote(url, {
                onComplete: function(jsonObj) {
                    var options = $('options');                        
                    options.innerHTML = '';
                    if(!jsonObj || jsonObj==null || jsonObj.length < 1 || jsonObj['error']) { options.innerHTML = jsonObj['error']; return false; }
                    index.each(function(item) {                        
                        if(item[2] == true) { 
                            prt = 'yes'; 
                        } else { 
                            prt = 'no'; 
                        }
	                    var el = new Element('select', {'id': item[1], 'style':'width:100px', 'class' : 'select', 'name' : 'keyword[ilk:'+item[1]+':yes:false:'+ prt+']'});
			            var sp = new Element('span', {'class': 'clear_label'}).setHTML(item[0]);
	                    var lb = new Element('label', {'id': 'label_'+item[1], 'class':'clear_label', 'for': item[1]});
                        el.addEvent('change', function(e) { runDistinctSearch(false); });	
                	    lb.inject(options);
			            sp.inject(lb)
                	    el.inject(lb);
                        el.options[0] = new Option('All ' + item[0] + 's', '');
                        if(jsonObj[item[1]]) {
                            for(i=0;i<jsonObj[item[1]].length; i++) {
                                var value = String(jsonObj[item[1]][i]);
                				value = value.replace(/\134/g,"");
                                var cont  = value.replace(/(\d+:)/ig,'');
                                el.options[i+1] = new Option(ucfirst(cont),value);
                                if(value == values[item[1]]) {                                         
                                    el.options[i+1].selected = true; 
                                    el.options[0].value = 'reset';
                                } else if(value.match(/(selected:)/ig)) {
                                    el.options[0].value = 'reset';
                                    el.options[i+1].value = value.replace(/(selected:)/ig,'');
                                    el.options[i+1].text = cont.replace(/(selected:)/ig,'');                                        
                                    el.options[i+1].selected = true;                                         
                                }
                            }
                        }
                    });                        
                    if($('search_update')) { $('search_update').style.display = 'none'; }
                    if($('btn_search')) {
                        // var tmp = $('btn_search').src;
                        // $('btn_search').src = null;
                        // $('btn_search').src = tmp;
                    }
                }
            }).send(); 
            firstload = false;        
        }
        function ucfirst(theWord){ return theWord.replace(/^(.)/,function (d){return d.toUpperCase()}) }
        runDistinctSearch(reset);
    });
} 
