﻿// JScript File

function actb(obj,eff_id,ca) {
	this.actb_timeOut = -1; // Autocomplete Timeout in ms (-1: autocomplete never time out)
	this.actb_lim = 8;    // Number of elements autocomplete can show (-1: no limit)
	this.actb_firstText = false; // should the auto complete be limited to the beginning of keyword?
	this.actb_mouse = true; // Enable Mouse Support
	this.actb_delimiter = new Array();  //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.

	this.actb_bgColor = 'white';
	this.actb_textColor = 'black';
	this.actb_hColor = '#cadbfd';
	this.actb_fFamily = 'Arial';
	this.actb_fSize = '11px';
	this.actb_hStyle = 'text-decoration:underline; font-weight:bold;';
	this.actb_imgDown = '<img src="images/pred_down.gif" style="padding:3px;" />';
	this.actb_imgUp = '<img src="images/pred_up.gif" style="padding:3px;" />';

	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();

	// replaced thru the script document.body (was 'null' in firefox)
	var tmp_ = document.getElementsByTagName('body');
	this.body_ = tmp_[0];

	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();
		showDD();
	}

	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 += "<span style='"+(actb_self.actb_hStyle)+"'>"
		for (i=p;i<plen+p;i++) {
			tobuild += n.substr(i,1);
		}
		tobuild += "</span>";
		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;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';
		a.className = 'actb_pred';
		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;
				var splits = actb_parse(actb_self.actb_keywords[i]);
				var splita = splits.split("|");
				c.innerHTML = splita[1];
				
				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';
				c.innerHTML = actb_imgDown;
				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() {
		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';
		a.className = 'actb_pred';
		if (actb_self.actb_mouse) {
			a.onmouseout= actb_table_unfocus;
			a.onmouseover=actb_table_focus;
		}
		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';
			c.innerHTML = actb_imgUp;
			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;
					var splits = actb_parse(actb_self.actb_keywords[i]);
					var splita = splits.split("|");
					c.innerHTML = splita[1];
					
					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';
			c.innerHTML = actb_imgDown;
			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();
	}

	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{
			var splitter = a.split("|")
			actb_curr.value = splitter[1];
			document.getElementById(eff_id).value=splitter[0];
		}
		actb_mouse_on_list = 0;
		showDD();
		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;
			showDD();
			if (document.getElementById('tat_table')) { 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) {
		hideDD();
		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 hideDD() {	
	if(navigator.appName.indexOf("Internet Explorer")!=-1) {
		var ie = true;
	}
	if(ie) {
		var bookForm = document.getElementById("book-now");
		if (bookForm !=null) {
			var selBoxes = bookForm.getElementsByTagName("select");
			for(i=0;i<selBoxes.length;i++) {
				// document.getElementById(selBoxes[i].id).style.visibility="hidden"; // by alvin
			}
		}
	}
}

function showDD() {
	if(navigator.appName.indexOf("Internet Explorer")!=-1) {
		if(navigator.appVersion.indexOf("MSIE 6.0")!=-1) {var ie = "ie6";}
		else{var ie = "ie";}
	}
	if(ie == "ie6") {
		setTimeout(actionDD,200);
	}
	else{
		actionDD();
	}
}

function actionDD() {
	var bookForm = document.getElementById("book-now");
	if (bookForm !=null) {
		var selBoxes = bookForm.getElementsByTagName("select");
		for(i=0;i<selBoxes.length;i++) {
			// document.getElementById(selBoxes[i].id).style.visibility="hidden"; // by alvin
		}
	}
}

function addEvent(obj,event_name,func_name) {
	if (obj.attachEvent) {
		obj.attachEvent("on"+event_name, func_name);
	}
	else if(obj.addEventListener) {
		obj.addEventListener(event_name,func_name,true);
	}
	else {
		obj["on"+event_name] = func_name;
	}
}

function removeEvent(obj,event_name,func_name) {
	if (obj.detachEvent) {
		obj.detachEvent("on"+event_name,func_name);
	}
	else if(obj.removeEventListener) {
		obj.removeEventListener(event_name,func_name,true);
	}
	else{
		obj["on"+event_name] = null;
	}
}

function stopEvent(evt) {
	evt || window.event;
	if (evt.stopPropagation) {
		evt.stopPropagation();evt.preventDefault();
	}
	else if(typeof evt.cancelBubble != "undefined") {
		evt.cancelBubble = true;evt.returnValue = false;
	}
	return false;
}

function getElement(evt) {
	if (window.event) {
		return window.event.srcElement;
	}
	else {
		return evt.currentTarget;
	}
}

function getTargetElement(evt) {
	if (window.event) {
		return window.event.srcElement;
	}
	else {
		return evt.target;
	}
}

function stopSelect(obj) {
	if (typeof obj.onselectstart != 'undefined') {
		addEvent(obj,"selectstart",function() { return false;});
	}
}

function getCaretEnd(obj) {
	if(typeof obj.selectionEnd != "undefined") {
		return obj.selectionEnd;
	}
	else if(document.selection&&document.selection.createRange) {
		var M=document.selection.createRange();
		try {
			var Lp = M.duplicate();
			Lp.moveToElementText(obj);
		}
		catch(e) {
			var Lp=obj.createTextRange();
		}
		Lp.setEndPoint("EndToEnd",M);
		var rb=Lp.text.length;
		if(rb>obj.value.length) {
			return -1;
		}
		return rb;
	}
}

function getCaretStart(obj) {
	if(typeof obj.selectionStart != "undefined") {
		return obj.selectionStart;
	}
	else if(document.selection&&document.selection.createRange) {
		var M=document.selection.createRange();
		try {
			var Lp = M.duplicate();
			Lp.moveToElementText(obj);
		}
		catch(e) {
			var Lp = obj.createTextRange();
		}
		Lp.setEndPoint("EndToStart",M);
		var rb=Lp.text.length;
		if(rb>obj.value.length) {
			return -1;
		}
		return rb;
	}
}

function setCaret(obj,l) {
	obj.focus();
	if (obj.setSelectionRange) {
		obj.setSelectionRange(l,l);
	}
	else if(obj.createTextRange) {
		m = obj.createTextRange();		
		m.moveStart('character',l);
		m.collapse();
		m.select();
	}
}

function setSelection(obj,s,e) {
	obj.focus();
	if (obj.setSelectionRange) {
		obj.setSelectionRange(s,e);
	}
	else if(obj.createTextRange) {
		m = obj.createTextRange();		
		m.moveStart('character',s);
		m.moveEnd('character',e);
		m.select();
	}
}

String.prototype.addslashes = function() {
	return this.replace(/(["\\\.\|\[\]\^\*\+\?\$\(\)])/g, '\\$1');
}

String.prototype.trim = function () {
    return this.replace(/^\s*(\S*(\s+\S+)*)\s*$/, "$1");
};

function curTop(obj) {
	toreturn = 0;
	while(obj) {
		toreturn += obj.offsetTop;
		obj = obj.offsetParent;
	}
	return toreturn;
}

function curLeft(obj) {
	toreturn = 0;
	while(obj) {
		toreturn += obj.offsetLeft;
		obj = obj.offsetParent;
	}
	return toreturn;
}

function showHideDiv(divName) {
	if (document.getElementById(divName)) {
		new_style = (document.getElementById(divName).style.display == "none") ? "block" : "none";
		document.getElementById(divName).style.display = new_style;
	}
}

function hideDiv(divName) {
	if(document.getElementById(divName)) {
		document.getElementById(divName).style.display = 'none';
	}
}

function showDiv(divName) {
	if(document.getElementById(divName)) {
		document.getElementById(divName).style.display = 'block';
	}
}

function showHideLayer(layerName, actionType, frameName) {
	//if no action specified, this function will toggle the current state	
	if (actionType == 2) {
		if (frameName != null) {
			new_style = (top.frames[frameName].document.getElementById(layerName).style.display != "none") ? "none" : "block";
		}
		else {
			new_style = (document.getElementById(layerName).style.display != "none") ? "none" : "block";
		}   
  }
  else {
		new_style = (actionType == 1) ? "block" : "none";
	}
  if(frameName != null) {
		top.frames[frameName].document.getElementById(layerName).style.display = new_style;
	}
	else {
		document.getElementById(layerName).style.display = new_style;
	}
}

function show_status(divId) {
	return (document.getElementById(divId).style.display == 'block');
}

function findObj(n, d) { //v4.01
	var p,i,x;  
	if(!d) d=document; 
	if((p=n.indexOf("?"))>0&&parent.frames.length) {
		d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);
	}
	
	if(!(x=d[n])&&d.all) x=d.all[n]; 
	for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
	for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
	if(!x && d.getElementById) x=d.getElementById(n); 
	return x;
}

function change_css(id, css_class) {
	document.getElementById(id).className = css_class;
}

function urlencode(str) {
	var result = "";
	for (i = 0; i < str.length; i++) {
		if (str.charAt(i) == " ") {
			result += "+";
		}
		else {
			result += str.charAt(i);
		}
	}
	return escape(result);
}

function __attachEvent(elem, eventName, handler) {
	if (elem.attachEvent) // IE
		return elem.attachEvent("on" + eventName, handler);	
	else if (elem.addEventListener) {
		elem.addEventListener(eventName, handler, false);
		return true;
	}
	return false;
}

function __detachEvent(elem, eventName, handler) {
	if (elem.detachEvent) { // IE
		return elem.detachEvent("on" + eventName, handler);	
	}
	else if (elem.removeEventListener) {
		elem.removeEventListener(eventName, handler, false);
		return true;
	}
	return false;
}