

document.write('<div id="over_item" '
					+ 'style="'
							+ 'padding: 2px;'
							+ 'background-color:#F7F7F7;'
							+ 'border: 1px solid #FF7200;'
							+ 'position: absolute;'
							+ 'display: none;'
							+ 'z-index: 100;'
							+ 'width: auto;'
							+ 'height: auto;'
							+ 'filter: alpha(opacity=100);">'
				+ '</div>');

var overObj		= '';
var OverEvent_Ajax = function ()
{
	this.item		= null;
	this.obj		= null;
	this.show_obj	= null;
	this.browser	= 3;
	this.flag		= false;
	this.item_w		= '';
	this.item_h		= '';
	this.closeT		= '';
	this.closeB		= '';
}

OverEvent_Ajax.prototype.getBrowser = function ()
{
	if (this.obj.addEventListener)	// W3C DOM 지원 브라우저
	{
		this.browser	= 1;
	}
	else if (this.obj.attachEvent)	// MSDOM 지원 브라우저
	{
		this.browser	= 2;
	}
}

OverEvent_Ajax.prototype.itemShow = function (obj, item, mode)
{
	this.obj		= obj;
	this.item		= item;
	this.flag		= false;
	this.show_obj	= document.getElementById('over_item');
	overObj			= this;

	this.getBrowser();

	if (this.item != '')
	{
		this.flag	= true;
		this.itemHide();
		// 해당 아이템에 이미지 사이즈 정보를 구한다
		this.itemSizeInforAndItemShow();
	}
	else
	{
		this.itemHide();
		return;
	}

	switch (this.browser)
	{
		case 1 :
			this.obj.addEventListener("mousemove", this.getMoveLayer, false);
			this.obj.addEventListener("mouseout", this.overHide, false);
			break;
		case 2 :
			this.obj.attachEvent("onmousemove", this.getMoveLayer);
			this.obj.attachEvent("onmouseout", this.overHide);
			break;
		case 3 :
			this.MyAttachEvent(obj, evt, fuc);
			this.obj['on'+evt] = function() { this.MyFireEvent(obj,evt); }
			break;
	}
}

OverEvent_Ajax.prototype.getMoveLayer = function (e)
{
	var evt	= e ? e : window.event;

	if (evt.pageX || evt.pageY)				// pageX/Y 표준 검사
	{
		var mouseW	= evt.pageX;
		var mouseH	= evt.pageY+9;
		var scrollW	= self.pageXOffset;
		var scrollH	= self.pageYOffset;
		var bodyW	= window.innerWidth;
		var bodyH	= window.innerHeight;

		var posx	= ((bodyW-mouseW-scrollW) <= overObj.item_w) ? (mouseW-overObj.item_w-20+scrollW) : (mouseW+20+scrollW);
		var posy	= ((bodyH-(mouseH-scrollH)) <= overObj.item_h) ? ((mouseH)-overObj.item_h) : mouseH;
	}
	else if (evt.clientX || evt.clientY)	//clientX/Y 표준 검사 Opera
	{
		var mouseW	= evt.clientX;
		var mouseH	= evt.clientY;
		var bodyW	= document.documentElement.offsetWidth;
		var bodyH	= document.documentElement.offsetHeight;
		if (window.event)					// IE 여부 검사
		{
			var scrollW	= document.body.scrollLeft;
			var scrollH	= document.body.scrollTop;
			var posx	= ((bodyW-mouseW-scrollW) <= overObj.item_w) ? (mouseW-overObj.item_w-20+scrollW) : (mouseW+20+scrollW);
			var posy	= ((bodyH-mouseH) <= overObj.item_h) ? ((scrollH+mouseH)-overObj.item_h) : mouseH+scrollH;
		}
		else
		{
			var posx	= (mouseW <= overObj.item_w) ? (mouseW-overObj.item_w-20) : (mouseW+20);
			var posy	= (mouseH <= overObj.item_h) ? (mouseH-overObj.item_h) : mouseH;
		}
	}
	document.getElementById('over_item').style.left	= posx + "px";
	document.getElementById('over_item').style.top	= posy + "px";
}

OverEvent_Ajax.prototype.itemHide = function ()
{
	switch (this.browser)
	{
		case 1 :
			document.mousemove	= '';
			break;
		case 2 :
			document.onmousemove= '';
		break;
	}
	this.show_obj.style.display	= (this.flag == true) ? '' : 'none';
}

