var req = null;
var pageGubun = "";

function GetXmlHttpObject()
{
	var xRequest = null;

	if (window.XMLHttpRequest)
	{
		// Create XMLHttpRequest object in non-Microsoft browsers
		// Mozilla, FireFox, Opera, Safari, Konqueror3
		xRequest = new XMLHttpRequest();

		// ¼­¹öÀÇ ÀÀ´ä¿¡ XML mime-type Çì´õ°¡ ¾øÀ» °æ¿ì
		// Mozilla °è¿­ÀÇ ÀÏºÎ ºê¶ó¿ìÀú´Â ¹öÀü¿¡ µû¶ó Àß µ¿ÀÛÇÏÁö ¾ÊÀ½
		if (xRequest.overrideMimeType)
		{
			xRequest.overrideMimeType("text/xml");
		}
	}
	else if(window.ActiveXObject)
	{
		// Create XMLHttpRequest via MS ActiveX
		try 
		{
			// Try to create XMLHttpRequest in later versions of Internet Explorer (IE6)
			xRequest = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch(e)
		{
			// Failed to create required ActiveXObject
			// Try version supported by older versions of Internet Explorer (IE4. IE5)
			xRequest = new ActiveXObject("Microsoft.XMLHTTP");
		}
	}

	return xRequest;
}

function sendRequest(url, params, HttpMethod, pGb)
{
	// Microsoft.XMLHTTP´Â POST¹æ½ÄÀ» Áö¿ø ¸øÇÏ°í ÀÖ´Ù. ¹ö±×ÀÎ°¡?
	if (!HttpMethod)
	{
		HttpMethod = "GET";
	}

	req = GetXmlHttpObject();
	pageGubun = pGb;
	
	//alert(url + "\n\n" + params + "\n\n" + HttpMethod + "\n\n" + pGb + "\n\n")
	
	if (req)
	{
		// ÀÚ¹Ù½ºÅ©¸³Æ® ÄÝ¹éÇÔ¼ö(function pointer)¸¦ ÀúÀåÇÑ´Ù.
		// ÄÝ¹éÇÔ¼ö´Â readyState °ªÀÌ º¯ÇÒ¶§ ¸¶´Ù È£ÃâµÈ´Ù.
		// ¿äÃ»ÀÌ ¼­¹ö·Î º¸³»Áö¸é readyState ´Â 5°¡Áö ¼ýÀÚ°ªÀ¸·Î °è¼Ó º¯È­°¡ ÀÏ¾î³ª°Ô µÈ´Ù.	
		// window.XMLHttpRequest¸¦ Á¶°Ç¹®¿¡ ÁÖÁö ¾Ê°í !window.ActiveXObject ÁØÀÌÀ¯´Â IE7.0À» À§ÇØ
		// ¶ÇÇÏ³ªÀÇ ¹æ¹ýÀº window.opera || safari || mozes¸¦ »ç¿ëÇÏ´Â ¹æ¹ýÀÌ³ª, firefox´Â ÇØ´ç ¸Þ¼Òµå°¡ Á¸ÀçÇÏÁö ¾ÊÀ½	
		// XMLHttpRequest¿¡¼­ µ¿±âÀû È£ÃâÀ» »ç¿ëÇÒ¶§ onreadystatechange ÀÌº¥Æ®¸¦ ¹ß»ýÇÏÁö ¾ÊÀ½
		// µû¶ó¼­ onload ÀÌº¥Æ®¸¦ »ç¿ëÇÏ¿© ÀÀ´ä µ¥ÀÌÅÍ¸¦  ´Ù ÀÐ¾î µé¿´À»¶§ Ã³¸®ÇÏ´Â ¹æ¹ýÀ» »ç¿ëÇÒ°Í - ´Ü, IE´Â Á¦¿Ü

		if (!window.ActiveXObject)
		{ 	
			req.onreadystatechange = function()
			{
				callbackFunction();
			}
		}
		else
		{ 
			req.onreadystatechange = callbackFunction;
		}

		// method - 'POST', 'GET' Áß ÇÏ³ª¸¦ »ç¿ë (ÇÊ¼ö)
		// url - ¿äÃ» ¼­¹öÀÇ url (ÇÊ¼ö)
		// async - true (default), false ¼³Á¤(sync)½Ã ¼­¹ö ÀÀ´ä±îÁö ´ë±â
		req.open(HttpMethod, url, true);	
		//HttpRequest Çì´õ¿¡ value¸¦ ¼³Á¤ÇÏ´Â ¸Þ¼Òµå		 
		//req.setRequestHeader("Accept-Language","ko");
		//req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=euc-kr");
		req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");
		//req.setRequestHeader("Content-Length", params.length);
		req.send(params);
	}
	
	// loadingImageView();
}

function callbackFunction()
{
	/*
	------------------------------------------------
	[readyState]
   0	(UNINITIALIZED)	open()À» È£ÃâÇÏ±â Àü		: ¿äÃ»ÀÌ ÃÊ±âÈ­ µÇÁö ¾Ê´Â´Ù.
   1	(LOADING)			send()¸¦ È£ÃâÇÏ±â Àü		: ¿äÃ»Àº ¼³Á¤Àº µÇÁö¸¸ º¸³»ÁöÁö ¾Ê´Â´Ù.
   2	(LOADED)				¿äÃ»ÀÌ º¸³»Áö°í Ã³¸® Áß	: ÀÌ ½ÃÁ¡¿¡¼­ ÀÀ´ä¿¡¼­ ÄÜÅÙÆ® Çì´õ¸¦ ¾òÀ» ¼ö ÀÖ´Ù.
   3	(INTERACTIVE)		¿äÃ» Ã³¸® Áß				: ºÎºÐÀûÀÎ µ¥ÀÌÅÍ¸¦ ÀÀ´ä¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖÁö¸¸ ¼­¹ö´Â ÀÌ ÀÀ´äÀ¸·Î´Â Á¾·áµÇÁö ¾Ê´Â´Ù.
   4	(COMPLETE)			ÀÀ´ä ¿Ï·á					: ¼­¹öÀÇ ÀÀ´äÀ» ¹Þ°í ÀÌ¸¦ »ç¿ëÇÑ´Ù.
	------------------------------------------------
	*/
	
	if (req.readyState == 4)
	{
		/*
		------------------------------------------------
		[status : HTTP »óÅÂÄÚµå]
		200 : Everything is OK
		202 : °á°ú °ªÀÌ ¾øÀ» ¶§
		301 : Moved permanently
		302 : Found (¿äÃ»ÀÌ ¶Ç ´Ù¸¥ URL/URI·Î ¸®´ÙÀÌ·º¼Ç µÈ´Ù.)
		305 : Use Proxy (¿äÃ»Àº ÇÁ·Ï½Ã¸¦ »ç¿ëÇÏ¿© ¿äÃ» ¹ÞÀº ¸®¼Ò½º¿¡ ¾×¼¼½º ÇØ¾ß ÇÑ´Ù.)
		401 : Unauthorized
		403 : Forbidden
		404 : Not Found
		500 : Internal Server Error
		------------------------------------------------
		*/

		if(req.status == 200 && req.statusText == 'OK')
		{
			/*
			------------------------------------------------
			// Å¬¶óÀÌ¾ðÆ®¿ë(ºê¶ó¿ìÀú) DOM °´Ã¼¸¦ »ý¼º
			// ÇÊ¿äÇÒ ¶§ »ç¿ëÇØ¾ß ÇÒ µí...
			// responseXML °´Ã¼ ÀÎ½ÄÀÌ ¾ÈµÇ´Â °æ¿ìµµ ÀÖÀ½.
			------------------------------------------------
			// var xmlDom = null;
			// xmlDom = new ActiveXObject("Microsoft.XMLDOM");
			// xmlDom.load(req.responseText);
			// if(xmlDom.parseError == 0)
			// {
			//		SetClientNodeDataView(xmlDom);
			// }
			// xmlDom = new ActiveXObject("Microsoft.XMLDOM");
			// xmlDom.load("http://localhost/DangCommon/XMLFile1.xml");
			------------------------------------------------
			*/

			// responseText - ¼­¹öÀÇ ÀÀ´äÀ» ÅØ½ºÆ® ¹®ÀÚ¿­·Î ¹ÝÈ¯ÇÔ.
			// responseXML - XMLDocument °´Ã¼·Î ¹ÝÈ¯ÇÏ¸ç ÀÚ¹Ù½ºÅ©¸³Æ®ÀÇ DOM ÇÔ¼öµéÀ» ÅëÇØ ÀÌ °´Ã¼¸¦ ´Ù·ê ¼ö ÀÖÀ½.
			// responseBody
			// alert(req.responseText);
			if(req.responseXML != null && req.responseXML.documentElement != null && req.responseXML.documentElement.nodeName != "parsererror")
			{
				/*
				------------------------------------------------
				// DataSetÀ¸·Î ÀÐ¾î µéÀÎ °ªÀ» .GetXml() Ãâ·ÂÇÏ¸é
				// XML ±¸Á¶·Î ÀÚµ¿ º¯°æµÊ.
				// ÀÌ¶§ Default°ª ElementsÀÇ TagNameÀÌ "Table" µÇ¾î ÀÖÀ½.
				// ±×·¡¼­, getElementsByTagName("Table")·Î ±¸Á¤ ½ÃÅ´.
				//
				// (¿¹) 
				// SetClientNodeDataView Method´Â ½ÇÁ¦ Ãâ·ÂÇÏ°íÀÚ
				// ÇÏ´Â ÆäÀÌÁö¿¡¼­ ÀÛ¼º ÇÑ´Ù.
				------------------------------------------------
				*/
				
				loadingImageClear();
	
				if(pageGubun == "MainCenterInfo")
				{
					// ¸¶´ç³ª´®ÅÍ
					SetClientNodeDataView(req.responseXML.getElementsByTagName("Table"));
				}
				else if(pageGubun == "SearchDangWords")
				{
					// ´ç´¢ ¿ë¾î »çÀü
					SetDangWordsAutoTxt(req.responseXML.getElementsByTagName("Table"));
				}
				else if(pageGubun == "MainCenterLiveOn")
				{
					// ½Ç½Ã°£ º¸±â
					SetMainCenterLiveOnView(req.responseXML.getElementsByTagName("Table"));
				}
				else if (pageGubun == "LiveMemberStatus")
				{
				   //¸ÞÀÎ ½Ç½Ã°£ °¡Á· ÇöÈ² º¸±â 
				   SetClientNodeDataView(req.responseXML.getElementsByTagName("Table"));
				}
				else if(pageGubun == "SetWebPart")	
				{
					// À¥ÆÄÆ® ÀúÀå
					//alert(req.responseXML.getElementsByTagName("Table"));
				}
				//else if(pageGubun == "*****")					// ±âÅ¸ µîµî...
			}
		}
		else
		{
			// ¿ä±¸¸¦ Ã³¸®ÇÏ´Â °úÁ¤¿¡¼­ ¹®Á¦°¡ ¹ß»ýµÇ¾úÀ½.
			alert("¼­¹ö·ÎºÎÅÍ µ¥ÀÌÅÍ¸¦ °¡Á®¿Ã ¼ö ¾ø½À´Ï´Ù.");
		}
	}
	else
	{	
		loadingImageView();
	}
}

function GetInnerText(node)
{
	 return (node.textContent || node.innerText || node.text || node.nodeValue) ;
}

function loadingImageView()
{
	var top = 0;
	var left = 0;
	
	if(pageGubun == "MainCenterInfo")			// ¸¶´ç³ª´®ÅÍ
	{
		top = 40;
		left = 300;
	}
	else if(pageGubun == "SearchDangWords")	// ´ç´¢ ¿ë¾î »çÀü
	{
		//
	}
	else if(pageGubun == "MainCenterLiveOn")	// ½Ç½Ã°£ º¸±â
	{
		top = 180;
		left = 55;
	}

	try {
		var obj = document.getElementById("divAjaxStatus");
		obj.style.posTop  = top;
		obj.style.posLeft = left;
		obj.style.display = 'inline';
	}
	catch(e) { }
	finally { }
}

function loadingImageClear()
{
	try {
		var obj = document.getElementById("divAjaxStatus");
		obj.style.display = 'none';
	}
	catch(e) { }
	finally { }
}

function tableDeleteRow(tbl)
{
	var cntLoop = tbl.rows.length;
	
	if(cntLoop > 0)
	{
		for(var j=cntLoop-1; j>-1; j--)
		{
			tbl.deleteRow(j);
		}
	}
}




// ============================================================
// S:Ajax Suggest TextBox Function
// ============================================================
var retItemsCnt = 0;	// Return µÈ Items Count
var selTblRow = 0;		// Å°º¸µå ÀÌµ¿ ÀÌº¥Æ®

function showByObjID(o)
{
	document.getElementById(o).style.display = "inline";
	//document.getElementById(o).focus();
	//document.getElementById("tblAjaxDangWords").focus();	
}

function hideByObjID(o)
{
	document.getElementById(o).style.display = "none";	
}

function showByObjName(o)
{
	document.getElementsByName(o).style.display = "inline";	
}

function hideByObjName(o)
{
	document.getElementsByName(o).style.display = "none";	
}

function mouseOverBgChange()
{
	this.style.backgroundColor = "#dddddd";
}

function mouseOutBgChange()
{
	this.style.backgroundColor = "#ffffff";
}

function keyEventBgChange(oTr, oid, nid)
{
	if(oid != 0) document.getElementById(oTr + oid).style.backgroundColor = "#ffffff";
	
	if(nid != 0) document.getElementById(oTr + nid).style.backgroundColor = "#dddddd";
}

function checkKeyEvent(oTr)
{
	if(retItemsCnt > 0)
	{	
		var kCodeVal = event.keyCode;
		
		// ------------------------------------------------
		// 38 : ¹æÇâÅ° À§·Î,   40 : ¹æÇâÅ° ¾Æ·¡·Î
		// ------------------------------------------------
		if(kCodeVal == 38 && selTblRow == 0)
		{			
			return;
		}
		else if(kCodeVal == 38)
		{
			olDVal = selTblRow;
			nIDVal = selTblRow - 1;
			selTblRow = nIDVal;
			keyEventBgChange(oTr, olDVal, nIDVal);			
		}
		else if(kCodeVal == 40 && selTblRow == retItemsCnt)
		{
			return;
		}
		else if(kCodeVal == 40)
		{
			olDVal = selTblRow;
			nIDVal = selTblRow + 1;
			selTblRow = nIDVal;
			keyEventBgChange(oTr, olDVal, nIDVal);
		}
	}
}

//function checkEnterEvent(oTd, tObj, hObj, rPath)
function checkEnterEvent(oTd, tObj, hObj)
{
	if(selTblRow == 0) return;
	
	var objVal = "";
	var obj = document.getElementById(oTd + selTblRow);
	var oItem = obj.children;

	if (oItem!=null) 
	{
		objVal = oItem.item(0).innerText
		document.getElementById(tObj).value = objVal;
		hideByObjID(hObj);
	}	
		
	return objVal;
}
// ============================================================
// E:Ajax Suggest TextBox Function
// ============================================================



