var smcAddEvent;
if (document.addEventListener) {
	smcAddEvent = function(element, type, handler) {
		element.addEventListener(type, handler, null);
		if (element.href) element.href="javascript:void('');" ;
	}
}
else if (document.attachEvent) {
	smcAddEvent = function(element, type, handler) {
		element.attachEvent("on" + type, handler);
		if (element.href) element.href="javascript:void('');" ;
	}
}
else {
	smcAddEvent = new Function; // not supported
}
 
function smcGetTarget(e) {
	if (window.event && window.event.srcElement)
		return window.event.srcElement ;
	if (e && e.target)
		return e.target ;
	if (!e)
		return false ;
}

function smcClimbDom(e, tagType, containsClass) {
	if (containsClass) {
		while (
			(
				e.nodeName.toLowerCase() != tagType
				|| !smcClassContains(e, containsClass)
			)
			&& e.nodeName.toLowerCase() != 'html'
		) e = e.parentNode ;
	}
	else {
		while (e.nodeName.toLowerCase() != tagType && e.nodeName.toLowerCase() != 'html') e = e.parentNode ;
	}
	return (e.nodeName.toLowerCase() == 'html') ? false : e ;
}

function smcClassContains(myObject,myClassName) {
	if (!myObject.className) return false ;
	else return (myObject.className.indexOf(myClassName) == -1) ? false : true ;
}

function smcStripClass(myObject, classToStrip) {
	if (!myObject || !myObject.className) return false ;
	var cnPos = myObject.className.indexOf(classToStrip) ;
	if (cnPos != -1) {
		var newCN = myObject.className.replace(classToStrip, "") ;
		myObject.className = newCN ;
	}
}

function smcAddClass(myObject, myClassName) {
	var cnPos = myObject.className.indexOf(myClassName) ;
	if (cnPos == -1) {
		myObject.className += " " + myClassName ;
	}
}

function smcToggleClass(el, myClassName) {
	if (smcClassContains(el, myClassName)) {
		smcStripClass(el, myClassName) ;
	}
	else {
		smcAddClass(el, myClassName) ;
	}
}

function smcGetElementsByClassName(oElm, strTagName, strClassName) {
    var arrElements = (strTagName == "*" && document.all)? document.all : oElm.getElementsByTagName(strTagName) ;
    var arrReturnElements = new Array() ;
    strClassName = strClassName.replace(/\-/g, "\\-") ;
    var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)") ;
    var oElement ;
    for (var i=0; i<arrElements.length; i++) {
        oElement = arrElements[i] ; 
        if(oRegExp.test(oElement.className)) {
            arrReturnElements.push(oElement) ;
        }   
    }
    return (arrReturnElements) ;
}

function smcCancelBubble(e) {
	if (window.event) {
		window.event.smcCancelBubble = true ;
	}
	else {
		e.stopPropagation();
	}
}

var cX = 0; var cY = 0; var rX = 0; var rY = 0;
function UpdateCursorPosition(e){ cX = e.pageX; cY = e.pageY;}
function UpdateCursorPositionDocAll(e){ cX = event.clientX; cY = event.clientY;}
if(document.all) { document.onmousemove = UpdateCursorPositionDocAll; }
else { document.onmousemove = UpdateCursorPosition; }
function AssignPosition(d) {
if(self.pageYOffset) {
	rX = self.pageXOffset;
	rY = self.pageYOffset;
	}
else if(document.documentElement && document.documentElement.scrollTop) {
	rX = document.documentElement.scrollLeft;
	rY = document.documentElement.scrollTop;
	}
else if(document.body) {
	rX = document.body.scrollLeft;
	rY = document.body.scrollTop;
	}
if(document.all) {
	cX += rX; 
	cY += rY;
	}
//d.style.left = (cX+10) + "px";
//d.style.top = (cY+10) + "px";

d.style.left = (cX-10) + "px";
d.style.top = (cY-100) + "px";

}
function HideContent(d) {
if(d.length < 1) { return; }
document.getElementById(d).style.display = "none";
}
function ShowContent(d) {
if(d.length < 1) { return; }
var dd = document.getElementById(d);
AssignPosition(dd);
dd.style.display = "block";
}
function ReverseContentDisplay(d) {
if(d.length < 1) { return; }
var dd = document.getElementById(d);
AssignPosition(dd);
if(dd.style.display == "none") { dd.style.display = "block"; }
else { dd.style.display = "none"; }
}
