function actb(obj,ca){
		/* ---- Public Variables ---- */
	this.actb_timeOut = -1; // Autocomplete Timeout in ms (-1: autocomplete never time out)
	this.actb_lim = 10;    // Number of elements autocomplete can show (-1: no limit)
	this.actb_firstText = true; // should the auto complete be limited to the beginning of keyword?
	this.actb_mouse = true; // Enable Mouse Support
	this.actb_delimiter = new Array(';',',');  // Delimiter for multiple autocomplete. Set it to empty array for single autocomplete
	this.actb_startcheck = 1; // Show widget only after this number of characters is typed in.
	/* ---- Public Variables ---- */

	/* --- Styles --- */
	this.actb_bgColor = '#abe4ff';
	this.actb_textColor = '#000000';
	this.actb_hColor = '#808080';
	this.actb_fFamily = 'Verdana';
	this.actb_fSize = '11px';
	this.actb_hStyle = 'text-decoration:underline;font-weight="bold"';
	/* --- Styles --- */

	/* ---- Private Variables ---- */
	var actb_delimwords = new Array();
	var actb_cdelimword = 0;
	var actb_delimchar = new Array();
	var actb_display = false;
	var actb_pos = 0;
	var actb_total = 0;
	var actb_curr = null;
	var actb_rangeu = 0;
	var actb_ranged = 0;
	var actb_bool = new Array();
	var actb_pre = 0;
	var actb_toid;
	var actb_tomake = false;
	var actb_getpre = "";
	var actb_mouse_on_list = 1;
	var actb_kwcount = 0;
	var actb_caretmove = false;
	this.actb_keywords = new Array();
	/* ---- Private Variables---- */
	
	this.actb_keywords = ca;
	var actb_self = this;

	actb_curr = obj;
	
	addEvent(actb_curr,"focus",actb_setup);
	function actb_setup(){
		addEvent(document,"keydown",actb_checkkey);
		addEvent(actb_curr,"blur",actb_clear);
		addEvent(document,"keypress",actb_keypress);
	}

	function actb_clear(evt){
		if (!evt) evt = event;
		removeEvent(document,"keydown",actb_checkkey);
		removeEvent(actb_curr,"blur",actb_clear);
		removeEvent(document,"keypress",actb_keypress);
		actb_removedisp();
	}
	function actb_parse(n){
		if (actb_self.actb_delimiter.length > 0){
			var t = actb_delimwords[actb_cdelimword].trim().addslashes();
			var plen = actb_delimwords[actb_cdelimword].trim().length;
		}else{
			var t = actb_curr.value.addslashes();
			var plen = actb_curr.value.length;
		}
		var tobuild = '';
		var i;

		if (actb_self.actb_firstText){
			var re = new RegExp("^" + t, "i");
		}else{
			var re = new RegExp(t, "i");
		}
		var p = n.search(re);
				
		for (i=0;i<p;i++){
			tobuild += n.substr(i,1);
		}
		tobuild += "<font style='"+(actb_self.actb_hStyle)+"'>"
		for (i=p;i<plen+p;i++){
			tobuild += n.substr(i,1);
		}
		tobuild += "</font>";
			for (i=plen+p;i<n.length;i++){
			tobuild += n.substr(i,1);
		}
		return tobuild;
	}
	function actb_generate(){
		if (document.getElementById('tat_table')){ actb_display = false;document.body.removeChild(document.getElementById('tat_table')); } 
		if (actb_kwcount == 0){
			actb_display = false;
			return;
		}
		a = document.createElement('table');
		a.cellSpacing='1px';
		a.cellPadding='2px';
		a.style.position='absolute';
		a.style.top = eval(curTop(actb_curr) + actb_curr.offsetHeight) + "px";
		a.style.left = curLeft(actb_curr) + "px";
		a.style.backgroundColor=actb_self.actb_bgColor;
		a.id = 'tat_table';
		document.body.appendChild(a);
		var i;
		var first = true;
		var j = 1;
		if (actb_self.actb_mouse){
			a.onmouseout = actb_table_unfocus;
			a.onmouseover = actb_table_focus;
		}
		var counter = 0;
		for (i=0;i<actb_self.actb_keywords.length;i++){
			if (actb_bool[i]){
				counter++;
				r = a.insertRow(-1);
				if (first && !actb_tomake){
					r.style.backgroundColor = actb_self.actb_hColor;
					first = false;
					actb_pos = counter;
				}else if(actb_pre == i){
					r.style.backgroundColor = actb_self.actb_hColor;
					first = false;
					actb_pos = counter;
				}else{
					r.style.backgroundColor = actb_self.actb_bgColor;
				}
				r.id = 'tat_tr'+(j);
				c = r.insertCell(-1);
				c.style.color = actb_self.actb_textColor;
				c.style.fontFamily = actb_self.actb_fFamily;
				c.style.fontSize = actb_self.actb_fSize;
				c.innerHTML = actb_parse(actb_self.actb_keywords[i]);
				c.id = 'tat_td'+(j);
				c.setAttribute('pos',j);
				if (actb_self.actb_mouse){
					c.style.cursor = 'pointer';
					c.onclick=actb_mouseclick;
					c.onmouseover = actb_table_highlight;
				}
				j++;
			}
			if (j - 1 == actb_self.actb_lim && j < actb_total){
				r = a.insertRow(-1);
				r.style.backgroundColor = actb_self.actb_bgColor;
				c = r.insertCell(-1);
				c.style.color = actb_self.actb_textColor;
				c.style.fontFamily = 'arial narrow';
				c.style.fontSize = actb_self.actb_fSize;
				c.align='center';
				replaceHTML(c,'\\/');
				if (actb_self.actb_mouse){
					c.style.cursor = 'pointer';
					c.onclick = actb_mouse_down;
				}
				break;
			}
		}
		actb_rangeu = 1;
		actb_ranged = j-1;
		actb_display = true;
		if (actb_pos <= 0) actb_pos = 1;
	}
	function actb_remake(){
		document.body.removeChild(document.getElementById('tat_table'));
		a = document.createElement('table');
		a.cellSpacing='1px';
		a.cellPadding='2px';
		a.style.position='absolute';
		a.style.top = eval(curTop(actb_curr) + actb_curr.offsetHeight) + "px";
		a.style.left = curLeft(actb_curr) + "px";
		a.style.backgroundColor=actb_self.actb_bgColor;
		a.id = 'tat_table';
		if (actb_self.actb_mouse){
			a.onmouseout= actb_table_unfocus;
			a.onmouseover=actb_table_focus;
		}
		document.body.appendChild(a);
		var i;
		var first = true;
		var j = 1;
		if (actb_rangeu > 1){
			r = a.insertRow(-1);
			r.style.backgroundColor = actb_self.actb_bgColor;
			c = r.insertCell(-1);
			c.style.color = actb_self.actb_textColor;
			c.style.fontFamily = 'arial narrow';
			c.style.fontSize = actb_self.actb_fSize;
			c.align='center';
			replaceHTML(c,'/\\');
			if (actb_self.actb_mouse){
				c.style.cursor = 'pointer';
				c.onclick = actb_mouse_up;
			}
		}
		for (i=0;i<actb_self.actb_keywords.length;i++){
			if (actb_bool[i]){
				if (j >= actb_rangeu && j <= actb_ranged){
					r = a.insertRow(-1);
					r.style.backgroundColor = actb_self.actb_bgColor;
					r.id = 'tat_tr'+(j);
					c = r.insertCell(-1);
					c.style.color = actb_self.actb_textColor;
					c.style.fontFamily = actb_self.actb_fFamily;
					c.style.fontSize = actb_self.actb_fSize;
					c.innerHTML = actb_parse(actb_self.actb_keywords[i]);
					c.id = 'tat_td'+(j);
					c.setAttribute('pos',j);
					if (actb_self.actb_mouse){
						c.style.cursor = 'pointer';
						c.onclick=actb_mouseclick;
						c.onmouseover = actb_table_highlight;
					}
					j++;
				}else{
					j++;
				}
			}
			if (j > actb_ranged) break;
		}
		if (j-1 < actb_total){
			r = a.insertRow(-1);
			r.style.backgroundColor = actb_self.actb_bgColor;
			c = r.insertCell(-1);
			c.style.color = actb_self.actb_textColor;
			c.style.fontFamily = 'arial narrow';
			c.style.fontSize = actb_self.actb_fSize;
			c.align='center';
			replaceHTML(c,'\\/');
			if (actb_self.actb_mouse){
				c.style.cursor = 'pointer';
				c.onclick = actb_mouse_down;
			}
		}
	}
	function actb_goup(){
		if (!actb_display) return;
		if (actb_pos == 1) return;
		document.getElementById('tat_tr'+actb_pos).style.backgroundColor = actb_self.actb_bgColor;
		actb_pos--;
		if (actb_pos < actb_rangeu) actb_moveup();
		document.getElementById('tat_tr'+actb_pos).style.backgroundColor = actb_self.actb_hColor;
		if (actb_toid) clearTimeout(actb_toid);
		if (actb_self.actb_timeOut > 0) actb_toid = setTimeout(function(){actb_mouse_on_list=0;actb_removedisp();},actb_self.actb_timeOut);
	}
	function actb_godown(){
		if (!actb_display) return;
		if (actb_pos == actb_total) return;
		document.getElementById('tat_tr'+actb_pos).style.backgroundColor = actb_self.actb_bgColor;
		actb_pos++;
		if (actb_pos > actb_ranged) actb_movedown();
		document.getElementById('tat_tr'+actb_pos).style.backgroundColor = actb_self.actb_hColor;
		if (actb_toid) clearTimeout(actb_toid);
		if (actb_self.actb_timeOut > 0) actb_toid = setTimeout(function(){actb_mouse_on_list=0;actb_removedisp();},actb_self.actb_timeOut);
	}
	function actb_movedown(){
		actb_rangeu++;
		actb_ranged++;
		actb_remake();
	}
	function actb_moveup(){
		actb_rangeu--;
		actb_ranged--;
		actb_remake();
	}

	/* Mouse */
	function actb_mouse_down(){
		document.getElementById('tat_tr'+actb_pos).style.backgroundColor = actb_self.actb_bgColor;
		actb_pos++;
		actb_movedown();
		document.getElementById('tat_tr'+actb_pos).style.backgroundColor = actb_self.actb_hColor;
		actb_curr.focus();
		actb_mouse_on_list = 0;
		if (actb_toid) clearTimeout(actb_toid);
		if (actb_self.actb_timeOut > 0) actb_toid = setTimeout(function(){actb_mouse_on_list=0;actb_removedisp();},actb_self.actb_timeOut);
	}
	function actb_mouse_up(evt){
		if (!evt) evt = event;
		if (evt.stopPropagation){
			evt.stopPropagation();
		}else{
			evt.cancelBubble = true;
		}
		document.getElementById('tat_tr'+actb_pos).style.backgroundColor = actb_self.actb_bgColor;
		actb_pos--;
		actb_moveup();
		document.getElementById('tat_tr'+actb_pos).style.backgroundColor = actb_self.actb_hColor;
		actb_curr.focus();
		actb_mouse_on_list = 0;
		if (actb_toid) clearTimeout(actb_toid);
		if (actb_self.actb_timeOut > 0) actb_toid = setTimeout(function(){actb_mouse_on_list=0;actb_removedisp();},actb_self.actb_timeOut);
	}
	function actb_mouseclick(evt){
		if (!evt) evt = event;
		if (!actb_display) return;
		actb_mouse_on_list = 0;
		actb_pos = this.getAttribute('pos');
		actb_penter();
	}
	function actb_table_focus(){
		actb_mouse_on_list = 1;
	}
	function actb_table_unfocus(){
		actb_mouse_on_list = 0;
		if (actb_toid) clearTimeout(actb_toid);
		if (actb_self.actb_timeOut > 0) actb_toid = setTimeout(function(){actb_mouse_on_list = 0;actb_removedisp();},actb_self.actb_timeOut);
	}
	function actb_table_highlight(){
		actb_mouse_on_list = 1;
		document.getElementById('tat_tr'+actb_pos).style.backgroundColor = actb_self.actb_bgColor;
		actb_pos = this.getAttribute('pos');
		while (actb_pos < actb_rangeu) actb_moveup();
		while (actb_pos > actb_ranged) actb_movedown();
		document.getElementById('tat_tr'+actb_pos).style.backgroundColor = actb_self.actb_hColor;
		if (actb_toid) clearTimeout(actb_toid);
		if (actb_self.actb_timeOut > 0) actb_toid = setTimeout(function(){actb_mouse_on_list = 0;actb_removedisp();},actb_self.actb_timeOut);
	}
	/* ---- */

	function actb_insertword(a){
		if (actb_self.actb_delimiter.length > 0){
			str = '';
			l=0;
			for (i=0;i<actb_delimwords.length;i++){
				if (actb_cdelimword == i){
					prespace = postspace = '';
					gotbreak = false;
					for (j=0;j<actb_delimwords[i].length;++j){
						if (actb_delimwords[i].charAt(j) != ' '){
							gotbreak = true;
							break;
						}
						prespace += ' ';
					}
					for (j=actb_delimwords[i].length-1;j>=0;--j){
						if (actb_delimwords[i].charAt(j) != ' ') break;
						postspace += ' ';
					}
					str += prespace;
					str += a;
					l = str.length;
					if (gotbreak) str += postspace;
				}else{
					str += actb_delimwords[i];
				}
				if (i != actb_delimwords.length - 1){
					str += actb_delimchar[i];
				}
			}
			actb_curr.value = str;
			setCaret(actb_curr,l);
		}else{
			actb_curr.value = a;
		}
		actb_mouse_on_list = 0;
		actb_removedisp();
	}
	function actb_penter(){
		if (!actb_display) return;
		actb_display = false;
		var word = '';
		var c = 0;
		for (var i=0;i<=actb_self.actb_keywords.length;i++){
			if (actb_bool[i]) c++;
			if (c == actb_pos){
				word = actb_self.actb_keywords[i];
				break;
			}
		}
		actb_insertword(word);
		l = getCaretStart(actb_curr);
	}
	function actb_removedisp(){
		if (actb_mouse_on_list==0){
			actb_display = 0;
			if (document.getElementById('tat_table')){ document.body.removeChild(document.getElementById('tat_table')); }
			if (actb_toid) clearTimeout(actb_toid);
		}
	}
	function actb_keypress(e){
		if (actb_caretmove) stopEvent(e);
		return !actb_caretmove;
	}
	function actb_checkkey(evt){
		if (!evt) evt = event;
		a = evt.keyCode;
		caret_pos_start = getCaretStart(actb_curr);
		actb_caretmove = 0;
		switch (a){
			case 38:
				actb_goup();
				actb_caretmove = 1;
				return false;
				break;
			case 40:
				actb_godown();
				actb_caretmove = 1;
				return false;
				break;
			case 13: case 9:
				if (actb_display){
					actb_caretmove = 1;
					actb_penter();
					return false;
				}else{
					return true;
				}
				break;
			default:
				setTimeout(function(){actb_tocomplete(a)},50);
				break;
		}
	}

	function actb_tocomplete(kc){
		if (kc == 38 || kc == 40 || kc == 13) return;
		var i;
		if (actb_display){ 
			var word = 0;
			var c = 0;
			for (var i=0;i<=actb_self.actb_keywords.length;i++){
				if (actb_bool[i]) c++;
				if (c == actb_pos){
					word = i;
					break;
				}
			}
			actb_pre = word;
		}else{ actb_pre = -1};
		
		if (actb_curr.value == ''){
			actb_mouse_on_list = 0;
			actb_removedisp();
			return;
		}
		if (actb_self.actb_delimiter.length > 0){
			caret_pos_start = getCaretStart(actb_curr);
			caret_pos_end = getCaretEnd(actb_curr);
			
			delim_split = '';
			for (i=0;i<actb_self.actb_delimiter.length;i++){
				delim_split += actb_self.actb_delimiter[i];
			}
			delim_split = delim_split.addslashes();
			delim_split_rx = new RegExp("(["+delim_split+"])");
			c = 0;
			actb_delimwords = new Array();
			actb_delimwords[0] = '';
			for (i=0,j=actb_curr.value.length;i<actb_curr.value.length;i++,j--){
				if (actb_curr.value.substr(i,j).search(delim_split_rx) == 0){
					ma = actb_curr.value.substr(i,j).match(delim_split_rx);
					actb_delimchar[c] = ma[1];
					c++;
					actb_delimwords[c] = '';
				}else{
					actb_delimwords[c] += actb_curr.value.charAt(i);
				}
			}

			var l = 0;
			actb_cdelimword = -1;
			for (i=0;i<actb_delimwords.length;i++){
				if (caret_pos_end >= l && caret_pos_end <= l + actb_delimwords[i].length){
					actb_cdelimword = i;
				}
				l+=actb_delimwords[i].length + 1;
			}
			var ot = actb_delimwords[actb_cdelimword].trim(); 
			var t = actb_delimwords[actb_cdelimword].addslashes().trim();
		}else{
			var ot = actb_curr.value;
			var t = actb_curr.value.addslashes();
		}
		if (ot.length == 0){
			actb_mouse_on_list = 0;
			actb_removedisp();
		}
		if (ot.length < actb_self.actb_startcheck) return this;
		if (actb_self.actb_firstText){
			var re = new RegExp("^" + t, "i");
		}else{
			var re = new RegExp(t, "i");
		}

		actb_total = 0;
		actb_tomake = false;
		actb_kwcount = 0;
		for (i=0;i<actb_self.actb_keywords.length;i++){
			actb_bool[i] = false;
			if (re.test(actb_self.actb_keywords[i])){
				actb_total++;
				actb_bool[i] = true;
				actb_kwcount++;
				if (actb_pre == i) actb_tomake = true;
			}
		}

		if (actb_toid) clearTimeout(actb_toid);
		if (actb_self.actb_timeOut > 0) actb_toid = setTimeout(function(){actb_mouse_on_list = 0;actb_removedisp();},actb_self.actb_timeOut);
		actb_generate();
	}
	return this;
}

