//<![CDATA[

function writeCode(str, id) {
	if(id == undefined)
		document.write(str);	
	else 
		document.getElementById(id).innerHTML = str;
}


	var T42 = window.T42 || {};

		/* ÀÌº¥Æ® °ü·Ã */
		function addEvent(obj, ev, fn) {
			if (navigator.userAgent.indexOf("MSIE") > -1) { // ÆÄÆøÀÌ¸é
				if (ev.substr(0,2) != 'on') ev = 'on' + ev;
				obj.attachEvent(ev,fn);
			} else {
				if (ev.substr(0,2) == 'on') ev = ev.substr(2,(ev.length) - 2);
				obj.addEventListener(ev,fn,true);
			}
		}
	 
		function removeEvent(obj, ev, fn) {
			if (navigator.userAgent.indexOf("MSIE") > -1) { // ÆÄÆøÀÌ¸é
				if (ev.substr(0,2) != 'on') ev = 'on' + ev;
				obj.detachEvent(ev,fn);
			} else {
				if (ev.substr(0,2) == 'on') ev = ev.substr(2,(ev.length) - 2);
				obj.removeEventListener(ev,fn,true);
			}
		}
		function getObj(obj) {
			if (obj.constructor == Array) {
				var temp = new Array();
				for (key in obj) {
					temp[key] = getObj(obj[key]);
				}
				return temp;
			} else if (typeof(obj) == 'object') {
				return obj;
			} else if (typeof(obj) == 'string') {
				return document.getElementById(obj);
			} else {
				return false;
			}
		}

	function getNavigator() {
		switch (navigator.appName) {
			case "Microsoft Internet Explorer": return "IE";
			case "Netscape": return "NN";
			case "Opera": return "OP";
			default: return null;
		}
	}
	 
	/* ÁÂÇ¥ °è»ê */
		T42.Coordination = window.T42.Coordination || {};
		T42.Coordination.object = function() {
			this.x = 0;
			this.y = 0;
		}
		T42.Coordination.create = function() {
			var obj = new T42.Coordination.object();
			return obj;
		}
		T42.Coordination.getAbsPos = function(obj) {
			var offsetCheck = new Array();
			var count = 0;
			var original = obj;
			obj = getObj(obj);
			var x = 0;
			var y = 0;
			while ((obj) && (obj != document.body)) {
				x += obj.offsetLeft;
				y += obj.offsetTop;
				if (obj.clientLeft) x += obj.clientLeft;
				if (obj.clientTop) y += obj.clientTop;
				obj = obj.offsetParent;
	 
				offsetCheck[count++] = obj.offsetParent;
			}
			if ((count > 2) && (offsetCheck[0] == offsetCheck[1])){
				x -= original.offsetLeft;
				y -= original.offsetTop;
			}
	 
			var pos =T42.Coordination.create();
			pos.x = x;
			pos.y = y;
			return pos;
		}
	 
		T42.Coordination.getRelPos = function(obj) {
			obj = getObj(obj);
	 
			var x = 0;
			var y = 0;
			var styleVal = '';
			while ((obj != document)) {
				if (obj.currentStyle) styleVal = obj.currentStyle.position;
				else if (window.getComputedStyle) styleVal = window.getComputedStyle(obj, "").getPropertyValue('position');
				if (styleVal == 'absolute') {
					x += obj.offsetLeft;
					y += obj.offsetTop;
				}
				obj = obj.parentNode;
			}
			var pos =T42.Coordination.create();
			pos.x = x;
			pos.y = y;
			return pos;
		}
	 	T42.FloatStatic = window.T42.FloatStatic || {};
	 
	// ÃÊ±âÈ­
	T42.FloatStatic.floats = window.T42.FloatStatic.floats || new Array();
	 
	/**
	/* addFloat : ÇÃ·ÎÆÃ Ãß°¡
	/* obj : ÇØ´ç ¿ÀºêÁ§Æ® ¶Ç´Â ¿ÀºêÁ§Æ®ÀÇ ID °ª
	/* hstatic : °¡·ÎÀ§Ä¡ °íÁ¤ ¿©ºÎ
	/* vstatic : ¼¼·ÎÀ§Ä¡ °íÁ¤ ¿©ºÎ
	/* hgap : °¡·Î»ó ¿ÞÂÊ ¿©¹é
	/* vgap : ¼¼·Î»ó ¿ÞÂÊ ¿©¹é
	/* activateDelay : ½ºÅ©·ÑÈÄ ¹ÝÀÀ½Ã°£
	/* scrollSpeed : ½ºÅ©·Ñ ¼Óµµ
	*/
	T42.FloatStatic.addFloat = function(obj, hstatic, vstatic, hgap, vgap, activateDelay, scrollSpeed) {
		obj = getObj(obj);
		// ±âº»°ª
		if (hstatic == undefined) hstatic = false;
		if (vstatic == undefined) vstatic = true;
		//if (left == undefined) left = 0;
		//if (top == undefined) top = 0;
		if (hgap == undefined) hgap = 0;
		if (vgap == undefined) vgap = 200;
		if (activateDelay == undefined) activateDelay = 1000;
		if (scrollSpeed == undefined) scrollSpeed = 20;
		// »õ·Î¿î ÇÃ·ÎÆÃ »ý¼º
		T42.FloatStatic.floats[obj.id] = new Array();
		T42.FloatStatic.floats[obj.id]['hstatic'] = hstatic;
		T42.FloatStatic.floats[obj.id]['vstatic'] = vstatic;
		T42.FloatStatic.floats[obj.id]['hgap'] = hgap;
		T42.FloatStatic.floats[obj.id]['vgap'] = vgap;
		T42.FloatStatic.floats[obj.id]['activateDelay'] = activateDelay;
		T42.FloatStatic.floats[obj.id]['scrollSpeed'] = scrollSpeed;
		T42.FloatStatic.floats[obj.id]['timerFn'] = "";
		// ÃÊ±âÀ§Ä¡ ¼³Á¤
		if (!obj.style.left || !obj.style.top) {
			var coord = T42.Coordination.getRelPos(obj);
			var coordParent = T42.Coordination.getRelPos(obj.parentNode);
			if (!obj.style.left) obj.style.left = coord.x - coordParent.x;
			if (!obj.style.top) obj.style.top = coord.y - coordParent.y;
		}
		// ÇÃ·ÎÆÃ ½ÃÀÛ
		T42.FloatStatic.refresh(obj, hstatic, vstatic, hgap, vgap, activateDelay, scrollSpeed);
		addEvent(window,'onscroll',T42.FloatStatic.refreshAll);
	}
	 
	T42.FloatStatic.refresh = function(obj, hstatic, vstatic, hgap, vgap, activateDelay, scrollSpeed) {
		obj = getObj(obj);
		var startPointX, endPointX, startPointY, endPointY, refreshTimer, timerFnStr;
		var reached = true;
	 
		scrollLeft = document.compatMode && document.compatMode != "BackCompat" ? document.documentElement.scrollLeft : document.body.scrollLeft;
		scrollTop = document.compatMode && document.compatMode != "BackCompat" ? document.documentElement.scrollTop : document.body.scrollTop;
	 
		startPointX = parseInt(obj.style.left, 10);
		endPointX = hstatic ? scrollLeft + hgap : startPointX;
		startPointY = parseInt(obj.style.top, 10);
		endPointY = vstatic ? scrollTop + vgap : startPointY;
	 
		refreshTimer = activateDelay;
		timerFnStr = "T42.FloatStatic.refresh('"+obj.id+"',"+(hstatic ? "true" : "false")+","+(vstatic ? "true" : "false")+","+hgap+","+vgap+","+activateDelay+","+scrollSpeed+");";
	 
		if (startPointX != endPointX) {
			scrollAmount = Math.ceil(Math.abs(endPointX - startPointX) / 15);
			obj.style.left = parseInt(obj.style.left, 10) + ((endPointX < startPointX) ? -scrollAmount : scrollAmount);
			refreshTimer = scrollSpeed;
			reached = false;
		}
		if (startPointY != endPointY) {
			scrollAmount = Math.ceil(Math.abs(endPointY - startPointY) / 15);
			obj.style.top = parseInt(obj.style.top, 10) + ((endPointY < startPointY) ? -scrollAmount : scrollAmount);
			refreshTimer = scrollSpeed;
			reached = false;
		}
		if (reached) {
			T42.FloatStatic.floats[obj.id]['timerFn'] = timerFnStr;
			return;
		}
	 
		setTimeout(timerFnStr, refreshTimer);
	}
	 
	T42.FloatStatic.refreshAll = function() {
		for (var key in T42.FloatStatic.floats) {
			var temp = T42.FloatStatic.floats[key]['timerFn'];
			T42.FloatStatic.floats[key]['timerFn'] = "";
			if (temp != "") eval(temp);
		}
	}
