var id2Elm = {};
function $(id) {
    var elm = id2Elm[id];
    if (elm == null) {
        elm = document.getElementById(id);
        id2Elm[id] = elm
    }
    return elm;
}

function getTarget(event) {
    event = event || window.event;
    return event.target || event.srcElement;    
}

function init(focusId) {
    if (focusId == null) {
        return;
    }
	var elm = $(focusId);
	if (elm != null) {
		elm.focus();
	}
}

function onTextFocus(event) {
	event = event || window.event;
	var target = event.target || event.srcElement;
	target.style.borderColor = "#666699";
	target.style.borderWidth = 2;
}

function onTextBlur(event) {
	event = event || window.event;
	var target = event.target || event.srcElement;
	target.style.borderColor = "gray";
	target.style.borderWidth = 1;
}

function btnMouseDown(event) {
	replaceImageSuffixEvent(event, "pressed");
}
function btnMouseUp(event) {
	replaceImageSuffixEvent(event, "hover");
}
function btnMouseOut(event) {
	replaceImageSuffixEvent(event, "normal");
}
function btnMouseOver(event) {
	replaceImageSuffixEvent(event, "hover");
}

function replaceImageSuffix(elm, suffix) {
	var imgSrc = elm.src;
	var index_ = imgSrc.lastIndexOf("_");
	var indexDot = imgSrc.lastIndexOf(".");
	elm.src = imgSrc.substring(0, index_ + 1) + suffix
			+ imgSrc.substring(indexDot);
}

function replaceImageSuffixEvent(event, suffix) {
	event = event || window.event;
	var target = event.target || event.srcElement;
	if (target.nodeName.toLowerCase() == "img") {
		replaceImageSuffix(target, suffix);
		return;
	}
	var children = target.childNodes;
	for (var i = 0; i < children.length; ++i) {
		var child = children[i];
		if (child.nodeName.toLowerCase() == "img") {
			replaceImageSuffix(child, suffix);
			return;
		}
	}
}
