//Create XML Document object
function CreateXMLDocument(isAsync){
    var xmlDom;
    if(window.ActiveXObject){
        var xmlArray = ["MSXML2.DOMDocument.6.0","MSXML2.DOMDocument.4.0","MSXML2.DOMDocument.3.0","MSXML2.DOMDocument","Microsoft.XMLHTTP"];
        for( var i=0; i < xmlArray.length ; i++ ){
            try{
                xmlDom = new ActiveXObject(xmlArray[i]);
                break;
            }catch(e){}
        }
    }
    else if(document.implementation && document.implementation.createDocument){
        xmlDom = document.implementation.createDocument("","",null);
    }
    else{
        throw new Error("Create XML Document Object Mode Error! Plase Contact Us");
    }
    xmlDom.async = isAsync;
    return xmlDom;
}
//Xml create process
function Processor(ResultText,senderNode,HandleType){
    //get from ashx result xml data
    var DataObject = ObjectBuilder(ResultText);
    //select type
    switch(HandleType){
        case "Reader":
            //if exist old node,clear before node
            if(senderNode.childNodes.length>1){
                var i = document.all?1:2;
                for(i;i<senderNode.childNodes.length;i++){
                    var node = senderNode.childNodes[i];
                    node.parentNode.removeChild(node);
                    i--;
                }
            }else{
                //call ReportHeader Method writer
                ReportHeader(DataObject.Header,senderNode);
            }
            document.getElementById("UpdateDateTimer").innerHTML = DataObject.CurrentTime;
            //call ReportGridPanel method writer
            if(DataObject.Row){
                DataObject.Row.TypeID = DataObject.Header.TypeID;
                ReportGrid(DataObject.Row,senderNode);
            }
            
            RemoveLoading();
        break;
        case "Updater":
            document.getElementById("UpdateDateTimer").innerHTML = DataObject.CurrentTime;
            switch(SystemGlobal.HandleType){
                case 1:
                    if(DataObject && DataObject.Row){
                        if(DataObject.Row.length){
                            for(var i=0;i<DataObject.Row.length;i++){
                                ReportUpdater(DataObject.Row[i]);
                            }
                        }
                        else{
                            ReportUpdater(DataObject.Row);
                        }
                    }
                break;
                case 2:
                    if(DataObject){
                        ReportUpdaterOdds(DataObject);
                    }
                break;
            }
        break;
        case "ReaderCompany":
            if(DataObject.Row)
                ReportCompanyGrid(DataObject.Row);
                
            RemoveLoading();
            
        break;
    }
}
