/* Copyright Stylegraph All rights Reserved. */

function getMouseLeft(e) {
	if (document.all) return document.body.scrollLeft + event.clientX;
	else return e.pageX;
}

function getMouseTop(e) {
	if (document.all) return document.body.scrollTop + event.clientY;
	else return e.pageY;
}

function setOpacity(element, opacity) {
	if (navigator.userAgent.indexOf("MSIE") > 0) element.style.filter = "alpha(opacity=" + opacity * 100 + ")";
	 else element.style.opacity = opacity;
}

function createHttpRequest() {
	if (window.ActiveXObject) return new ActiveXObject("Microsoft.XMLHTTP");
	else return new XMLHttpRequest();
}

function getNodeValueByTagName(xml, tagName) {
	if (xml.getElementsByTagName(tagName).length == 0) return "";
	if (xml.getElementsByTagName(tagName)[0].firstChild == null) return "";
	return xml.getElementsByTagName(tagName)[0].firstChild.nodeValue;
}

function setNodeValueByTagName(element, xml, tagName) {
	var value = getNodeValueByTagName(xml, tagName);
	if (document.all) {
//		for (var i = 0; i < element.childNodes.length; i++) element.removeChild(childNodes[i]);
		element.innerHTML = "";
		value = value.split("\n").join("\r");
		var textNode = document.createTextNode(value);
		element.appendChild(textNode);
	} else {
		element.innerHTML = value;
	}
}

function getElementsByClassName(parentElement, className) {
	var elements = new Array();
	var childElements = new Array();

	for (var i = 0; i < parentElement.childNodes.length; i++) {
		if (parentElement.childNodes[i].className == className) elements.push(parentElement.childNodes[i]);
		if (parentElement.childNodes[i].hasChildNodes()) {
			childElements = getElementsByClassName(parentElement.childNodes[i], className);
			for (var j = 0; j < childElements.length; j++) elements.push(childElements[j]);
		}
	}
	return elements;
}

function inherit(subClass, superClass)  {
    for (var prop in superClass.prototype) {
        if (typeof(superClass[prop]) == "undefined") { 
            subClass.prototype[prop] = superClass.prototype[prop];
        }
    }
}

if (document.all && document.attachEvent) {
	function eEvent(e) {
		this.target=e.srcElement;
		this.cancelBubble = e.cancelBubble;
		this.keyVal = e.keyCode;
	}

	function document_addEventListener(eventName, eventFunction, cancelBubble) {
		this.attachEvent("on" + eventName, function(){
			var e = new eEvent(event);
			return eventFunction(e);
		});
	}

	function document_removeEventListener(eventName, eventFunction, cancelBubble) {
		this.detachEvent("on" + eventName, eventFunction);
	}

	window.addEventListener = document_addEventListener;
	window.removeEventListener = document_removeEventListener;
	document.addEventListener = document_addEventListener;
	document.removeEventListener = document_removeEventListener;
}

function initializeEventListenerForMSIE(element) {
	if (document.all && document.attachEvent) {
		var elements = element.parentNode.getElementsByTagName("*");
		for (var i = 0; i < elements.length; i++){
			elements[i].addEventListener = document_addEventListener;
			elements[i].removeEventListener = document_removeEventListener;
		}
	}
}

function stopPropagation(e) {
	if (document.all && document.attachEvent) event.cancelBubble = true;
	else e.stopPropagation();
}