String actionUrl = ctx.componentActionURL();
String actionUrl = AjaxUtils.ajaxComponentActionUrl(ctx);
    public void appendToResponse(WOResponse res, WOContext ctx) {        super.appendToResponse(res, ctx);		boolean isLocal = hasBinding("isLocal") && ((Boolean) valueForBinding("isLocal")).booleanValue();		if (isLocal) {			StringBuffer str = new StringBuffer();			str.append("<script type=\"text/javascript\">\n// <![CDATA[\n");			str.append("new Autocompleter.Local('");			str.append(fieldName);			str.append("','");			str.append(divName);			str.append("',");			str.append("new Array(");			NSArray list = (NSArray) valueForBinding("list");			int max = list.count();			String cnt = "";			boolean hasItem = hasBinding("item");			for (int i = 0; i < max; i++) {				Object ds = list.objectAtIndex(i);				if (i > 0) {					str.append(",");				}				str.append("\n\"");				if (hasItem) {                    setValueForBinding(ds, "item");             	}            	Object displayValue = valueForBinding("displayString", valueForBinding("item", ds));				str.append(displayValue.toString());				// TODO: We should escape the javascript string delimiter (") to keep the javascript interpreter happy.				//str.append(displayValue.toString().replaceAll("\"", "\\\\\\\\\"")); // doesn't work				str.append(cnt);				str.append("\"");			}			str.append("),");			AjaxOptions.appendToBuffer(createAjaxOptions(), str, ctx);			str.append(");\n// ]]>\n</script>\n");			res.appendContentString(String.valueOf(str));		} else {			String actionUrl = ctx.componentActionURL();      AjaxUtils.appendScriptHeader(res);			res.appendContentString("new Ajax.Autocompleter('"+fieldName+"', '"+divName+"', '"+actionUrl+"', ");			AjaxOptions.appendToResponse(createAjaxOptions(), res, ctx);			res.appendContentString(");");      AjaxUtils.appendScriptFooter(res);		}    }