
function SDE_WebService(sURL, sFunctionName, onResultCallback)
{
 this.url  = sURL;
 this.functionName= sFunctionName;
 this.namespace = "http://downloadcenter.samsung.com/webservice/";
 this.paramsName = new Array();
 this.paramsName[0] = "siteCode";
 this.paramsName[1] = "modelName";
 this.paramsName[2] = "onlyDownloadFileTypeSelect";
 this.Invoke  = SDE_callWebService;
 this.ParseMessage = SDE_parseOutputArray;
 this.onResult = onResultCallback;
}
 
function SDE_callWebService(params)
{
 if (this.url == "") return "WebService URLÀ» ¼³Á¤ÇÏ¿© ÁÖ½Ê½Ã¿À.";
 if (typeof(params) != "object") return "ÀÔ·ÂÀº ArrayÇü½ÄÀ¸·Î ÇØÁÖ½Ê½Ã¿À.\nÇöÀçÀÇ input type : "+typeof(params);
 if (typeof(this.functionName)=="undefined") return "WebServiceÇÔ¼ö¸íÀ» ¼³Á¤ÇÏ¿© ÁÖ½Ê½Ã¿À.";
 
 var soapMsg = SDE_createSOAPMessage(this.url, this.namespace, this.functionName, this.paramsName, params);
 var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
 
 xmlhttp.open("POST", this.url, true);
 xmlhttp.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
 xmlhttp.setRequestHeader("Cache-Control","no-cache");
 xmlhttp.setRequestHeader("SOAPAction",this.namespace + this.functionName);
 xmlhttp.onreadystatechange = onReadyStateChange;
 onReadyStateChange.xmlhttp = xmlhttp;
 onReadyStateChange.functionName = this.functionName;
 xmlhttp.send(soapMsg);
}

function onReadyStateChange()
{
	if ( onReadyStateChange.xmlhttp.readyState == 4 )
	{
		var objDoc = onReadyStateChange.xmlhttp.responseXML;
		var arrOutput = SDE_parseOutputArray(objDoc, onReadyStateChange.functionName);
		this.onResult( arrOutput );
	}
}
 
function SDE_createSOAPMessage(sURL, sNamespace, sFunctionName, sInputParamsName, oArrParams)
{
 var msg;
 var i ;
 msg = "<?xml version='1.0' encoding='utf-8'?>\n";
 msg += "<soap:Envelope xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/'>\n";
 msg += "  <soap:Body>\n";
 msg += "    <"+sFunctionName+" xmlns='"+sNamespace+"'>\n";
 for (var i = 0 ; i < oArrParams.length; i++)
 {
  msg += "<"+sInputParamsName[i]+">";
  msg += oArrParams[i];
 msg += "</"+sInputParamsName[i]+">\n";
 }
 msg += "    </"+sFunctionName+">\n";
 msg += "  </soap:Body>\n";
 msg += "</soap:Envelope>\n";
 return msg;
}
 
function SDE_parseOutputArray(oDOM, sFunctionName)
{
 var oResult = oDOM.getElementsByTagName(sFunctionName+"Result");
 if (oResult.item(0)) oResult = oResult.item(0);
 else return "ÇØ´çÇÏ´Â Element¸¦ Ã£À» ¼ö°¡ ¾ø½À´Ï´Ù.\n Element¸í : "+sFunctionName+"Result" ;

return oResult;
}
