/*


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['error']) {  
			    options.innerHTML = jsonObj['error'];
			    // $('btn_search').style.display = 'none';
			    // $('btn_clear').style.display = 'none';
			    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:130px', '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);
    });
} 


*/



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();            
            var options = $('options');
            var val = '';

            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) {
    
                    var myel = index[i][1];
                    var val = $(myel).get('value');
                    values[myel] = val;
                    if(val == 'reset') { $(myel).set('value', ''); }
                }
 
		        if($(myel)) { $(myel).options[0] = new Option('Updating', '', true); 
                    $(myel).options[0].selected = true;
                }
                
                if(val == '' && firstload == false) { val = 'reset'; }            
		        if(reset == true) { val = 'reset'; }
                params = params + '&' + index[i][1] + '=' + escape(val);
            };
   
            url = url + indexs.join(',');
            url = url + params;
            url = url + '&refresh=' + Math.random();  	    
            
            var jSonRequest = new Request({
                url:url,
                method:'get',
                onRequest:function() {
                    $('options').empty();
                },
                onFailure: function(e) {
                    return false;
                },
                onComplete: function(jsonObj) {

                    var optionsdiv = $('options');
            
                    if(!$chk(jsonObj)) { return false; }
                    jsonObj = JSON.decode(jsonObj);    

                    if(jsonObj['error']) {  
			            optionsdiv.set('html',jsonObj['error']);
			            return false;
		            }

                    index.each(function(item, ind) {                        

                        var prt = (item[2] == true) ? 'yes' : 'no';

                        // Create New Elements.
	                    var el = new Element('select', {'id': item[1], 
                                             'style':'width:130px', 
                                             'class' : 'select', 
                                             'name' : 'keyword[ilk:'+item[1]+':yes:false:'+ prt+']'});

			            var sp = new Element('span', 
                                             {'class': 'clear_label'});

	                    var lb = new Element('label', 
                                             {'id': 'label_'+item[1], 
                                              'class':'clear_label', 
                                              'for': item[1]});

                        // Insert New Elements.
                	    lb.inject(optionsdiv);
                        lb.set('text', item[0]);
			            sp.inject(optionsdiv);
                        el.inject(sp);
                        el.options[0] = new Option('All ' + item[0] + 's', '');
                        if(jsonObj[item[1]]) {

                            for(i=0; i<jsonObj[item[1]].length; i++) {
                        
                                var myvalue = String(jsonObj[item[1]][i]);
				                // myvalue = myvalue.replace(/\134/g,"");
                                var cont = myvalue.replace(/(\d+:)/ig, '');
                                el.options[i+1] = new Option(ucfirst(cont),myvalue);

                                if(myvalue == values[item[1]]) {       
                                    el.options[0].value = 'reset';        
                                    el.options[i+1].selected = true; 
                                } else if(myvalue.match(/(selected:)/ig)) {
                                    el.options[0].value = 'reset';
                                    el.options[i+1].value = myvalue.replace(/(selected:)/ig,'');
                                    el.options[i+1].innerHTML = cont.replace(/(selected:)/ig,'');
                                    el.options[i+1].selected = true;
                                }
                            }
                        }
                        el.addEvent('change', function(e) { runDistinctSearch(false); });
                    });                        

                    optionsdiv.fade('in');
                    if($('search_update')) { $('search_update').styleStyle('display','none'); }
                    return true;
                }
            });
            jSonRequest.send(); 
            firstload = false;        
        }

        function ucfirst(theWord) { return theWord.replace(/^(.)/, function (d){ return d.toUpperCase(); }) }

        runDistinctSearch(reset);

    });
}

