﻿// JScript File
var strE_0000_99 = "9999";

function sendData(psCallBack, psFile, pbASync, psSend) {
	var objXMLHttp;	

	try {
		objXMLHttp = createXmlHttp();
		if (objXMLHttp === null) {
			SendErrorInfo(strE_0000_99, "");
			return null;
		}

		objXMLHttp.onreadystatechange =
			function () {
				if (objXMLHttp.readyState === 4) {
					if (objXMLHttp.status === 200) {
						if (!ChkResXML(objXMLHttp.responseXML)) {
							objXMLHttp = null;
						}

						if (pbASync) {
							psCallBack(objXMLHttp);
						}
					} else {
						SendErrorInfo(strE_0000_99, "(" + objXMLHttp.status + ")");
						objXMLHttp = null;
					}
				}
			}

		objXMLHttp.open("GET", psFile, pbASync);
		objXMLHttp.setRequestHeader("Content-Type","text/html; application/x-www-form-urlencoded; charset=UTF-8;");
		objXMLHttp.send(psSend);

		return objXMLHttp;
	} catch(e) {
		SendErrorInfo(e.number, e.description)
		return null;
	} finally {
	}
}

function GetError(objXMLHttp)
{
    var poResXML;
    var objNodeList;    
    var strErrNo;        
    var strErrDsc;
    if(objXMLHttp == null) 
        return false;
    try {
        poResXML = objXMLHttp.responseXML;
        objNodeList = poResXML.getElementsByTagName("errorinfo");
        if(objNodeList != null && objNodeList.length > 0)
        {
            strErrNo = objNodeList[0].getAttribute("errno");
            strErrDsc = objNodeList[0].getAttribute("errdesc");

            if (strErrNo !== "0") {
                return new Array(strErrNo, strErrDsc)
            }
        }
        return null;
    } catch(e) {
        SendErrorInfo(e.number, e.description)
        return null;
    } finally {
        objNodeList = null;
        poResXML = null;
    }    
}

function ChkResXML(poResXML) {
	var objNodeList;	
	var strErrNo;		
	var strErrDsc;		
	try {
        if (poResXML == null) {
            return true;
        }
		objNodeList = poResXML.getElementsByTagName("errorinfo");
        if(objNodeList != null && objNodeList.length > 0)
        {
		    strErrNo = objNodeList[0].getAttribute("errno");
		    strErrDsc = objNodeList[0].getAttribute("errdesc");

		    if (strErrNo !== "0") {
			    SendErrorInfo(strErrNo, strErrDsc);
			    return false;
		    }
        }
		return true;
	} catch(e) {
		SendErrorInfo(e.number, e.description)
		return false;
	} finally {
		objNodeList = null;
	}
}

function createXmlHttp()
{
	var ldcXmlHttp=null;
	try
	{
	  // Firefox, Opera 8.0+, Safari
	  ldcXmlHttp=new XMLHttpRequest();
	}
	catch (e)
	{
	  // Internet Explorer
	  try
	  {
	    ldcXmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
	  }
	  catch (e)
	  {
	    ldcXmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
	  }
	}
	return ldcXmlHttp;
}

function EncodeString(psData) {
	return escape(psData);
}

function ShowMessage(strMsg)
{
    alert(strMsg);
}

function SendErrorInfo(errNo, errDesc)
{
    alert("Lỗi: " + errNo + "\n" + errDesc);
}

function GetE(strID)
{
    return document.getElementById(strID);
}

function createE(eType)
{
    return document.createElement(eType);
}
