var UI={
	_browser : null
};
Object.extend=function(a, b){
  for (var property in b) a[property] = b[property];
  return a;
};

UI.$=function(s) { return document.getElementById(s) };
UI.trim=function(s) {return s.replace(/(^\s*)|(\s*$)/g, "") };
UI.toogle=function(id) { UI.$(id).style.display=(UI.getStyle(UI.$(id),'display')=='none') ? 'block':'none' };
UI.getEl=function(e){var E=UI.getE(e);return E.target || E.srcElement}
UI.getE=function(e){return e || window.event}
UI.random=function(min, max){ return Math.floor(Math.random() * (max - min + 1) + min) };
UI.addEvent=function(object, type, listener) {	
	if(object.addEventListener) {if(type=='mousewheel')type='DOMMouseScroll'; object.addEventListener(type, listener, false)}
	else { object.attachEvent("on"+type, listener); }
};

UI.getBrowser=function(){
	var ua=navigator.userAgent.toLowerCase();
	var opera=/opera/.test(ua)
	UI._browser={
		ie:!opera && /msie/.test(ua),
		ie_ver: parseFloat(((ua.split('; '))[1].split(' '))[1]),
		opera:opera,
		ff:/firefox/.test(ua),
		gecko:/gecko/.test(ua)		
	};
	return UI._browser;
};

UI.getScroll=function () {
	if(document.all && typeof document.body.scrollTop != "undefined")
	{
		var cont=document.compatMode!="CSS1Compat"?document.body:document.documentElement;
		return {left:cont.scrollLeft, top:cont.scrollTop, width:cont.clientWidth, height:cont.clientHeight}
	}
	else 
		return {left:window.pageXOffset, top:window.pageYOffset, width:window.innerWidth, height:window.innerHeight}
};

UI.toolTip=function(event, options, loc, obj) {
	var e=event || window.event;
	var el= e.target || e.srcElement;

	el.options={
		className:'UItoolTip',
		mousemove:UI.toolTip.mousemove
	};
	Object.extend(el.options, options);

	el.stitle = el.alt || el.title || el.stitle || el.parentNode.title;
	el.title = el.alt = "";
	if(!el.stitle) return;
	
	var child=null;
	for(var i=0; i < el.childNodes.length; i++)
	{
		child = el.childNodes[i];
		if(child.tagName)
		{
			child.stitle = el.stitle;
			UI.addEvent(child, "mouseover", function(event){ UI.toolTip(event,options) } );
			child.style.backgroundColor = "#e6e6e6";	
		}
	}	
	
//	if(!el.UItoolTip) 
//	{
		var d = document.createElement("DIV");
		d.className = el.options.className;
		d.style.position="absolute";	
		UI.$('JESToolTip').appendChild(d);
		
		el.UItoolTip=d;
	
		var wid = '320px';
		if(loc == "right" || loc == "right_2") wid = '216px';
		var html = "";
			html += '<div style="width:'+wid+';text-align:justify;z-index:1000">';
			if(loc == "right_2"){
				html += '<div style="text-align:left;padding-left:75px;"><img src="http://imgsrc.search.daum-img.net/dic/ico_tooltip.gif" width="18" height="6" style="margin-bottom:-1px;"></div>';				
			}else{
				html += '<div style="text-align:left;"><img src="http://imgsrc.search.daum-img.net/dic/ico_tooltip.gif" width="18" height="6" style="margin-bottom:-1px;"></div>';				
			}
			html += '<div style="border-right:1px solid #d9d9d9;">';
			html += '<div style="border:1px solid #90abe4;background-color:#f8fafe;padding:14px">'+el.stitle+'</div>';
			html += '<div style="border-bottom:1px solid #d9d9d9;"></div>';
			html += '</div>';						
			html += '</div>';
		el.UItoolTip.innerHTML=html;

//	}
	
	var scroll = UI.getScroll();
	if(el.options.layerFixed) {
		if(el.options.isvsRight){ //Type = vs
		  var x = getAbsoluteLeft(el) - 298 + "px";
		}else{
		  var x = getAbsoluteLeft(el) + "px";
		  var y = getAbsoluteTop(el) + el.offsetHeight + 2 + "px";
		}
	} else {
		var x = (e.clientX+scroll.left+10) + "px";
		var y = (e.clientY+scroll.top+10) + "px";
	}

	el.UItoolTip.style.zIndex = 10000	
	el.UItoolTip.style.left = x;	
	if(loc == "right_2"){	
		el.UItoolTip.style.left = parseInt(x)-70;
	}
	var browser = UI.getBrowser();
	if(browser.ff){
		el.UItoolTip.style.top =  parseInt(y)-2 + "px";
	}else{
		el.UItoolTip.style.top =  parseInt(y)-2 + "px";
	}

	var parents = null;	
	if(obj == null){
		obj = el.parentNode;
		el.style.backgroundColor = "#e6e6e6";		
	}
	obj.style.backgroundColor = "#e6e6e6";

	UI.addEvent(el,'mouseout',UI.toolTip.mouseout.bindAsEventListener(el));	
};