OverEvent_Ajax.prototype.overHide = function ()
{
	overObj.getDetachEvent(overObj.obj, "mousemove", overObj.getMoveLayer);
}

OverEvent_Ajax.prototype.getDetachEvent = function (obj, evt, fuc)
{
	if (obj.removeEventListener)
	{
		obj.removeEventListener(evt, fuc, false);
	}
	else if(obj.detachEvent)
	{
		obj.detachEvent("on"+evt, fuc);
	}
	else
	{
		overObj.MyDetachEvent(obj, evt, fuc);
		obj['on' + evt] = function () { overObj.MyFireEvent(obj, evt); }
	}
}

OverEvent_Ajax.prototype.MyAttachEvent = function (obj, evt, fuc)
{
	if (!obj.myEvents) obj.myEvents= {};
	if (!obj.myEvents[evt]) obj.myEvents[evt]=[];
	var evts				= obj.myEvents[evt];
		evts[evts.length]	= fuc;
}

OverEvent_Ajax.prototype.MyFireEvent = function (obj, evt)
{
	if (!obj.myEvents || !obj.myEvents[evt]) return;
	var evts = obj.myEvents[evt];
	for (var i=0;i<len;i++)
	{
		len=evts.length;
		evts[i]();
	}
}

OverEvent_Ajax.prototype.itemSizeInforAndItemShow = function ()
{
	document.imgs		= new Image();
	document.imgs.src	= this.item;
	var i = 0;
	while (document.imgs.readyState != 'complete')
	{
		if (document.imgs.readyState == 'complete') { break; }
		if (i == 3000) { break; } i++;
	}
	// 해당 아이템을 지정된 레이어에 보여준다
	this.show_obj.innerHTML	= this.itemHTML();
	this.item_w				= (this.item != '') ? document.images['imagename'].width  : '';
	this.item_h				= (this.item != '') ? document.images['imagename'].height : '';
	this.show_obj.style.left= '0px';
	this.show_obj.style.top	= '-10000px';
}

OverEvent_Ajax.prototype.itemHTML = function ()
{
	return '<table border="0" cellpadding="0" cellspacing="0">'
		 + this.closeT
		 + '<tr>'
		 +	'<td><a href="javascript:" onClick="javascript:over_item.style.display=\'none\'">'
		 +		'<img name="imagename" src="' + this.item + '" border="0" align="absmiddle">'
		 +		'</a>'
		 +	'</td>'
		 + '</tr>'
		 + this.closeB
		 + '</table>';
}

OverEvent_Ajax.prototype.closeButton = function ()
{
	if (show_magnify_close == 'S')
	{
		switch (show_magnify_close_image_locate)
		{
			case 'right_top' :
				this.closeT	= '<tr><td align="right">'
							+ '<input type="button" value="닫기" onClick="over_item.style.display=\'none\'">'
							+ '</td></tr>';
				break;
			case 'left_top' :
				this.closeT	= '<tr><td>'
							+ '<input type="button" value="닫기" onClick="over_item.style.display=\'none\'">'
							+ '</td></tr>';
				break;
			case 'top_center' :
				this.closeT	= '<tr><td align="center">'
							+ '<input type="button" value="닫기" onClick="over_item.style.display=\'none\'">'
							+ '</td></tr>';
				break;
			case 'bottom_center' :
				this.closeB	= '<tr><td align="center">'
							+ '<input type="button" value="닫기" onClick="over_item.style.display=\'none\'">'
							+ '</td></tr>';
				break;
			case 'left_bottom' :
				this.closeB	= '<tr><td>'
							+ '<input type="button" value="닫기" onClick="over_item.style.display=\'none\'">'
							+ '</td></tr>';
				break;
			case 'right_bottom' :
				this.closeB	= '<tr><td align="right">'
							+ '<input type="button" value="닫기" onClick="over_item.style.display=\'none\'">'
							+ '</td></tr>';
				break;
		}
	}
}

var OverEvent_Ajax	= new OverEvent_Ajax();
mousOverEvent_Ajax			= function (obj, item) { OverEvent_Ajax.itemShow(obj, item, true);	}
mousClickEvent_Ajax			= function (obj, item) { OverEvent_Ajax.itemShow(obj, item, false);	}
