function select_actions_build(url, actions, filter, params, options) {
    var onchange = "var x=this.value;this.value='';url='" +
	url + "';eval(x);";
    document.write('<select class="actions"' +
	    ' onchange="' + onchange.replace(/"/g, '&quot;') + '">' +
	    '<option value="">' + options['title'] + '</option>');
    for (var i = 0; i < actions.length; i++) {
	var a = actions[i];
	var a_method = a[0], a_params = $H(a[1]), a_code = a[2],
	    a_title = a[3], a_class = a[4];
	if (filter[a_method] == false) continue;
	if (params[a_method]) 
	 a_params = a_params.merge(params[a_method]);
	a_code = 'var params=$H(' + a_params.toJSON() + ');' + a_code;
	document.write('<option value="' + a_code.replace(/"/g, '&quot;') + '"' +
		((a_class) ? (' class="' + a_class + '"') : '') +
		'>' + a_title.escapeHTML() + '</option>');
    }
    document.write('</select>');
}

function list_actions_build(url, actions, filter, params, options) {
    document.write('<ul class="actions">');
    for (var i = 0; i < actions.length; i++) {
	var a = actions[i];
	var a_method = a[0], a_params = $H(a[1]), a_code = a[2],
	    a_title = a[3], a_class = a[4];
	if (filter[a_method] == false) continue;
	if (params[a_method]) 
	 a_params = a_params.merge(params[a_method]);
	a_code = 'var url="' + url + '", params=$H(' + a_params.toJSON() + ');' +
	    a_code + ';return false;';
	document.write('<li' + ((a_class) ? (' class="' + a_class + '"') : '') + '>' +
		'<a href="" onclick="' + a_code.replace(/"/g, '&quot;') + '">' +
		a_title.escapeHTML() + '</a></li>');
    }
    document.write('</ul>');
}