function actb1(obj,ca){
	/* ---- Public Variables ---- */
	this.actb1_timeOut = -1; // Autocomplete Timeout in ms (-1: autocomplete never time out)
	this.actb1_lim = 10;    // Number of elements autocomplete can show (-1: no limit)
	this.actb1_firstText = true; // should the auto complete be limited to the beginning of keyword?
	this.actb1_mouse = true; // Enable Mouse Support
	this.actb1_delimiter = new Array(';',',');  // Delimiter for multiple autocomplete. Set it to empty array for single autocomplete
	this.actb1_startcheck = 1; // Show widget only after this number of characters is typed in.
	/* ---- Public Variables ---- */

	/* --- Styles --- */
	this.actb1_bgColor = '#abe4ff';
	this.actb1_textColor = '#000000';
	this.actb1_hColor = '#808080';
	this.actb1_fFamily = 'Verdana';
	this.actb1_fSize = '11px';
	this.actb1_hStyle = 'text-decoration:underline;font-weight="bold"';
	/* --- Styles --- */

	/* ---- Private Variables ---- */
	var actb1_delimwords = new Array();
	var actb1_cdelimword = 0;
	var actb1_delimchar = new Array();
	var actb1_display = false;
	var actb1_pos = 0;
	var actb1_total = 0;
	var actb1_curr = null;
	var actb1_rangeu = 0;
	var actb1_ranged = 0;
	var actb1_bool = new Array();
	var actb1_pre = 0;
	var actb1_toid;
	var actb1_tomake = false;
	var actb1_getpre = "";
	var actb1_mouse_on_list = 1;
	var actb1_kwcount = 0;
	var actb1_caretmove = false;
	this.actb1_keywords = new Array();
	/* ---- Private Variables---- */
	
	this.actb1_keywords = ca;
	var actb1_self = this;

	actb1_curr = obj;
	
	addEvent(actb1_curr,"focus",actb1_setup);
	function actb1_setup(){
		addEvent(document,"keydown",actb1_checkkey);
		addEvent(actb1_curr,"blur",actb1_clear);
		addEvent(document,"keypress",actb1_keypress);
	}

	function actb1_clear(evt){
		if (!evt) evt = event;
		removeEvent(document,"keydown",actb1_checkkey);
		removeEvent(actb1_curr,"blur",actb1_clear);
		removeEvent(document,"keypress",actb1_keypress);
		actb1_removedisp();
	}
	function actb1_parse(n){
		if (actb1_self.actb1_delimiter.length > 0){
			var t = actb1_delimwords[actb1_cdelimword].trim().addslashes();
			var plen = actb1_delimwords[actb1_cdelimword].trim().length;
		}else{
			var t = actb1_curr.value.addslashes();
			var plen = actb1_curr.value.length;
		}
		var tobuild = '';
		var i;

		if (actb1_self.actb1_firstText){
			var re = new RegExp("^" + t, "i");
		}else{
			var re = new RegExp(t, "i");
		}
		var p = n.search(re);
				
		for (i=0;i<p;i++){
			tobuild += n.substr(i,1);
		}
		tobuild += "<font style='"+(actb1_self.actb1_hStyle)+"'>"
		for (i=p;i<plen+p;i++){
			tobuild += n.substr(i,1);
		}
		tobuild += "</font>";
			for (i=plen+p;i<n.length;i++){
			tobuild += n.substr(i,1);
		}
		return tobuild;
	}
	function actb1_generate(){
		if (document.getElementById('tat_table')){ actb1_display = false;document.body.removeChild(document.getElementById('tat_table')); } 
		if (actb1_kwcount == 0){
			actb1_display = false;
			return;
		}
		a = document.createElement('table');
		a.cellSpacing='1px';
		a.cellPadding='2px';
		a.style.position='absolute';
		a.style.top = eval(curTop(actb1_curr) + actb1_curr.offsetHeight) + "px";
		a.style.left = curLeft(actb1_curr) + "px";
		a.style.backgroundColor=actb1_self.actb1_bgColor;
		a.id = 'tat_table';
		document.body.appendChild(a);
		var i;
		var first = true;
		var j = 1;
		if (actb1_self.actb1_mouse){
			a.onmouseout = actb1_table_unfocus;
			a.onmouseover = actb1_table_focus;
		}
		var counter = 0;
		for (i=0;i<actb1_self.actb1_keywords.length;i++){
			if (actb1_bool[i]){
				counter++;
				r = a.insertRow(-1);
				if (first && !actb1_tomake){
					r.style.backgroundColor = actb1_self.actb1_hColor;
					first = false;
					actb1_pos = counter;
				}else if(actb1_pre == i){
					r.style.backgroundColor = actb1_self.actb1_hColor;
					first = false;
					actb1_pos = counter;
				}else{
					r.style.backgroundColor = actb1_self.actb1_bgColor;
				}
				r.id = 'tat_tr'+(j);
				c = r.insertCell(-1);
				c.style.color = actb1_self.actb1_textColor;
				c.style.fontFamily = actb1_self.actb1_fFamily;
				c.style.fontSize = actb1_self.actb1_fSize;
				c.innerHTML = actb1_parse(actb1_self.actb1_keywords[i]);
				c.id = 'tat_td'+(j);
				c.setAttribute('pos',j);
				if (actb1_self.actb1_mouse){
					c.style.cursor = 'pointer';
					c.onclick=actb1_mouseclick;
					c.onmouseover = actb1_table_highlight;
				}
				j++;
			}
			if (j - 1 == actb1_self.actb1_lim && j < actb1_total){
				r = a.insertRow(-1);
				r.style.backgroundColor = actb1_self.actb1_bgColor;
				c = r.insertCell(-1);
				c.style.color = actb1_self.actb1_textColor;
				c.style.fontFamily = 'arial narrow';
				c.style.fontSize = actb1_self.actb1_fSize;
				c.align='center';
				replaceHTML(c,'\\/');
				if (actb1_self.actb1_mouse){
					c.style.cursor = 'pointer';
					c.onclick = actb1_mouse_down;
				}
				break;
			}
		}
		actb1_rangeu = 1;
		actb1_ranged = j-1;
		actb1_display = true;
		if (actb1_pos <= 0) actb1_pos = 1;
	}
	function actb1_remake(){
		document.body.removeChild(document.getElementById('tat_table'));
		a = document.createElement('table');
		a.cellSpacing='1px';
		a.cellPadding='2px';
		a.style.position='absolute';
		a.style.top = eval(curTop(actb1_curr) + actb1_curr.offsetHeight) + "px";
		a.style.left = curLeft(actb1_curr) + "px";
		a.style.backgroundColor=actb1_self.actb1_bgColor;
		a.id = 'tat_table';
		if (actb1_self.actb1_mouse){
			a.onmouseout= actb1_table_unfocus;
			a.onmouseover=actb1_table_focus;
		}
		document.body.appendChild(a);
		var i;
		var first = true;
		var j = 1;
		if (actb1_rangeu > 1){
			r = a.insertRow(-1);
			r.style.backgroundColor = actb1_self.actb1_bgColor;
			c = r.insertCell(-1);
			c.style.color = actb1_self.actb1_textColor;
			c.style.fontFamily = 'arial narrow';
			c.style.fontSize = actb1_self.actb1_fSize;
			c.align='center';
			replaceHTML(c,'/\\');
			if (actb1_self.actb1_mouse){
				c.style.cursor = 'pointer';
				c.onclick = actb1_mouse_up;
			}
		}
		for (i=0;i<actb1_self.actb1_keywords.length;i++){
			if (actb1_bool[i]){
				if (j >= actb1_rangeu && j <= actb1_ranged){
					r = a.insertRow(-1);
					r.style.backgroundColor = actb1_self.actb1_bgColor;
					r.id = 'tat_tr'+(j);
					c = r.insertCell(-1);
					c.style.color = actb1_self.actb1_textColor;
					c.style.fontFamily = actb1_self.actb1_fFamily;
					c.style.fontSize = actb1_self.actb1_fSize;
					c.innerHTML = actb1_parse(actb1_self.actb1_keywords[i]);
					c.id = 'tat_td'+(j);
					c.setAttribute('pos',j);
					if (actb1_self.actb1_mouse){
						c.style.cursor = 'pointer';
						c.onclick=actb1_mouseclick;
						c.onmouseover = actb1_table_highlight;
					}
					j++;
				}else{
					j++;
				}
			}
			if (j > actb1_ranged) break;
		}
		if (j-1 < actb1_total){
			r = a.insertRow(-1);
			r.style.backgroundColor = actb1_self.actb1_bgColor;
			c = r.insertCell(-1);
			c.style.color = actb1_self.actb1_textColor;
			c.style.fontFamily = 'arial narrow';
			c.style.fontSize = actb1_self.actb1_fSize;
			c.align='center';
			replaceHTML(c,'\\/');
			if (actb1_self.actb1_mouse){
				c.style.cursor = 'pointer';
				c.onclick = actb1_mouse_down;
			}
		}
	}
	function actb1_goup(){
		if (!actb1_display) return;
		if (actb1_pos == 1) return;
		document.getElementById('tat_tr'+actb1_pos).style.backgroundColor = actb1_self.actb1_bgColor;
		actb1_pos--;
		if (actb1_pos < actb1_rangeu) actb1_moveup();
		document.getElementById('tat_tr'+actb1_pos).style.backgroundColor = actb1_self.actb1_hColor;
		if (actb1_toid) clearTimeout(actb1_toid);
		if (actb1_self.actb1_timeOut > 0) actb1_toid = setTimeout(function(){actb1_mouse_on_list=0;actb1_removedisp();},actb1_self.actb1_timeOut);
	}
	function actb1_godown(){
		if (!actb1_display) return;
		if (actb1_pos == actb1_total) return;
		document.getElementById('tat_tr'+actb1_pos).style.backgroundColor = actb1_self.actb1_bgColor;
		actb1_pos++;
		if (actb1_pos > actb1_ranged) actb1_movedown();
		document.getElementById('tat_tr'+actb1_pos).style.backgroundColor = actb1_self.actb1_hColor;
		if (actb1_toid) clearTimeout(actb1_toid);
		if (actb1_self.actb1_timeOut > 0) actb1_toid = setTimeout(function(){actb1_mouse_on_list=0;actb1_removedisp();},actb1_self.actb1_timeOut);
	}
	function actb1_movedown(){
		actb1_rangeu++;
		actb1_ranged++;
		actb1_remake();
	}
	function actb1_moveup(){
		actb1_rangeu--;
		actb1_ranged--;
		actb1_remake();
	}

	/* Mouse */
	function actb1_mouse_down(){
		document.getElementById('tat_tr'+actb1_pos).style.backgroundColor = actb1_self.actb1_bgColor;
		actb1_pos++;
		actb1_movedown();
		document.getElementById('tat_tr'+actb1_pos).style.backgroundColor = actb1_self.actb1_hColor;
		actb1_curr.focus();
		actb1_mouse_on_list = 0;
		if (actb1_toid) clearTimeout(actb1_toid);
		if (actb1_self.actb1_timeOut > 0) actb1_toid = setTimeout(function(){actb1_mouse_on_list=0;actb1_removedisp();},actb1_self.actb1_timeOut);
	}
	function actb1_mouse_up(evt){
		if (!evt) evt = event;
		if (evt.stopPropagation){
			evt.stopPropagation();
		}else{
			evt.cancelBubble = true;
		}
		document.getElementById('tat_tr'+actb1_pos).style.backgroundColor = actb1_self.actb1_bgColor;
		actb1_pos--;
		actb1_moveup();
		document.getElementById('tat_tr'+actb1_pos).style.backgroundColor = actb1_self.actb1_hColor;
		actb1_curr.focus();
		actb1_mouse_on_list = 0;
		if (actb1_toid) clearTimeout(actb1_toid);
		if (actb1_self.actb1_timeOut > 0) actb1_toid = setTimeout(function(){actb1_mouse_on_list=0;actb1_removedisp();},actb1_self.actb1_timeOut);
	}
	function actb1_mouseclick(evt){
		if (!evt) evt = event;
		if (!actb1_display) return;
		actb1_mouse_on_list = 0;
		actb1_pos = this.getAttribute('pos');
		actb1_penter();
	}
	function actb1_table_focus(){
		actb1_mouse_on_list = 1;
	}
	function actb1_table_unfocus(){
		actb1_mouse_on_list = 0;
		if (actb1_toid) clearTimeout(actb1_toid);
		if (actb1_self.actb1_timeOut > 0) actb1_toid = setTimeout(function(){actb1_mouse_on_list = 0;actb1_removedisp();},actb1_self.actb1_timeOut);
	}
	function actb1_table_highlight(){
		actb1_mouse_on_list = 1;
		document.getElementById('tat_tr'+actb1_pos).style.backgroundColor = actb1_self.actb1_bgColor;
		actb1_pos = this.getAttribute('pos');
		while (actb1_pos < actb1_rangeu) actb1_moveup();
		while (actb1_pos > actb1_ranged) actb1_movedown();
		document.getElementById('tat_tr'+actb1_pos).style.backgroundColor = actb1_self.actb1_hColor;
		if (actb1_toid) clearTimeout(actb1_toid);
		if (actb1_self.actb1_timeOut > 0) actb1_toid = setTimeout(function(){actb1_mouse_on_list = 0;actb1_removedisp();},actb1_self.actb1_timeOut);
	}
	/* ---- */

	function actb1_insertword(a){
		if (actb1_self.actb1_delimiter.length > 0){
			str = '';
			l=0;
			for (i=0;i<actb1_delimwords.length;i++){
				if (actb1_cdelimword == i){
					prespace = postspace = '';
					gotbreak = false;
					for (j=0;j<actb1_delimwords[i].length;++j){
						if (actb1_delimwords[i].charAt(j) != ' '){
							gotbreak = true;
							break;
						}
						prespace += ' ';
					}
					for (j=actb1_delimwords[i].length-1;j>=0;--j){
						if (actb1_delimwords[i].charAt(j) != ' ') break;
						postspace += ' ';
					}
					str += prespace;
					str += a;
					l = str.length;
					if (gotbreak) str += postspace;
				}else{
					str += actb1_delimwords[i];
				}
				if (i != actb1_delimwords.length - 1){
					str += actb1_delimchar[i];
				}
			}
			actb1_curr.value = str;
			setCaret(actb1_curr,l);
		}else{
			actb1_curr.value = a;
		}
		actb1_mouse_on_list = 0;
		actb1_removedisp();
	}
	function actb1_penter(){
		if (!actb1_display) return;
		actb1_display = false;
		var word = '';
		var c = 0;
		for (var i=0;i<=actb1_self.actb1_keywords.length;i++){
			if (actb1_bool[i]) c++;
			if (c == actb1_pos){
				word = actb1_self.actb1_keywords[i];
				break;
			}
		}
		actb1_insertword(word);
		l = getCaretStart(actb1_curr);
	}
	function actb1_removedisp(){
		if (actb1_mouse_on_list==0){
			actb1_display = 0;
			if (document.getElementById('tat_table')){ document.body.removeChild(document.getElementById('tat_table')); }
			if (actb1_toid) clearTimeout(actb1_toid);
		}
	}
	function actb1_keypress(e){
		if (actb1_caretmove) stopEvent(e);
		return !actb1_caretmove;
	}
	function actb1_checkkey(evt){
		if (!evt) evt = event;
		a = evt.keyCode;
		caret_pos_start = getCaretStart(actb1_curr);
		actb1_caretmove = 0;
		switch (a){
			case 38:
				actb1_goup();
				actb1_caretmove = 1;
				return false;
				break;
			case 40:
				actb1_godown();
				actb1_caretmove = 1;
				return false;
				break;
			case 13: case 9:
				if (actb1_display){
					actb1_caretmove = 1;
					actb1_penter();
					return false;
				}else{
					return true;
				}
				break;
			default:
				setTimeout(function(){actb1_tocomplete(a)},50);
				break;
		}
	}

	function actb1_tocomplete(kc){
		if (kc == 38 || kc == 40 || kc == 13) return;
		var i;
		if (actb1_display){ 
			var word = 0;
			var c = 0;
			for (var i=0;i<=actb1_self.actb1_keywords.length;i++){
				if (actb1_bool[i]) c++;
				if (c == actb1_pos){
					word = i;
					break;
				}
			}
			actb1_pre = word;
		}else{ actb1_pre = -1};
		
		if (actb1_curr.value == ''){
			actb1_mouse_on_list = 0;
			actb1_removedisp();
			return;
		}
		if (actb1_self.actb1_delimiter.length > 0){
			caret_pos_start = getCaretStart(actb1_curr);
			caret_pos_end = getCaretEnd(actb1_curr);
			
			delim_split = '';
			for (i=0;i<actb1_self.actb1_delimiter.length;i++){
				delim_split += actb1_self.actb1_delimiter[i];
			}
			delim_split = delim_split.addslashes();
			delim_split_rx = new RegExp("(["+delim_split+"])");
			c = 0;
			actb1_delimwords = new Array();
			actb1_delimwords[0] = '';
			for (i=0,j=actb1_curr.value.length;i<actb1_curr.value.length;i++,j--){
				if (actb1_curr.value.substr(i,j).search(delim_split_rx) == 0){
					ma = actb1_curr.value.substr(i,j).match(delim_split_rx);
					actb1_delimchar[c] = ma[1];
					c++;
					actb1_delimwords[c] = '';
				}else{
					actb1_delimwords[c] += actb1_curr.value.charAt(i);
				}
			}

			var l = 0;
			actb1_cdelimword = -1;
			for (i=0;i<actb1_delimwords.length;i++){
				if (caret_pos_end >= l && caret_pos_end <= l + actb1_delimwords[i].length){
					actb1_cdelimword = i;
				}
				l+=actb1_delimwords[i].length + 1;
			}
			var ot = actb1_delimwords[actb1_cdelimword].trim(); 
			var t = actb1_delimwords[actb1_cdelimword].addslashes().trim();
		}else{
			var ot = actb1_curr.value;
			var t = actb1_curr.value.addslashes();
		}
		if (ot.length == 0){
			actb1_mouse_on_list = 0;
			actb1_removedisp();
		}
		if (ot.length < actb1_self.actb1_startcheck) return this;
		if (actb1_self.actb1_firstText){
			var re = new RegExp("^" + t, "i");
		}else{
			var re = new RegExp(t, "i");
		}

		actb1_total = 0;
		actb1_tomake = false;
		actb1_kwcount = 0;
		for (i=0;i<actb1_self.actb1_keywords.length;i++){
			actb1_bool[i] = false;
			if (re.test(actb1_self.actb1_keywords[i])){
				actb1_total++;
				actb1_bool[i] = true;
				actb1_kwcount++;
				if (actb1_pre == i) actb1_tomake = true;
			}
		}

		if (actb1_toid) clearTimeout(actb1_toid);
		if (actb1_self.actb1_timeOut > 0) actb1_toid = setTimeout(function(){actb1_mouse_on_list = 0;actb1_removedisp();},actb1_self.actb1_timeOut);
		actb1_generate();
	}
	return this;
}
//third auto suggest