UI.deleteElement = function (_id) {
	 if(_id.hasChildNodes()) {
	  var children = _id.childNodes
	  var n = children.length - 1
	  var lastChild = children.item(n)
	  _id.removeChild(lastChild)
	 }
};

UI.toolTip.mouseout = function( event ){
	var e=event || window.event; var el= e.target || e.srcElement;
	var _id = UI.$('JESToolTip');
	UI.deleteElement(_id);
/*
		var child=null;	
		for(var i=0; i < _id.childNodes.length; i++)
		{
			child = _id.childNodes[i];
			if(child.style.visibility == "visible"){
				child.style.visibility = "hidden";
			}
		}		
*/
	if(!el.UItoolTip) return;
	el.UItoolTip.style.visibility = "hidden";	
		
	this.style.backgroundColor = "#ffffff";	
	var child=null;
	for(var i=0; i < this.childNodes.length; i++)
	{
		child = this.childNodes[i];
		if(child.tagName)
		{
			child.style.backgroundColor = "#ffffff";	
		}	
	}
};




document.write('<div id="JESToolTip"></div>');
UI.toolTip.seq = 1;


function $A(iterable)
{
	if (!iterable) return [];
	var results = [];
	for (var i = 0, length = iterable.length; i < length; i++)
	  results.push(iterable[i]);
	return results;
}

Function.prototype.bind = function()
{
	var __method = this, args = $A(arguments), object = args.shift();
	return function() {
		return __method.apply(object, args.concat($A(arguments)));
	}
}

Function.prototype.bindAsEventListener = function()
{
	var __method = this, args = $A(arguments), object = args.shift();
	return function(event) {
		return __method.apply(object, [event || window.event].concat(args));
	}
}

function getAbsoluteLeft(oNode){
  var oCurrentNode=oNode;
  var iLeft=0;
  while(oCurrentNode.tagName!="BODY"){
	if(oCurrentNode.tagName=="HTML")break;
	iLeft+=oCurrentNode.offsetLeft;
	oCurrentNode=oCurrentNode.offsetParent;
  }
  return iLeft;
}
function getAbsoluteTop(oNode){
  var oCurrentNode=oNode;
  var iTop=0;
  while(oCurrentNode.tagName!="BODY"){
	if(oCurrentNode.tagName=="HTML")break;
	iTop+=oCurrentNode.offsetTop;
	oCurrentNode=oCurrentNode.offsetParent;
  }
  return iTop;
}

var tooltipSrc = "";
var tooltipDoc;
var tooltipReq;
var chkload = 0;

