//################################################################################
// Static Function
//################################################################################
function _(l_sVal)
{
	document.write(l_sVal);
}
function _Set(l_sDiv,l_iX,l_iY,l_bShow,l_bAbsolute,l_sData)
{
	var oDiv = _getRoot().getElementById(l_sDiv);
	oDiv.style.position = (l_bAbsolute) ? "absolute" : "relative";
	if(l_bAbsolute)
	{
		oDiv.style.left = l_iX;
		oDiv.style.top = l_iY;
	}
	oDiv.style.display = (l_bShow) ? "block" : "none";
	oDiv.innerHTML = l_sData;
}
function _GetDiv(l_sDiv)
{
	var oSch = new _SearchTag();
	oSch.FindTag(document,"div");
	return oSch.FindID(l_sDiv);
}
function _GetDivFromDiv(l_oDiv)
{
	var oSearch = new _SearchTag();
	oSearch.FindDiv(l_oDiv);
	return oSearch.aData;
}
function _SetF(l_oObj,l_sVal)
{
	l_oObj.value = l_sVal;
}
function _GetF(l_oObj)
{
	return l_oObj.value;
}
function _Implement(l_sObject)
{
	return eval("new " + l_sObject + "()");
}
function _getHtmlTable(l_sData)
{
	return; 
}
function _getTagString(l_sTag,l_sData)
{
	return "<" + l_sTag + ">" + l_sData + "</" + l_sTag + ">";
}
function _getTagAttrString(l_sTag,l_sData,l_aAttr,l_aStyle)
{
	sAttr = "";
	for (var i=0; i < l_aAttr.length ;i++ )
	{
		oBit = l_aAttr[i];
		sAttr = sAttr + " " + oBit.Name + "='" + oBit.Value + "' ";
	}
	return "<" + l_sTag + sAttr + _getTagStyleString(l_aStyle) + ">" + l_sData + "</" + l_sTag + ">";
}

function _getSingleTagAttrString(l_sTag,l_aAttr,l_aStyle)
{
	sAttr = "";
	for (var i=0; i < l_aAttr.length ;i++ )
	{
		oBit = l_aAttr[i];
		sAttr = sAttr + " " + oBit.Name + "='" + oBit.Value + "' ";
	}
	return "<" + l_sTag + sAttr + _getTagStyleString(l_aStyle) + "/>";
}

function _getTagStyleString(l_aStyle)
{
	var sStyle = "";
	if(l_aStyle.length == 0) return sStyle;
	sStyle = " style='";
	for (var i=0; i < l_aStyle.length ;i++ )
	{
		oBit = l_aStyle[i];
		if(i == l_aStyle.length-1)
		{
			sStyle = sStyle + oBit.Name + ":" + oBit.Value;
		}
		else
		{
			sStyle = sStyle + oBit.Name + ":" + oBit.Value + "; ";
		}
	}
	sStyle = sStyle + "' ";
	return sStyle;
}


//=========================================
// DOM Function
//=========================================
function _createElement(l_sObj)
{
	return document.createElement(l_sObj);
}
function _getElement(l_sObj)
{
	return document.getElementsByTagName(l_sObj);
}
function _getElementByID(l_sObj)
{
	return document.getElementById(l_sObj);
}
function _getRoot()
{
	return document;
}


//=========================================
// Math Function
//=========================================

function _Max(l_iX,l_iY)
{
	if(l_iX > l_iY) return l_iX;
	else return l_iY;
}

//=========================================
// Binding Function
//=========================================

function _SearchTag()
{
	this.Length = -1;
	this.aData = new Array();
}

_SearchTag.prototype.FindDiv = function(l_oNode)
{
	var oNode = l_oNode.childNodes;
	if(oNode == null) return;
	for(var i=0 ; i < oNode.length; i++)
	{
		var sNode = oNode[i].nodeName;
		if(sNode.toLowerCase() == "div")
		{
			this.AddE(oNode[i]);
		}
		this.FindDiv(oNode[i]);
	}
}

_SearchTag.prototype.FindPDiv = function(l_oNode)
{
	var oNode = l_oNode.childNodes;
	if(oNode == null) return;
	for(var i=0 ; i < oNode.length; i++)
	{
		var sNode = oNode[i].nodeName;
		if(sNode.toLowerCase() == "div")
		{
			this.AddE(oNode[i].parentNode);
		}
		this.FindDiv(oNode[i]);
	}
}

_SearchTag.prototype.FindTag = function(l_oNode,l_sTag)
{
	var oNode = l_oNode.childNodes;
	if(oNode == null) return;
	for(var i=0 ; i < oNode.length; i++)
	{
		var sNode = oNode[i].nodeName;
		if(sNode.toLowerCase() == l_sTag)
		{
			this.AddE(oNode[i]);
		}
		this.FindTag(oNode[i],l_sTag);
	}
}

_SearchTag.prototype.FindID = function(l_sID)
{
	var oRtn = null;
	if(this.Length < 0) return oRtn;
	for(var i=0 ; i < this.aData.length; i++)
	{
		var oNode = this.aData[i];
		if(oNode.id == l_sID)
		{
			oRtn = oNode;
			break;
		}
	}
	return oRtn;
}


_SearchTag.prototype.FindLastNode = function(l_oNode)
{
	var oNode = l_oNode.childNodes;
	if(l_oNode != null && oNode == null)
	{
		this.AddE(new _Tag(l_oNode.nodeName));
		return;
	}
	for(var i=0 ; i < oNode.length; i++)
	{
		var oN = oNode[i].childNodes;
		if(oN == null) this.AddE(new _Tag(oNode[i].nodeName));
		this.FindLastNode(oNode[i]);
	}
}


