<!-- hide this script from non-javascript-enabled browsers
function popWindow(page, width, height, win, scrollbars, resizable, toolbar, menubar)
{
	if (!height)
		height = 600;
	if (!width)
		width = 360;
	if (!win)
		win = "_new"
	var h, w, scrol, siz;
	w = "WIDTH=" + width.toString();
	h = "HEIGHT=" + height.toString();
	scrol = ",scrollbars=" + ( (scrollbars) ? "yes" : "no" );
	siz = ",resizable=" + ( (resizable) ? "yes" : "no" );
	tool = ",toolbar=" + ( (toolbar) ? "yes" : "no" );
	menu = ",menubar=" + ( (menubar) ? "yes" : "no" );
	attr = w + "," + h + scrol + siz + tool + menu;
	popupWin = window.open(page,win,attr);
	popupWin.focus();
}
function popBook(myPage)
{
	popWindow(myPage,360,396,'bookfeature');
}

function addEvent( obj, type, fn ) {
	if (obj.addEventListener) {
		obj.addEventListener( type, fn, false );
		EventCache.add(obj, type, fn);
	}
	else if (obj.attachEvent) {
		obj["e"+type+fn] = fn;
		obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
		obj.attachEvent( "on"+type, obj[type+fn] );
		EventCache.add(obj, type, fn);
	}
	else {
		obj["on"+type] = obj["e"+type+fn];
	}
}
var EventCache = function(){
	var listEvents = [];
	return {
		listEvents : listEvents,
		add : function(node, sEventName, fHandler){
			listEvents.push(arguments);
		},
		flush : function(){
			var i, item;
			for(i = listEvents.length - 1; i >= 0; i = i - 1){
				item = listEvents[i];
				if(item[0].removeEventListener){
					item[0].removeEventListener(item[1], item[2], item[3]);
				};
				if(item[1].substring(0, 2) != "on"){
					item[1] = "on" + item[1];
				};
				if(item[0].detachEvent){
					item[0].detachEvent(item[1], item[2]);
				};
				item[0][item[1]] = null;
			};
		}
	};
}();
//eg: addEvent(window, "load", init);
//addEvent(window,'unload',EventCache.flush);


function $() {
	var elements = new Array();
	for (var i = 0; i < arguments.length; i++) {
		var element = arguments[i];
		if (typeof element == 'string')
			element = document.getElementById(element);
		if (arguments.length == 1)
			return element;
		elements.push(element);
	}
	return elements;
}
//eg: $('id');

var toggle = {
	show : function() {
		for ( i=0; i < arguments.length; i++ ) {
			$(arguments[i]).style.display = '';
		}
	},
	hide : function() {
		for ( i=0; i < arguments.length; i++ ) {
			$(arguments[i]).style.display = 'none';
		}
	},
	auto : function() {
		for ( i=0; i < arguments.length; i++ ) {
			el = $(arguments[i]);
			if(el.style.display == 'none')
				el.style.display = '';
			else
				el.style.display = 'none';
		}
	}
};
//eg: toggle.hide(id, id3);

function getElementsByClass(searchClass,node,tag) {
	var classElements = new Array();
	if ( node == null )
		node = document;
	if ( tag == null )
		tag = '*';
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp("(^|\s)"+searchClass+"(\s|$)");
	for (i = 0, j = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}

function selectAll(el)
{
	var boxes = el.getElementsByTagName('input');
	for(var j = 0; j < boxes.length; j++)
	{
		if(boxes[j].type == 'checkbox')
		{
			if(boxes[j].checked) continue;
			boxes[j].click();
		}
	}
}
function deselectAll(el)
{
	var boxes = el.getElementsByTagName('input');
	for(var j = 0; j < boxes.length; j++)
	{
		if(boxes[j].type == 'checkbox')
		{
			if(!boxes[j].checked) continue;
			boxes[j].click();
		}
	}
}
function zebraTable(table_rows)
{
	for(var j = 0; j < table_rows.length; j++)
	{
		if((j % 2 === 0) && j > 1)
			table_rows[j].className = 'hightlight'
	}
}

function ImageToggle(section, image, target_image_section, target_image) {
	document[section].src = image;
	document[section].style.cursor = 'pointer';
	
	if ( typeof(target_image_section) != "undefined" && typeof(target_image) != "undefined") {
		document[target_image_section].src = target_image;
	}
}

function userFilterOutHTML(html)
{
	html = html.replace(/<(\/)?strong/gi, '<$1b');              // replaces <strong> to <b>
	html = html.replace(/<(\/)?em/gi, '<$1i');                  // replaces <em>to <i>
	html = html.replace(/(&nbsp;)+/g, '&nbsp;');                // replaces more than one &nbsp; to one &nbsp;
	html = html.replace(/&nbsp; /g, ' ');                       // replaces &nbsp; and space combination to single space
	html = html.replace(/  /g, ' ');                            // replaces two spaces to one space
	html = html.replace(/ <\/b>/g, '</b> ');                    // repalces space</b> to </b>space
	html = html.replace(/ <\/i>/g, '</i> ');                    // replaces space</i> to </i>space
	html = html.replace(/ <\/a>/g, '</a> ');                    // replaces space</a> to </a>space

	html = html.replace(/\u00A9/g, '&copy;');
	html = html.replace(/\u00AE/g, '&reg;');
	
	html = html.replace(/\u00C0/g, '&Agrave;');
	html = html.replace(/\u00E0/g, '&agrave;');
	html = html.replace(/\u00C2/g, '&Acirc;');
	html = html.replace(/\u00E2/g, '&acirc;');
	html = html.replace(/\u00C1/g, '&Aacute;');
	html = html.replace(/\u00E1/g, '&aacute;');
	html = html.replace(/\u00C4/g, '&Auml;');
	html = html.replace(/\u00E4/g, '&auml;');
	html = html.replace(/\u00C3/g, '&Atilde;');
	html = html.replace(/\u00E3/g, '&atilde;');
	
	html = html.replace(/\u00C7/g, '&Ccedil;');	
	html = html.replace(/\u00E7/g, '&ccedil;');
	
	html = html.replace(/\u00C8/g, '&Egrave;');
	html = html.replace(/\u00E8/g, '&egrave;');
	html = html.replace(/\u00C9/g, '&Eacute');
	html = html.replace(/\u00E9/g, '&eacute');
	html = html.replace(/\u00CA/g, '&Ecirc;');
	html = html.replace(/\u00EA/g, '&ecirc;');
	html = html.replace(/\u00CB/g, '&Euml;');
	html = html.replace(/\u00EB/g, '&euml;');	
	
	html = html.replace(/\u00CC/g, '&Igrave;');
	html = html.replace(/\u00EC/g, '&igrave;');
	html = html.replace(/\u00CD/g, '&Iacute;');
	html = html.replace(/\u00ED/g, '&iacute;');	
	html = html.replace(/\u00CE/g, '&Icirc;');
	html = html.replace(/\u00EE/g, '&icirc;');	
	html = html.replace(/\u00CF/g, '&Iuml;');
	html = html.replace(/\u00EF/g, '&iuml;');	
	
	html = html.replace(/\u00D2/g, '&Ograve;');
	html = html.replace(/\u00F2/g, '&ograve;');
	html = html.replace(/\u00D3/g, '&Oacute;');
	html = html.replace(/\u00F3/g, '&oacute;');	
	html = html.replace(/\u00D4/g, '&Ocirc;');
	html = html.replace(/\u00F4/g, '&ocirc;');	
	html = html.replace(/\u00D6/g, '&Ouml;');
	html = html.replace(/\u00F6/g, '&ouml;');		

	return html;
}
