/**
 * addEvent function found at http://www.scottandrew.com/weblog/articles/cbs-events
 */
function addEvent(obj, evType, fn) {
	if (obj.addEventListener) {
		obj.addEventListener(evType, fn, true);
		return true;
	} else if (obj.attachEvent) {
		var r = obj.attachEvent("on"+evType, fn);
		return r;
	} else {
		return false;
	}
}

/**
 * createElement function found at http://simon.incutio.com/archive/2003/06/15/javascriptWithXML
 */
function createElement(element) {
	if (typeof document.createElementNS != 'undefined') {
		return document.createElementNS('http://www.w3.org/1999/xhtml', element);
	}
	if (typeof document.createElement != 'undefined') {
		return document.createElement(element);
	}
	return false;
}

/**
 * Dynamically add a class to an element
 */
function addClass(element, classAdd) {
	element.className += element.className ? ' ' + classAdd : classAdd;
}

/**
 * Dynamically remove a class to an element
 */
function removeClass(element, classAdd) {
	replace = element.className.match(' ' + classAdd) ? ' ' + classAdd : classAdd;
	element.className = element.className.replace(replace, '');
}

/**
 * Get cross browser XMLHTTPRequest object
 */
function AJAX() {
	var o = false;

	/*@cc_on @*/
	/*@if (@_jscript_version >= 5)
		try {
			o = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				o = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (E) {
				o = false;
			}
		}
	@end @*/

	if (!o && typeof XMLHttpRequest != 'undefined') {
		o = new XMLHttpRequest();
	}

	return o;
}

/**
 * Dirty way to add a bookmark
 */
function bookmark(href, title) {
	if( window.sidebar && window.sidebar.addPanel ) {
		window.sidebar.addPanel(title, href, '');
	} else if(window.external && (navigator.platform == 'Win32' ||
			 (window.ScriptEngine && ScriptEngine().indexOf('InScript') + 1))) {
		window.external.AddFavorite(href, title);
	} else if(window.opera && window.print) {
		return true;
	} else if(document.layers) {
		window.alert('Please click OK then press Ctrl+D to create a bookmark');
	} else {
		window.alert('Please use your browser\'s bookmarking facility to create a bookmark');
	}
}