xmlParserObject = function()
{
	this.xmlDOC = null;
}

function NodeValue(pNode, strTagName)
{
	try{
		var strValue = pNode.getElementsByTagName(strTagName)[0].firstChild.nodeValue;
		strValue = strValue.replace(/&amp;/, "&");
		
		if(strValue == null || strValue == "null")
		{
			strValue = "";
		}
		return strValue;
	}catch(e){
		return "";
	}
}

//xml°´Ã¼¸¦ »ý¼º ¹× XML¸¦ ·Îµù
xmlParserObject.prototype.loadXML = function(xml)
{
	 if(this.xmlDOC == null)
	 {
	 	this.xmlDOC = new ActiveXObject("Microsoft.XMLDOM");	 
	 }
	 try{
		 this.xmlDOC.loadXML(xml);
	 }catch(e){
	 	alert("XML¸¦ ·ÎµùÁß ½ÇÆÐÇß½À´Ï´Ù.");
	 }	 
}

//xml¸¦ ¹®ÀÚ·Î ¹ÝÈ¯
xmlParserObject.prototype.getXML = function()
{
	if(this.xmlDOC != null)
    {	
		return this.xmlDOC.xml;
	}else{
		return null;
	}
}

//root·Îµå¸¦ ³ëµåÀÌ¸§À» °¡Á®¿È
xmlParserObject.prototype.getRootNodeName = function()
{
	try{
		return this.xmlDOC.childNodes.item(1).nodeName;
	}catch(e){
		return null;
	}
}

//NodeÀÌ¸§¿¡ ÇØ´çÇÏ´Â RECORDÀÇ ¼ö¸¦ ¹ÝÈ¯
xmlParserObject.prototype.getRecordCount = function(pNodeName)
{
	try{
		var pList = this.xmlDOC.getElementsByTagName(pNodeName);
		var pChildList = pList.item(0).getElementsByTagName("RECORD");	
		return pChildList.length;
	}catch(e){
		return 0;
	}		
}

//NodeÀÌ¸§¿¡ ÇØ´çÇÏ´Â RECORD¾ÈÀÇ ÇÊµå¸íÀÇ °ªÀ» ¹ÝÈ¯
xmlParserObject.prototype.getRecordValue = function(pNodeName, idx, field)
{
	try{
		var pList = this.xmlDOC.getElementsByTagName(pNodeName);
		var pChildList = pList.item(0).getElementsByTagName("RECORD");	
	
		return NodeValue(pChildList.item(idx), field);
	}catch(e){
		return null;
	}
}

//Æû¿¡ µ¥ÀÌÅ¸¼Â ÀÚ·á¸¦ Ç¥½Ã
function XmlToFormValue(form, xmlObj, node, progcode)
{
	if(xmlObj.getRecordCount(node) > 0)	
	{
		for(var i = 0; i < form.elements.length; i++)
		{
			var eleName = form.elements[i].name;
			if(eleName.substr(0, 2).toUpperCase() == "M_")	
			{
				try{
					form.elements[i].value = xmlObj.getRecordValue(node, 0, eleName);					
				}catch(e){}
				
				try{	
					//alert(eleName + "_" + progcode);
					dojo.widget.byId(eleName + "_" + progcode).setValue(xmlObj.getRecordValue(node, 0, eleName));
				}catch(e){}
				
				try{					
					if(form.elements[i].DispFormat == "CURRENCY")
					{
						form.elements[i].value = commaSplit(parseFloat(form.elements[i].value), false);
					}else if(form.elements[i].DispFormat == "NUMBER")
					{
						form.elements[i].value = parseFloat(form.elements[i].value);
					}					
				}catch(e){}
				
				
					
				if(form.elements[i].value == "NaN")
				{
					form.elements[i].value = "";
				}
			}
		}
	}		
}


//Æû¿¡ µ¥ÀÌÅ¸¼Â ÀÚ·á¸¦ Ç¥½Ã
function XmlToFormValue(form, xmlObj, node, progcode, decode)
{
	if(xmlObj.getRecordCount(node) > 0)	
	{
		for(var i = 0; i < form.elements.length; i++)
		{
			var eleName = form.elements[i].name;
			if(eleName.substr(0, 2).toUpperCase() == "M_")	
			{
				try{
					if(decode)
					{
						form.elements[i].value = decodeURL(xmlObj.getRecordValue(node, 0, eleName));	
					}else{
						form.elements[i].value = xmlObj.getRecordValue(node, 0, eleName);	
					}				
				}catch(e){}
				
				try{	
					//alert(eleName + "_" + progcode);
					dojo.widget.byId(eleName + "_" + progcode).setValue(xmlObj.getRecordValue(node, 0, eleName));
				}catch(e){}
				
				try{					
					if(form.elements[i].DispFormat == "CURRENCY")
					{
						form.elements[i].value = commaSplit(parseFloat(form.elements[i].value), false);
					}else if(form.elements[i].DispFormat == "NUMBER")
					{
						form.elements[i].value = parseFloat(form.elements[i].value);
					}					
				}catch(e){}
				
				
					
				if(form.elements[i].value == "NaN")
				{
					form.elements[i].value = "";
				}
			}
		}
	}		
}

//Æû°ªÀ» ÀúÀåÇÏ±â Àü Ã³¸®
function FormPostFilter(form)
{
	for(var i = 0; i < form.elements.length; i++)
	{
		var eleName = form.elements[i].name;
		if(eleName.substr(0, 2).toUpperCase() == "M_")	
		{
		   try{
				form.elements[i].setDisable(false);
			}catch(e){
				try{
					form.elements[i].disabled = false;
				}catch(e){}
			}
			
			try{					
				if(form.elements[i].DispFormat == "CURRENCY")
				{
					form.elements[i].value = EditFilterNum(form.elements[i].value);
				}else if(form.elements[i].DispFormat == "NUMBER")
				{
					form.elements[i].value = EditFilterNum(form.elements[i].value);
				}
			}catch(e){}
		}
	}	
	return form;	
}