function actb2(obj,ca){
		/* ---- Public Variables ---- */
	this.actb2_timeOut = -1; // Autocomplete Timeout in ms (-1: autocomplete never time out)
	this.actb2_lim = 10;    // Number of elements autocomplete can show (-1: no limit)
	this.actb2_firstText = true; // should the auto complete be limited to the beginning of keyword?
	this.actb2_mouse = true; // Enable Mouse Support
	this.actb2_delimiter = new Array(';',',');  // Delimiter for multiple autocomplete. Set it to empty array for single autocomplete
	this.actb2_startcheck = 1; // Show widget only after this number of characters is typed in.
	/* ---- Public Variables ---- */

	/* --- Styles --- */
	this.actb2_bgColor = '#abe4ff';
	this.actb2_textColor = '#000000';
	this.actb2_hColor = '#808080';
	this.actb2_fFamily = 'Verdana';
	this.actb2_fSize = '11px';
	this.actb2_hStyle = 'text-decoration:underline;font-weight="bold"';
	/* --- Styles --- */

	/* ---- Private Variables ---- */
	var actb2_delimwords = new Array();
	var actb2_cdelimword = 0;
	var actb2_delimchar = new Array();
	var actb2_display = false;
	var actb2_pos = 0;
	var actb2_total = 0;
	var actb2_curr = null;
	var actb2_rangeu = 0;
	var actb2_ranged = 0;
	var actb2_bool = new Array();
	var actb2_pre = 0;
	var actb2_toid;
	var actb2_tomake = false;
	var actb2_getpre = "";
	var actb2_mouse_on_list = 1;
	var actb2_kwcount = 0;
	var actb2_caretmove = false;
	this.actb2_keywords = new Array();
	/* ---- Private Variables---- */
	
	this.actb2_keywords = ca;
	var actb2_self = this;

	actb2_curr = obj;
	
	addEvent(actb2_curr,"focus",actb2_setup);
	function actb2_setup(){
		addEvent(document,"keydown",actb2_checkkey);
		addEvent(actb2_curr,"blur",actb2_clear);
		addEvent(document,"keypress",actb2_keypress);
	}

	function actb2_clear(evt){
		if (!evt) evt = event;
		removeEvent(document,"keydown",actb2_checkkey);
		removeEvent(actb2_curr,"blur",actb2_clear);
		removeEvent(document,"keypress",actb2_keypress);
		actb2_removedisp();
	}
	function actb2_parse(n){
		if (actb2_self.actb2_delimiter.length > 0){
			var t = actb2_delimwords[actb2_cdelimword].trim().addslashes();
			var plen = actb2_delimwords[actb2_cdelimword].trim().length;
		}else{
			var t = actb2_curr.value.addslashes();
			var plen = actb2_curr.value.length;
		}
		var tobuild = '';
		var i;

		if (actb2_self.actb2_firstText){
			var re = new RegExp("^" + t, "i");
		}else{
			var re = new RegExp(t, "i");
		}
		var p = n.search(re);
				
		for (i=0;i<p;i++){
			tobuild += n.substr(i,1);
		}
		tobuild += "<font style='"+(actb2_self.actb2_hStyle)+"'>"
		for (i=p;i<plen+p;i++){
			tobuild += n.substr(i,1);
		}
		tobuild += "</font>";
			for (i=plen+p;i<n.length;i++){
			tobuild += n.substr(i,1);
		}
		return tobuild;
	}
	function actb2_generate(){
		if (document.getElementById('tat_table')){ actb2_display = false;document.body.removeChild(document.getElementById('tat_table')); } 
		if (actb2_kwcount == 0){
			actb2_display = false;
			return;
		}
		a = document.createElement('table');
		a.cellSpacing='1px';
		a.cellPadding='2px';
		a.style.position='absolute';
		a.style.top = eval(curTop(actb2_curr) + actb2_curr.offsetHeight) + "px";
		a.style.left = curLeft(actb2_curr) + "px";
		a.style.backgroundColor=actb2_self.actb2_bgColor;
		a.id = 'tat_table';
		document.body.appendChild(a);
		var i;
		var first = true;
		var j = 1;
		if (actb2_self.actb2_mouse){
			a.onmouseout = actb2_table_unfocus;
			a.onmouseover = actb2_table_focus;
		}
		var counter = 0;
		for (i=0;i<actb2_self.actb2_keywords.length;i++){
			if (actb2_bool[i]){
				counter++;
				r = a.insertRow(-1);
				if (first && !actb2_tomake){
					r.style.backgroundColor = actb2_self.actb2_hColor;
					first = false;
					actb2_pos = counter;
				}else if(actb2_pre == i){
					r.style.backgroundColor = actb2_self.actb2_hColor;
					first = false;
					actb2_pos = counter;
				}else{
					r.style.backgroundColor = actb2_self.actb2_bgColor;
				}
				r.id = 'tat_tr'+(j);
				c = r.insertCell(-1);
				c.style.color = actb2_self.actb2_textColor;
				c.style.fontFamily = actb2_self.actb2_fFamily;
				c.style.fontSize = actb2_self.actb2_fSize;
				c.innerHTML = actb2_parse(actb2_self.actb2_keywords[i]);
				c.id = 'tat_td'+(j);
				c.setAttribute('pos',j);
				if (actb2_self.actb2_mouse){
					c.style.cursor = 'pointer';
					c.onclick=actb2_mouseclick;
					c.onmouseover = actb2_table_highlight;
				}
				j++;
			}
			if (j - 1 == actb2_self.actb2_lim && j < actb2_total){
				r = a.insertRow(-1);
				r.style.backgroundColor = actb2_self.actb2_bgColor;
				c = r.insertCell(-1);
				c.style.color = actb2_self.actb2_textColor;
				c.style.fontFamily = 'arial narrow';
				c.style.fontSize = actb2_self.actb2_fSize;
				c.align='center';
				replaceHTML(c,'\\/');
				if (actb2_self.actb2_mouse){
					c.style.cursor = 'pointer';
					c.onclick = actb2_mouse_down;
				}
				break;
			}
		}
		actb2_rangeu = 1;
		actb2_ranged = j-1;
		actb2_display = true;
		if (actb2_pos <= 0) actb2_pos = 1;
	}
	function actb2_remake(){
		document.body.removeChild(document.getElementById('tat_table'));
		a = document.createElement('table');
		a.cellSpacing='1px';
		a.cellPadding='2px';
		a.style.position='absolute';
		a.style.top = eval(curTop(actb2_curr) + actb2_curr.offsetHeight) + "px";
		a.style.left = curLeft(actb2_curr) + "px";
		a.style.backgroundColor=actb2_self.actb2_bgColor;
		a.id = 'tat_table';
		if (actb2_self.actb2_mouse){
			a.onmouseout= actb2_table_unfocus;
			a.onmouseover=actb2_table_focus;
		}
		document.body.appendChild(a);
		var i;
		var first = true;
		var j = 1;
		if (actb2_rangeu > 1){
			r = a.insertRow(-1);
			r.style.backgroundColor = actb2_self.actb2_bgColor;
			c = r.insertCell(-1);
			c.style.color = actb2_self.actb2_textColor;
			c.style.fontFamily = 'arial narrow';
			c.style.fontSize = actb2_self.actb2_fSize;
			c.align='center';
			replaceHTML(c,'/\\');
			if (actb2_self.actb2_mouse){
				c.style.cursor = 'pointer';
				c.onclick = actb2_mouse_up;
			}
		}
		for (i=0;i<actb2_self.actb2_keywords.length;i++){
			if (actb2_bool[i]){
				if (j >= actb2_rangeu && j <= actb2_ranged){
					r = a.insertRow(-1);
					r.style.backgroundColor = actb2_self.actb2_bgColor;
					r.id = 'tat_tr'+(j);
					c = r.insertCell(-1);
					c.style.color = actb2_self.actb2_textColor;
					c.style.fontFamily = actb2_self.actb2_fFamily;
					c.style.fontSize = actb2_self.actb2_fSize;
					c.innerHTML = actb2_parse(actb2_self.actb2_keywords[i]);
					c.id = 'tat_td'+(j);
					c.setAttribute('pos',j);
					if (actb2_self.actb2_mouse){
						c.style.cursor = 'pointer';
						c.onclick=actb2_mouseclick;
						c.onmouseover = actb2_table_highlight;
					}
					j++;
				}else{
					j++;
				}
			}
			if (j > actb2_ranged) break;
		}
		if (j-1 < actb2_total){
			r = a.insertRow(-1);
			r.style.backgroundColor = actb2_self.actb2_bgColor;
			c = r.insertCell(-1);
			c.style.color = actb2_self.actb2_textColor;
			c.style.fontFamily = 'arial narrow';
			c.style.fontSize = actb2_self.actb2_fSize;
			c.align='center';
			replaceHTML(c,'\\/');
			if (actb2_self.actb2_mouse){
				c.style.cursor = 'pointer';
				c.onclick = actb2_mouse_down;
			}
		}
	}
	function actb2_goup(){
		if (!actb2_display) return;
		if (actb2_pos == 1) return;
		document.getElementById('tat_tr'+actb2_pos).style.backgroundColor = actb2_self.actb2_bgColor;
		actb2_pos--;
		if (actb2_pos < actb2_rangeu) actb2_moveup();
		document.getElementById('tat_tr'+actb2_pos).style.backgroundColor = actb2_self.actb2_hColor;
		if (actb2_toid) clearTimeout(actb2_toid);
		if (actb2_self.actb2_timeOut > 0) actb2_toid = setTimeout(function(){actb2_mouse_on_list=0;actb2_removedisp();},actb2_self.actb2_timeOut);
	}
	function actb2_godown(){
		if (!actb2_display) return;
		if (actb2_pos == actb2_total) return;
		document.getElementById('tat_tr'+actb2_pos).style.backgroundColor = actb2_self.actb2_bgColor;
		actb2_pos++;
		if (actb2_pos > actb2_ranged) actb2_movedown();
		document.getElementById('tat_tr'+actb2_pos).style.backgroundColor = actb2_self.actb2_hColor;
		if (actb2_toid) clearTimeout(actb2_toid);
		if (actb2_self.actb2_timeOut > 0) actb2_toid = setTimeout(function(){actb2_mouse_on_list=0;actb2_removedisp();},actb2_self.actb2_timeOut);
	}
	function actb2_movedown(){
		actb2_rangeu++;
		actb2_ranged++;
		actb2_remake();
	}
	function actb2_moveup(){
		actb2_rangeu--;
		actb2_ranged--;
		actb2_remake();
	}

	/* Mouse */
	function actb2_mouse_down(){
		document.getElementById('tat_tr'+actb2_pos).style.backgroundColor = actb2_self.actb2_bgColor;
		actb2_pos++;
		actb2_movedown();
		document.getElementById('tat_tr'+actb2_pos).style.backgroundColor = actb2_self.actb2_hColor;
		actb2_curr.focus();
		actb2_mouse_on_list = 0;
		if (actb2_toid) clearTimeout(actb2_toid);
		if (actb2_self.actb2_timeOut > 0) actb2_toid = setTimeout(function(){actb2_mouse_on_list=0;actb2_removedisp();},actb2_self.actb2_timeOut);
	}
	function actb2_mouse_up(evt){
		if (!evt) evt = event;
		if (evt.stopPropagation){
			evt.stopPropagation();
		}else{
			evt.cancelBubble = true;
		}
		document.getElementById('tat_tr'+actb2_pos).style.backgroundColor = actb2_self.actb2_bgColor;
		actb2_pos--;
		actb2_moveup();
		document.getElementById('tat_tr'+actb2_pos).style.backgroundColor = actb2_self.actb2_hColor;
		actb2_curr.focus();
		actb2_mouse_on_list = 0;
		if (actb2_toid) clearTimeout(actb2_toid);
		if (actb2_self.actb2_timeOut > 0) actb2_toid = setTimeout(function(){actb2_mouse_on_list=0;actb2_removedisp();},actb2_self.actb2_timeOut);
	}
	function actb2_mouseclick(evt){
		if (!evt) evt = event;
		if (!actb2_display) return;
		actb2_mouse_on_list = 0;
		actb2_pos = this.getAttribute('pos');
		actb2_penter();
	}
	function actb2_table_focus(){
		actb2_mouse_on_list = 1;
	}
	function actb2_table_unfocus(){
		actb2_mouse_on_list = 0;
		if (actb2_toid) clearTimeout(actb2_toid);
		if (actb2_self.actb2_timeOut > 0) actb2_toid = setTimeout(function(){actb2_mouse_on_list = 0;actb2_removedisp();},actb2_self.actb2_timeOut);
	}
	function actb2_table_highlight(){
		actb2_mouse_on_list = 1;
		document.getElementById('tat_tr'+actb2_pos).style.backgroundColor = actb2_self.actb2_bgColor;
		actb2_pos = this.getAttribute('pos');
		while (actb2_pos < actb2_rangeu) actb2_moveup();
		while (actb2_pos > actb2_ranged) actb2_movedown();
		document.getElementById('tat_tr'+actb2_pos).style.backgroundColor = actb2_self.actb2_hColor;
		if (actb2_toid) clearTimeout(actb2_toid);
		if (actb2_self.actb2_timeOut > 0) actb2_toid = setTimeout(function(){actb2_mouse_on_list = 0;actb2_removedisp();},actb2_self.actb2_timeOut);
	}
	/* ---- */

	function actb2_insertword(a){
		if (actb2_self.actb2_delimiter.length > 0){
			str = '';
			l=0;
			for (i=0;i<actb2_delimwords.length;i++){
				if (actb2_cdelimword == i){
					prespace = postspace = '';
					gotbreak = false;
					for (j=0;j<actb2_delimwords[i].length;++j){
						if (actb2_delimwords[i].charAt(j) != ' '){
							gotbreak = true;
							break;
						}
						prespace += ' ';
					}
					for (j=actb2_delimwords[i].length-1;j>=0;--j){
						if (actb2_delimwords[i].charAt(j) != ' ') break;
						postspace += ' ';
					}
					str += prespace;
					str += a;
					l = str.length;
					if (gotbreak) str += postspace;
				}else{
					str += actb2_delimwords[i];
				}
				if (i != actb2_delimwords.length - 1){
					str += actb2_delimchar[i];
				}
			}
			actb2_curr.value = str;
			setCaret(actb2_curr,l);
		}else{
			actb2_curr.value = a;
		}
		actb2_mouse_on_list = 0;
		actb2_removedisp();
	}
	function actb2_penter(){
		if (!actb2_display) return;
		actb2_display = false;
		var word = '';
		var c = 0;
		for (var i=0;i<=actb2_self.actb2_keywords.length;i++){
			if (actb2_bool[i]) c++;
			if (c == actb2_pos){
				word = actb2_self.actb2_keywords[i];
				break;
			}
		}
		actb2_insertword(word);
		l = getCaretStart(actb2_curr);
	}
	function actb2_removedisp(){
		if (actb2_mouse_on_list==0){
			actb2_display = 0;
			if (document.getElementById('tat_table')){ document.body.removeChild(document.getElementById('tat_table')); }
			if (actb2_toid) clearTimeout(actb2_toid);
		}
	}
	function actb2_keypress(e){
		if (actb2_caretmove) stopEvent(e);
		return !actb2_caretmove;
	}
	function actb2_checkkey(evt){
		if (!evt) evt = event;
		a = evt.keyCode;
		caret_pos_start = getCaretStart(actb2_curr);
		actb2_caretmove = 0;
		switch (a){
			case 38:
				actb2_goup();
				actb2_caretmove = 1;
				return false;
				break;
			case 40:
				actb2_godown();
				actb2_caretmove = 1;
				return false;
				break;
			case 13: case 9:
				if (actb2_display){
					actb2_caretmove = 1;
					actb2_penter();
					return false;
				}else{
					return true;
				}
				break;
			default:
				setTimeout(function(){actb2_tocomplete(a)},50);
				break;
		}
	}

	function actb2_tocomplete(kc){
		if (kc == 38 || kc == 40 || kc == 13) return;
		var i;
		if (actb2_display){ 
			var word = 0;
			var c = 0;
			for (var i=0;i<=actb2_self.actb2_keywords.length;i++){
				if (actb2_bool[i]) c++;
				if (c == actb2_pos){
					word = i;
					break;
				}
			}
			actb2_pre = word;
		}else{ actb2_pre = -1};
		
		if (actb2_curr.value == ''){
			actb2_mouse_on_list = 0;
			actb2_removedisp();
			return;
		}
		if (actb2_self.actb2_delimiter.length > 0){
			caret_pos_start = getCaretStart(actb2_curr);
			caret_pos_end = getCaretEnd(actb2_curr);
			
			delim_split = '';
			for (i=0;i<actb2_self.actb2_delimiter.length;i++){
				delim_split += actb2_self.actb2_delimiter[i];
			}
			delim_split = delim_split.addslashes();
			delim_split_rx = new RegExp("(["+delim_split+"])");
			c = 0;
			actb2_delimwords = new Array();
			actb2_delimwords[0] = '';
			for (i=0,j=actb2_curr.value.length;i<actb2_curr.value.length;i++,j--){
				if (actb2_curr.value.substr(i,j).search(delim_split_rx) == 0){
					ma = actb2_curr.value.substr(i,j).match(delim_split_rx);
					actb2_delimchar[c] = ma[1];
					c++;
					actb2_delimwords[c] = '';
				}else{
					actb2_delimwords[c] += actb2_curr.value.charAt(i);
				}
			}

			var l = 0;
			actb2_cdelimword = -1;
			for (i=0;i<actb2_delimwords.length;i++){
				if (caret_pos_end >= l && caret_pos_end <= l + actb2_delimwords[i].length){
					actb2_cdelimword = i;
				}
				l+=actb2_delimwords[i].length + 1;
			}
			var ot = actb2_delimwords[actb2_cdelimword].trim(); 
			var t = actb2_delimwords[actb2_cdelimword].addslashes().trim();
		}else{
			var ot = actb2_curr.value;
			var t = actb2_curr.value.addslashes();
		}
		if (ot.length == 0){
			actb2_mouse_on_list = 0;
			actb2_removedisp();
		}
		if (ot.length < actb2_self.actb2_startcheck) return this;
		if (actb2_self.actb2_firstText){
			var re = new RegExp("^" + t, "i");
		}else{
			var re = new RegExp(t, "i");
		}

		actb2_total = 0;
		actb2_tomake = false;
		actb2_kwcount = 0;
		for (i=0;i<actb2_self.actb2_keywords.length;i++){
			actb2_bool[i] = false;
			if (re.test(actb2_self.actb2_keywords[i])){
				actb2_total++;
				actb2_bool[i] = true;
				actb2_kwcount++;
				if (actb2_pre == i) actb2_tomake = true;
			}
		}

		if (actb2_toid) clearTimeout(actb2_toid);
		if (actb2_self.actb2_timeOut > 0) actb2_toid = setTimeout(function(){actb2_mouse_on_list = 0;actb2_removedisp();},actb2_self.actb2_timeOut);
		actb2_generate();
	}
	return this;
}
//fourth auto suggest

