/**
* Custom Properties for Joomla! 1.5.x
* @package Custom Properties
* @subpackage Module cp_search_menu
* @version 2.0
* @revision $Revision: $
* @author Andrea Forghieri
* @copyright (C) Andrea Forghieri, www.solidsystem.it
* @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU/GPL version 2
*/

function cp_search_menu(module_id, gr, override, npf){
	var moduleid = 'cpsearch_menu' + module_id;
	var f = $(moduleid);
	var links = f.getElements('a').each(function(el){
		el.addEvent('click', function(e){
            e = new Event(e).stop();
           	cn = el.className;
           	var fid = cn.replace(/^cp_sm_f_/, '');
           	//clear self and group
           	if(todel = f.getElementById('cp_sm_' + fid)){
           		todel.value = '';
           	}
           	if(todel = f.getElementById('cp_sm_gr_' + fid)){
           		todel.value = '';
           	}
           	//clear fields of same group
            if(gr && el.hasClass('cp_sm_group')){
	            grlen = gr.length;
				for(i = 0; i < grlen; i++){
					if(todel = f.getElementById('cp_sm_' + gr[i])){
						todel.value = '';
					}
					if(todel = f.getElementById('cp_sm_gr_' + gr[i])){
						todel.value = '';
					}
				}
            }
           	//clear non persistent fields
            if(npf){
	            npflen = npf.length;
				for(i = 0; i < npflen; i++){
					if(todel = f.getElementById('cp_sm_' + npf[i])){
						todel.value = '';
					}
					if(todel = f.getElementById('cp_sm_gr_' + npf[i])){
						todel.value = '';
					}
				}
            }
            //overriding fields, reset all
            if(override){
	            olen = override.length;
	            var clean_ovr = true;
            	for(i = 0; i < olen; i++){
					if(fid == override[i]){
						clean_ovr = false;
						f.getElements('input').each(function(el){
							if(el.id && el.id.match(/^cp_sm_/)){
								el.value = '';
							}
						});
					}
            	}
	            if(clean_ovr) {
	            	for(i = 0; i < olen; i++){
						if(todel = f.getElementById('cp_sm_' + override[i])){
							todel.value = '';
						}
						if(todel = f.getElementById('cp_sm_gr_' + override[i])){
							todel.value = '';
						}
	            	}
	            }
            }

            parts = el.rev.split(':');
            fname =  parts[0];
            fvalue = parts[1];
			toset = f.elements[fname];
			toset.value = fvalue;
			f.submit();
		});
	});
}