_SearchTag.prototype.AddE = function(l_oElm)
{
	this.Length++;
	this.aData.push(l_oElm);
}

function _Bind(l_sDiv,l_sRow,l_sData,IsBind)
{
	var oList = _getXmlToGrid(l_sData);
	var sData = "";
	var aData = new Array();

	//var oD = new Div(l_sDiv);
	//var oDiv = oD._This;

	var oDiv = _getElementByID(l_sDiv);
	var oN1 = _getElementByID(l_sRow);

	//oDiv.removeNode(oN1);
	/*------------------------------
	Á÷Á¢ Ã£À» °æ¿ì
	--------------------------------
	var oSch = new _SearchTag();
	oSch.FindTag(document,"div");
	var oNode = oSch.FindID(l_sDiv);
	*/

	for (var i=0 ; i <= oList.MaxRow ; i++ )
	{
		//var oNode = _createElement(oN1.nodeName);
		//oNode.innerHTML = oN1.innerHTML;
		//alert('Node Clone = ' + oN1.innerHTML);
		
		var oNode = oN1.cloneNode(true);
		//alert('Node Clone = ' + oNode.innerHTML);

		var oSearch = new _SearchTag();
		oSearch.FindDiv(oNode);
		var aNode = oSearch.aData;

		for (var j=0 ; j < aNode.length ; j++ )
		{
			var sD = oList.Get(j,i);
			//var oP = aNode[j].parentNode;
			//if(oP != null) oP.innerHTML = sD;
			//******************************************************************
			// Div °¡ ¼ÓÇÑ  ÅÂ±×´Â »ç¶óÁö°í Div°¡ ±× ÅÂ±×ÀÇ À§Ä¡¸¦ ¸Ô´Â´Ù.
			// ±×·¯¹Ç·Î ²À nodeÀÇ Å¬·ÐÀ» »ç¿ëÇØ¾ß ÇÔ
			//******************************************************************
			//alert(aNode[j].nodeName);
			//alert(aNode[j].parentNode.nodeName);
			aNode[j].innerHTML = sD;
			//alert(aNode[j].nodeName + aNode[j].id + aNode[j].innerHTML);
		}
		//sData = sData + oDiv.Get();
		
		//sData = sData + '<' + oNode.nodeName + '>' + oNode.innerHTML + '</' + oNode.nodeName + '>';
		//sData = sData + '<Div>' + oNode.innerHTML + '</Div>';
		//sData = sData + oNode.innerHTML;
		//var oTN = _createElement(oNode.nodeName);
		//oTN.innerHTML = oNode.innerHTML;
		//aData.push(oTN);
		//alert('Result = ' + oNode.innerHTML);
		//oCN = _createElement(oNode.nodeName);
		
		aData.push(oNode);
		//alert('Add Node Value=' + oNode.innerHTML);
		//sData = sData + _getTagString(oNode.nodeName,oNode.innerHTML);
		//oDiv.appendChild(oNode);
		//var oTr = _createElement(oNode.nodeName);
		//oTr.innerHTML = oNode.innerHTML;
		//oDiv.appendChilds(oTr);
	}
	
	if(IsBind)
	{
		//alert(sData);
		//var oN = _createElement(oNode.nodeName);
		//oN.innerHTML = sData;
		//oN.style.display = 'block';

		//*************************************************************
		// RemoveNode ¸Þ¼­µå¿¡ ´ëÇÑ »ç¿ë¹ýÀ» Àß¾Ë°í »ç¿ëÇØ¾ßÇÔ
		//*************************************************************
		//oDiv.removeNode(oN1);
		//oDiv.innerHTML = '';

		oN1.removeNode(oDiv);

		for (var i=0; i < aData.length ; i++ )
		{
			oDiv.appendChild(aData[i]);
		}

		/*
		var sDiv = "";

		for (var i=0; i < aData.length ;i++ )
		{
			sDiv = sDiv + aData[i].innerHTML;
			alert(sDiv);
		}

		oDiv.innerHTML = sDiv;
		*/
		
		/*
		var oDN = _createElement('Div');
		for (var i=0; i < aData.length ;i++ )
		{
			oDN.appendChild(aData[i]);
		}
		
		oDiv.appendChild(oDN);
		*/

		//oDiv.replaceNode(oN1,oN);
		//alert('Child = ' + oN.innerHTML);
		//oDiv.removeNode(oNode);
		//oDiv.appendChild(oN);
		//oDiv.innerHTML = oN.innerHTML;
		//oDiv.appendChild(oN);
		//oDiv.appendChild(oN);
		//alert(oDiv.innerHTML);
		//oNode.appendChild(oN);
		//oDiv.Set(sData);
		//oDiv.setVisible(true);
		//oNode.innerHTML = sData;
		//oDiv.setVisible(true);
	}

	return oDiv.innerHTML;
}


//=========================================
// mouse cursor type
//=========================================
function _SetMouseCursor(l_iType)
{
	switch(l_iType)
	{
		case 1 :
			document.body.style.cursor = 'default';
			break;
		case 2 :
			document.body.style.cursor = 'default'; //¿ø·¡´Â hand
			break;
		case 3 :
			document.body.style.cursor = 'auto'; 
			break;
		case 4 :
			document.body.style.cursor = 'wait'; 
			break;
		case 5 :
			document.body.style.cursor = 'crosshair'; 
			break;
		case 6 :
			document.body.style.cursor = 'help';   
			break;
		default :
			document.body.style.cursor = 'default';
			break;
	}
}