function actb3(obj,ca){
		/* ---- Public Variables ---- */
	this.actb3_timeOut = -1; // Autocomplete Timeout in ms (-1: autocomplete never time out)
	this.actb3_lim = 10;    // Number of elements autocomplete can show (-1: no limit)
	this.actb3_firstText = true; // should the auto complete be limited to the beginning of keyword?
	this.actb3_mouse = true; // Enable Mouse Support
	this.actb3_delimiter = new Array(';',',');  // Delimiter for multiple autocomplete. Set it to empty array for single autocomplete
	this.actb3_startcheck = 1; // Show widget only after this number of characters is typed in.
	/* ---- Public Variables ---- */

	/* --- Styles --- */
	this.actb3_bgColor = '#abe4ff';
	this.actb3_textColor = '#000000';
	this.actb3_hColor = '#808080';
	this.actb3_fFamily = 'Verdana';
	this.actb3_fSize = '11px';
	this.actb3_hStyle = 'text-decoration:underline;font-weight="bold"';
	/* --- Styles --- */

	/* ---- Private Variables ---- */
	var actb3_delimwords = new Array();
	var actb3_cdelimword = 0;
	var actb3_delimchar = new Array();
	var actb3_display = false;
	var actb3_pos = 0;
	var actb3_total = 0;
	var actb3_curr = null;
	var actb3_rangeu = 0;
	var actb3_ranged = 0;
	var actb3_bool = new Array();
	var actb3_pre = 0;
	var actb3_toid;
	var actb3_tomake = false;
	var actb3_getpre = "";
	var actb3_mouse_on_list = 1;
	var actb3_kwcount = 0;
	var actb3_caretmove = false;
	this.actb3_keywords = new Array();
	/* ---- Private Variables---- */
	
	this.actb3_keywords = ca;
	var actb3_self = this;

	actb3_curr = obj;
	
	addEvent(actb3_curr,"focus",actb3_setup);
	function actb3_setup(){
		addEvent(document,"keydown",actb3_checkkey);
		addEvent(actb3_curr,"blur",actb3_clear);
		addEvent(document,"keypress",actb3_keypress);
	}

	function actb3_clear(evt){
		if (!evt) evt = event;
		removeEvent(document,"keydown",actb3_checkkey);
		removeEvent(actb3_curr,"blur",actb3_clear);
		removeEvent(document,"keypress",actb3_keypress);
		actb3_removedisp();
	}
	function actb3_parse(n){
		if (actb3_self.actb3_delimiter.length > 0){
			var t = actb3_delimwords[actb3_cdelimword].trim().addslashes();
			var plen = actb3_delimwords[actb3_cdelimword].trim().length;
		}else{
			var t = actb3_curr.value.addslashes();
			var plen = actb3_curr.value.length;
		}
		var tobuild = '';
		var i;

		if (actb3_self.actb3_firstText){
			var re = new RegExp("^" + t, "i");
		}else{
			var re = new RegExp(t, "i");
		}
		var p = n.search(re);
				
		for (i=0;i<p;i++){
			tobuild += n.substr(i,1);
		}
		tobuild += "<font style='"+(actb3_self.actb3_hStyle)+"'>"
		for (i=p;i<plen+p;i++){
			tobuild += n.substr(i,1);
		}
		tobuild += "</font>";
			for (i=plen+p;i<n.length;i++){
			tobuild += n.substr(i,1);
		}
		return tobuild;
	}
	function actb3_generate(){
		if (document.getElementById('tat_table')){ actb3_display = false;document.body.removeChild(document.getElementById('tat_table')); } 
		if (actb3_kwcount == 0){
			actb3_display = false;
			return;
		}
		a = document.createElement('table');
		a.cellSpacing='1px';
		a.cellPadding='2px';
		a.style.position='absolute';
		a.style.top = eval(curTop(actb3_curr) + actb3_curr.offsetHeight) + "px";
		a.style.left = curLeft(actb3_curr) + "px";
		a.style.backgroundColor=actb3_self.actb3_bgColor;
		a.id = 'tat_table';
		document.body.appendChild(a);
		var i;
		var first = true;
		var j = 1;
		if (actb3_self.actb3_mouse){
			a.onmouseout = actb3_table_unfocus;
			a.onmouseover = actb3_table_focus;
		}
		var counter = 0;
		for (i=0;i<actb3_self.actb3_keywords.length;i++){
			if (actb3_bool[i]){
				counter++;
				r = a.insertRow(-1);
				if (first && !actb3_tomake){
					r.style.backgroundColor = actb3_self.actb3_hColor;
					first = false;
					actb3_pos = counter;
				}else if(actb3_pre == i){
					r.style.backgroundColor = actb3_self.actb3_hColor;
					first = false;
					actb3_pos = counter;
				}else{
					r.style.backgroundColor = actb3_self.actb3_bgColor;
				}
				r.id = 'tat_tr'+(j);
				c = r.insertCell(-1);
				c.style.color = actb3_self.actb3_textColor;
				c.style.fontFamily = actb3_self.actb3_fFamily;
				c.style.fontSize = actb3_self.actb3_fSize;
				c.innerHTML = actb3_parse(actb3_self.actb3_keywords[i]);
				c.id = 'tat_td'+(j);
				c.setAttribute('pos',j);
				if (actb3_self.actb3_mouse){
					c.style.cursor = 'pointer';
					c.onclick=actb3_mouseclick;
					c.onmouseover = actb3_table_highlight;
				}
				j++;
			}
			if (j - 1 == actb3_self.actb3_lim && j < actb3_total){
				r = a.insertRow(-1);
				r.style.backgroundColor = actb3_self.actb3_bgColor;
				c = r.insertCell(-1);
				c.style.color = actb3_self.actb3_textColor;
				c.style.fontFamily = 'arial narrow';
				c.style.fontSize = actb3_self.actb3_fSize;
				c.align='center';
				replaceHTML(c,'\\/');
				if (actb3_self.actb3_mouse){
					c.style.cursor = 'pointer';
					c.onclick = actb3_mouse_down;
				}
				break;
			}
		}
		actb3_rangeu = 1;
		actb3_ranged = j-1;
		actb3_display = true;
		if (actb3_pos <= 0) actb3_pos = 1;
	}
	function actb3_remake(){
		document.body.removeChild(document.getElementById('tat_table'));
		a = document.createElement('table');
		a.cellSpacing='1px';
		a.cellPadding='2px';
		a.style.position='absolute';
		a.style.top = eval(curTop(actb3_curr) + actb3_curr.offsetHeight) + "px";
		a.style.left = curLeft(actb3_curr) + "px";
		a.style.backgroundColor=actb3_self.actb3_bgColor;
		a.id = 'tat_table';
		if (actb3_self.actb3_mouse){
			a.onmouseout= actb3_table_unfocus;
			a.onmouseover=actb3_table_focus;
		}
		document.body.appendChild(a);
		var i;
		var first = true;
		var j = 1;
		if (actb3_rangeu > 1){
			r = a.insertRow(-1);
			r.style.backgroundColor = actb3_self.actb3_bgColor;
			c = r.insertCell(-1);
			c.style.color = actb3_self.actb3_textColor;
			c.style.fontFamily = 'arial narrow';
			c.style.fontSize = actb3_self.actb3_fSize;
			c.align='center';
			replaceHTML(c,'/\\');
			if (actb3_self.actb3_mouse){
				c.style.cursor = 'pointer';
				c.onclick = actb3_mouse_up;
			}
		}
		for (i=0;i<actb3_self.actb3_keywords.length;i++){
			if (actb3_bool[i]){
				if (j >= actb3_rangeu && j <= actb3_ranged){
					r = a.insertRow(-1);
					r.style.backgroundColor = actb3_self.actb3_bgColor;
					r.id = 'tat_tr'+(j);
					c = r.insertCell(-1);
					c.style.color = actb3_self.actb3_textColor;
					c.style.fontFamily = actb3_self.actb3_fFamily;
					c.style.fontSize = actb3_self.actb3_fSize;
					c.innerHTML = actb3_parse(actb3_self.actb3_keywords[i]);
					c.id = 'tat_td'+(j);
					c.setAttribute('pos',j);
					if (actb3_self.actb3_mouse){
						c.style.cursor = 'pointer';
						c.onclick=actb3_mouseclick;
						c.onmouseover = actb3_table_highlight;
					}
					j++;
				}else{
					j++;
				}
			}
			if (j > actb3_ranged) break;
		}
		if (j-1 < actb3_total){
			r = a.insertRow(-1);
			r.style.backgroundColor = actb3_self.actb3_bgColor;
			c = r.insertCell(-1);
			c.style.color = actb3_self.actb3_textColor;
			c.style.fontFamily = 'arial narrow';
			c.style.fontSize = actb3_self.actb3_fSize;
			c.align='center';
			replaceHTML(c,'\\/');
			if (actb3_self.actb3_mouse){
				c.style.cursor = 'pointer';
				c.onclick = actb3_mouse_down;
			}
		}
	}
	function actb3_goup(){
		if (!actb3_display) return;
		if (actb3_pos == 1) return;
		document.getElementById('tat_tr'+actb3_pos).style.backgroundColor = actb3_self.actb3_bgColor;
		actb3_pos--;
		if (actb3_pos < actb3_rangeu) actb3_moveup();
		document.getElementById('tat_tr'+actb3_pos).style.backgroundColor = actb3_self.actb3_hColor;
		if (actb3_toid) clearTimeout(actb3_toid);
		if (actb3_self.actb3_timeOut > 0) actb3_toid = setTimeout(function(){actb3_mouse_on_list=0;actb3_removedisp();},actb3_self.actb3_timeOut);
	}
	function actb3_godown(){
		if (!actb3_display) return;
		if (actb3_pos == actb3_total) return;
		document.getElementById('tat_tr'+actb3_pos).style.backgroundColor = actb3_self.actb3_bgColor;
		actb3_pos++;
		if (actb3_pos > actb3_ranged) actb3_movedown();
		document.getElementById('tat_tr'+actb3_pos).style.backgroundColor = actb3_self.actb3_hColor;
		if (actb3_toid) clearTimeout(actb3_toid);
		if (actb3_self.actb3_timeOut > 0) actb3_toid = setTimeout(function(){actb3_mouse_on_list=0;actb3_removedisp();},actb3_self.actb3_timeOut);
	}
	function actb3_movedown(){
		actb3_rangeu++;
		actb3_ranged++;
		actb3_remake();
	}
	function actb3_moveup(){
		actb3_rangeu--;
		actb3_ranged--;
		actb3_remake();
	}

	/* Mouse */
	function actb3_mouse_down(){
		document.getElementById('tat_tr'+actb3_pos).style.backgroundColor = actb3_self.actb3_bgColor;
		actb3_pos++;
		actb3_movedown();
		document.getElementById('tat_tr'+actb3_pos).style.backgroundColor = actb3_self.actb3_hColor;
		actb3_curr.focus();
		actb3_mouse_on_list = 0;
		if (actb3_toid) clearTimeout(actb3_toid);
		if (actb3_self.actb3_timeOut > 0) actb3_toid = setTimeout(function(){actb3_mouse_on_list=0;actb3_removedisp();},actb3_self.actb3_timeOut);
	}
	function actb3_mouse_up(evt){
		if (!evt) evt = event;
		if (evt.stopPropagation){
			evt.stopPropagation();
		}else{
			evt.cancelBubble = true;
		}
		document.getElementById('tat_tr'+actb3_pos).style.backgroundColor = actb3_self.actb3_bgColor;
		actb3_pos--;
		actb3_moveup();
		document.getElementById('tat_tr'+actb3_pos).style.backgroundColor = actb3_self.actb3_hColor;
		actb3_curr.focus();
		actb3_mouse_on_list = 0;
		if (actb3_toid) clearTimeout(actb3_toid);
		if (actb3_self.actb3_timeOut > 0) actb3_toid = setTimeout(function(){actb3_mouse_on_list=0;actb3_removedisp();},actb3_self.actb3_timeOut);
	}
	function actb3_mouseclick(evt){
		if (!evt) evt = event;
		if (!actb3_display) return;
		actb3_mouse_on_list = 0;
		actb3_pos = this.getAttribute('pos');
		actb3_penter();
	}
	function actb3_table_focus(){
		actb3_mouse_on_list = 1;
	}
	function actb3_table_unfocus(){
		actb3_mouse_on_list = 0;
		if (actb3_toid) clearTimeout(actb3_toid);
		if (actb3_self.actb3_timeOut > 0) actb3_toid = setTimeout(function(){actb3_mouse_on_list = 0;actb3_removedisp();},actb3_self.actb3_timeOut);
	}
	function actb3_table_highlight(){
		actb3_mouse_on_list = 1;
		document.getElementById('tat_tr'+actb3_pos).style.backgroundColor = actb3_self.actb3_bgColor;
		actb3_pos = this.getAttribute('pos');
		while (actb3_pos < actb3_rangeu) actb3_moveup();
		while (actb3_pos > actb3_ranged) actb3_movedown();
		document.getElementById('tat_tr'+actb3_pos).style.backgroundColor = actb3_self.actb3_hColor;
		if (actb3_toid) clearTimeout(actb3_toid);
		if (actb3_self.actb3_timeOut > 0) actb3_toid = setTimeout(function(){actb3_mouse_on_list = 0;actb3_removedisp();},actb3_self.actb3_timeOut);
	}
	/* ---- */

	function actb3_insertword(a){
		if (actb3_self.actb3_delimiter.length > 0){
			str = '';
			l=0;
			for (i=0;i<actb3_delimwords.length;i++){
				if (actb3_cdelimword == i){
					prespace = postspace = '';
					gotbreak = false;
					for (j=0;j<actb3_delimwords[i].length;++j){
						if (actb3_delimwords[i].charAt(j) != ' '){
							gotbreak = true;
							break;
						}
						prespace += ' ';
					}
					for (j=actb3_delimwords[i].length-1;j>=0;--j){
						if (actb3_delimwords[i].charAt(j) != ' ') break;
						postspace += ' ';
					}
					str += prespace;
					str += a;
					l = str.length;
					if (gotbreak) str += postspace;
				}else{
					str += actb3_delimwords[i];
				}
				if (i != actb3_delimwords.length - 1){
					str += actb3_delimchar[i];
				}
			}
			actb3_curr.value = str;
			setCaret(actb3_curr,l);
		}else{
			actb3_curr.value = a;
		}
		actb3_mouse_on_list = 0;
		actb3_removedisp();
	}
	function actb3_penter(){
		if (!actb3_display) return;
		actb3_display = false;
		var word = '';
		var c = 0;
		for (var i=0;i<=actb3_self.actb3_keywords.length;i++){
			if (actb3_bool[i]) c++;
			if (c == actb3_pos){
				word = actb3_self.actb3_keywords[i];
				break;
			}
		}
		actb3_insertword(word);
		l = getCaretStart(actb3_curr);
	}
	function actb3_removedisp(){
		if (actb3_mouse_on_list==0){
			actb3_display = 0;
			if (document.getElementById('tat_table')){ document.body.removeChild(document.getElementById('tat_table')); }
			if (actb3_toid) clearTimeout(actb3_toid);
		}
	}
	function actb3_keypress(e){
		if (actb3_caretmove) stopEvent(e);
		return !actb3_caretmove;
	}
	function actb3_checkkey(evt){
		if (!evt) evt = event;
		a = evt.keyCode;
		caret_pos_start = getCaretStart(actb3_curr);
		actb3_caretmove = 0;
		switch (a){
			case 38:
				actb3_goup();
				actb3_caretmove = 1;
				return false;
				break;
			case 40:
				actb3_godown();
				actb3_caretmove = 1;
				return false;
				break;
			case 13: case 9:
				if (actb3_display){
					actb3_caretmove = 1;
					actb3_penter();
					return false;
				}else{
					return true;
				}
				break;
			default:
				setTimeout(function(){actb3_tocomplete(a)},50);
				break;
		}
	}

	function actb3_tocomplete(kc){
		if (kc == 38 || kc == 40 || kc == 13) return;
		var i;
		if (actb3_display){ 
			var word = 0;
			var c = 0;
			for (var i=0;i<=actb3_self.actb3_keywords.length;i++){
				if (actb3_bool[i]) c++;
				if (c == actb3_pos){
					word = i;
					break;
				}
			}
			actb3_pre = word;
		}else{ actb3_pre = -1};
		
		if (actb3_curr.value == ''){
			actb3_mouse_on_list = 0;
			actb3_removedisp();
			return;
		}
		if (actb3_self.actb3_delimiter.length > 0){
			caret_pos_start = getCaretStart(actb3_curr);
			caret_pos_end = getCaretEnd(actb3_curr);
			
			delim_split = '';
			for (i=0;i<actb3_self.actb3_delimiter.length;i++){
				delim_split += actb3_self.actb3_delimiter[i];
			}
			delim_split = delim_split.addslashes();
			delim_split_rx = new RegExp("(["+delim_split+"])");
			c = 0;
			actb3_delimwords = new Array();
			actb3_delimwords[0] = '';
			for (i=0,j=actb3_curr.value.length;i<actb3_curr.value.length;i++,j--){
				if (actb3_curr.value.substr(i,j).search(delim_split_rx) == 0){
					ma = actb3_curr.value.substr(i,j).match(delim_split_rx);
					actb3_delimchar[c] = ma[1];
					c++;
					actb3_delimwords[c] = '';
				}else{
					actb3_delimwords[c] += actb3_curr.value.charAt(i);
				}
			}

			var l = 0;
			actb3_cdelimword = -1;
			for (i=0;i<actb3_delimwords.length;i++){
				if (caret_pos_end >= l && caret_pos_end <= l + actb3_delimwords[i].length){
					actb3_cdelimword = i;
				}
				l+=actb3_delimwords[i].length + 1;
			}
			var ot = actb3_delimwords[actb3_cdelimword].trim(); 
			var t = actb3_delimwords[actb3_cdelimword].addslashes().trim();
		}else{
			var ot = actb3_curr.value;
			var t = actb3_curr.value.addslashes();
		}
		if (ot.length == 0){
			actb3_mouse_on_list = 0;
			actb3_removedisp();
		}
		if (ot.length < actb3_self.actb3_startcheck) return this;
		if (actb3_self.actb3_firstText){
			var re = new RegExp("^" + t, "i");
		}else{
			var re = new RegExp(t, "i");
		}

		actb3_total = 0;
		actb3_tomake = false;
		actb3_kwcount = 0;
		for (i=0;i<actb3_self.actb3_keywords.length;i++){
			actb3_bool[i] = false;
			if (re.test(actb3_self.actb3_keywords[i])){
				actb3_total++;
				actb3_bool[i] = true;
				actb3_kwcount++;
				if (actb3_pre == i) actb3_tomake = true;
			}
		}

		if (actb3_toid) clearTimeout(actb3_toid);
		if (actb3_self.actb3_timeOut > 0) actb3_toid = setTimeout(function(){actb3_mouse_on_list = 0;actb3_removedisp();},actb3_self.actb3_timeOut);
		actb3_generate();
	}
	return this;
}