UI.toolTip_kor = function(event, options, loc, obj) {
	var e=event || window.event;
	var el= e.target || e.srcElement;
	el.options={
		className:'UItoolTip',
		mousemove:UI.toolTip.mousemove
	};
	Object.extend(el.options, options);

//	if(!el.UItoolTip){
		el.stitle = el.alt || el.title || el.stitle || el.parentNode.title;
		el.title = el.alt = "";

		if(!el.stitle) return;
/*		
		var child=null;
		for(var i=0; i < el.childNodes.length; i++)
		{
			child = el.childNodes[i];
			if(child.tagName)
			{
				child.stitle = el.stitle;
				UI.addEvent(child, "mouseover", function(event){ UI.toolTip(event,options) } );
			}
		}
*/		
		var kwd = el.stitle;
		var arrKwd = kwd.split("|");
		var numericKwd = "";
		for (var i=1; i<arrKwd.length; i++) {
			numericKwd += arrKwd[i];
		}
		var url = document.urlForm.HAN_TOOLTIP_URL.value;		
		UI.addEvent(el,'mouseout',UI.toolTip.mouseout.bindAsEventListener(el));
		if (url || url != "") {
			tooltipSrc = url + "?chinese=" + kwd;

			UI.loadTooltipReq();

			if (tooltipReq) {
				try {
					tooltipReq.onreadystatechange = function() {
						if(document.urlForm.LAYOUT_SMALL_WINDOW.value == "Y"){
							UI.drawAjaxTooltip("3", loc, el, obj);							
						}else{
							UI.drawAjaxTooltip("0", loc, el, obj);							
						}
					}
					tooltipReq.open("GET",tooltipSrc,true);
					tooltipReq.send(null);
				} catch(err) {
					UI.drawAjaxTooltipError(err);
				}
			}
			else alert("Not available browser!");		
		}
//	}else{
//		UI.addEvent(el,'mouseout',UI.toolTip.mouseout.bindAsEventListener(el));										
//		UI.drawAjaxTooltip("3", loc, el, obj);							
//	}

};


// to show a chinese tooltip box

UI.drawAjaxTooltipError = function(err) {
	alert(err);
}

UI.loadTooltipReq = function(){
	if (window.XMLHttpRequest) {
		tooltipReq = new XMLHttpRequest();
		if (tooltipReq.overrideMimeType) tooltipReq.overrideMimeType("text/xml");
	}
	else if (window.ActiveXObject) {
		tooltipReq = new ActiveXObject("Microsoft.XMLHTTP");
	}
};

UI.drawAjaxTooltip = function(_num, loc, el, obj){
	UI.addEvent(el,'mouseout',UI.toolTip.mouseout.bindAsEventListener(el));							
	var tgtObj;
	var schObj, schImg, schPage;
    if (tooltipReq.readyState == 4) {
        var httpStatus = tooltipReq.status;
        if (httpStatus == 200 && tooltipReq.responseXML != null) {
            tooltipDoc = tooltipReq.responseText;
			if(tooltipDoc){
				
				var d = document.createElement("DIV");		
				d.className = el.options.className;
				d.style.position="absolute";	
				UI.$('JESToolTip').appendChild(d);
				
				el.UItoolTip=d;
				
				var wid = '310px';
				if(loc == "right" || loc == "right_2") wid = '216px';
				if(document.body.clientWidth < 400) wid = '210px';
								
		
				var x = 5000;
				var y = 5000;
				if(el.options.layerFixed) {
					if(el.options.isvsRight){ //Type = vs
						x = getAbsoluteLeft(el) - 298 + "px";
					}else{
						x = getAbsoluteLeft(el) + "px";
						y = getAbsoluteTop(el) + el.offsetHeight + 2 + "px";
					}
				} else {
					x = (e.clientX+scroll.left+10) + "px";
					y = (e.clientY+scroll.top+10) + "px";
				}
				el.UItoolTip.style.zIndex = 10000	
				el.UItoolTip.style.left = x;	
				var small = false;
				if(document.body.clientWidth < 400){
					if(parseInt(x)+210> document.body.clientWidth){
						el.UItoolTip.style.left = parseInt(x)-150;
						small = true;
					}					
				}				
		
				
				var html = "";
				html += '<div style="width:'+wid+';text-align:justify;z-index:1000">';
				if(loc == "right_2"){
					html += '<div style="text-align:left;padding-left:75px;"><img src="http://imgsrc.search.daum-img.net/dic/ico_tooltip.gif" width="18" height="6" style="margin-bottom:-1px;"></div>';				
				}else if(small == true){
					html += "";					
				}else{
					html += '<div style="text-align:left;"><img src="http://imgsrc.search.daum-img.net/dic/ico_tooltip.gif" width="18" height="6" style="margin-bottom:-1px;"></div>';				
				}
				html += '<div style="border-right:1px solid #d9d9d9;">';
				html += '<div style="border:1px solid #90abe4;background-color:#f8fafe;padding:14px">'+tooltipDoc+'</div>';
				html += '<div style="border-bottom:1px solid #d9d9d9;"></div>';
				html += '</div>';						
				html += '</div>';
				el.UItoolTip.innerHTML=html;
						

			  	var scroll = UI.getScroll();
			


				
				if(loc == "right_2"){	
					el.UItoolTip.style.left = parseInt(x)-70;
				}
				el.UItoolTip.style.top =  y;				
			

				el.UItoolTip.style.visibility="visible";
				var parents = null;	
				if(obj == null){
					obj = el.parentNode;
				}
				obj.style.backgroundColor = "#e6e6e6";
			}
        }
    }	
};


