addEvent(window, "load", setup, false);

function setup() {
	// Find any elements with class like "wrap-corner-4"
	var cCl, stPos, posW, nxSp, rst, hypo, wrCl, numW;
	var wrapCandidates = getElementsByClassName(document, "*", "wrap") ;
	var etwParent = document.getElementById("pageContent") ;
	var insertCandidates = getElementsByClassName(document, "*", "insert") ;
	for (var i=0; i<insertCandidates.length; i++) {
		cCl = insertCandidates[i].className ;
		stPos = cCl.indexOf("insert") ;
		posW = cCl.indexOf("some-", stPos) ;
		if (posW == -1) continue ;
		nxSp = cCl.indexOf(" ", posW) ;
		if (nxSp == -1) nxSp = cCl.length ;
		rst = cCl.substring(posW+5, nxSp) ;
		hypo = rst.indexOf("-") ;
		if (hypo == -1) continue ;
		wrCl = rst.substring(0, hypo-1) ;
		numW = rst.substring(hypo+1) ;
		if (!parseInt(numW)) continue ;
		insertElements(insertCandidates[i], wrCl, numW, cCl) ;
	}
	var hoverable = getElementsByClassName(document, "*", "hoverme") ;
	for (var j=0; j<hoverable.length; j++) {
		addEvent(hoverable[j], "mouseover", hoverElement2, false) ;
		addEvent(hoverable[j], "mouseout", unHoverElement2, false) ;
		var linksInElement = hoverable[j].getElementsByTagName("a") ;
		if (linksInElement.length) {
			// addEvent(hoverable[j], "click", clickElement, false) ;
		}
	}
	addEvent(window, "focus", clearAllHovers, false) ;
}

function clickElement(e) {
	var hoverEl = getTarget(e) ;
	if (!hoverEl) return false ;
	hoverEl = climbDom(hoverEl, "div", "hoverme") ;
	var linksInElement = hoverEl.getElementsByTagName("a") ;
	if (linksInElement.length) {
		for (var i=0; i<linksInElement.length; i++) {
			if (linksInElement[i].href && linksInElement[i].href != "#" && linksInElement[i].href.indexOf("javascript") == -1) {
				window.location = linksInElement[i].href ;
				break ;
			}
		}
	}
}

function hoverElement2(e) {
	var hoverEl = getTarget(e) ;
	if (!hoverEl) return false ;
	hoverEl = climbDom(hoverEl, "div", "hoverme") ;
	addClass(hoverEl, "hovering") ;
	clearAllHovers(hoverEl) ;
}
function unHoverElement2(e) {
	var hoverEl = getTarget(e) ;
	if (!hoverEl) return false ;
	if (!classContains(hoverEl, "panel") && !classContains(hoverEl, "hoverme")) {
		cancelEvent(e) ;
		return false ;
	}
	hoverEl = climbDom(hoverEl, "div", "hoverme") ;
	stripClass(hoverEl, "hovering") ;
}
function clearAllHovers(hoverEl) {
	var allHovering = getElementsByClassName(document, "*", "hovering") ;
	for (var i=0; i<allHovering.length; i++) {
		if (!hoverEl || (allHovering[i] != hoverEl)) stripClass(allHovering[i], "hovering") ;
	}
}

function insertElements(elementToInsert, insClass, numberOfInserts) {
	for (var insNum=1; insNum<=numberOfInserts; insNum++) {
		var newElement = document.createElement("div") ;
			newElement.className = insClass + insNum ;
		elementToInsert.appendChild(newElement) ;
	}
}
function cancelEvent(e) {
	// Cross-browser cancel event
	if (e && e.preventDefault) e.preventDefault(); // DOM style
	else return false; // IE style ;
}

