﻿/*************************************************************************
* 함  수  명 : ShowInterface
* 설      명 : 
* [Parameter]
* Name     : 
* 설      명 :
*************************************************************************/
function ShowInterface(viewControlID,hiddenControlID,viewName,width,height,url,scroll,castText,castColumm)
{	
	var valuestring="";																	// initialization Data	
	var XmlData= windowOpenModal(width,height,url,scroll);					// Open Modal  and return to the string XmlData	
	var viewControl=document.getElementById(viewControlID);					// find viewControlID	
	var hiddenControl=document.getElementById(hiddenControlID);			// find hiddenControlID		
	
	if( typeof(castText) == "undefined" || castText	=="")	castText= "N" ;		// initialization Data	Setting
	// 창을 강제 종료 또는 창닫기 버튼 클릭이 아닌경우 
	if( typeof(XmlData) != "undefined" && typeof(XmlData) != undefined )							// insert Xml Data to hiddenControl
	{ 
		if( castText =='N' || castText == 'n')											// type of Text Casting
		{				
			hiddenControl.value=XmlData;											// insert hiddenXml Textbox
  			var XmlDoc = MakeXMLFromString(XmlData);  						// convert the string to an XML object  			
  			var x = XmlDoc.getElementsByTagName("P_DATA");					// get the XML root item  			
			for ( i = 0; i < x.length; i++)												// get data item
			{
				valuestring += deCodeChar(x[i].getElementsByTagName(viewName)[0].childNodes[0].nodeValue)+';' ;
			}			
			viewControl.value=valuestring.substring(0,valuestring.length - 1);	 // display view data			
		}
		else
		{
			
			if(XmlData=="")
			{
			// 데이터 초기화 검사
			 viewControl.value="";
			 return hiddenControl.value="";
			}
			var cols=castColumm.split(',');
			var XmlDoc = MakeXMLFromString(XmlData);  						// convert the string to an XML object  			
  			var x = XmlDoc.getElementsByTagName("P_DATA");					// get the XML root item  			
			for ( i = 0; i < x.length; i++)												// get data item
			{
				valuestring += deCodeChar(x[i].getElementsByTagName(viewName)[0].childNodes[0].nodeValue)+';' ;	// insert display data
				for(j= 0;j<cols.length;j++)
				{
					valuestring += deCodeChar(x[i].getElementsByTagName(cols[j])[0].childNodes[0].nodeValue)+';' ;		//insert hidden data
				}
				
			}			
			var splitString			= valuestring.split(';'); 							//  Split String XmlData
			viewControl.value		= splitString[0];									//	display view data			
			hiddenControl.value	= splitString[1];									//	hidden data 			
			
		}		
	}
	else
	{
		if(viewControl.value =="")
		{
			viewControl.value="";
		}
	}
	/*
		var valuestring="";
	// Open Modal  and return to the string XmlData
	var XmlData= windowOpenModal(width,height,url,scroll);
	// find viewControlID
	var viewControl=document.getElementById(viewControlID);
	// find hiddenControlID
	var hiddenControl=document.getElementById(hiddenControlID);
	// insert Xml Data to hiddenControl
	if(typeof(XmlData) != "undefined")	
	{
		hiddenControl.value=XmlData;
		if (XmlData !='')
		{
  			// convert the string to an XML object
  			var XmlDoc = MakeXMLFromString(XmlData);  	
  			// get the XML root item
  			var x = XmlDoc.getElementsByTagName("P_DATA");      
  			// get data item
			for ( i = 0; i < x.length; i++) 
			{
				valuestring += deCodeChar(x[i].getElementsByTagName(viewName)[0].childNodes[0].nodeValue)+';' ;
			}
			//display view data			
			viewControl.value=valuestring.substring(0,valuestring.length - 1);
		}else
		{
			viewControl.value="";
		}
	}
*/	
}
/*************************************************************************
* 함  수  명 : deCodeCharter
* 설      명 : Xml Data 처리시 오류 문자 복원 함수('&','<','>')
* [Parameter]
* Name     : 
* 설      명 : 
*************************************************************************/
function deCodeChar(Text)
{
	var Text=Text.replace("/u0026","\u0026");
	var Text=Text.replace("/uu003c","\u003c");
	var Text=Text.replace("/u003e","\u003e");
	return Text	
}
/*************************************************************************
* 함  수  명 : MakeXMLFromString
* 설      명 : XMLDOM 객체를 생성합니다.
* [Parameter]
* Name     : string
* 설      명 : Xml Data
*************************************************************************/
function MakeXMLFromString(string) 
{
   var xmlDocument;
   var xmlParser;
   if(window.ActiveXObject){   //IE일 경우 
      xmlDocument = new ActiveXObject('Microsoft.XMLDOM');
      xmlDocument.async = false;
      xmlDocument.loadXML(string);
   } else if (window.XMLHttpRequest) {   //Firefox, Netscape일 경우
      xmlParser = new DOMParser();
      xmlDocument = xmlParser.parseFromString(string, 'text/xml');
   } else {
      return null;
   }
   return xmlDocument;
}
/*************************************************************************
* 함  수  명 : ConvertXmlData
* 설      명 : XML Data에서 해당 컬럼 값을 추출하여 구분자를 추가하여 반환하는 함수
* [Parameter]
* Name     : XmlDataControlID,separate,columns
* 설      명 : 
				1. XML Data를 저장하는 컨트롤ID
				2. 구분자(',' , ';' )
				3. 가져올 컬럼 ex) 'V_CODE,VSL_CODE' 2개의 컬럼의 정보를 가져온다.
*************************************************************************/
function ConvertXmlData( XmlDataControlID,separate,columns)
{
	var valuestring="";
	var XmlData =document.getElementById(XmlDataControlID);
	var xmlstring = XmlData.value;
	var splitString=columns.split(','); 
	// 분리자가 정의 되지 않을시
	if(typeof(separate) == "undefined") 
	{
		var separate =';';
	}
		
	if(xmlstring.length !=0)
	{	// convert the string to an XML object
		var xmldoc = MakeXMLFromString(xmlstring);	
		// get the XML root item		
		var x = xmldoc.getElementsByTagName("P_DATA");
		// get data item		
		for ( i = 0; i < x.length; i++) 
		{	
			for(k=0; k<splitString.length;k++)
			{	
				valuestring += deCodeChar(x[i].getElementsByTagName(splitString[k])[0].childNodes[0].nodeValue) + separate ;				
			}
		}
		//return valuestring.substring(0,valuestring.lastIndexOf(separate));		
		return valuestring
	}
	else
	{
		return valuestring="";
	}	
}