UI.toolTip_click = function(event, options, loc, obj) {
	var e=event || window.event;
	var el= e.target || e.srcElement;

	el.options={
		className:'UItoolTip',
		mousemove:UI.toolTip.mousemove
	};
	Object.extend(el.options, options);

	el.stitle = el.alt || el.title || el.stitle || el.parentNode.title;
	el.title = el.alt = "";
//	if(!el.stitle) return;
	
	var child=null;
	for(var i=0; i < el.childNodes.length; i++)
	{
		child = el.childNodes[i];
		if(child.tagName)
		{
			child.stitle = el.stitle;
			UI.addEvent(child, "mouseover", function(event){ UI.toolTip(event,options) } );
			child.style.backgroundColor = "#e6e6e6";	
		}
	}	
	el.stitle = "국립국어원에서 발행한 <span style='color:#6171E9;'>\'주요어휘 용례집\'</span>에서 발췌한 예문입니다.";
	var d = document.createElement("DIV");
	d.className = el.options.className;
	d.style.position="absolute";	
	UI.$('JESToolTip').appendChild(d);

	el.UItoolTip=d;


	var wid = '310px';
	if(loc == "right" || loc == "right_2") wid = '216px';
	var html = "";
		html += '<div style="width:'+wid+';text-align:justify;z-index:1000" onmouseout="javascript:UI.openClose(\''+obj.id+'\');" onmouseover="javascript:UI.openClose(\''+obj.id+'\');" >';
		if(loc == "right_2"){
			html += '<div style="text-align:left;padding-left:75px;"><img src="http://imgsrc.search.daum-img.net/dic/ico_tooltip.gif" width="18" height="6" style="margin-bottom:-1px;"></div>';				
		}else{
			html += '<div style="text-align:left;"><img src="http://imgsrc.search.daum-img.net/dic/ico_tooltip.gif" width="18" height="6" style="margin-bottom:-1px;"></div>';				
		}
		html += '<div style="border-right:1px solid #d9d9d9;">';
		html += '<div style="border:1px solid #90abe4;background-color:#f8fafe;padding:14px 14px 12px 14px;line-height:17px">'+el.stitle+'</div>';
		html += '<div style="border-bottom:1px solid #d9d9d9;"></div>';
		html += '</div>';						
		html += '</div>';
	el.UItoolTip.innerHTML=html;

	var scroll = UI.getScroll();
	if(el.options.layerFixed) {
		if(el.options.isvsRight){ //Type = vs
		  var x = getAbsoluteLeft(el) - 298 + "px";
		}else{
		  var x = getAbsoluteLeft(el) + "px";
		  var y = getAbsoluteTop(el) + el.offsetHeight + 2 + "px";
		}
	} else {
		var x = (e.clientX+scroll.left+10) + "px";
		var y = (e.clientY+scroll.top+10) + "px";
	}

	el.UItoolTip.style.zIndex = 10000	
	el.UItoolTip.style.left = x;	
	var browser = UI.getBrowser();
	if(browser.ff){
		el.UItoolTip.style.top =  parseInt(y)-2 + "px";
		el.UItoolTip.style.left =  parseInt(x)-5 + "px";
	}else{
		el.UItoolTip.style.top =  parseInt(y) +1+ "px";
		el.UItoolTip.style.left =  parseInt(x)-22 + "px";
	}
	if(obj.src == "http://imgsrc.search.daum-img.net/dic/2008/btn_help_on.gif"){
		UI.openClose(obj.id);
		obj.src = "http://imgsrc.search.daum-img.net/dic/2008/btn_help.gif";
	}else if(obj.src == "http://imgsrc.search.daum-img.net/dic/2008/btn_help.gif"){
		obj.src = "http://imgsrc.search.daum-img.net/dic/2008/btn_help_on.gif";
	}
};

UI.openClose = function(_id){
	UI.$(_id).src = "http://imgsrc.search.daum-img.net/dic/2008/btn_help.gif";
	UI.deleteElement(UI.$('JESToolTip'));
}