// ================================================================================================
// browser check:
var agent = navigator.userAgent.toLowerCase();
var isIE = (agent.indexOf('msie') != -1);
var isOpera	= (agent.indexOf('opera') != -1);
var isSafari = (agent.indexOf('safari') != -1);
// ================================================================================================
function $() {
    var elements = new Array();
    for (var i = 0; i < arguments.length; i++) {
        var element = arguments[i];
        if (typeof element == 'string')
            element = document.getElementById(element);
        if (arguments.length == 1)
            return element;
        elements.push(element);
    }
    return elements;
}
// ================================================================================================
var addEvent;
if (document.addEventListener) {
    addEvent = function(element, type, handler) {
        element.addEventListener(type, handler, null);
    };
} else if (document.attachEvent) {
    addEvent = function(element, type, handler) {
        element.attachEvent("on" + type, handler);
    };
} else {
    addEvent = new Function; // not supported
}
// ================================================================================================
function getElementsByClassName(parentNode,node,classname) {
	var a = [];
	var re = new RegExp('(^| )'+classname+'( |$)');
if ((parentNode!=null)&&(node!=null)) {
	var els = parentNode.getElementsByTagName(node);
	for(var i=0,j=els.length; i<j; i++){
		if(re.test(els[i].className))a.push(els[i]);
	}
}
	return a;
}
// ================================================================================================
function findPosition(element) {
	if(element.offsetParent) {
		var posWidth = element.offsetWidth;
		var posHeight = element.offsetHeight;
		for(var posX = 0, posY = 0; element.offsetParent; element = element.offsetParent) {
			if(element.tagName.toLowerCase() !== "body"){ 
				posX += element.offsetLeft;
				posY += element.offsetTop;
			}
		}
		return { x: posX, y: posY, width: posWidth, height: posHeight };
	} else {
		return { x: element.x, y: element.y, width: element.offsetWidth, height: element.offsetHeight };
	}
}

// ================================================================================================
addEvent(window,'load',initRollovers);
function initRollovers() {
	if (!document.getElementById) return
	
	var sTempSrc;
	var aPreLoad = new Array();
	var aImages = document.getElementsByTagName('img')
	for (var i = 0; i < aImages.length; i++) {		
		if (aImages[i].className == 'nav') {
			var src = aImages[i].getAttribute('src');
			var hsrc = src.replace('_cold', '_hot');
			aImages[i].setAttribute('hsrc', hsrc);
			// ===== Preload =====
			aPreLoad[i] = new Image();
			aPreLoad[i].src = hsrc;
			// ===== Set onMouse(over|out) =====
			aImages[i].onmouseover = function() {
				sTempSrc = this.getAttribute('src');
				this.setAttribute('src', this.getAttribute('hsrc'));
			}	
			aImages[i].onmouseout = function() {
				if (!sTempSrc) sTempSrc = this.getAttribute('src').replace('_hot','_cold');
				this.setAttribute('src', sTempSrc);
			}
		}
	}
}
