// JavaScript Document

var rwScript = {

// ADD EVENT FUNCTION
	addEvent: function (target, eventType, functionRef, capture) {
		if (typeof target.addEventListener != "undefined") {
			target.addEventListener(eventType, functionRef, capture);
		} else if (typeof target.attachEvent != "undefined") {
			target.attachEvent("on" + eventType, functionRef);
		} else {
			eventType = "on" + eventType;
			
			if (typeof target[eventType] == "function") {
				var oldListener = target[eventType];
				
				target[eventType] = function() {
					oldListener();
					
					return functionRef();
				}
			} else {
				target[eventType] = functionRef;
			}
		}
		
		return true;
	},
	
	addLoadListener: function (fn) {
		if (typeof window.addEventListener != 'undefined') {
			window.addEventListener('load', fn, false);
		} else if (typeof document.addEventListener != 'undefined') {
			document.addEventListener('load', fn, false);
		} else if (typeof window.attachEvent != 'undefined') {
			window.attachEvent('onload', fn);
		} else {
			var oldfn = window.onload;
			if (typeof window.onload != 'function') {
				window.onload = fn;
			} else {
				window.onload = function() {
					oldfn();
					fn();
				};
			}
		}
	},
	
	detachEventListener: function (target, eventType, functionRef, capture) {
		if (typeof target.removeEventListener != "undefined") {
			target.removeEventListener(eventType, functionRef, capture);
		} else if (typeof target.detachEvent != "undefined") {
			var functionString = eventType + functionRef;
			
			target.detachEvent("on" + eventType, target[functionString]);
			
			target["e" + functionString] = null;
			target[functionString] = null;
		} else {
			target["on" + eventType] = null;
		}
	},
	
	stopDefaultAction: function (event) {
		event.returnValue = false;
		
		if (typeof event.preventDefault != "undefined") {
			event.preventDefault();
		}
	},

	identifyBrowser: function () {
		var agent = navigator.userAgent.toLowerCase();
		
	// Detect Konqueror
		if (typeof navigator.vendor != "undefined" && navigator.vendor == "KDE" && typeof window.sidebar != "undefined") {
			return "kde";
			
	// Detect Opera
		} else if (typeof window.opera != "undefined") {
			var version = parseFloat(agent.replace(/.*opera[\/ ]([^ $]+).*/, "$1"));
			if (version >= 7) {
				return "opera7";
			} else if (version >= 5) {
				return "opera5";
			}
			return false;
	
	// Detect IE
		} else if (typeof document.all != "undefined") {
			if (typeof document.getElementById != "undefined") {
				var browser = agent.replace(/,*ms(ie[\/ ][^ $]+).*/, "$1").replace(/ /, " ");
				
				if (typeof document.uniqueID != "undefined") {
					if (browser.indexOf("5.5") != -1) {
						return browser.replace(/(.*5\.5).*/, "$1");
					} else {
						return browser.replace(/(.*)\..*/, "$1");
					}
				} else {
					return "ie5mac";
				}
			}
			return false;
	
	// Detect Safari and Mozilla
		} else if (typeof document.getElementById != "undefined") {
			if (navigator.vendor.indexOf("Apple Computer, Inc.") != -1) {
				if (typeof window.XMLHttpRequest != "undefined") {
					return "safari1.2";
				}
				return "safari1";
			} else if (agent.indexOf("gecko") != -1) {
				return "mozilla";
			}
		}
		return false;
	},
	
	identifyOS: function() {
		var agent = navigator.userAgent.toLowerCase();
		
		if (agent.indexOf("win") != -1) {
			return "win";
		} else if (agent.indexOf("mac") != -1) {
			return "mac";
		} else {
			return "unix";
		}
		return false;
	},
	
	getEventTarget: function(event) {
		var targetElement = null;
		
		if (typeof event.target != "undefined") {
			targetElement = event.target;
		} else {
			targetElement = event.srcElement;
		}
		
		while (targetElement.nodeType == 3 && targetElement.parentNode != null) {
			targetElement = targetElement.parentNode;
		}
		
		return targetElement;
	},
	
	getPosition: function (theElement) {
		var positionX = 0;
		var positionY = 0;
		
		while (theElement != null) {
			positionX += theElement.offsetLeft;
			positionY += theElement.offsetTop;
			theElement = theElement.offsetParent;
		}
		
		return [positionX, positionY];
	},
	
	getScrollingPosition: function() {
		var position = [0, 0];
		
		if (typeof window.pageYOffset != "undefined") {
			position = [
				window.pageXOffset,
				window.pageYOffset
			];
		} else if (typeof document.documentElement.scrollTop != "undefined" && (document.documentElement.scrollTop > 0 || document.documentElement.scrollLeft > 0)) {
			position = [
				document.documentElement.scrollLeft,
				document.documentElement.scrollTop
			];
		} else if (typeof document.body.scrollTop != "undefined") {
			position = [
				document.body.scrollLeft,
				document.body.scrollTop
			];
		}
		
		return position;
	}

};
