﻿/**************************************
* 파일명: lib.rollover.js
* 기능: 이미지 롤오버 자동화 라이브러리
* 작성일: 2002-11-05
* 작성자: 거친마루
***************************************/

var ie = (document.all) ? true : false;	// 인터넷 익스플로러인가?
var imgBuff = new Array();				// 롤오버 이미지를 저장하기 위한 버퍼

/** 
* class imgEntry()
* 원본, 롤오버, 선택시 사용할 이미지를 가지고 있는 객체
* 
* @param origin
* @param over
* @param select
*/
function imgEntry(origin,over,select) {
	this.origin = new Image();
	this.over = new Image();
	this.select = new Image();

	this.origin.src = origin;
	this.over.src = over;
	this.select.src = select;
}

/** 
* String _makeTempID()
* 이미지의 임시 아이디로 쓰일 난수 이름을 발생시켜줌
* 
* @return String
*/
function _makeTempID() {
	return "IMG" + Math.ceil(Math.random() * 10000000);
}

/** 
* void doOver()
* 이미지에 롤오버될때의 이벤트 핸들러
*/
function doOver() {
	var el = event.srcElement;
	if (el.selected == true) return;
	el.src = imgBuff[el.id].over.src;
}

/** 
* void doOut()
* 이미지에서 롤아웃될때의 이벤트 핸들러
*/
function doOut() {
	var el = event.srcElement;
	if (el.selected == true) return;
	el.src = imgBuff[el.id].origin.src;
}

/** 
* void doClick()
* 이미지를 클릭할때의 이벤트 핸들러
*/
function doClick() {
	var el = event.srcElement;
	if (el.getAttribute("TOGGLE") != null) {
		el.selected = !(el.selected);
		el.src = (el.selected) ? imgBuff[el.id].select.src : imgBuff[el.id].origin.src;
	} else if (el.getAttribute("GROUP") != null) {
		var same = el.getAttribute("GROUP");
		var imgs = document.all.tags("IMG");
		for (var i=0; i<imgs.length; i++) {
			if (imgs[i].getAttribute("GROUP") == same) {
				imgs[i].selected = false;
				imgs[i].src = imgBuff[imgs[i].id].origin.src;
			}
		}
		el.selected = true;
		el.src = imgBuff[el.id].select.src;
	} else {
		el.selected = true;
		el.src = imgBuff[el.id].select.src;
	}
}

/** 
* void init_rollover()
* 이미지 롤오버를 위한 준비
*/
function init_rollover() {
	if (!ie) return;	// 익스플로러가 아니면 빠져나가기

	var img;
	var imgs = document.all.tags("IMG");
	for (var i=0; i<imgs.length; i++) {
		if (imgs[i].oversrc) {
			if (!imgs[i].id) imgs[i].id = _makeTempID();
			img = new imgEntry(imgs[i].src, imgs[i].oversrc, (imgs[i].selsrc) ? imgs[i].selsrc : imgs[i].oversrc);
			imgBuff[imgs[i].id] = img;
			if (imgs[i].getAttribute("DEFAULT") != null)  {
				imgs[i].selected = true;
				imgs[i].src = imgBuff[imgs[i].id].select.src;
			}

			imgs[i].onmouseover = doOver;
			imgs[i].onmouseout = doOut;
			imgs[i].onclick = doClick;
		}
	}
}

/** 
* void selectImg
* 이미지를 선택 상태로 만들어줌
*
* @param String id
*/
function selectImg(id) {
	var target = document.getElementById(id);
	if (target.getAttribute("OVERSRC") != null) {
		target.selected = true;
		target.src = imgBuff[id].select.src;
	}
}