/*=========================================

 filename:  rollover.js
 create:    2009/10/6
 copyright: 

=========================================*/

var RolloverImage = function( className, onSuffix ){
	this.init( className, onSuffix );
}

RolloverImage.prototype = {

	init : function( className, onSuffix){
		if(!document.getElementById || !document.images || !className)	return;
		
		this.targetClassName = className;
		this.onSuffix = onSuffix || '_on';
		this.buttons = [];

		var rolloverObj = [];
		
		this.imgObj( rolloverObj );
		this.inputObj( rolloverObj );

		for(var i=0,len=rolloverObj.length; i<len; i++){
			this.registButton( rolloverObj[i] );
		}
		
		this.preloadImages();
	},

	registButton : function( el ){
		var _this = this;
		var btn = new Object();
		btn.src = el.src;
		btn.filetype = btn.src.substring(btn.src.lastIndexOf('.'));
		btn.basename = btn.src.substring(0, btn.src.length-btn.filetype.length);
		btn.onsrc = btn.basename + this.onSuffix + btn.filetype;
		
		el.offsrc = btn.src;
		el.onsrc  = btn.onsrc;
		
		this.buttons.push( el );
		
		el.onmouseover = function(){ _this.swapImage( el, 'on' ); }
		el.onmouseout = function(){ _this.swapImage( el, 'off'); }
		
		if(el.tagName == 'INPUT'){
			el.onfocus = function(){ _this.swapImage( el, 'on' ); }
			el.onblur = function(){ _this.swapImage( el, 'off'); }
		}
		
		if(el.parentNode && el.parentNode.tagName=="A"){
			var p = el.parentNode;
			p.onfocus = function(){ _this.swapImage( el, 'on' ); }
			p.onblur = function(){ _this.swapImage( el, 'off'); };
		}
	},
	
	imgObj : function( obj ){
		var imgItem = document.getElementsByTagName('IMG');
		for(var i=0,len=imgItem.length; i<len; i++){
			if(imgItem[i].className == this.targetClassName){
				obj.push(imgItem[i]);
			}
		}
	},

	inputObj : function( obj ){
		var inputItem = document.getElementsByTagName('INPUT');
		for(var i=0,len=inputItem.length; i<len; i++){
			if(inputItem[i].className == this.targetClassName){
				obj.push(inputItem[i]);
			}
		}
	},

	preloadImages : function(){
		var ret = [];
		for( var i=0; i<this.buttons.length; i++ ){
			(new Image()).src = this.buttons[i].onsrc;
			ret[ret.length] = this.buttons[i].onsrc;
		}
	},
	
	swapImage : function( obj, status ){
		if( !obj || !obj[status+"src"] ) return;
		obj.src = obj[status+"src"];
	}

}

//-------------------//

var setRolloverErea = function( idName, className ){
	this.init( idName, className );
}

setRolloverErea.prototype = {
	init : function( idName, className ){
		//’†’fˆ—
		if(!document.getElementById || !idName )	return;
		this.setClass( idName, className );		
	},

	setClass : function( idName, className ){
		var targetId = document.getElementById(idName);
		if( !targetId ) return;
		var targetImg = targetId.getElementsByTagName('IMG');
		for( var i=0,len=targetImg.length; i<len; i++ ){
			targetImg[i].className = className;
		}
	}
}

