
/*------------------------------------------------
	init rollovers */

function initRollovers() {
	if ( !document.getElementById ) return;
	
	var aPreLoad = new Array();
	var sTempSrc;
	var aImages = document.getElementsByTagName( 'img' );

	for ( var i = 0; i < aImages.length; i++ ){
		if ( aImages[i].className == 'imgover' ){
			var src = aImages[i].getAttribute( 'src' );
			var ftype = src.substring( src.lastIndexOf('.'), src.length );
			var hsrc = src.replace( ftype, '_on' + ftype );
			
			aImages[i].setAttribute( 'hsrc', hsrc );
			
			aPreLoad[i] = new Image();
			aPreLoad[i].src = hsrc;
			
			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( '_on' + ftype, ftype );
				this.setAttribute( 'src', sTempSrc );
			}
		}
	}
}

/*------------------------------------------------
	DOM event control */

var dom = new Object();
dom.event = new Object();
dom.event.addEventListener = function( elm, type, func, useCapture ){
	if ( !elm ){ return false; }
	if ( !useCapture ){ useCapture = false; }
	if ( elm.addEventListener ){
		elm.addEventListener( type, func, useCapture );
	} else if ( elm.attachEvent ){
		elm.attachEvent( 'on' + type, func );
	} else { return false; }
	return true;
};
dom.event.removeEventListener = function( elm, type, func, useCapture ){
	if ( !elm ){ return false; }
	if ( !useCapture ){ useCapture = false; }
	if ( elm.removeEventListener ){
		elm.removeEventListener( type, func, useCapture );
	} else if ( elm.detachEvent ){
		elm.detachEvent( 'on' + type, func );
	} else { return false; }
	return true;
};
dom.event.target = function( evt ){
	if ( evt && evt.target ){
		if ( evt.target.nodeType == 3 ){ return evt.target.parentNode; }
		else { return evt.target; }
	} else if ( window.event && window.event.srcElement ){
		return window.event.srcElement;
	} else {
		return null;
	}
};
dom.event.preventDefault = function( evt ){
	if ( evt && evt.preventDefault ){
		evt.preventDefault();
		return false;
	} else if ( window.event ){
		window.event.returnValue = false;
	}
	return 0;
};
dom.event.stopPropagation = function( evt ){
	if ( evt && evt.stopPropagation ){ evt.stopPropagation(); }
	else if ( window.event ){ window.event.cancelBubble = true; }
};

/*------------------------------------------------
	initialize */

if ( window.addEventListener || window.attachEvent ){
	dom.event.addEventListener( window, 'load', initRollovers );
} else {
	window.onload = function(){
		initRollovers();
	}
}

