//Copyright 2003 e-Software.cn. All Rights Reserved.
//Written by Gengjian. Email:gengs@163.com
//**Start Encode**
var g_CreateMessageObjFlag    = false       

var g_NewDeviceInfo	= new Array;			
var g_CurNewDevice	= 0;

var g_oTable ;								
var g_oTBody0 ;								
var g_maxcols=8;							
var g_mincols=2;							


var g_ifDisplayInternalErrorInfo = false;	

var g_OSEnumDevFlag = 0;					
var g_EnumOverTimerHandle;					



var g_DeviceInfo                        = new Array         
var g_DeviceRows                        = 0                 


var g_NormalSystemDeviceInfoArray	    = new Array;		
var g_NormalSystemDeviceRows	        = 0;				

var g_DeviceRowsNeedUpdateDriver        = 0                 

var g_ExistCanRepairDevFlag             = 0                 
var g_ExistCannotRepairDevFlag          = 0                 


var g_UpdatedDeviceRows                 = 0
var g_UpdatedDeviceArray                = new Array
var g_UpdatedSuccessDeviceRows          = 0

var g_NoUpdateDeviceArray               = new Array
var g_NoUpdateDeviceRows                = 0

var g_UserSelectUpdateDrvNumber         = 0


var g_UserDrvDeviceInfoArray            = new Array         
var g_UserDrvDeviceRows	                = 0                 

var g_DeviceRowsNeedExportDriver		= 0                 

var g_ExportedDeviceArray               = new Array
var g_ExportedDeviceRows                = 0
var g_ExportedSuccessDeviceRows         = 0

var g_NoExportDeviceArray                   = new Array
var g_NoExportDeviceRows                = 0

var g_UserSelectExpDrvNumber            = 0



var g_DevErrDeviceInfoArray             = new Array();
var g_DevErrDeviceRows	                = 0                 

var g_DeviceRowsCanImportDriver		    = 0

var g_ImportedDeviceArray               = new Array
var g_ImportedDeviceRows                = 0
var g_ImportedSuccessDeviceRows         = 0

var g_NoImportDeviceArray               = new Array
var g_NoImportDeviceRows                = 0

var g_UserSelectImpDrvNumber            = 0

var g_CanImportDrvNumber                = 0




var g_NoMatchDeviceDriverInfoArray       = new Array();
var g_NoMatchDeviceDriverRows	         = 0           


var UPLOAD_CAB_FILE_BUFFER_SIZE     = 10240       
var DOWNLOAD_CAB_FILE_BUFFER_SIZE   = 10240       


var CGI_UPLOAD_CAB_FILE_BUFFER_SIZE   = 33*1024       
var CGI_DOWNLOAD_CAB_FILE_BUFFER_SIZE = 33*1024       


var g_UserID                  = 0
var g_UserExportedDriverRows  = 0

var g_CanUserConnectToServer            = false

var g_NeedReenum 		= 0;				
var g_MaxDeviceIndex 	= 0;				

var g_DrvInstLogFilePath	= ""    
var g_AppLaunchPath			= ""	
var g_ClientStartPath		= ""	
var g_DrvInstLogFileName	= "drvinst.log"






var INF_ENCRYPT_CONST_STRING = "e-Software.cn"   



var CLIENT_ACCESS_MODE_SERVER_CLIENT = "ServerClient"
var CLIENT_ACCESS_MODE_USER_CLIENT   = "UserClient"




var g_SkipExpCurDrvFlag


var g_SkipImpCurDrvFlag


g_NextStepClickedFlag       = false





var UNKNOWN_DEVICE_ID  =  "UNKNOWN_BUS\\NULL_DEVICE_ID"


var DOWNLOAD_PATH           = "eDrivers_Backup"
var DOWNLOAD_DRIVER_SUBDIR  = "Download" 



var g_UserHostSerialNumber = ""


var g_DownloadPath                      = ""        


var g_MatchingDeviceInfo =  new Array() 


var g_OtherDriverNeedImpNumber          = 0 
var g_ImportedOtherDriverRows           = 0 
var g_ImportedOtherDriverDeviceArray    = new Array
var g_NoImportOtherDriverDeviceArray    = new Array
var g_NoImportOtherDriverDeviceRows     = 0

var g_OtherDriverListNumber             = 0 


var g_DefaultLoader  = "DrvImp"         
var g_LoaderString   = g_DefaultLoader  

var g_CaseID         = ""               


var g_LogConfigInfo = new Array         

var USER_DEVICE_OS_BROWSE_LOG_NAME      = "ItemA"   


var USER_DEVICE_DETECT_LOG_NAME         = "ItemB"   
var USER_DEVICE_ANALYSE_LOG_NAME        = "ItemC"   

var USER_DEVICE_FIX_LOG_NAME            = "ItemD"   

var g_DeviceForUpdateListArray          = new Array;g_DeviceForUpdateListArray["Rows"]      = 0;
var g_DeviceForRepairListArray          = new Array;g_DeviceForRepairListArray["Rows"]      = 0;
var g_DeviceCannotRepairListArray       = new Array;g_DeviceCannotRepairListArray["Rows"]   = 0;
var g_DeviceForOtherListArray           = new Array;g_DeviceForOtherListArray["Rows"]       = 0;


var g_RunningStatus                     = ""



function DisplayMessage( Msg )
{
	InputDataBox4.value		= InputDataBox4.value + "\n" + Msg;
	InputDataBox4.scrollTop = InputDataBox4.scrollHeight ; 
	
	if (g_DrvInstLogFilePath)
	{
		
		
		
		
		
		
		DrvInst.AppendStringToFileEnd( g_DrvInstLogFilePath , "\r\n" + GetLocalTime() + Msg)
	}
	
	else
	{
		
	}
}

function GetLocalTime()
{
		var d  = new Date();
        var year  = d.getYear()
        var month = (d.getMonth() + 1)
        var date  = d.getDate()
        var hours = d.getHours()
        var min   = d.getMinutes()
        var sec   = d.getSeconds()
        var mil   = d.getMilliseconds().toString(10)
            year  = year + "-"
            month = ( month <10 ) ? "0" + month + "-" : month + "-"
            date  = ( date  <10 ) ? "0" + date  + " " : date  + " "
            hours = ( hours <10 ) ? "0" + hours + ":" : hours + ":"
            min   = ( min   <10 ) ? "0" + min   + ":" : min   + ":"
            sec   = ( sec   <10 ) ? "0" + sec   + ":" : sec   + ":"
            mil   = "0000".substring(0,4-mil.length-1) + mil
		var	str   = "[ " + year + month + date + hours + min + sec + mil  + " ] "
   return( str )
}




function StartDriverImportUpdate( Mode )
{
    
    

    
    var CookieFlag = GetCookie( "OpenRunLogWinFlag" )
	if ( ( CookieFlag == "true") || !CookieFlag ) restoreTransientMessage()
    
    DrvCert.UIRefresh()



	
	
	
	
	
	
	


    
    CreateMessageObject()

	
    
    ResetInitVal( Mode )


	
	

	
	
	
	
	
	var hKey4 = DrvCert.RegOpenKey( 2 , "SOFTWARE\\Walker\\DrvInst\\Setup")
	g_DrvInstLogFilePath = DrvCert.RegQueryValue( hKey4 , "DrvInstLogFilePath" )
	
	
	if (!g_DrvInstLogFilePath && g_ClientStartPath) g_DrvInstLogFilePath = g_ClientStartPath + "\\" + g_DrvInstLogFileName


	DisplayMessage( "===============================================================" )
	DisplayMessage( "" + PromptArray["drvimp.js_281_1"] + "·" + PromptArray["drvimp.js_281_2"] + "..." )
    
    DrvCert.UIRefresh()

    
    if ( !Mode )    
    {
        
        if (DrvInst.DrvInstInit() == 0)
        {
            return -2;
        }
    }
	g_ifDisplayInternalErrorInfo = false;

	var hostname;
	hostname = ServerName.value;
	DrvInst.DownloadHostname = hostname;
	g_CanUserConnectToServer = DrvInst.ConnectAddressLocal(hostname);
	if (g_CanUserConnectToServer)
	{
		DisplayMessage(	"" + PromptArray["drvimp.js_302_1"] + "http:\/\/" + hostname + "" + PromptArray["drvimp.js_302_2"] + "");

	}
	else
	{
		DisplayMessage("" + PromptArray["drvimp.js_307_1"] + "http:\/\/" + hostname + "" + PromptArray["drvimp.js_307_2"] + "");
        
        
        
        
		
		
        
	}
    
    DrvCert.UIRefresh()


    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    

    
    
	DrvInst.ShowHiddenDevice = 0;
	
    
    
    if ( GetCookie( "ReenumMode" ) == "true" )
    {
        
        g_OSEnumDevFlag = 1;
        
        DisplayMessage("" + PromptArray["drvimp.js_351_1"] + "...");
        DrvInst.ReenumDevice();
        DisplayMessage("" + PromptArray["drvimp.js_353_1"] + "");
    }
    
    

	
	g_OSEnumDevFlag = 0
    
    EnumDevice(1)

	return 0;
}






function ResetInitVal( Mode )
{
	oTableContainer.innerText = ""

	
	

    
    if ( !Mode )    
    {
        DrvInst.DrvInstFinish();
    }

	
	g_ifDisplayInternalErrorInfo = true;

	DrvInst.FinishedPercent	= 0 ;

	

	
	
	

	
    
	
    var UrlPathname = ""
	var UrlHostname = ""
    try
    {
        UrlPathname = document.location.pathname;	
	    UrlHostname = document.location.hostname;	
    }
    catch (e)
    {
    }
    
	
	
	if (UrlHostname == "")
	{
		
		UrlPathname = UrlPathname.replace( /%20/gi , " ");
		if (UrlPathname.charAt(0) == "/")
		{
			
			UrlPathname = UrlPathname.substring(1 , UrlPathname.lastIndexOf("\\")); 
		}
		else
		{
			UrlPathname = UrlPathname.substring(0 , UrlPathname.lastIndexOf("\\")); 
		}
	}
	
	else
	{
		
		UrlPathname = "";
	}

	g_ClientStartPath = UrlPathname

	
	DrvInst.DownloadHostname = UrlHostname;
	DrvInst.CurrentWorkDirectory = UrlPathname;

	(DrvInst.CurrentWorkDirectory == "")
		?DisplayMessage("" + PromptArray["drvimp.js_439_1"] + "NULL")
		:DisplayMessage("" + PromptArray["drvimp.js_440_1"] + "" + DrvInst.CurrentWorkDirectory);

	DeleteDeviceTable();

	return 0;
}




var g_Finish = 0;
var g_timerID="";



function ApplyInitProcessEvent()
{
	
}




function EnumDevice( EnumMode )
{
	
    
	if ( ( EnumMode != 0) && DrvInst.GetSysInstallDrvStatus() )
	{
		DisplayMessage("Windows" + PromptArray["drvimp.js_469_1"] + "")
        
        
        
        
        
		
        DisplayMessage("" + PromptArray["drvimp.js_476_1"] + "...")
        
        Title.innerHTML = '<br><center>Windows' + PromptArray["drvimp.js_478_1"] + '<br>' + PromptArray["drvimp.js_478_2"] + '...</center>'

		DrvInst.EnumDevice(1);
		return 1
	}
    
    if ( g_OSEnumDevFlag )
    {
		DisplayMessage("Windows" + PromptArray["drvimp.js_486_1"] + "")
        
		
        DisplayMessage("" + PromptArray["drvimp.js_489_1"] + "...")
		return 2
    }
    
	DisplayMessage("" + PromptArray["drvimp.js_493_1"] + "...");
    Title.innerHTML = '<br><center>' + PromptArray["drvimp.js_494_1"] + '...</center>'
	DrvCert.UIRefresh()
	 
    g_NormalSystemDeviceRows    = 0;
    g_DeviceRows                = 0
    
	g_UserDrvDeviceRows         = 0
	g_DevErrDeviceRows          = 0
    g_UserSelectUpdateDrvNumber = 0
	g_UserSelectExpDrvNumber    = 0
	g_UserSelectImpDrvNumber    = 0
    
    g_CanImportDrvNumber        = 0
    
	g_DeviceRowsCanImportDriver = 0
    g_DeviceRowsNeedUpdateDriver= 0
    
    g_ExistCanRepairDevFlag             = 0                 
    g_ExistCannotRepairDevFlag          = 0                 
    
    g_DeviceRowsNeedExportDriver= 0
    
    g_UpdatedDeviceRows         = 0
    g_ExportedDeviceRows        = 0
    g_ImportedDeviceRows        = 0
    g_UpdatedSuccessDeviceRows  = 0
    g_ExportedSuccessDeviceRows = 0
    g_ImportedSuccessDeviceRows = 0
    g_NoUpdateDeviceRows        = 0
    g_NoImportDeviceRows        = 0
    g_NoExportDeviceRows        = 0
    
    g_OtherDriverNeedImpNumber  = 0
    g_ImportedOtherDriverRows   = 0
    
    g_NoImportOtherDriverDeviceRows = 0
    
    
	DrvInst.EnumDevice(0);
	g_OSEnumDevFlag = 0;
	g_MaxDeviceIndex = DrvInst.DeviceIndex + 1;

    
    
    
    
    
    
    
    
    
    
    
   	
    

    
    
    var UrlFullString   = ""
    var UrlPathname     = ""
    var UrlParamString  = ""
    try
    {
        UrlFullString   = document.location.href
        UrlPathname     = document.location.pathname;	
        UrlParamString  = UrlFullString.substr( UrlFullString.indexOf( UrlPathname ) + UrlPathname.length ) 
        
        if ( UrlParamString && UrlParamString.substring( 0 , 1 ) == "?" )
        {
            UrlParamString = UrlParamString.substr( 1 ) 
            
            
            
            
            
            
            if ( !UrlParamString ) 
            {
                UrlParamString = g_DefaultLoader
            }

            
            
            
            if ( UrlParamString.toUpperCase().indexOf("SN") != -1 )
            {
                
                
                var UrlParamArray = UrlParamString.split( "\&" )
                for ( var i=0; UrlParamArray[i]; i++)
                {
                    if ( UrlParamArray[i].toUpperCase().indexOf("SN") != -1 )
                    {
                        g_UserHostSerialNumber = UrlParamArray[i].replace( /(.*)SN=(.*)$/gi , "$2" )
                        break
                    }
                }
                DisplayMessage("" + PromptArray["drvimp.js_591_1"] + ":" + g_UserHostSerialNumber );
            }
        }
        
        else
        {
            UrlParamString = g_DefaultLoader
        }
    }
    catch (e)
    {
    }
    g_LoaderString = UrlParamString
    
    DisplayMessage("" + PromptArray["drvimp.js_605_1"] + ":" + g_LoaderString );
    
    



    
    
    
    
    
    
    if ( !g_UserID )
    {
        DisplayMessage("" + PromptArray["drvimp.js_619_1"] + "...");
        Title.innerHTML = '<br><center>' + PromptArray["drvimp.js_620_1"] + '...</center>'
        DrvCert.UIRefresh()

        var RetRegUserInfo = RegUserHardwareInfo()
        
        
        
        
        
        
        
        
        
        
        

        if ( !RetRegUserInfo["Success"] )
        {
            
            
            
            
            if ( RetRegUserInfo["Info"] == "Unauthorized users" )
            {
                Title.innerHTML = "<br><center>" + PromptArray["drvimp.js_644_1"] + "<br><br><a href='../../../login_tw.htm'>" + PromptArray["drvimp.js_644_2"] + "</a></center>"
                DrvCert.UIRefresh()
                return false
            }
            
            else if ( RetRegUserInfo["Info"] == "Unauthorized host" )
            {
                Title.innerHTML = "<br><center>" + PromptArray["drvimp.js_651_1"] + "<br><br><a href='../../../login_tw.htm'>" + PromptArray["drvimp.js_651_2"] + "</a></center>"
                DrvCert.UIRefresh()
                return false
            }
            else
            {
                Title.innerHTML = '<br><center>' + PromptArray["drvimp.js_657_1"] + '<br>' + RetRegUserInfo["Info"] + '</center>'
                DrvCert.UIRefresh()
                return false
            }
        }
        
        
        
        g_UserID = RetRegUserInfo["UserID"]
        
        
        
        
        SetCookie( "UserID" , g_UserID )
        
        
        
   		

        
        
        
        var DownloadPath = ""
        
        
        if ( ( RetRegUserInfo["UserType"].toUpperCase() == "NEW" )  || !RetRegUserInfo["DownloadPath"] || RetRegUserInfo["DownloadPath"] == "null" )
        {
            DownloadPath = GetDownloadDrive() + "\\" + DOWNLOAD_PATH
            SubmitUserDownloadDriverPath( g_UserID , DownloadPath )
        }
        
        else
        {
            DownloadPath = RetRegUserInfo["DownloadPath"]
        }
        
        g_DownloadPath = DownloadPath


        
        
        
        
        
        
        
        {
            if ( RetRegUserInfo["UserType"] == "New" )
            {
                
                DisplayMessage("" + PromptArray["drvimp.js_707_1"] + "...");
                Title.innerHTML = '<br><center>' + PromptArray["drvimp.js_708_1"] + '...</center>'
                                + '<br>'
                                + '<table align=center id=PercentTbl width=400 bgColor=black border=0 cellSpacing=0 cellPadding=0 >'
                                + '<tr><td>'
                                + '  <IMG id="PercentImg" SRC="img/img.gif" WIDTH="0" HEIGHT="16" BORDER=0>'
                                + '</td></tr></table>'
                                + '<div id=PercentString>&nbsp;</div>'
                DrvCert.UIRefresh()
                RegUserDeviceInfoList( g_UserID )
            }
        }

        
        
        
        DrvInst.SetMyDriversRootDir( DownloadPath )
        
        g_DownloadPath = DownloadPath

        
        
        var UrlFullString   = ""
        var UrlPathname     = ""
        var UrlParamString  = ""
        try
        {
            UrlFullString   = document.location.href
            UrlPathname     = document.location.pathname;	
            UrlParamString  = UrlFullString.substr( UrlFullString.indexOf( UrlPathname ) + UrlPathname.length ) 
            
            if ( UrlParamString && UrlParamString.substring( 0 , 1 ) == "?" )
            {
                UrlParamString = UrlParamString.substr( 1 ) 
                
                
                
                
                
                if ( !UrlParamString ) 
                {
                    UrlParamString = "Name=" + g_DefaultLoader + "&CaseID=" + RetRegUserInfo["CaseID"]
                }
            }
            
            else
            {
                UrlParamString = "Name=" + g_DefaultLoader + "&CaseID=" + RetRegUserInfo["CaseID"]
            }

        }
        catch (e)
        {
        }
        g_LoaderString = UrlParamString
        
        DisplayMessage("" + PromptArray["drvimp.js_763_1"] + ":" + g_LoaderString );
        
        

        
        
        
        
        
        
        
        var CurLoader =     ( UrlParamString.toUpperCase().indexOf("NAME=") != -1 ) 
                        ?   UrlParamString.replace( /Name=(.*)\&CaseID=(.*)/gi , "$1" )     
                        :   g_DefaultLoader
        
        DisplayMessage("" + PromptArray["drvimp.js_778_1"] + ":" + CurLoader );
        
        g_CaseID = RetRegUserInfo["CaseID"]
        DisplayMessage("" + PromptArray["drvimp.js_781_1"] + ":" + g_CaseID );

        
        g_LogConfigInfo = GetLogConfigInfoFromServer( CurLoader , g_UserID )
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        if (  GetCookie( "DriverType" ) == "Special" )
        {
            
            
            
            if ( !g_UserHostSerialNumber || g_UserHostSerialNumber == "null" )
            {
                Title.innerHTML = '<br><center>' + PromptArray["drvimp.js_812_1"] + '</center>'
                                + '<br>'
                                + '<table align=center id=PercentTbl width=400 border=0 cellSpacing=0 cellPadding=0 >'
                                + '<tr><td>'
                                
                                
                                + '<center><input name=UserHostSerialNumber type=text></center>'
                                + '</td></tr>'
                                + '<tr><td>'
                                + '<br><br>'
                                + '</td></tr>'
                                + '<tr><td>'
                                
                                
                                + '<center><input type=button value="' + PromptArray["drvimp.js_826_1"] + '" onclick="CheckUserHostSerialNumber( UserHostSerialNumber.value )"></center>'
                                + '</td></tr>'
                                + '</td></tr></table>'
                                + '<div id=PercentString>&nbsp;</div>'
                DrvCert.UIRefresh()

                
                
                
                var CookieUserHostSerialNumber = GetCookie( "UserHostSerialNumber" )
                DisplayMessage("" + PromptArray["drvimp.js_836_1"] + "Cookie" + PromptArray["drvimp.js_836_2"] + "" + CookieUserHostSerialNumber )
                if ( CookieUserHostSerialNumber )
                    UserHostSerialNumber.value = CookieUserHostSerialNumber            
                DisplayMessage("" + PromptArray["drvimp.js_839_1"] + "...");
                
                

                
                return
            }
            
            
            
            DisplayMessage("" + PromptArray["drvimp.js_849_1"] + "...");
            CheckUserHostSerialNumber( g_UserHostSerialNumber )
            return
        }
    }
    
    EnumDeviceAfter()
    


}
function EnumDeviceAfter()
{


    
	BackupUserDriver()

    
    
    
    
    
    
    
    BackupSystemDrivers()

	
	g_NormalSystemDeviceRows    = 0;
    g_DeviceRows                = 0

	g_UserDrvDeviceRows         = 0
	g_DevErrDeviceRows          = 0
    g_UserSelectUpdateDrvNumber = 0
	g_UserSelectExpDrvNumber    = 0
	g_UserSelectImpDrvNumber    = 0
    
    g_CanImportDrvNumber        = 0

	g_DeviceRowsCanImportDriver = 0
    g_DeviceRowsNeedUpdateDriver= 0
    
    g_ExistCanRepairDevFlag             = 0                 
    g_ExistCannotRepairDevFlag          = 0                 

    g_DeviceRowsNeedExportDriver= 0

    g_UpdatedDeviceRows         = 0
    g_ExportedDeviceRows        = 0
    g_ImportedDeviceRows        = 0
    g_UpdatedSuccessDeviceRows  = 0
    g_ExportedSuccessDeviceRows = 0
    g_ImportedSuccessDeviceRows = 0
    g_NoUpdateDeviceRows        = 0
    g_NoImportDeviceRows        = 0
    g_NoExportDeviceRows        = 0
    
    g_OtherDriverNeedImpNumber  = 0
    g_ImportedOtherDriverRows   = 0
    
    g_NoImportOtherDriverDeviceRows = 0

    
    
    g_RunningStatus = "Step=0 , Status=0 , Finish=0 ; "
    SetCookie( "eDrv_Param" , g_RunningStatus , 1 )


	DrvInst.EnumDevice(0);
	g_OSEnumDevFlag = 0;
	g_MaxDeviceIndex = DrvInst.DeviceIndex + 1;

    
    
    
    if ( g_LogConfigInfo[ USER_DEVICE_OS_BROWSE_LOG_NAME ] == "true" )
    {
        
        
        
        DisplayMessage("" + PromptArray["drvimp.js_1011_1"] + "/" + PromptArray["drvimp.js_1011_2"] + "/" + PromptArray["drvimp.js_1011_3"] + "..." )
        Title.innerHTML = '<br><center>' + PromptArray["drvimp.js_1012_1"] + '...<br></center>'
        
                        + '<br>'
                        + '<table align=center id=PercentTbl width=400 bgColor=black border=0 cellSpacing=0 cellPadding=0 >'
                        + '<tr><td>'
                        + '  <IMG id="PercentImg" SRC="img/img.gif" WIDTH="0" HEIGHT="16" BORDER=0>'
                        + '</td></tr></table>'
                        + '<div id=PercentString>&nbsp;</div>'
        DrvCert.UIRefresh()

        
        
        
        
        
        
        
        SubmitUserDeviceOSBrowseInfoLog( g_UserID , g_CaseID , g_DeviceInfo , g_DeviceRows , GetOSInfo() , navigator.userAgent )

        
        
        g_RunningStatus = "Step=0 , Status=1 , Finish=0 ; "
        SetCookie( "eDrv_Param" , g_RunningStatus , 1 )
    }
    
    


	DisplayMessage("" + PromptArray["drvimp.js_1040_1"] + "...");
    Title.innerHTML = '<br><center>' + PromptArray["drvimp.js_1041_1"] + '...<br></center>'
	                + '<br>'
					+ '<table align=center id=PercentTbl width=400 bgColor=black border=0 cellSpacing=0 cellPadding=0 >'
					+ '<tr><td>'
					+ '  <IMG id="PercentImg" SRC="img/img.gif" WIDTH="0" HEIGHT="16" BORDER=0>'
					+ '</td></tr></table>'
					+ '<div id=PercentString>&nbsp;</div>'
	DrvCert.UIRefresh()

    
    
    g_RunningStatus += "Step=1 , Status=0 , Finish=0 ; "
    SetCookie( "eDrv_Param" , g_RunningStatus , 1 )
    
    
    
    
    
    
    
    
    var CookieFlag = GetCookie( "SubmitAllDeviceInfoOneTime" )
	if ( ( CookieFlag == "true") || !CookieFlag )
    {

         GetDriverExportStatusFromDBEx( g_UserID ) 
    }
    else
    {
        

        GetDriverExportStatusFromDB( g_UserID )

    }

    
    var AccountInfoArray = GetAccountInfoFromServer( g_SessionEmail )
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    

    g_UserExportedDriverRows = GetUserExportedDriverRows()
	UserIDTag.innerHTML =   '<table>'
                          + '<tr>'
                          + '<td>' + PromptArray["drvimp.js_1100_1"] + ':</td><td align=left>' + g_UserID + '&nbsp;&nbsp;&nbsp;</td>'
                          
                          + '</tr>'
                          + '<tr>'
                          + '<td>' + PromptArray["drvimp.js_1104_1"] + ':</td><td align=left><span id=AmountValue>' + AccountInfoArray["Amount"] + '</span></td>'
                          
                          + '</tr>'
                          
                          
                          
                          
                          + '</table>'

    
    
    
    
    
    
    
    
    
    
    

    Title.innerHTML = ''

    ListAllDevicesForImportUpdateDriver()
}

function ListAllDevicesForImportUpdateDriver()
{
	DeleteDeviceTable()
	CreateDeviceTable();

    
    
    g_RunningStatus += "Step=2 , Status=0 , Finish=0 ; "
    SetCookie( "eDrv_Param" , g_RunningStatus , 1 )

    
    oRow  = document.createElement("TR");
    oCell = document.createElement("TD");
    oCell.colSpan= g_maxcols
    oCell.innerHTML = "<span id=ListUpdateImportResultTag></span>"
    
    oCell.align = "left"
    
    oRow.appendChild(oCell);
    g_oTBody0.appendChild(oRow);

	
	ListDriverForUpdate()

    
	ListDriverForImport()

    
    
    ListOtherDriverForImport()

    
    if ( g_LogConfigInfo[ USER_DEVICE_ANALYSE_LOG_NAME ] == "true" )
    
    
    {
        SubmitDeviceAnalyseInfoLog( g_UserID , 
                                    g_CaseID , 
                                    g_DeviceForUpdateListArray    , g_DeviceForUpdateListArray["Rows"] ,
                                    g_DeviceForRepairListArray    , g_DeviceForRepairListArray["Rows"] ,
                                    g_DeviceCannotRepairListArray , g_DeviceCannotRepairListArray["Rows"] ,
                                    g_DeviceForOtherListArray     , g_DeviceForOtherListArray["Rows"] ,
                                    USER_DEVICE_ANALYSE_LOG_NAME )   
    }


	
	

    
    
    
    
    
    
    
    if ( (g_DevErrDeviceRows && g_ExistCanRepairDevFlag ) || g_DeviceRowsNeedUpdateDriver || g_OtherDriverListNumber )
    {
        oRow = document.createElement("TR");
        oCell = document.createElement("TD");
        oCell.colSpan= g_maxcols+1
        oCell.align = "center"
        oCell.innerHTML = "<br>"
                        
                        
                        
                        + "<input type='button' value='" + PromptArray["drvimp.js_1196_1"] + "' onclick='CheckAmountBeforeDriverImportUpdateProcedure()'>"

        oRow.appendChild(oCell);
        g_oTBody0.appendChild(oRow);

        
        
        g_RunningStatus += "Step=2 , Status=1 , Finish=0 ; "
        SetCookie( "eDrv_Param" , g_RunningStatus , 1 )
    }
    
    
    else if ( !g_ExistCanRepairDevFlag && g_ExistCannotRepairDevFlag )
    {
        oRow = document.createElement("TR");
        oCell = document.createElement("TD");
        oCell.colSpan= g_maxcols+1
        oCell.align = "center"
        
        
        
        
        
        
        
        
        
        if ( g_LogConfigInfo[ "RetUrlItemC" ] != undefined )
        {
            oCell.innerHTML = "<br>"
                            
                            + "<input type='button' value='" + PromptArray["drvimp.js_1227_1"] + "' onclick='window.opener.location=\"" + g_LogConfigInfo[ g_LogConfigInfo[ "RetUrlItemC" ] + ",RetUrlSetting" ] + "?wssret=211\";window.close()'>"
        }
        else
        {
            oCell.innerHTML = "<br>"
                        
                        
                        
                        
                        
                        
       					
                        
                        
                        + "<br><br><br><center><input type='button' value='" + PromptArray["drvimp.js_1241_1"] + "' onclick='window.document.location.href=\"Comment.htm\"; return false;'></center>"
        }

        oRow.appendChild(oCell);
        g_oTBody0.appendChild(oRow);

        
        
        g_RunningStatus += "Step=2 , Status=1 , Finish=1 ; "
        SetCookie( "eDrv_Param" , g_RunningStatus , 1 )
        
    	

    }
    else
    {
        oRow = document.createElement("TR");
        oCell = document.createElement("TD");
        oCell.colSpan= g_maxcols+1
        oCell.align = "center"
        
        
        
        
        
        
        
        
        
        if ( g_LogConfigInfo[ "RetUrlItemC" ] != undefined )
        {
            oCell.innerHTML = "<br>"
                            
                            + "" + PromptArray["drvimp.js_1274_1"] + "" + g_MaxDeviceIndex + "" + PromptArray["drvimp.js_1274_2"] + "<br>" + PromptArray["drvimp.js_1274_3"] + ""
                            
                            + "<br><br><br><center><input type='button' value='" + PromptArray["drvimp.js_1276_1"] + "' onclick='window.opener.location=\"" + g_LogConfigInfo[ g_LogConfigInfo[ "RetUrlItemC" ] + ",RetUrlSetting" ] + "?wssret=211\";window.close()'></center>"
        }
        else
        {
            oCell.innerHTML = "<br>"
                        
                        
                        + "" + PromptArray["drvimp.js_1283_1"] + "" + g_MaxDeviceIndex + "" + PromptArray["drvimp.js_1283_2"] + "<br>" + PromptArray["drvimp.js_1283_3"] + ""
                        
                        
                        
                        
                        + "<br><br><br><center><input type='button' value='" + PromptArray["drvimp.js_1288_1"] + "' onclick='window.document.location.href=\"Comment.htm\"; return false;'></center>"
        }
        oRow.appendChild(oCell);
        g_oTBody0.appendChild(oRow);

        
        
        g_RunningStatus += "Step=2 , Status=1 , Finish=1 ; "
        SetCookie( "eDrv_Param" , g_RunningStatus , 1 )
        
    	
    }
   oTableContainer.align="center"

}

function ApplyMsgEvent()
{
	if (!g_ifDisplayInternalErrorInfo) return 0;

	if (DrvInst.InitExitCode == 0) 
	{ 
		
		
		DisplayMessage(DrvInst.StatusString);
	} 
	else 
	{ 
		DisplayMessage(DrvInst.StatusString + "(code: 0x000" + DrvInst.InitExitCode.toString(16)  + ")");
	} 
}



function CreateDeviceTable()
{
	var oRow, oCell;
	var i, j;
	
	
	var heading = new Array;
	
	
	
	
	
	
	
	
	heading[0] = heading[1] = heading[2] = heading[3] = heading[4] = heading[5] = heading[6] = heading[7] = "";

	
	g_oTable		= document.createElement("TABLE");
	var oTHead	    = document.createElement("THEAD");
	g_oTBody0		= document.createElement("TBODY");
	var oTFoot	    = document.createElement("TFOOT");
	var oCaption    = document.createElement("CAPTION");


	
	g_oTable.appendChild(oTHead);
	g_oTable.appendChild(g_oTBody0);
	g_oTable.appendChild(oTFoot);
	g_oTable.appendChild(oCaption);

	
	
	
	g_oTable.border     ="0";
	g_oTable.cellspacing="0";
	g_oTable.cellpadding="0";
	
	
	
	
	g_oTable.ID="DeviceTable";

	
	oRow = document.createElement("TR");
	oTHead.appendChild(oRow);
	
	

	
	for (i=g_mincols; i<g_maxcols; i++)
	{
	  oCell = document.createElement("TD");
	  
	  oCell.innerHTML = "";
	  
	  oRow.appendChild(oCell);
	}

	
	oRow = document.createElement("TR");
	oTFoot.appendChild(oRow);

	oCell = document.createElement("TD");
	oRow.appendChild(oCell);

	oCell.innerText = "";
	oCell.align		= "center";
	oCell.colSpan = g_maxcols;
	
	

	
	oCaption.innerText = "";
	oCaption.style.fontSize = "10";
	oCaption.align = "bottom";

	
	oTableContainer.appendChild(g_oTable);
}




function DeleteDeviceTable()
{
	if (g_oTable)	g_oTable.removeNode(true);
    oTableContainer.innerHTML= ""
}








function ImpExpApplyEnumDeviceEvent()
{
	var oRow, oCell;
	var j;
	var stock = new Array;

    
    
    
    if ( g_OSEnumDevFlag )
    {
		DisplayMessage("Windows" + PromptArray["drvimp.js_1430_1"] + "")
		DisplayMessage("" + PromptArray["drvimp.js_1431_1"] + "...");
		return 2
    }

	
	

    
	GetDeviceInfoToArray(stock);

    SaveDeviceInfoToArray(stock,g_DeviceInfo,g_DeviceRows);
    g_DeviceRows ++;

    
    
    
    
    stock[9] = UNKNOWN_DEVICE_ID + ";" + stock[9]

    
	if ( !stock[5] && !(stock[7] & 0x00080000) )
	{
        
        if ( ( GetCookie( "DriverType" ) == "Special" ) )
        {
            
            SaveDeviceInfoToArray(stock,g_NormalSystemDeviceInfoArray,g_NormalSystemDeviceRows);
        
            g_NormalSystemDeviceRows ++;
        }
        else if (
                        
                     ( !stock[5]  && stock[2] == 23 ) 
                        
                  || (  stock[8] && stock[8].match( /\*PNP.+/gi ) )
                  || (  stock[8] && stock[8].match( /ACPI_HAL.+/gi ) )
                  || (  stock[8] && stock[8].match( /Monitor\\Default_Monitor.+/gi ) )
                  
                  
                  || (  stock[8] && stock[8].match( /VEN_8086\&DEV_244E.+/gi ) )
                  
                  || (  stock[8] && stock[8].match( /GenDisk.+/gi ) )
                 
            )
        {
        }
        else
        {
            
            SaveDeviceInfoToArray(stock,g_NormalSystemDeviceInfoArray,g_NormalSystemDeviceRows);
        
            g_NormalSystemDeviceRows ++;
        }
		return 0;
	}
	

	

	
	
	
	if ( !stock[5] )
	{
        
        
        
        
        
        

        
        if (      
                 ( !stock[5]  && stock[2] == 23 ) 
                  
                  
                  || (  stock[8] && stock[8].match( /VEN_8086\&DEV_244E.+/gi ) )
                  
                  
                  || (  stock[8] && stock[8].match( /VEN_8086\&DEV_2448.+/gi ) )
                  
                  
                  || (  stock[10] && stock[10].match( /\*PNP.+/gi ) )
            )
        {
            
            
            
            
            
            
            
        }
        else
        {
            
            SaveDeviceInfoToArray(stock , g_UserDrvDeviceInfoArray , g_UserDrvDeviceRows);
            
            
            
            
            
            
            
            g_UserDrvDeviceRows ++
        }
	}
	
    
	else
	{
        
        
        
        
        
        
        
        
        
        if ( stock[3] )
        {
            
            
            
            
        }
        
        
        
        
        
        
        
        
        
        
        
        
        
        else if ( stock[5] == 22 || stock[5] == 39 
                  
                  || stock[5] == 24 || stock[5] == 25 || stock[5] == 29 
                  
                  || ( !stock[5]  && stock[2] == 23 ) 
                  
                  
                  
                  
                  
                )
        {
            
            
            
            
            
            
            
        }
        
        
        else
        {

            
            SaveDeviceInfoToArray(stock , g_DevErrDeviceInfoArray , g_DevErrDeviceRows);
            
            

            g_DevErrDeviceRows ++
        }
        
	}

	

	
	
	
	
	
    
	
    
	
	
	
	
	
	
	
	


}

function SaveDeviceInfoToArray(DeviceInfo,SavetoArray,row)
{
	SavetoArray[row + ",0"  ] = g_DeviceRows;
	SavetoArray[row + ",1"  ] = DeviceInfo[1];
	SavetoArray[row + ",2"  ] = DeviceInfo[2];
	SavetoArray[row + ",3"  ] = DeviceInfo[3];
	SavetoArray[row + ",4"  ] = DeviceInfo[4];
	SavetoArray[row + ",5"  ] = DeviceInfo[5];
	SavetoArray[row + ",6"  ] = DeviceInfo[6];
	SavetoArray[row + ",7"  ] = DeviceInfo[7];
	SavetoArray[row + ",8"  ] = DeviceInfo[8];
	SavetoArray[row + ",9"  ] = DeviceInfo[9];
	SavetoArray[row + ",10" ] = DeviceInfo[10];
	SavetoArray[row + ",11" ] = DeviceInfo[11];
	SavetoArray[row + ",12" ] = DeviceInfo[12];
	SavetoArray[row + ",13" ] = DeviceInfo[13];
    
	if (DeviceInfo["LockHandle"])  
        SavetoArray[row + ",LockHandle" ] = DeviceInfo["LockHandle"];
    
	SavetoArray[row + ",14" ] = DeviceInfo[14];
}
function ReadArrayToDeviceInfo(DeviceInfo,ReadToArray,row)
{
	DeviceInfo[0]  = ReadToArray[row + ",0"  ] ;
	DeviceInfo[1]  = ReadToArray[row + ",1"  ] ;
	DeviceInfo[2]  = ReadToArray[row + ",2"  ] ;
	DeviceInfo[3]  = ReadToArray[row + ",3"  ] ;
	DeviceInfo[4]  = ReadToArray[row + ",4"  ] ;
	DeviceInfo[5]  = ReadToArray[row + ",5"  ] ;
	DeviceInfo[6]  = ReadToArray[row + ",6"  ] ;
	DeviceInfo[7]  = ReadToArray[row + ",7"  ] ;
	DeviceInfo[8]  = ReadToArray[row + ",8"  ] ;
	DeviceInfo[9]  = ReadToArray[row + ",9"  ] ;
	DeviceInfo[10] = ReadToArray[row + ",10" ] ;
	DeviceInfo[11] = ReadToArray[row + ",11" ] ;
	DeviceInfo[12] = ReadToArray[row + ",12" ] ;
	DeviceInfo[13] = ReadToArray[row + ",13" ] ;
    
	if (ReadToArray[ row + ",LockHandle" ])  
        DeviceInfo["LockHandle"] = ReadToArray[ row + ",LockHandle" ]
    
	DeviceInfo[14] = ReadToArray[row + ",14" ];
}
function GetDeviceInfoToArray(DeviceInfo)
{
	DeviceInfo[0]  = 0;
	DeviceInfo[1]  = DrvInst.DeviceIndex;
	DeviceInfo[2]  = DrvInst.DeviceClassID;
	DeviceInfo[3]  = DrvInst.DeviceClassType;
	DeviceInfo[4]  = DrvInst.DeviceStatus;
	DeviceInfo[5]  = DrvInst.DeviceProblem;
	DeviceInfo[6]  = DrvInst.DeviceName;
	DeviceInfo[7]  = DrvInst.BackupDriverStatus;
	DeviceInfo[8]  = DrvInst.HardwareID;
	DeviceInfo[9]  = DrvInst.CompatibleID;
	DeviceInfo[10] = DrvInst.MatchingDeviceID;
	DeviceInfo[11] = DrvInst.DriverDate;
	DeviceInfo[12] = DrvInst.DriverVer;
	DeviceInfo[13] = DrvInst.DriverProvider;
    
	DeviceInfo[14] = DrvInst.DriverInfFilename;
















}


function TranslateDeviceInfoToArray(DeviceInfo,OrgDeviceInfo,CurrentRow,ItemNumber)
{ 
	var devStatNumbers = 32 ; 
	var j;
	
	var deviceClass = new Array;
	var deviceClassImg = new Array;
				 
				 
	deviceClass[ 1] = "" + PromptArray["DrvExp.js_913_1"] + "";		            deviceClassImg[ 1] = "power.gif";			
	deviceClass[ 2] = "" + PromptArray["DrvExp.js_914_1"] + "";                 deviceClassImg[ 2] = "CDROM.gif";			
	deviceClass[ 3] = "" + PromptArray["DrvExp.js_915_1"] + "";	                deviceClassImg[ 3] = "minidisk.gif";		
	deviceClass[ 4] = "" + PromptArray["DrvExp.js_916_1"] + "";                 deviceClassImg[ 4] = "card.gif";			
	deviceClass[ 5] = "" + PromptArray["DrvExp.js_917_1"] + "";                 deviceClassImg[ 5] = "floppy.gif"; 			
	deviceClass[ 6] = "" + PromptArray["DrvExp.js_918_1"] + "";                 deviceClassImg[ 6] = "floppy.gif";			
	deviceClass[ 7] = "" + PromptArray["DrvExp.js_919_1"] + "";                 deviceClassImg[ 7] = "minidisk.gif"; 		
	deviceClass[ 8] = "" + PromptArray["DrvExp.js_920_1"] + "";                 deviceClassImg[ 8] = "hid.gif";		        
	deviceClass[ 9] = "" + PromptArray["DrvExp.js_921_1"] + "";                 deviceClassImg[ 9] = "hardware.gif";		
	deviceClass[10] = "" + PromptArray["DrvExp.js_922_1"] + "";                 deviceClassImg[10] = "hardware.gif";		
	deviceClass[11] = "" + PromptArray["DrvExp.js_923_1"] + "";                 deviceClassImg[11] = "hardware.gif";		
	deviceClass[12] = "" + PromptArray["DrvExp.js_924_1"] + "";                 deviceClassImg[12] = "scanner.gif";			
	deviceClass[13] = "" + PromptArray["DrvExp.js_925_1"] + "";                 deviceClassImg[13] = "Ir.gif";				
	deviceClass[14] = "" + PromptArray["DrvExp.js_926_1"] + "";                 deviceClassImg[14] = "keyboard.gif";		
	deviceClass[15] = "" + PromptArray["DrvExp.js_927_1"] + "";                 deviceClassImg[15] = "media.gif";			
	deviceClass[16] = "" + PromptArray["DrvExp.js_928_1"] + "";                 deviceClassImg[16] = "chip.GIF";			
	deviceClass[17] = "" + PromptArray["DrvExp.js_929_1"] + "";                 deviceClassImg[17] = "modem.gif";			
	deviceClass[18] = "" + PromptArray["DrvExp.js_930_1"] + "";                 deviceClassImg[18] = "monitor.gif";			
	deviceClass[19] = "" + PromptArray["DrvExp.js_931_1"] + "";                 deviceClassImg[19] = "mouse.gif";			
	deviceClass[20] = "" + PromptArray["DrvExp.js_932_1"] + "";                 deviceClassImg[20] = "hardware.gif";		
	deviceClass[21] = "" + PromptArray["DrvExp.js_933_1"] + "";                 deviceClassImg[21] = "sound.gif";			
	deviceClass[22] = "" + PromptArray["DrvExp.js_934_1"] + "";                 deviceClassImg[22] = "multiport.gif";		
	deviceClass[23] = "" + PromptArray["DrvExp.js_935_1"] + "";                 deviceClassImg[23] = "network.gif";			
	deviceClass[24] = "" + PromptArray["DrvExp.js_936_1"] + "";                 deviceClassImg[24] = "network.gif";			
	deviceClass[25] = "" + PromptArray["DrvExp.js_937_1"] + "";                 deviceClassImg[25] = "network.gif";			
	deviceClass[26] = "" + PromptArray["DrvExp.js_938_1"] + "";                 deviceClassImg[26] = "network.gif";			
	deviceClass[27] = "" + PromptArray["DrvExp.js_939_1"] + "";                 deviceClassImg[27] = "hardware.gif";		
	deviceClass[28] = "" + PromptArray["DrvExp.js_940_1"] + "";                 deviceClassImg[28] = "port.gif";			
	deviceClass[29] = "" + PromptArray["DrvExp.js_941_1"] + "";                 deviceClassImg[29] = "printer.gif";			
	deviceClass[30] = "" + PromptArray["DrvExp.js_942_1"] + "";                 deviceClassImg[30] = "printer.gif";			
	deviceClass[31] = "" + PromptArray["DrvExp.js_943_1"] + "";                 deviceClassImg[31] = "cpu.gif";				
	deviceClass[32] = "" + PromptArray["DrvExp.js_944_1"] + "";                 deviceClassImg[32] = "scsi.gif";			
	deviceClass[33] = "" + PromptArray["DrvExp.js_945_1"] + "";                 deviceClassImg[33] = "hardware.gif";		
	deviceClass[34] = "" + PromptArray["DrvExp.js_946_1"] + "";                 deviceClassImg[34] = "minidisk.gif";		
	deviceClass[35] = "" + PromptArray["DrvExp.js_947_1"] + "";                 deviceClassImg[35] = "system.gif";			
	deviceClass[36] = "" + PromptArray["DrvExp.js_948_1"] + "";                 deviceClassImg[36] = "tape.gif";			
	deviceClass[37] = "" + PromptArray["DrvExp.js_949_1"] + "";                 deviceClassImg[37] = "usb.gif";				
	deviceClass[38] = "" + PromptArray["DrvExp.js_950_1"] + "";                 deviceClassImg[38] = "card.gif";			
	deviceClass[39] = "" + PromptArray["DrvExp.js_951_1"] + "";                 deviceClassImg[39] = "hardware.gif";		
	deviceClass[40] = "" + PromptArray["DrvExp.js_952_1"] + "";                 deviceClassImg[40] = "hardware.gif";		
	deviceClass[41] = "" + PromptArray["DrvExp.js_953_1"] + "";                 deviceClassImg[41] = "computer.gif";		
	deviceClass[42] = "" + PromptArray["DrvExp.js_954_1"] + "";                 deviceClassImg[42] = "system.gif";			
	deviceClass[43] = "" + PromptArray["DrvExp.js_955_1"] + "";                 deviceClassImg[43] = "hardware.gif";		
	deviceClass[44] = "" + PromptArray["DrvExp.js_956_1"] + "";                 deviceClassImg[44] = "nonpnp.gif";			
	deviceClass[45] = "" + PromptArray["DrvExp.js_957_1"] + "";                 deviceClassImg[45] = "nonpnp.gif";			
	deviceClass[46] = "" + PromptArray["DrvExp.js_958_1"] + "";                 deviceClassImg[46] = "unknown.gif";			
	deviceClass[47] = "" + PromptArray["DrvExp.js_959_1"] + "";                 deviceClassImg[47] = "printer.gif";			
	deviceClass[48] = "" + PromptArray["DrvExp.js_960_1"] + "";                 deviceClassImg[48] = "game.gif";			

	var DevStatusFlags  = new Array;

	
	var DevStatusString = new Array;

	DevStatusFlags[ 1] = 0x00000001 ;DevStatusString[ 1] = "" + PromptArray["DrvExp.js_967_1"] + "";						
	DevStatusFlags[ 2] = 0x00000002 ;DevStatusString[ 2] = "" + PromptArray["DrvExp.js_968_1"] + "";					    
	DevStatusFlags[ 3] = 0x00000004 ;DevStatusString[ 3] = "" + PromptArray["DrvExp.js_969_1"] + "";					    
	DevStatusFlags[ 4] = 0x00000008 ;DevStatusString[ 4] = "" + PromptArray["DrvExp.js_970_1"] + "";					    
	DevStatusFlags[ 5] = 0x00000010 ;DevStatusString[ 5] = "" + PromptArray["DrvExp.js_971_1"] + "";						
	DevStatusFlags[ 6] = 0x00000020 ;DevStatusString[ 6] = "" + PromptArray["DrvExp.js_972_1"] + "";						
	DevStatusFlags[ 7] = 0x00000040 ;DevStatusString[ 7] = "" + PromptArray["DrvExp.js_973_1"] + "";			            
	DevStatusFlags[ 8] = 0x00000080 ;DevStatusString[ 8] = "" + PromptArray["DrvExp.js_974_1"] + "";						
	DevStatusFlags[ 9] = 0x00000100 ;DevStatusString[ 9] = "" + PromptArray["DrvExp.js_975_1"] + "";			            
	DevStatusFlags[10] = 0x00000200 ;DevStatusString[10] = "" + PromptArray["DrvExp.js_976_1"] + "";			            
	DevStatusFlags[11] = 0x00000400 ;DevStatusString[11] = "" + PromptArray["DrvExp.js_977_1"] + "";					    
	DevStatusFlags[12] = 0x00000800 ;DevStatusString[12] = "" + PromptArray["DrvExp.js_978_1"] + "";						
	DevStatusFlags[13] = 0x00001000 ;DevStatusString[13] = "" + PromptArray["DrvExp.js_979_1"] + "";						
	DevStatusFlags[14] = 0x00002000 ;DevStatusString[14] = "" + PromptArray["DrvExp.js_980_1"] + "";			            
	DevStatusFlags[15] = 0x00004000 ;DevStatusString[15] = "" + PromptArray["DrvExp.js_981_1"] + "";						
	DevStatusFlags[16] = 0x00008000 ;DevStatusString[16] = "" + PromptArray["DrvExp.js_982_1"] + "";						
	DevStatusFlags[17] = 0x00010000 ;DevStatusString[17] = "" + PromptArray["DrvExp.js_983_1"] + "";						
	DevStatusFlags[18] = 0x00020000 ;DevStatusString[18] = "" + PromptArray["DrvExp.js_984_1"] + "";						
	DevStatusFlags[19] = 0x00040000 ;DevStatusString[19] = "" + PromptArray["DrvExp.js_985_1"] + "";					    
	DevStatusFlags[20] = 0x00080000 ;DevStatusString[20] = "" + PromptArray["DrvExp.js_986_1"] + "";			            
	DevStatusFlags[21] = 0x00100000 ;DevStatusString[21] = "" + PromptArray["DrvExp.js_987_1"] + "";					    
	DevStatusFlags[22] = 0x00200000 ;DevStatusString[22] = "" + PromptArray["DrvExp.js_988_1"] + "";			            
	DevStatusFlags[23] = 0x00400000 ;DevStatusString[23] = "" + PromptArray["DrvExp.js_989_1"] + "";		                
	DevStatusFlags[24] = 0x00800000 ;DevStatusString[24] = "";
	DevStatusFlags[25] = 0x01000000 ;DevStatusString[25] = "";
	DevStatusFlags[26] = 0x02000000 ;DevStatusString[26] = "" + PromptArray["DrvExp.js_992_1"] + "";					    
	DevStatusFlags[27] = 0x04000000 ;DevStatusString[27] = "" + PromptArray["DrvExp.js_993_1"] + "";				        
	DevStatusFlags[28] = 0x08000000 ;DevStatusString[28] = "" + PromptArray["DrvExp.js_994_1"] + "";				        
	DevStatusFlags[29] = 0x10000000 ;DevStatusString[29] = "" + PromptArray["DrvExp.js_995_1"] + "";				        
	DevStatusFlags[30] = 0x20000000 ;DevStatusString[30] = "" + PromptArray["DrvExp.js_996_1"] + "";                        
	DevStatusFlags[31] = 0x40000000 ;DevStatusString[31] = "" + PromptArray["DrvExp.js_997_1"] + "";			            
	DevStatusFlags[32] = 0x80000000 ;DevStatusString[32] = "" + PromptArray["DrvExp.js_998_1"] + "";					    

    
    
    
    
    var DevProblem = new Array;
	DevProblem[" 1,1"]	= 0x00000001;  DevProblem[" 2,1"]  = "" + PromptArray["DrvExp.js_1001_1"] + "";
	DevProblem[" 1,2"]	= 0x00000002;  DevProblem[" 2,2"]  = "" + PromptArray["DrvExp.js_1002_1"] + "";
	DevProblem[" 1,3"]	= 0x00000003;  DevProblem[" 2,3"]  = "" + PromptArray["DrvExp.js_1003_1"] + "";
	DevProblem[" 1,4"]	= 0x00000004;  DevProblem[" 2,4"]  = "" + PromptArray["DrvExp.js_1004_1"] + "";
	DevProblem[" 1,5"]	= 0x00000005;  DevProblem[" 2,5"]  = "" + PromptArray["DrvExp.js_1005_1"] + "";
	DevProblem[" 1,6"]	= 0x00000006;  DevProblem[" 2,6"]  = "" + PromptArray["DrvExp.js_1006_1"] + "";
	DevProblem[" 1,7"]	= 0x00000007;  DevProblem[" 2,7"]  = "" + PromptArray["DrvExp.js_1007_1"] + "";
	DevProblem[" 1,8"]	= 0x00000008;  DevProblem[" 2,8"]  = "" + PromptArray["DrvExp.js_1008_1"] + "";
	DevProblem[" 1,9"]	= 0x00000009;  DevProblem[" 2,9"]  = "" + PromptArray["DrvExp.js_1009_1"] + "";
	DevProblem[" 1,10"] = 0x0000000A;  DevProblem[" 2,10"] = "" + PromptArray["DrvExp.js_1010_1"] + "";
	DevProblem[" 1,11"] = 0x0000000B;  DevProblem[" 2,11"] = "" + PromptArray["DrvExp.js_1011_1"] + "";
	DevProblem[" 1,12"] = 0x0000000C;  DevProblem[" 2,12"] = "" + PromptArray["DrvExp.js_1012_1"] + "";
	DevProblem[" 1,13"] = 0x0000000D;  DevProblem[" 2,13"] = "" + PromptArray["DrvExp.js_1013_1"] + "";
	DevProblem[" 1,14"] = 0x0000000E;  DevProblem[" 2,14"] = "" + PromptArray["DrvExp.js_1014_1"] + "";
	DevProblem[" 1,15"] = 0x0000000F;  DevProblem[" 2,15"] = "" + PromptArray["DrvExp.js_1015_1"] + "";
	DevProblem[" 1,16"] = 0x00000010;  DevProblem[" 2,16"] = "" + PromptArray["DrvExp.js_1016_1"] + "";
	DevProblem[" 1,17"] = 0x00000011;  DevProblem[" 2,17"] = "" + PromptArray["DrvExp.js_1017_1"] + "";
	DevProblem[" 1,18"] = 0x00000012;  DevProblem[" 2,18"] = "" + PromptArray["DrvExp.js_1018_1"] + "";
	DevProblem[" 1,19"] = 0x00000013;  DevProblem[" 2,19"] = "" + PromptArray["DrvExp.js_1019_1"] + "";           
	DevProblem[" 1,20"] = 0x00000014;  DevProblem[" 2,20"] = "" + PromptArray["DrvExp.js_1020_1"] + "";      
	DevProblem[" 1,21"] = 0x00000015;  DevProblem[" 2,21"] = "" + PromptArray["DrvExp.js_1021_1"] + "";        
	DevProblem[" 1,22"] = 0x00000016;  DevProblem[" 2,22"] = "" + PromptArray["DrvExp.js_1022_1"] + "";        
	DevProblem[" 1,23"] = 0x00000017;  DevProblem[" 2,23"] = "" + PromptArray["DrvExp.js_1023_1"] + ""; 
	DevProblem[" 1,24"] = 0x00000018;  DevProblem[" 2,24"] = "" + PromptArray["DrvExp.js_1024_1"] + "";           
	DevProblem[" 1,25"] = 0x00000019;  DevProblem[" 2,25"] = "" + PromptArray["DrvExp.js_1025_1"] + "";        
	DevProblem[" 1,26"] = 0x0000001A;  DevProblem[" 2,26"] = "" + PromptArray["DrvExp.js_1026_1"] + "";                
	DevProblem[" 1,27"] = 0x0000001B;  DevProblem[" 2,27"] = "" + PromptArray["DrvExp.js_1027_1"] + "";             
	DevProblem[" 1,28"] = 0x0000001C;  DevProblem[" 2,28"] = "" + PromptArray["DrvExp.js_1028_1"] + "";                
	DevProblem[" 1,29"] = 0x0000001D;  DevProblem[" 2,29"] = "" + PromptArray["DrvExp.js_1029_1"] + "";                  
	DevProblem[" 1,30"] = 0x0000001E;  DevProblem[" 2,30"] = "" + PromptArray["DrvExp.js_1030_1"] + "";             
	DevProblem[" 1,31"] = 0x0000001F;  DevProblem[" 2,31"] = "" + PromptArray["DrvExp.js_1031_1"] + ""; 
	DevProblem[" 1,32"] = 0x00000020;  DevProblem[" 2,32"] = "" + PromptArray["DrvExp.js_1032_1"] + "";                
	DevProblem[" 1,33"] = 0x00000021;  DevProblem[" 2,33"] = "" + PromptArray["DrvExp.js_1033_1"] + "";                
	DevProblem[" 1,34"] = 0x00000022;  DevProblem[" 2,34"] = "" + PromptArray["DrvExp.js_1034_1"] + "";                  
	DevProblem[" 1,35"] = 0x00000023;  DevProblem[" 2,35"] = "" + PromptArray["DrvExp.js_1035_1"] + "";           
	DevProblem[" 1,36"] = 0x00000024;  DevProblem[" 2,36"] = "" + PromptArray["DrvExp.js_1036_1"] + "";                 
	DevProblem[" 1,37"] = 0x00000025;  DevProblem[" 2,37"] = "" + PromptArray["DrvExp.js_1037_1"] + "";
	DevProblem[" 1,38"] = 0x00000026;  DevProblem[" 2,38"] = "" + PromptArray["DrvExp.js_1038_1"] + "";


	var DrvBackupStatusFlags  = new Array;
	var DrvBackupStatusString = new Array;

	DrvBackupStatusFlags[ 1] = 0x00000001 ; DrvBackupStatusString[ 1] = "" + PromptArray["DrvExp.js_1044_1"] + "";
	DrvBackupStatusFlags[ 2] = 0x00000002 ; DrvBackupStatusString[ 2] = "" + PromptArray["DrvExp.js_1045_1"] + "";
	DrvBackupStatusFlags[ 3] = 0x00000004 ; DrvBackupStatusString[ 3] = "" + PromptArray["DrvExp.js_1046_1"] + "";
	DrvBackupStatusFlags[ 4] = 0x00000008 ; DrvBackupStatusString[ 4] = "" + PromptArray["DrvExp.js_1047_1"] + "";
	DrvBackupStatusFlags[ 5] = 0x00000010 ; DrvBackupStatusString[ 5] = "" + PromptArray["DrvExp.js_1048_1"] + "";
	DrvBackupStatusFlags[ 6] = 0x00000020 ; DrvBackupStatusString[ 6] = "" + PromptArray["DrvExp.js_1049_1"] + "";			
	DrvBackupStatusFlags[ 7] = 0x00000040 ; DrvBackupStatusString[ 7] = "" + PromptArray["DrvExp.js_1050_1"] + "";	
	DrvBackupStatusFlags[ 8] = 0x00000080 ; DrvBackupStatusString[ 8] = "" + PromptArray["DrvExp.js_1051_1"] + "";
	DrvBackupStatusFlags[ 9] = 0x00000100 ; DrvBackupStatusString[ 9] = "" + PromptArray["DrvExp.js_1052_1"] + "";
	DrvBackupStatusFlags[10] = 0x00000200 ; DrvBackupStatusString[10] = "";
	DrvBackupStatusFlags[11] = 0x00000400 ; DrvBackupStatusString[11] = "";
	DrvBackupStatusFlags[12] = 0x00000800 ; DrvBackupStatusString[12] = "";
	DrvBackupStatusFlags[13] = 0x00001000 ; DrvBackupStatusString[13] = "";
	DrvBackupStatusFlags[14] = 0x00002000 ; DrvBackupStatusString[14] = "";
	DrvBackupStatusFlags[15] = 0x00004000 ; DrvBackupStatusString[15] = "";
	DrvBackupStatusFlags[16] = 0x00080000 ; DrvBackupStatusString[16] = "" + PromptArray["DrvExp.js_1059_1"] + "";	
	DrvBackupStatusFlags[17] = 0x00010000 ; DrvBackupStatusString[17] = "" + PromptArray["DrvExp.js_1060_1"] + "";
	DrvBackupStatusFlags[18] = 0x00020000 ; DrvBackupStatusString[18] = "" + PromptArray["DrvExp.js_1061_1"] + "";
	DrvBackupStatusFlags[19] = 0x00040000 ; DrvBackupStatusString[19] = "" + PromptArray["DrvExp.js_1062_1"] + "";
	DrvBackupStatusFlags[20] = 0x00008000 ; DrvBackupStatusString[20] = "";
	DrvBackupStatusFlags[21] = 0x00100000 ; DrvBackupStatusString[21] = "" + PromptArray["DrvExp.js_1064_1"] + "";
	DrvBackupStatusFlags[22] = 0x00200000 ; DrvBackupStatusString[22] = "" + PromptArray["DrvExp.js_1065_1"] + "";
	DrvBackupStatusFlags[23] = 0x00400000 ; DrvBackupStatusString[23] = "" + PromptArray["DrvExp.js_1066_1"] + "";
	DrvBackupStatusFlags[24] = 0x00800000 ; DrvBackupStatusString[24] = "";
	DrvBackupStatusFlags[25] = 0x01000000 ; DrvBackupStatusString[25] = "";
	DrvBackupStatusFlags[26] = 0x02000000 ; DrvBackupStatusString[26] = "";
	DrvBackupStatusFlags[27] = 0x04000000 ; DrvBackupStatusString[27] = "";
	DrvBackupStatusFlags[28] = 0x08000000 ; DrvBackupStatusString[28] = "";
	DrvBackupStatusFlags[29] = 0x10000000 ; DrvBackupStatusString[29] = "";
	DrvBackupStatusFlags[30] = 0x20000000 ; DrvBackupStatusString[30] = "";
	DrvBackupStatusFlags[31] = 0x40000000 ; DrvBackupStatusString[31] = "";
	DrvBackupStatusFlags[32] = 0x80000000 ; DrvBackupStatusString[32] = "";

	
	
	DeviceInfo["0"]			= ItemNumber;
	
	DeviceInfo["1"]			= OrgDeviceInfo[CurrentRow + ",1"] ; 

	
	(deviceClass[OrgDeviceInfo[CurrentRow + ",2"]]) 
		? DeviceInfo["2"]	= 
							
							
							
							
							
							
							
							"<img border='0' src='img/"
							+ deviceClassImg[OrgDeviceInfo[CurrentRow + ",2"]] + "' "
							+ " alt='" + deviceClass[OrgDeviceInfo[CurrentRow + ",2"]] 
							+ "' width='16' height='16' "
							+ " id='img" + ItemNumber + "'" 
							+ " onMouseMove='this.style.cursor=\"help\"' "
							
							
							+ " onMoveOut=DeviceMouseMoveOutEvent('" + ItemNumber + "')" 
							+ " >" 
		: DeviceInfo["2"]	= 
							
							
							
							
							
							
							"<img border='0' src='img/unknown.gif'"
                            
							+ "alt='" + PromptArray["drvimp.js_1921_1"] + "" + OrgDeviceInfo[CurrentRow + ",2"] + ""
							+ "' width='16' height='16' "
							+ " id='img" + ItemNumber + "'" 
							+ " onMouseMove='this.style.cursor=\"help\"' "
							
							
							+ " onMoveOut=DeviceMouseMoveOutEvent('" + ItemNumber + "')" 
							+ " >";
	
	
	var Stat2			= OrgDeviceInfo[CurrentRow + ",4"] ; 
	var resu2			= Stat2 &  DevStatusFlags[31];
	
	
	if (OrgDeviceInfo[CurrentRow + ",3"])
	{
		DeviceInfo["3"]			= "<img border='0' src='img/3.gif'" 
							+ " onMouseMove='this.style.cursor=\"help\"' "
							+ "alt='" + PromptArray["drvimp.js_1939_1"] + "'>";
	}
	else if (resu2)
	{
		DeviceInfo["3"]			= "<img border='0' src='img/4.GIF'" 
							+ " onMouseMove='this.style.cursor=\"help\"' "
							+ "alt='" + PromptArray["drvimp.js_1945_1"] + "'>";
	}
	else
	{
		DeviceInfo["3"]			= " ";
	}
	
	
	var str = "";
	for (j=1;j<=32;j++)
	{
		var Stat = OrgDeviceInfo[CurrentRow + ",4"] ; 
		var resu = Stat & DevStatusFlags[j] ;
		if( resu > 0 )
		{
			if (DevStatusString[j]) 
				str = str +  DevStatusString[j] + "," ;
		}
	}
	if (OrgDeviceInfo[CurrentRow + ",4"])
	{
		str += "Code:0x" + OrgDeviceInfo[CurrentRow + ",4"].toString(16);
	}

	var Stat2			= OrgDeviceInfo[CurrentRow + ",4"] ; 
	var resu2			= Stat2 &  DevStatusFlags[11];		 
	var resu1			= Stat2 &  DevStatusFlags[9];		 
	if (resu2 || resu1)	
	{
		DeviceInfo["4"]			= "<img border='0' src='img/checkbug.gif'" 
							+ " onMouseMove='this.style.cursor=\"help\"' "
							+ "width='16' height='16' alt='" 
							+ str 
							+ "'>";
	}
	else
	{
		DeviceInfo["4"]			= "<img border='0' src='img/4.GIF'" 
							+ " onMouseMove='this.style.cursor=\"help\"' "
							
							+ "alt='" 
							+ str 
							+ "'>";
	}
    
    
    
    
    DeviceInfo["4"] = " "

	
	
	if (OrgDeviceInfo[CurrentRow + ",5"] > 38 ) 
	{
		
		var prob = "(code:" + OrgDeviceInfo[CurrentRow + ",5"] + ")";
		DeviceInfo["5"]	= "<img border='0' "
							+"src='img/error1.GIF'"
							+ " onMouseMove='this.style.cursor=\"help\"' "
							+ " width=16 height=16 "
							+ " alt='" + prob + "'>";

	}
	else
	{
		var prob = DevProblem[" 2," + OrgDeviceInfo[CurrentRow + ",5"] ] 
					+ "(code:" + OrgDeviceInfo[CurrentRow + ",5"] + ")";
		
		if (OrgDeviceInfo[CurrentRow + ",5"] != 0)
		{
			DeviceInfo["5"]	= "<img border='0' "
								+"src='img/error1.GIF'"
								+ " onMouseMove='this.style.cursor=\"help\"' "
								+ " width=16 height=16 "
								+ " alt='" + prob + "'>";
		}
		else
		{	
			DeviceInfo["5"]			= " ";
		}
	}
    
    
    
    
    DeviceInfo["5"] = " ";  

    
	
	(deviceClass[OrgDeviceInfo[CurrentRow + ",2"]]) 
		? DeviceInfo["6"] = ""
					+ "<SPAN style='color: green;font-style: normal;font-family: " + PromptArray["drvimp.js_2036_1"] + ";'"
					+ " VALIGN='top'"
					+ " onMouseMove='this.style.color=\"red\";this.style.cursor=\"hand\"'"
					+ " onMouseOut='this.style.color=\"green\";this.style.fontStyle=\"normal\";'"
					
					+ " >"
					+ OrgDeviceInfo[CurrentRow + ",6"] 
                    
					
                    + "</SPAN>"
		: DeviceInfo["6"] =""
					+ "<SPAN style='color: green;font-style: normal;font-family: " + PromptArray["drvimp.js_2047_1"] + ";'"
					+ " VALIGN='top'"
					+ " onMouseMove='this.style.color=\"red\";this.style.cursor=\"hand\"'"
					+ " onMouseOut='this.style.color=\"green\";this.style.fontStyle=\"normal\";'"
					
					+ " >" 
					+ OrgDeviceInfo[CurrentRow + ",6"] 
                    
					
                    + "</SPAN>"


	
	
	
	var str = "";
	var Stat = OrgDeviceInfo[CurrentRow + ",7"];

	
	if 	(!(Stat & 0x00000010))   str += "" + PromptArray["drvimp.js_2066_1"] + ",";
	
	
	if 	(!(Stat & 0x00080000))   
	{
		str += "" + PromptArray["drvimp.js_2071_1"] + ",";
	}
	
	
	else
	{
		str += "";
	}

	
	for (j=1;j<=32;j++)
	{
		var Stat = OrgDeviceInfo[CurrentRow + ",7"] ; 
		var resu = Stat & DrvBackupStatusFlags[j] ;
		if( resu > 0 )
		{
			if (DrvBackupStatusString[j]) 
				str = str +  DrvBackupStatusString[j] + "," ;
		}
	}
	if (OrgDeviceInfo[CurrentRow + ",7"])
	{
		str += "Code:0x" + OrgDeviceInfo[CurrentRow + ",7"].toString(16);
	}

	var Stat2 = OrgDeviceInfo[CurrentRow + ",7"] ; 
	
	
	if ( (Stat2 & 0x00080000) && (Stat2 & 0x00000010) )
	{
		DeviceInfo["7"]		= "<img border='0' src='img/6.gif'" 
							
							+ " onMouseMove='this.style.cursor=\"help\"' "
							+ "alt='" 
							+ str 
							+ "'>";
	}
	
	else if (Stat2 & 0x00000010)
	{
		DeviceInfo["7"]		= "<img border='0' src='img/3.gif'" 
							
							+ " onMouseMove='this.style.cursor=\"help\"' "
							+ "alt='" 
							+ str 
							+ "'>";
	}
	
	else if(Stat2 & 0x00080000)
	{
		DeviceInfo["7"]		= "<img border='0' src='img/1.GIF'" 
							
							+ " onMouseMove='this.style.cursor=\"help\"' "
							+ "alt='"
							+ str
							+ "'>";
	}
	
	
	
	

	
	
	else
	{
		DeviceInfo["7"]		= "<img border='0' src='img/4.GIF'" 
							
							+ " onMouseMove='this.style.cursor=\"help\"' "
							+ "alt='" 
							+ str 
							+ "'>";
	}
    
    
    
    
    DeviceInfo["7"]  = " "
}

function RunDriverExportToServerOpenProcess( DeviceInfo )
{
    DisplayMessage("" + PromptArray["drvimp.js_2153_1"] + "[" + DeviceInfo[6] + "](#" + DeviceInfo[1] + ")");
    DriverExportToServerOpenProcess( DeviceInfo );
}



function DriverExportToServerOpenProcess( OrgDeviceInfo )
{
	
	var DeviceInfo   = new Array;
    var DeviceInfoArray = new Array()

	var DeviceNumber,TableItem;
	var DeviceName;
        SaveDeviceInfoToArray( OrgDeviceInfo ,DeviceInfoArray , 0);
		TranslateDeviceInfoToArray( DeviceInfo , DeviceInfoArray , 0 , 0 );

	
	DeleteDeviceTable();
	CreateDeviceTable();

	
	oRow = document.createElement("TR");

	oCell = document.createElement("TD");

	oCell.vAlign	="top"; 
	oCell.width     ="60"

	oRow.appendChild(oCell);

	oCell = document.createElement("TD");
	oCell.innerHTML	= DeviceInfo[7];
	oCell.vAlign	="top"; 

	oRow.appendChild(oCell);

	oCell = document.createElement("TD");
	oCell.innerHTML	= DeviceInfo[3];
	oCell.vAlign	="top"; 

	oRow.appendChild(oCell);

	oCell = document.createElement("TD");
	oCell.innerHTML	= DeviceInfo[4];
	oCell.vAlign	="top"; 

	oRow.appendChild(oCell);

	oCell = document.createElement("TD");
	oCell.innerHTML	= DeviceInfo[5];
	oCell.vAlign	="top"; 

	oRow.appendChild(oCell);
	
	oCell = document.createElement("TD");
	oCell.innerHTML	= DeviceInfo[2];
	oCell.vAlign	="top"; 

	oRow.appendChild(oCell);

	oCell = document.createElement("TD");
	var innerHTML = ""
					+ "<SPAN style='font-style: normal;font-family: " + PromptArray["drvimp.js_2216_1"] + ";' "
					
					
					
					
					
					+ ">" + DeviceInfo[6]
					+ "</SPAN>&nbsp;&nbsp;"
					+ "<br><br><span id='ProcessingInfo'>" + PromptArray["drvimp.js_2224_1"] + "...</span>";

	oCell.innerHTML	= innerHTML ;			
	oCell.vAlign	="top"; 
	oRow.appendChild(oCell);

	g_oTBody0.appendChild(oRow);

	oTableContainer.align="left"
}



function RunDriverExportToServerCloseProcess( DeviceInfo )
{
    DisplayMessage("" + PromptArray["drvimp.js_2239_1"] + "[" + DeviceInfo[6] + "](#" + DeviceInfo[1] + ")");
    DriverExportToServerCloseProcess();
}



function DriverExportToServerCloseProcess()
{
	














	
	
	DeleteDeviceTable();

	
}




function ApplyReEnumDevicesEvent()
{
    
    g_OSEnumDevFlag = 0

	EnumDevice(1);
	return 0;
}





function DeviceMouseMoveInEvent(row)
{

}



function DeviceMouseMoveOutEvent(row)
{

}




function GetXmlSingleNodeText( Xml , NodeTag )
{
	var xmlDoc = new ActiveXObject("Microsoft.XMLDOM")
	xmlDoc.async = false;
	xmlDoc.loadXML( Xml );
	if (!xmlDoc) return(null)
	var objNode = xmlDoc.selectSingleNode("\/\/" + NodeTag )
	if (!objNode) return (null)
	var text = objNode.text
	xmlDoc = null

return (text)
}
function GetHtmlLaunchPath()
{
	
    
	
	
    
	
    var UrlPathname = ""
	var UrlHostname = ""
    try
    {
        UrlPathname = document.location.pathname;	
	    UrlHostname = document.location.hostname;	
    }
    catch (e)
    {
    }

    
	
	if (UrlHostname == "")
	{
		UrlPathname = UrlPathname.replace( /%20/gi , " ");
		if (UrlPathname.charAt(0) == "/")
		{
			
			UrlPathname = UrlPathname.substring(1 , UrlPathname.lastIndexOf("\\")); 
		}
		else
		{
			UrlPathname = UrlPathname.substring(0 , UrlPathname.lastIndexOf("\\")); 
		}
	}
	
	else
	{
        
		return ""
	}
	return (UrlPathname)
}

function DynaLoadClientLogoAndADHTML()
{
	
	if (!g_AppLaunchPath)
	{
		var hKey4 = DrvCert.RegOpenKey( 2 , "SOFTWARE\\Walker\\DrvInst\\Setup")
		if ( hKey4 )
		{
			g_DrvInstLogFilePath = DrvCert.RegQueryValue( hKey4 , "DrvInstLogFilePath" )
			if ( g_DrvInstLogFilePath )
			{
				g_AppLaunchPath = g_DrvInstLogFilePath.substring( 0 , g_DrvInstLogFilePath.lastIndexOf("\\") )
			}
		}
	}
	
	
	
	var FileNameXml = DrvCert.FindFileInPath( g_AppLaunchPath + "\\" + LOGO_FILE_SUB_DIR_FILENAME ) ;
    var CabFileName = GetXmlSingleNodeText( FileNameXml , "FileItem0" )
    if ( CabFileName ) 
	{
		if ( LOGO_FILE_LINK_TO_URL )																
		{
			LogoDiv.innerHTML = '<A href="' + LOGO_FILE_LINK_TO_URL + '">'								
							  + '<IMG src="' + LOGO_FILE_SUB_DIR_FILENAME + '" border=0 ALT=""></A>'
		}
		else
		{
			LogoDiv.innerHTML = '<IMG src="' + LOGO_FILE_SUB_DIR_FILENAME + '" border=0 ALT="" >'
		}
	}
	var FileNameXml = DrvCert.FindFileInPath( g_AppLaunchPath + "\\" + AD_FILE_SUB_DIR_FILENAME ) ; 
	var CabFileName = GetXmlSingleNodeText( FileNameXml , "FileItem0" )
    if ( CabFileName ) 
	{
		
		if ( CabFileName.search(/\.swf$/i) != -1 )
		{
			var objHtml = ""
			objHtml += '<OBJECT classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000 '
			objHtml += '      codeBase=http:\/\/download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0 '
			objHtml += '      height=60 width=468>'
			objHtml += '	  <PARAM NAME="movie" VALUE=' + AD_FILE_SUB_DIR_FILENAME + '>'
			objHtml += '	  <PARAM NAME="quality" VALUE="high">'
			objHtml += '      <embed src=' + AD_FILE_SUB_DIR_FILENAME + 'quality=high pluginspage="http:\/\/www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="468" height="60"></embed>'
			objHtml += '</OBJECT>'
			if ( AD_FILE_LINK_TO_URL )																	
			{
				ADDiv.innerHTML =	'<A href="' + AD_FILE_LINK_TO_URL + '">' + objHtml + '</A>'
			}
			else
			{
				ADDiv.innerHTML =	objHtml
			}
		}
		
		else if ( CabFileName.search(/\.gif$/i) != -1 )
		{
			if ( AD_FILE_LINK_TO_URL )																	
			{
				ADDiv.innerHTML =	'<A href="' + AD_FILE_LINK_TO_URL + '">'								
								  + '<IMG src="' + AD_FILE_SUB_DIR_FILENAME + '" border=0 ALT=""></A>'
			}
			else
			{
				ADDiv.innerHTML =	'<IMG src="' + AD_FILE_SUB_DIR_FILENAME + '" border=0 ALT="">'
			}
		}
	}

}
function BackupSystemDrivers()
{
	var stock = new Array()

	Title.innerHTML = '<br><center>' + PromptArray["drvimp.js_2432_1"] + '...<br></center>'
	                + '<br>'
					+ '<table align=center id=PercentTbl width=400 bgColor=black border=0 cellSpacing=0 cellPadding=0 >'
					+ '<tr><td>'
					+ '  <IMG id="PercentImg" SRC="img/img.gif" WIDTH="0" HEIGHT="16" BORDER=0>'
					+ '</td></tr></table>'
					+ '<div id=PercentString>&nbsp;</div>'
    
	

	var TotalBackupDrivers = 0
	for (var i=0; i<g_NormalSystemDeviceRows ; i++)
	{
		ReadArrayToDeviceInfo(stock , g_NormalSystemDeviceInfoArray , i);
		
		if ( !(stock[3]) && !stock[5] && (stock[7] & 0x00000010) ) TotalBackupDrivers ++
	}
	var CurBackupDrvRow = 0
	for (var i=0; (i<g_NormalSystemDeviceRows) && TotalBackupDrivers; i++)
	{

		ReadArrayToDeviceInfo(stock , g_NormalSystemDeviceInfoArray , i);

		
		if ( !(stock[3]) && !stock[5] && (stock[7] & 0x00000010) )
		{
			DisplayMessage("" + PromptArray["drvimp.js_2458_1"] + "[" + stock[6] + "]" + PromptArray["drvimp.js_2458_2"] + "...");
            
        	DrvCert.UIRefresh()

			CurBackupDrvRow ++

            PercentImg.width=PercentTbl.width*(CurBackupDrvRow)/TotalBackupDrivers
            PercentString.innerHTML = '<center>' + Math.floor((CurBackupDrvRow)/TotalBackupDrivers*100) + '%</center>'

			RunDriverExportToServerOpenProcess( stock );	
			ProcessingInfo.innerHTML = '' + PromptArray["drvimp.js_2468_1"] + '...'
			DrvCert.UIRefresh()

			var err = DrvInst.BackupDriver(stock[1]);
			(!err)	? DisplayMessage("" + PromptArray["drvimp.js_2472_1"] + " - " + PromptArray["drvimp.js_2472_2"] + "[" + stock[6] + "]")
					: DisplayMessage("" + PromptArray["drvimp.js_2473_1"] + " - " + PromptArray["drvimp.js_2473_2"] + "[" + stock[6] + "]");

			
			RunDriverExportToServerCloseProcess( stock )
		}
	}
	Title.innerHTML = ''
}
function BackupUserDriver()
{
	var stock = new Array()

	Title.innerHTML = '<br><center>' + PromptArray["drvimp.js_2485_1"] + '...<br></center>'
	                + '<br>'
					+ '<table align=center id=PercentTbl width=400 bgColor=black border=0 cellSpacing=0 cellPadding=0 >'
					+ '<tr><td>'
					+ '  <IMG id="PercentImg" SRC="img/img.gif" WIDTH="0" HEIGHT="16" BORDER=0>'
					+ '</td></tr></table>'
					+ '<div id=PercentString>&nbsp;</div>'
    
	

	var TotalBackupDrivers = 0
	for (var i=0; i<g_UserDrvDeviceRows ; i++)
	{
		ReadArrayToDeviceInfo(stock , g_UserDrvDeviceInfoArray , i);
		
		if ( !(stock[3]) && !stock[5] && (stock[7] & 0x00000010) ) TotalBackupDrivers ++
	}
	var CurBackupDrvRow = 0
	for (var i=0; (i<g_UserDrvDeviceRows) && TotalBackupDrivers; i++)
	{

		ReadArrayToDeviceInfo(stock , g_UserDrvDeviceInfoArray , i);

		
		if ( !(stock[3]) && !stock[5] && (stock[7] & 0x00000010) )
		{
			DisplayMessage("" + PromptArray["drvimp.js_2511_1"] + "[" + stock[6] + "]" + PromptArray["drvimp.js_2511_2"] + "...");
            
        	DrvCert.UIRefresh()

			CurBackupDrvRow ++

            PercentImg.width=PercentTbl.width*(CurBackupDrvRow)/TotalBackupDrivers
            PercentString.innerHTML = '<center>' + Math.floor((CurBackupDrvRow)/TotalBackupDrivers*100) + '%</center>'

			RunDriverExportToServerOpenProcess( stock );	
			ProcessingInfo.innerHTML = '' + PromptArray["drvimp.js_2521_1"] + '...'
			DrvCert.UIRefresh()

			var err = DrvInst.BackupDriver(stock[1]);
			(!err)	? DisplayMessage("" + PromptArray["drvimp.js_2525_1"] + " - " + PromptArray["drvimp.js_2525_2"] + "[" + stock[6] + "]")
					: DisplayMessage("" + PromptArray["drvimp.js_2526_1"] + " - " + PromptArray["drvimp.js_2526_2"] + "[" + stock[6] + "]");

			
			RunDriverExportToServerCloseProcess( stock )
		}
	}
	Title.innerHTML = ''
}
function GetDriverExportStatusFromDB( UserID )
{
	var stock = new Array()

    var UpdateSystemDrvFlag = ( GetCookie( "UpdateSystemDrvFlag" ) == "true" )
    var CurSystemDeviceRows = ( UpdateSystemDrvFlag ) ? g_NormalSystemDeviceRows : 0 

    
	for (var i=0; i<g_DevErrDeviceRows ; i++)
	{

		ReadArrayToDeviceInfo( stock , g_DevErrDeviceInfoArray , i);

        DisplayMessage("" + PromptArray["drvimp.js_2547_1"] + "[" + stock[6] + "]" + PromptArray["drvimp.js_2547_2"] + "...");


        PercentImg.width=PercentTbl.width*(i+1)/( g_DevErrDeviceRows + g_UserDrvDeviceRows + CurSystemDeviceRows )
        PercentString.innerHTML = '<center>' + Math.floor((i+1)/( g_DevErrDeviceRows + g_UserDrvDeviceRows  + CurSystemDeviceRows )*100) + '%</center>'

        RunDriverExportToServerOpenProcess( stock );	

        ProcessingInfo.innerHTML = '' + PromptArray["drvimp.js_2555_1"] + '...'
        DrvCert.UIRefresh()

        
        
        
        var RetInfo = FindDriver( UserID , GetMainBoardInfo() , stock , GetOSInfo() )
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        if (RetInfo["Success"])
        {
            DisplayMessage("" + PromptArray["drvimp.js_2583_1"] + "[" + stock[6] + "]" + PromptArray["drvimp.js_2583_2"] + "")
            
            g_DevErrDeviceInfoArray[i+",20"] = true
            g_DevErrDeviceInfoArray[i+",UserID"         ] = RetInfo["UserID"]
            g_DevErrDeviceInfoArray[i+",DriverID"       ] = RetInfo["DriverID"]
            g_DevErrDeviceInfoArray[i+",DriverDate"     ] = RetInfo["DriverDate"]
            g_DevErrDeviceInfoArray[i+",DriverMfg"      ] = RetInfo["DriverMfg"]
            
            g_DevErrDeviceInfoArray[i+",DriverDesc"     ] = RetInfo["DriverDesc"]

            g_DevErrDeviceInfoArray[i+",NewUserID"      ] = RetInfo["NewUserID"]
            g_DevErrDeviceInfoArray[i+",NewDriverID"    ] = RetInfo["NewDriverID"]
            g_DevErrDeviceInfoArray[i+",NewDriverDate"  ] = RetInfo["NewDriverDate"]
            g_DevErrDeviceInfoArray[i+",NewDriverMfg"   ] = RetInfo["NewDriverMfg"]
            
            g_DevErrDeviceInfoArray[i+",NewDriverDesc"  ] = RetInfo["NewDriverDesc"]

            g_DeviceRowsCanImportDriver ++
        }
        else
        {
            
            g_DevErrDeviceInfoArray[i+",20"] = false
            
       		DisplayMessage("" + PromptArray["drvimp.js_2607_1"] + "[" + stock[6] + "]" + PromptArray["drvimp.js_2607_2"] + ":" + RetInfo["ErrorInfo"] )

            g_DevErrDeviceInfoArray[i+",NewUserID"      ] = RetInfo["NewUserID"]
            g_DevErrDeviceInfoArray[i+",NewDriverID"    ] = RetInfo["NewDriverID"]
            g_DevErrDeviceInfoArray[i+",NewDriverDate"  ] = RetInfo["NewDriverDate"]
            g_DevErrDeviceInfoArray[i+",NewDriverMfg"   ] = RetInfo["NewDriverMfg"]
            
            g_DevErrDeviceInfoArray[i+",NewDriverDesc"  ] = RetInfo["NewDriverDesc"]

        }

        
        RunDriverExportToServerCloseProcess( stock )
	}
    
	for (var i=0; i<g_UserDrvDeviceRows ; i++)
	{

		ReadArrayToDeviceInfo( stock , g_UserDrvDeviceInfoArray , i);

        DisplayMessage("" + PromptArray["drvimp.js_2627_1"] + "[" + stock[6] + "]" + PromptArray["drvimp.js_2627_2"] + "...");


        PercentImg.width=PercentTbl.width*(g_DevErrDeviceRows+i+1)/( g_DevErrDeviceRows + g_UserDrvDeviceRows  + CurSystemDeviceRows )
        PercentString.innerHTML = '<center>' + Math.floor((g_DevErrDeviceRows+i+1)/( g_DevErrDeviceRows + g_UserDrvDeviceRows  + CurSystemDeviceRows )*100) + '%</center>'

        RunDriverExportToServerOpenProcess( stock );	

        ProcessingInfo.innerHTML = '' + PromptArray["drvimp.js_2635_1"] + '...'
        DrvCert.UIRefresh()

        
        
        
        var RetInfo = FindDriver( UserID , GetMainBoardInfo() , stock , GetOSInfo() )
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        if ( RetInfo["Success"] )
        {
            DisplayMessage("" + PromptArray["drvimp.js_2663_1"] + "[" + stock[6] + "]" + PromptArray["drvimp.js_2663_2"] + "")
            
            g_UserDrvDeviceInfoArray[i+",20"          ] = true
            g_UserDrvDeviceInfoArray[i+",UserID"      ] = RetInfo["UserID"]
            g_UserDrvDeviceInfoArray[i+",DriverID"    ] = RetInfo["DriverID"]
            g_UserDrvDeviceInfoArray[i+",DriverDate"  ] = RetInfo["DriverDate"]
            g_UserDrvDeviceInfoArray[i+",DriverMfg"   ] = RetInfo["DriverMfg"]
            
            g_UserDrvDeviceInfoArray[i+",DriverDesc"  ] = RetInfo["DriverDesc"]

            g_UserDrvDeviceInfoArray[i+",NewUserID"      ] = RetInfo["NewUserID"]
            g_UserDrvDeviceInfoArray[i+",NewDriverID"    ] = RetInfo["NewDriverID"]
            g_UserDrvDeviceInfoArray[i+",NewDriverDate"  ] = RetInfo["NewDriverDate"]
            g_UserDrvDeviceInfoArray[i+",NewDriverMfg"   ] = RetInfo["NewDriverMfg"]
            
            g_UserDrvDeviceInfoArray[i+",NewDriverDesc"  ] = RetInfo["NewDriverDesc"]

        }
        else
        {
       		DisplayMessage("" + PromptArray["drvimp.js_2683_1"] + "[" + stock[6] + "]" + PromptArray["drvimp.js_2683_2"] + ":" + RetInfo["ErrorInfo"] )
            
            g_UserDrvDeviceInfoArray[i+",20"] = false

            g_UserDrvDeviceInfoArray[i+",NewUserID"      ] = RetInfo["NewUserID"]
            g_UserDrvDeviceInfoArray[i+",NewDriverID"    ] = RetInfo["NewDriverID"]
            g_UserDrvDeviceInfoArray[i+",NewDriverDate"  ] = RetInfo["NewDriverDate"]
            g_UserDrvDeviceInfoArray[i+",NewDriverMfg"   ] = RetInfo["NewDriverMfg"]
            
            g_UserDrvDeviceInfoArray[i+",NewDriverDesc"  ] = RetInfo["NewDriverDesc"]
            
        }
        
        if ( Date.parse( g_UserDrvDeviceInfoArray[i+",NewDriverDate"] ) > Date.parse( stock[11] ) )
        {
            g_DeviceRowsNeedUpdateDriver ++
        }

        
        RunDriverExportToServerCloseProcess( stock )
	}
    
    
	for (var i=0; i<g_NormalSystemDeviceRows && UpdateSystemDrvFlag ; i++)
	{

		ReadArrayToDeviceInfo( stock , g_NormalSystemDeviceInfoArray , i);

        DisplayMessage("" + PromptArray["drvimp.js_2711_1"] + "[" + stock[6] + "]" + PromptArray["drvimp.js_2711_2"] + "...");


        PercentImg.width=PercentTbl.width*(g_DevErrDeviceRows+g_UserDrvDeviceRows+i+1)/( g_DevErrDeviceRows + g_UserDrvDeviceRows + CurSystemDeviceRows )
        PercentString.innerHTML = '<center>' + Math.floor((g_DevErrDeviceRows+g_UserDrvDeviceRows+i+1)/( g_DevErrDeviceRows + g_UserDrvDeviceRows  + CurSystemDeviceRows )*100) + '%</center>'

        RunDriverExportToServerOpenProcess( stock );	

        ProcessingInfo.innerHTML = '' + PromptArray["drvimp.js_2719_1"] + '...'
        DrvCert.UIRefresh()

        
        
        
        var RetInfo = FindDriver( UserID , GetMainBoardInfo() , stock , GetOSInfo() )
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        if (RetInfo["Success"])
        {
            DisplayMessage("" + PromptArray["drvimp.js_2747_1"] + "[" + stock[6] + "]" + PromptArray["drvimp.js_2747_2"] + "")
            
            g_NormalSystemDeviceInfoArray[i+",20"           ] = true
            g_NormalSystemDeviceInfoArray[i+",UserID"       ] = RetInfo["UserID"]
            g_NormalSystemDeviceInfoArray[i+",DriverID"     ] = RetInfo["DriverID"]
            g_NormalSystemDeviceInfoArray[i+",DriverDate"   ] = RetInfo["DriverDate"]
            g_NormalSystemDeviceInfoArray[i+",DriverMfg"    ] = RetInfo["DriverMfg"]
            
            g_NormalSystemDeviceInfoArray[i+",DriverDesc"   ] = RetInfo["DriverDesc"]
            
            g_NormalSystemDeviceInfoArray[i+",NewUserID"      ] = RetInfo["NewUserID"]
            g_NormalSystemDeviceInfoArray[i+",NewDriverID"    ] = RetInfo["NewDriverID"]
            g_NormalSystemDeviceInfoArray[i+",NewDriverDate"  ] = RetInfo["NewDriverDate"]
            g_NormalSystemDeviceInfoArray[i+",NewDriverMfg"   ] = RetInfo["NewDriverMfg"]
            
            g_NormalSystemDeviceInfoArray[i+",NewDriverDesc"  ] = RetInfo["NewDriverDesc"]

        }
        else
        {
            
            g_NormalSystemDeviceInfoArray[i+",20"] = false
       		DisplayMessage("" + PromptArray["drvimp.js_2769_1"] + "[" + stock[6] + "]" + PromptArray["drvimp.js_2769_2"] + ":" + RetInfo["ErrorInfo"] )

            g_NormalSystemDeviceInfoArray[i+",NewUserID"      ] = RetInfo["NewUserID"]
            g_NormalSystemDeviceInfoArray[i+",NewDriverID"    ] = RetInfo["NewDriverID"]
            g_NormalSystemDeviceInfoArray[i+",NewDriverDate"  ] = RetInfo["NewDriverDate"]
            g_NormalSystemDeviceInfoArray[i+",NewDriverMfg"   ] = RetInfo["NewDriverMfg"]
            
            g_NormalSystemDeviceInfoArray[i+",NewDriverDesc"  ] = RetInfo["NewDriverDesc"]

        }
        
        
        if ( Date.parse( g_NormalSystemDeviceInfoArray[i+",NewDriverDate"] ) > Date.parse( stock[11] ) )
        {
            g_DeviceRowsNeedUpdateDriver ++
        }

        
        RunDriverExportToServerCloseProcess( stock )
	}

}
function GetDeviceExportDriverStatus( UserID , DeviceInfo )
{
	
	
	
	
	
	
	
	
	
	
	
	
	

	
	
	
    
    
    
    var DriverHashValueInBASE64 = ""
    
    if ( !DeviceInfo[5] )
    {
        var BackupDriverInfo = GetGivenDeviceBackupDriverInfo( DeviceInfo )
        
        
        if ( BackupDriverInfo["CATName"] )
        {
            var CatFileNameXml = DrvCert.FindFileInPath( BackupDriverInfo["DriverBackupPath"] + "\\" + BackupDriverInfo["CATName"] )
            var CatFileName = GetXmlSingleNodeText( CatFileNameXml , "FileItem0" )
            if ( CatFileName )
            {
                
                var CatBASE64 = DrvCert.GetBASE64StringFromBinFile( 
                                                    BackupDriverInfo["DriverBackupPath"] + "\\" + 
                                                    BackupDriverInfo["CATName"] )
                DriverHashValueInBASE64 = DrvCert.GetDataHash( CatBASE64 )
            }

        }
        
        
        
        if ( !BackupDriverInfo["CATName"] || (BackupDriverInfo["CATName"] && !DriverHashValueInBASE64) )
        {
            var InfFileNameXml = DrvCert.FindFileInPath( BackupDriverInfo["DriverBackupPath"] + "\\" + BackupDriverInfo["INFName"] )
            var InfFileName = GetXmlSingleNodeText( InfFileNameXml , "FileItem0" )
            if ( InfFileName )
            {
                
                var InfBASE64 = DrvCert.GetBASE64StringFromBinFile( BackupDriverInfo["DriverBackupPath"] + "\\" + 
                                                                         BackupDriverInfo["INFName"] )
                DriverHashValueInBASE64 = DrvCert.GetDataHash( InfBASE64 )
            }
        }
    }

	var SoapApplyURL = ServerName.value + SoapAspURL.value		

	var SoapRequestXML = ""
    
	
	SoapRequestXML += '<?xml version="1.0" standalone="no"?>\n'
	SoapRequestXML += '<SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http:\/\/schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http:\/\/schemas.xmlsoap.org/soap/envelope/">\n'
	SoapRequestXML += "   <SOAP-ENV:Header xmlns:wsu =\"http:\/\/schemas.xmlsoap.org/ws/2002/07/utility\" "
	SoapRequestXML += "                    xmlns:wsse=\"http:\/\/schemas.xmlsoap.org/ws/2002/07/secext\" >\n"
    SoapRequestXML += GetClientInfo()
	SoapRequestXML += "   </SOAP-ENV:Header>\n"
	SoapRequestXML += "   <SOAP-ENV:Body>\n"
	SoapRequestXML += "     <n:IfDriverExported xmlns:n=\"http:\/\/e-drivers.cn/soap/\">\n"
    SoapRequestXML += "         <UserID>"               + UserID                                                + "</UserID>\n"
    SoapRequestXML += "         <MatchingDeviceID>"     + XmlEncoding( DeviceInfo[10] )                         + "</MatchingDeviceID>\n"
    SoapRequestXML += "         <HardwareIDCompaIDs>"   + XmlEncoding( DeviceInfo[8] + DeviceInfo[9] )          + "</HardwareIDCompaIDs>\n"
    SoapRequestXML += "         <BackupDriverDate>"     + XmlEncoding( DeviceInfo[11] )                         + "</BackupDriverDate>\n"
    SoapRequestXML += "         <DriverHash>"           + DriverHashValueInBASE64                               + "</DriverHash>\n"
	SoapRequestXML += GetOSInfo() + "\n"
	SoapRequestXML += "     </n:IfDriverExported>\n"
	SoapRequestXML += "   </SOAP-ENV:Body>\n"
	SoapRequestXML += "</SOAP-ENV:Envelope>"
    
	
    var ReturnXML = MyXMLHttpRequest( SoapApplyURL , SoapRequestXML )
    
    

	if (ReturnXML == null || ReturnXML == "")
	{
        DisplayMessage( "" + PromptArray["drvimp.js_2881_1"] + "[" + DeviceInfo[6] + "]" + PromptArray["drvimp.js_2881_2"] + "\n" + PromptArray["drvimp.js_2881_3"] + ":\n" + SoapRequestXML )
        RetInfo["Success"       ] = false
        RetInfo["ErrorInfo"     ] = "" + PromptArray["drvimp.js_2883_1"] + "[" + DeviceInfo[6] + "]" + PromptArray["drvimp.js_2883_2"] + ""
		return ( RetInfo )
	}

    var RetInfo = new Array()

    var ErrorInfo = GetInfoByTagFromXml( ReturnXML, SOAP_RET_ERROR_STRING_TAG )
	if ( ErrorInfo ) 
	{
        DisplayMessage( "" + PromptArray["drvimp.js_2892_1"] + "[" + DeviceInfo[6] + "]" + PromptArray["drvimp.js_2892_2"] + ":\n" + ErrorInfo )
        RetInfo["Success"       ] = false
        RetInfo["ErrorInfo"     ] = ErrorInfo
        RetInfo["UserID"        ] = 0
        RetInfo["DriverID"      ] = 0
        RetInfo["DriverDate"    ] = ""
        RetInfo["DriverMfg"     ] = ""
        RetInfo["NewUserID"     ] = 0
        RetInfo["NewDriverID"   ] = 0
        RetInfo["NewDriverDate" ] = ""
        RetInfo["NewDriverMfg"  ] = ""
		return ( RetInfo )
	}
	else
	{
        DisplayMessage( "" + PromptArray["drvimp.js_2907_1"] + "[" + DeviceInfo[6] + "]" + PromptArray["drvimp.js_2907_2"] + "" )
        var ResultString         = GetInfoByTagFromXml( ReturnXML, "Result" )
        var ResultUserID         = GetInfoByTagFromXml( ReturnXML, "UserID" )
        var ResultDriverID       = GetInfoByTagFromXml( ReturnXML, "DriverID" )
        var ResultDriverDate     = GetInfoByTagFromXml( ReturnXML, "DriverDate" )
        var ResultDriverMfg      = GetInfoByTagFromXml( ReturnXML, "DriverMfg" )
        var ResultNewUserID      = GetInfoByTagFromXml( ReturnXML, "NewUserID" )
        var ResultNewDriverID    = GetInfoByTagFromXml( ReturnXML, "NewDriverID" )
        var ResultNewDriverDate  = GetInfoByTagFromXml( ReturnXML, "NewDriverDate" )
        var ResultNewDriverMfg   = GetInfoByTagFromXml( ReturnXML, "NewDriverMfg" )
        
        var ResultDriverDesc     = GetInfoByTagFromXml( ReturnXML, "DriverDesc" )
        var ResultNewDriverDesc  = GetInfoByTagFromXml( ReturnXML, "NewDriverDesc" )

        var CurPath = DrvCert.GetFolderPath( 32 )
        
        
        CurPath     = CurPath.substring( 0 , CurPath.lastIndexOf( "\\" ) )    
        CurPath     = CurPath + "\\Temp"
        var TmpFileName = CurPath + "\\DrvImp.TMP"
        DrvCert.DeleteFile( TmpFileName )
        
        if ( ResultDriverDesc )
        {
            DrvCert.SaveBASE64ToBinFile( ResultDriverDesc , TmpFileName )
            ResultDriverDesc = DrvCert.GetStringFromFile( TmpFileName )
            DrvCert.DeleteFile( TmpFileName )
        }
        if ( ResultNewDriverDesc )
        {
            DrvCert.SaveBASE64ToBinFile( ResultNewDriverDesc , TmpFileName )
            ResultNewDriverDesc = DrvCert.GetStringFromFile( TmpFileName )
            DrvCert.DeleteFile( TmpFileName )
        }
        

        RetInfo["Success"       ] = ( ResultString == "Success" ) ? true : false
        RetInfo["ErrorInfo"     ] = ""
        RetInfo["UserID"        ] = ResultUserID
        RetInfo["DriverID"      ] = ResultDriverID
        RetInfo["DriverDate"    ] = ResultDriverDate
        RetInfo["DriverMfg"     ] = ResultDriverMfg
        
        RetInfo["DriverDesc"    ] = ResultDriverDesc

        RetInfo["NewUserID"     ] = ResultNewUserID
        RetInfo["NewDriverID"   ] = ResultNewDriverID
        RetInfo["NewDriverDate" ] = ResultNewDriverDate
        RetInfo["NewDriverMfg"  ] = ResultNewDriverMfg
        
        RetInfo["NewDriverDesc" ] = ResultNewDriverDesc

		return ( RetInfo )
	}

}
function ListDriverForUpdate()
{
    var UserChoiceUseOthersDrvFlag = ( GetCookie( "DriverType" ) != "Private" ) 
    var UpdateSystemDrvFlag = ( GetCookie( "UpdateSystemDrvFlag" ) == "true" )

	
	
    
    
	{
		var stock = new Array()

		
        
		
		
		
		
		
		
        var ListUpdateTitleFlag = false
        
        oRow  = document.createElement("TR");
		oCell = document.createElement("TD");
		oCell.colSpan= g_maxcols
        
        
        
        
		
		oCell.innerHTML = "<span id=ListUpdateTag></span>"
		oRow.appendChild(oCell);
		g_oTBody0.appendChild(oRow);

        
        
        
        
        
        
		
        
		
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        var ListCurDeviceFlag  = true
        var HashValueExistFlag = false
        var hKey               = 0
        var oCell   , oCell2
        var oRow    , oRow2

		for (var i=0; i<g_NormalSystemDeviceRows && UpdateSystemDrvFlag; i++)
		{
            ReadArrayToDeviceInfo(stock , g_NormalSystemDeviceInfoArray , i)

            oCell = document.createElement("TD");
            oCell.align="right"

            
            
            ListCurDeviceFlag = true
            
            
            HashValueExistFlag = false
            
            if ( g_NormalSystemDeviceInfoArray[i+",DriverHash"] )
            {
                hKey = DrvCert.RegOpenKey( 2 , "SOFTWARE\\Walker\\MyDrivers")
                if (hKey)
                {
                    HashValueExistFlag = DrvCert.RegQueryValue( hKey , g_NormalSystemDeviceInfoArray[i+",DriverHash"] )
                    DrvCert.RegCloseKey( hKey )
                    hKey = null
                }
                
            }
            
            
            if (
                  UserChoiceUseOthersDrvFlag 
                 && 
                  
                  Date.parse( g_NormalSystemDeviceInfoArray[i+",NewDriverDate"] ) > Date.parse( stock[11] )
               )
            {
            
            
            
                
                
                
                if (  !HashValueExistFlag )
                {
                    
                    ListCurDeviceFlag = true
                    
                    
                    
                    g_MatchingDeviceInfo[ g_NormalSystemDeviceInfoArray[i+",FindDriverRetRow"] + ",ListedFlag" ] = true
                    
                    g_NormalSystemDeviceInfoArray[i+",CanUpdate"] = true
                    
                    
                    
                    
                    g_NormalSystemDeviceInfoArray[i+",21"] = false

                    
                    
                    oCell.innerHTML = '<INPUT TYPE="checkbox" onclick="g_NormalSystemDeviceInfoArray[' + i + '+ \',21\']=this.checked">'

                    
                    PushCurDeviceInfo( g_NormalSystemDeviceInfoArray , i , g_DeviceForUpdateListArray )
                }
                
                else
                {
                    
                    ListCurDeviceFlag = false
                    g_MatchingDeviceInfo[ g_NormalSystemDeviceInfoArray[i+",FindDriverRetRow"] + ",ListedFlag" ] = true
                    
                    g_NormalSystemDeviceInfoArray[i+",CanUpdate"] = false
                    g_NormalSystemDeviceInfoArray[i+",21"] = false
                    
                    
                    oCell.innerHTML = '<INPUT TYPE="checkbox" onclick="g_NormalSystemDeviceInfoArray[' + i + '+ \',21\']=this.checked">'
                    
                    PushCurDeviceInfo( g_NormalSystemDeviceInfoArray , i , g_DeviceForUpdateListArray )
                }
                
            }
            
            else if (    !UserChoiceUseOthersDrvFlag
                      && 
                         
                         ( g_NormalSystemDeviceInfoArray[i+",UserID"] == g_UserID ) 
                      &&
                         
                         Date.parse( g_NormalSystemDeviceInfoArray[i+",DriverDate"] ) > Date.parse( stock[11] )
                    )
            {
                
                ListCurDeviceFlag = true
                
                
                
                g_MatchingDeviceInfo[ g_NormalSystemDeviceInfoArray[i+",FindDriverRetRow"] + ",ListedFlag" ] = true
                
                g_NormalSystemDeviceInfoArray[i+",CanUpdate"] = true
                
                
                
                g_NormalSystemDeviceInfoArray[i+",21"] = false

                
                
                oCell.innerHTML = '<INPUT TYPE="checkbox" onclick="g_NormalSystemDeviceInfoArray[' + i + '+ \',21\']=this.checked">'

                
                PushCurDeviceInfo( g_NormalSystemDeviceInfoArray , i , g_DeviceForUpdateListArray )
            }
            
            else if (    !UserChoiceUseOthersDrvFlag
                      && 
                         
                         ( g_NormalSystemDeviceInfoArray[i+",NewUserID"] ) 
                      &&
                         
                         Date.parse( g_NormalSystemDeviceInfoArray[i+",NewDriverDate"] ) > Date.parse( stock[11] )
                    )
            {
                
                ListCurDeviceFlag = true
                
                
                
                g_MatchingDeviceInfo[ g_NormalSystemDeviceInfoArray[i+",FindDriverRetRow"] + ",ListedFlag" ] = true
                
                g_NormalSystemDeviceInfoArray[i+",UpdateDisable"] = true
                
                g_NormalSystemDeviceInfoArray[i+",21"] = false

                oCell.innerHTML = '<INPUT TYPE="checkbox" onclick="alert(\'' + PromptArray["drvimp.js_3160_1"] + ''
                                + '' + PromptArray["drvimp.js_3161_1"] + '“' + PromptArray["drvimp.js_3161_2"] + '”'
                                + '' + PromptArray["drvimp.js_3162_1"] + '“' + PromptArray["drvimp.js_3162_2"] + '”' + PromptArray["drvimp.js_3162_3"] + '“' + PromptArray["drvimp.js_3162_4"] + '”' + PromptArray["drvimp.js_3162_5"] + '\');return false">'

                
                PushCurDeviceInfo( g_NormalSystemDeviceInfoArray , i , g_DeviceForUpdateListArray )
            }
            
            else
            {
                
                ListCurDeviceFlag = false
                
                g_NormalSystemDeviceInfoArray[i+",CanUpdate"] = false
                g_NormalSystemDeviceInfoArray[i+",21"] = false
                oCell.innerHTML = '<INPUT TYPE="checkbox" onclick="alert(\'' + PromptArray["drvimp.js_3175_1"] + '\');return false">'
            }

            if ( ListCurDeviceFlag )
            {
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                ListUpdateTitleFlag = true
                
                

                oRow = document.createElement("TR");
                g_oTBody0.appendChild(oRow);
                oRow.appendChild(oCell)

                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                

                
                oCell = document.createElement("TD");

                if ( 
                        
                        ( g_NormalSystemDeviceInfoArray[i+",20"] && ( g_NormalSystemDeviceInfoArray[i+",UserID"] == g_NormalSystemDeviceInfoArray[i+",NewUserID"] ) )
                      ||
                        
                        ( g_NormalSystemDeviceInfoArray[i+",20"] && g_NormalSystemDeviceInfoArray[i+",UserID"] && !UserChoiceUseOthersDrvFlag )
                   )
                {
                    
                    
                    
                     oCell.innerHTML = "<img src='img/what.gif' " 
                                     + "onclick='DispMessageInfo( g_NormalSystemDeviceInfoArray[\"" + i + ",DriverDesc\"] )' " 
                                     + "onMouseMove='this.style.cursor=\"help\"' width='16' height='16' "
                                     + "alt='" + PromptArray["drvimp.js_3242_1"] + "'>"
                    
                    
                }
                
                else if ( g_NormalSystemDeviceInfoArray[i+",20"] && g_NormalSystemDeviceInfoArray[i+",UserID"] && UserChoiceUseOthersDrvFlag )
                {
                    
                    
                    
                     oCell.innerHTML = "<img src='img/what.gif' " 
                                     + "onclick='DispMessageInfo( g_NormalSystemDeviceInfoArray[\"" + i + ",NewDriverDesc\"] )' " 
                                     + "onMouseMove='this.style.cursor=\"help\"' width='16' height='16' "
                                     + "alt='" + PromptArray["drvimp.js_3255_1"] + "'>"
                    
                    
                }
                
                
                else
                {
                    
                    
                    
                    
                    oCell.innerHTML = ""
                }
                oRow.appendChild(oCell)
                

                
                var hostname        = ServerName.value + SoapAspURL.value
                
                
                
                var DownloadURL = hostname + "?mode=downloaddrv&driverid=" + g_NormalSystemDeviceInfoArray[i+",DriverID"]
                var DeviceDescHtml  = "<a href='?' onclick='DownloadDriverByUserClick( \"" + DownloadURL + "\" );return false'>" + stock[6] + "</a>"
                


                TranslateDeviceInfoToArray(stock,g_NormalSystemDeviceInfoArray, i ,i );

                for (j=g_mincols; j<g_maxcols; j++)
                {
                    oCell = document.createElement("TD");
                    
                    (j==2)	? oCell.innerHTML = stock[7]
                            : (j==6) ? oCell.innerHTML = stock[2]
                                    
                                    
                                     : (j==7) ? oCell.innerHTML = DeviceDescHtml
                                              : oCell.innerHTML = stock[j];
                    
                    oCell.vAlign	="top"; 
                    (j==7) ? oCell.align = "left": oCell.align = "center";
                    oRow.appendChild(oCell);
                }
            }
		}
        
        
        
        
        
        
        
		
		
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        var ListCurDeviceFlag  = true
        var HashValueExistFlag = false
        var hKey               = 0

		for (var i=0; i<g_UserDrvDeviceRows ; i++)
		{
            ReadArrayToDeviceInfo(stock , g_UserDrvDeviceInfoArray , i)

            oCell = document.createElement("TD");
            oCell.align="right"

            
            
            ListCurDeviceFlag = true
            
            
            HashValueExistFlag = false
            
            if ( g_UserDrvDeviceInfoArray[i+",DriverHash"] )
            {
                hKey = DrvCert.RegOpenKey( 2 , "SOFTWARE\\Walker\\MyDrivers")
                if (hKey)
                {
                    HashValueExistFlag = DrvCert.RegQueryValue( hKey , g_UserDrvDeviceInfoArray[i+",DriverHash"] )
                    DrvCert.RegCloseKey( hKey )
                    hKey = null
                }
                
            }
            
            
            
            
            if ( 
                 UserChoiceUseOthersDrvFlag 
                 && 
                 
                 Date.parse( g_UserDrvDeviceInfoArray[i+",NewDriverDate"] ) > Date.parse( stock[11] )
               )
            {
            
            
                
                
                if ( !HashValueExistFlag )
                {
                    
                    ListCurDeviceFlag = true
                    
                    
                    
                    g_MatchingDeviceInfo[ g_UserDrvDeviceInfoArray[i+",FindDriverRetRow"] + ",ListedFlag" ] = true
                    
                    g_UserDrvDeviceInfoArray[i+",CanUpdate"]    = true
                    
                    
                    
                    g_UserDrvDeviceInfoArray[i+",21"]           = false

                    
                    
                    oCell.innerHTML = '<INPUT TYPE="checkbox" onclick="g_UserDrvDeviceInfoArray[' + i + '+ \',21\']=this.checked">'

                    
                    PushCurDeviceInfo( g_UserDrvDeviceInfoArray , i , g_DeviceForUpdateListArray )
                }
                
                
                else
                {
                    
                    ListCurDeviceFlag = false
                    
                    
                    
                    g_MatchingDeviceInfo[ g_UserDrvDeviceInfoArray[i+",FindDriverRetRow"] + ",ListedFlag" ] = true
                    
                    g_UserDrvDeviceInfoArray[i+",CanUpdate"]    = false
                    g_UserDrvDeviceInfoArray[i+",21"]           = false

                    
                    
                    oCell.innerHTML = '<INPUT TYPE="checkbox" onclick="g_UserDrvDeviceInfoArray[' + i + '+ \',21\']=this.checked">'

                    
                    PushCurDeviceInfo( g_UserDrvDeviceInfoArray , i , g_DeviceForUpdateListArray )
                }
                
            }
            
            else if ( 
                        
                        !UserChoiceUseOthersDrvFlag 
                      &&
                        
                        ( g_UserDrvDeviceInfoArray[i+",UserID"] == g_UserID )
                      &&
                        
                        Date.parse( g_UserDrvDeviceInfoArray[i+",DriverDate"] ) > Date.parse( stock[11] )
                    )
            {
                
                ListCurDeviceFlag = true
                
                
                
                g_MatchingDeviceInfo[ g_UserDrvDeviceInfoArray[i+",FindDriverRetRow"] + ",ListedFlag" ] = true
                
                g_UserDrvDeviceInfoArray[i+",CanUpdate"]    = true
                
                
                
                g_UserDrvDeviceInfoArray[i+",21"]           = false

                
                
                oCell.innerHTML = '<INPUT TYPE="checkbox" onclick="g_UserDrvDeviceInfoArray[' + i + '+ \',21\']=this.checked">'

                
                PushCurDeviceInfo( g_UserDrvDeviceInfoArray , i , g_DeviceForUpdateListArray )
            }
            
            else if ( 
                        
                        !UserChoiceUseOthersDrvFlag 
                      &&
                        
                        ( g_UserDrvDeviceInfoArray[i+",NewUserID"] )
                      &&
                        
                        Date.parse( g_UserDrvDeviceInfoArray[i+",NewDriverDate"] ) > Date.parse( stock[11] )
                    )
            {
                
                ListCurDeviceFlag = true
                
                
                
                g_MatchingDeviceInfo[ g_UserDrvDeviceInfoArray[i+",FindDriverRetRow"] + ",ListedFlag" ] = true
                
                g_UserDrvDeviceInfoArray[i+",UpdateDisable"] = true
                
                g_UserDrvDeviceInfoArray[i+",21"] = false

                oCell.innerHTML = '<INPUT TYPE="checkbox" onclick="alert(\'' + PromptArray["drvimp.js_3472_1"] + ''
                                + '' + PromptArray["drvimp.js_3473_1"] + '“' + PromptArray["drvimp.js_3473_2"] + '”'
                                + '' + PromptArray["drvimp.js_3474_1"] + '“' + PromptArray["drvimp.js_3474_2"] + '”' + PromptArray["drvimp.js_3474_3"] + '“' + PromptArray["drvimp.js_3474_4"] + '”' + PromptArray["drvimp.js_3474_5"] + '\');return false">'
                
                PushCurDeviceInfo( g_UserDrvDeviceInfoArray , i , g_DeviceForUpdateListArray )
            }
            
            else
            {
                
                ListCurDeviceFlag = false
                
                g_UserDrvDeviceInfoArray[i+",CanUpdate"] = false
                g_UserDrvDeviceInfoArray[i+",21"]        = false
                oCell.innerHTML = '<INPUT TYPE="checkbox" onclick="alert(\'' + PromptArray["drvimp.js_3486_1"] + '\');return false">'
            }

            if ( ListCurDeviceFlag )
            {
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                ListUpdateTitleFlag = true
                
                

                oRow = document.createElement("TR");
                g_oTBody0.appendChild(oRow);

                oRow.appendChild(oCell)

                
                oCell = document.createElement("TD");
                
                if ( g_UserDrvDeviceInfoArray[i+",NewDriverDesc"] )
                {
                    
                    
                    
                    oCell.innerHTML = "<img src='img/what.gif' " 
                                    + "onclick='DispMessageInfo( g_UserDrvDeviceInfoArray[\"" + i + ",NewDriverDesc\"] )' " 
                                    + "onMouseMove='this.style.cursor=\"help\"' width='16' height='16' "
                                    + "alt='" + PromptArray["drvimp.js_3526_1"] + "'>"
                    
                    
                }
                
                
                else
                {
                    oCell.innerHTML = ""
                }
                oRow.appendChild(oCell)
                

                
                TranslateDeviceInfoToArray(stock,g_UserDrvDeviceInfoArray, i ,i );

                
                
                
                
                
                
                
                
                
                
                
                
                
                

                var hostname        = ServerName.value + SoapAspURL.value
                
                
                
                var DownloadURL = hostname + "?mode=downloaddrv&driverid=" + g_UserDrvDeviceInfoArray[i+",DriverID"]
                var DeviceDescHtml  = "<a href='?' onclick='DownloadDriverByUserClick( \"" + DownloadURL + "\" );return false'>" + stock[6] + "</a>"
                

                


                for (j=g_mincols; j<g_maxcols; j++)
                {
                    oCell = document.createElement("TD");
                    
                    (j==2)	? oCell.innerHTML = stock[7]
                            : (j==6) ? oCell.innerHTML = stock[2]
                                    
                                    
                                    : (j==7) ? oCell.innerHTML = DeviceDescHtml
                                              : oCell.innerHTML = stock[j];
                    
                    oCell.vAlign	="top"; 
                    (j==7) ? oCell.align = "left": oCell.align = "center";
                    oRow.appendChild(oCell);
                }
            }
		}
    }
    
    if ( ListUpdateTitleFlag )
    {
        
        
        
        
        ListUpdateTag.innerHTML = "<br><center>" + PromptArray["drvimp.js_3593_1"] + "</center><br>"
        
    }
    else
    {
        
        
        
        
        ListUpdateImportResultTag.innerHTML += "<li>" + PromptArray["drvimp.js_3602_1"] + ""
    }
    
}
function ListDriverForImport()
{

	var UserChoiceUseOthersDrvFlag = ( GetCookie( "DriverType" ) != "Private" ) 

	
    
	
    if ( g_DevErrDeviceRows )
	{
		var stock = new Array()

        
        var ExistCanRepairDevFlag = false
        for ( var i=0;i<g_DevErrDeviceRows ; i++ )
        {
            if ( g_DevErrDeviceInfoArray[i+",NewUserID"] ) 
            {
                ExistCanRepairDevFlag = true
                g_ExistCanRepairDevFlag ++
            }
        }
        
        if ( ExistCanRepairDevFlag )
        {
        
        
            oRow  = document.createElement("TR");
            oCell = document.createElement("TD");
            oCell.colSpan= g_maxcols
            
            
            
            
            
            oCell.innerHTML = "<br><center>" + PromptArray["drvimp.js_3641_1"] + "</center><br>"
            
            
            
            oRow.appendChild(oCell);
            g_oTBody0.appendChild(oRow);

            for (var i=0; i<g_DevErrDeviceRows ; i++)
            {
                ReadArrayToDeviceInfo(stock , g_DevErrDeviceInfoArray , i)
                oRow = document.createElement("TR");
                g_oTBody0.appendChild(oRow);

                oCell = document.createElement("TD");
                oCell.align="right"
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    

                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                

                
                
                
                
                if ( !g_DevErrDeviceInfoArray[i+",NewUserID"] )
                {
                    
                    continue
                }
                
                

                if (
                     
                     
                     
                     
                     ( g_DevErrDeviceInfoArray[i+",20"] && g_DevErrDeviceInfoArray[i+",UserID"] )
                     ||
                     
                     
                     
                     
                     ( g_DevErrDeviceInfoArray[i+",20"] && g_DevErrDeviceInfoArray[i+",NewUserID"] && UserChoiceUseOthersDrvFlag )
                   )
                {
                    
                    
                    
                    
                    
                    
                    if ( (g_DevErrDeviceInfoArray[i+",5"] == 22) || (g_DevErrDeviceInfoArray[i+",5"] == 24) )
                    {
                        
                        g_DevErrDeviceInfoArray[i+",21"] = false
                        var ConfirmString = "" + PromptArray["drvimp.js_3773_1"] + ":"
                        ConfirmString += ( g_DevErrDeviceInfoArray[i+",5"] == 22 ) ? "" + PromptArray["drvimp.js_3774_1"] + "CMOS" + PromptArray["drvimp.js_3774_2"] + "" 
                                       : ( g_DevErrDeviceInfoArray[i+",5"] == 24 ) ? "" + PromptArray["drvimp.js_3775_1"] + ""
                                       : ""
                        ConfirmString += "" + PromptArray["drvimp.js_3777_1"] + ""
                        
                        oCell.innerHTML = '<INPUT TYPE="checkbox" onclick="var tmp = \'' + ConfirmString + '\';'
                                        + 'if ( this.checked && !confirm( tmp )) return false;'
                                        + 'g_DevErrDeviceInfoArray[' + i + '+ \',21\']=this.checked">'
                        
                        PushCurDeviceInfo( g_DevErrDeviceInfoArray , i , g_DeviceForRepairListArray )
                    }
                    
                    else
                    {
                        
                        g_DevErrDeviceInfoArray[i+",21"] = true
                        
                        oCell.innerHTML = '<INPUT TYPE="checkbox" checked onclick="g_DevErrDeviceInfoArray[' + i + '+ \',21\']=this.checked">'
                        
                        
                        
                        g_MatchingDeviceInfo[ g_DevErrDeviceInfoArray[i+",FindDriverRetRow"] + ",ListedFlag" ] = true

                        
                        PushCurDeviceInfo( g_DevErrDeviceInfoArray , i , g_DeviceForRepairListArray )
                    }
                    
                    
                }
                
                
                
                
                
                
                
                
                else if ( !UserChoiceUseOthersDrvFlag && g_DevErrDeviceInfoArray[i+",20"] && g_DevErrDeviceInfoArray[i+",NewUserID"] )
                {
                    
                    g_DevErrDeviceInfoArray[i+",21"] = false
                    oCell.innerHTML = '<INPUT TYPE="checkbox" onclick="alert(\'' + PromptArray["drvimp.js_3815_1"] + ''
                                    + '' + PromptArray["drvimp.js_3816_1"] + ''
                                    
                                    + '' + PromptArray["drvimp.js_3818_1"] + '“' + PromptArray["drvimp.js_3818_2"] + '”'
                                    + '' + PromptArray["drvimp.js_3819_1"] + '“' + PromptArray["drvimp.js_3819_2"] + '”' + PromptArray["drvimp.js_3819_3"] + '“' + PromptArray["drvimp.js_3819_4"] + '”' + PromptArray["drvimp.js_3819_5"] + '\');return false">'
                    
                    
                    
                    g_MatchingDeviceInfo[ g_DevErrDeviceInfoArray[i+",FindDriverRetRow"] + ",ListedFlag" ] = true
                }
                
                
                
                
                
                
                
                
                else
                {
                    
                    g_DevErrDeviceInfoArray[i+",21"] = false
                    oCell.innerHTML = '<INPUT TYPE="checkbox" onclick="alert(\'' + PromptArray["drvimp.js_3837_1"] + '\');return false">'
                    
                    
                    
                    g_MatchingDeviceInfo[ g_DevErrDeviceInfoArray[i+",FindDriverRetRow"] + ",ListedFlag" ] = true
                }
                
                

                oRow.appendChild(oCell)

                oCell = document.createElement("TD");
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                

                if ( 
                        
                        ( g_DevErrDeviceInfoArray[i+",20"] && ( g_DevErrDeviceInfoArray[i+",UserID"] == g_DevErrDeviceInfoArray[i+",NewUserID"] ) )
                      ||
                        
                        ( g_DevErrDeviceInfoArray[i+",20"] && g_DevErrDeviceInfoArray[i+",UserID"] && !UserChoiceUseOthersDrvFlag )
                   )
                {
                    
                    
                    
                    oCell.innerHTML = "<img src='img/what.gif' " 
                                    + "onclick='DispMessageInfo( g_DevErrDeviceInfoArray[\"" + i + ",DriverDesc\"] )' " 
                                    + "onMouseMove='this.style.cursor=\"help\"' width='16' height='16' "
                                    + "alt='" + PromptArray["drvimp.js_3880_1"] + "'>"
                    
                    
                }
                
                else if ( g_DevErrDeviceInfoArray[i+",20"] && g_DevErrDeviceInfoArray[i+",UserID"] && UserChoiceUseOthersDrvFlag )
                {
                    
                    
                    
                    oCell.innerHTML = "<img src='img/what.gif' " 
                                    + "onclick='DispMessageInfo( g_DevErrDeviceInfoArray[\"" + i + ",NewDriverDesc\"] )' " 
                                    + "onMouseMove='this.style.cursor=\"help\"' width='16' height='16' "
                                    + "alt='" + PromptArray["drvimp.js_3893_1"] + "'>"
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    g_DevErrDeviceInfoArray[i+",UserID"  ] = g_DevErrDeviceInfoArray[i+",NewUserID"  ]
                    g_DevErrDeviceInfoArray[i+",DriverID"] = g_DevErrDeviceInfoArray[i+",NewDriverID"]
                }
                
                
                else
                {
                    
                    
                    
                    
                    oCell.innerHTML = ""
                }
                oRow.appendChild(oCell)
                

                TranslateDeviceInfoToArray(stock,g_DevErrDeviceInfoArray, i ,i );

                
                var hostname        = ServerName.value + SoapAspURL.value
                
                
                
                var DownloadURL = hostname + "?mode=downloaddrv&driverid=" + g_DevErrDeviceInfoArray[i+",DriverID"]
                var DeviceDescHtml  = "<a href='?' onclick='DownloadDriverByUserClick(\"" + DownloadURL + "\");return false;'>" + stock[6] + "</a>"
                

                
                
                

                for (j=g_mincols; j<g_maxcols; j++)
                {
                    oCell = document.createElement("TD");
                    
                    (j==2)	? oCell.innerHTML = stock[7]
                            : (j==6) ? oCell.innerHTML = stock[2]
                                    
                                    
                                    : (j==7) ? oCell.innerHTML = DeviceDescHtml
                                              : oCell.innerHTML = stock[j];
                    
                    oCell.vAlign	="top"; 
                    (j==7) ? oCell.align = "left": oCell.align = "center";
                    oRow.appendChild(oCell);
                }
            }
        
        }


        
        
        var ExistCannotRepairDevFlag = false
        for ( var i=0;i<g_DevErrDeviceRows ; i++ )
        {
            if ( !g_DevErrDeviceInfoArray[i+",NewUserID"] ) 
            {
                ExistCannotRepairDevFlag = true
                
                g_ExistCannotRepairDevFlag   ++
            }
            
        }
        
        if ( ExistCannotRepairDevFlag )
        {
            
            
            
            
            var stock = new Array()

            oRow  = document.createElement("TR");
            oCell = document.createElement("TD");
            oCell.colSpan= g_maxcols
            oCell.align = "center"
            
            
            
            oCell.innerHTML = "<br>" + PromptArray["drvimp.js_3984_1"] + "<br>"
            
            
                            
            
            oRow.appendChild(oCell);
            g_oTBody0.appendChild(oRow);

            for (var i=0; i<g_DevErrDeviceRows ; i++)
            {
                ReadArrayToDeviceInfo(stock , g_DevErrDeviceInfoArray , i)
                oRow = document.createElement("TR");
                g_oTBody0.appendChild(oRow);

                oCell = document.createElement("TD");
                oCell.align="right"


                if ( !g_DevErrDeviceInfoArray[i+",NewUserID"] )
                {
                    
                    g_DevErrDeviceInfoArray[i+",21"] = false
                    oCell.innerHTML = '' 

                    oRow.appendChild(oCell)

                    oCell = document.createElement("TD");

                    
                    
                    oCell.innerHTML = ""
                    oRow.appendChild(oCell)

                    TranslateDeviceInfoToArray(stock,g_DevErrDeviceInfoArray, i ,i );

                    for (j=g_mincols; j<g_maxcols; j++)
                    {
                        oCell = document.createElement("TD");
                        
                        (j==2)	? oCell.innerHTML = stock[7]
                                : (j==6) ? oCell.innerHTML = stock[2]
                                         : (j==7) ? oCell.innerHTML = stock[6]
                                                  : oCell.innerHTML = stock[j];
                        
                        oCell.vAlign	="top"; 
                        (j==7) ? oCell.align = "left": oCell.align = "center";
                        oRow.appendChild(oCell);
                    }
                    
                    PushCurDeviceInfo( g_DevErrDeviceInfoArray , i , g_DeviceCannotRepairListArray )
                }
            }
        }
        
        
	}
    
    else
    {
        
        
        
        
        
        
        
        
        
        
        ListUpdateImportResultTag.innerHTML += "<li>" + PromptArray["drvimp.js_4053_1"] + ""
    }
}


function RegUserHardwareInfo()
{
	
	

	var SoapApplyURL = ServerName.value + SoapAspURL.value		

	
    
    
    
	
    var MACIDs				= GetNetCardInfo()
	var CPUInfo				= GetCPUInfo()
	
    

    
    DisplayMessage( "" + PromptArray["drvimp.js_4076_1"] + "..." )
	var MainBoardInfo		= GetMainBoardInfo()
    
    DisplayMessage( "" + PromptArray["drvimp.js_4079_1"] + ":"  + MainBoardInfo )
    
    
    DisplayMessage( "" + PromptArray["drvimp.js_4082_1"] + "..." )
	var DiskInfo			= GetDiskInfo()
    
    DisplayMessage( "" + PromptArray["drvimp.js_4085_1"] + ":"  + DiskInfo )
    
    
    
    
    DiskInfo = CheckAndModifyDiskInfo( DiskInfo )
    
    

	var SoapRequestXML = ""
    
	
    SoapRequestXML += '<?xml version="1.0" standalone="no"?>\n'
    
	SoapRequestXML += '<SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http:\/\/schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http:\/\/schemas.xmlsoap.org/soap/envelope/">\n'
	SoapRequestXML += "   <SOAP-ENV:Header xmlns:wsu =\"http:\/\/schemas.xmlsoap.org/ws/2002/07/utility\" "
	SoapRequestXML += "                    xmlns:wsse=\"http:\/\/schemas.xmlsoap.org/ws/2002/07/secext\" >\n"
    SoapRequestXML += GetClientInfo()
	SoapRequestXML += "   </SOAP-ENV:Header>\n"
	SoapRequestXML += "   <SOAP-ENV:Body>\n"
	SoapRequestXML += "     <n:RegUserHardwareInfo xmlns:n=\"http:\/\/e-drivers.cn/soap/\">\n"
    
    
	
    SoapRequestXML += CPUInfo			+ "\n"
	SoapRequestXML += MACIDs			+ "\n"
    
	
	SoapRequestXML += MainBoardInfo		+ "\n"
	SoapRequestXML += DiskInfo			+ "\n"
	SoapRequestXML += "     </n:RegUserHardwareInfo>\n"
	SoapRequestXML += "   </SOAP-ENV:Body>\n"
	SoapRequestXML += "</SOAP-ENV:Envelope>"


    var RetRegUserInfo = new Array()
    var ErrorInfo = ""

    
    DisplayMessage( "" + PromptArray["drvimp.js_4124_1"] + "..." )
    
	
    var ReturnXML = MyXMLHttpRequest( SoapApplyURL , SoapRequestXML )
    

	
    
    if ( !ReturnXML )
	{
        if (!g_CanUserConnectToServer)
        {
            ErrorInfo = "" + PromptArray["drvimp.js_4136_1"] + ""
            DisplayMessage( "" + PromptArray["drvimp.js_4137_1"] + "," + PromptArray["drvimp.js_4137_2"] + "" )
            
        }
        else
        {
            ErrorInfo = "" + PromptArray["drvimp.js_4142_1"] + "" + ServerName.value + "" + PromptArray["drvimp.js_4142_2"] + ""
            DisplayMessage( "" + PromptArray["drvimp.js_4143_1"] + "\n" + PromptArray["drvimp.js_4143_2"] + "" + ServerName.value + "" + PromptArray["drvimp.js_4143_3"] + "," + PromptArray["drvimp.js_4143_4"] + "\n" + SoapRequestXML)
        }
        RetRegUserInfo["Success"] = false
        RetRegUserInfo["Info"]    = ErrorInfo
        RetRegUserInfo["UserID"]  = ""
		return ( RetRegUserInfo )
	}

	ErrorInfo = GetInfoByTagFromXml( ReturnXML, SOAP_RET_ERROR_STRING_TAG )

	if (ErrorInfo != null) 
	{
        RetRegUserInfo["Success"] = false
        RetRegUserInfo["Info"]    = ErrorInfo
        RetRegUserInfo["UserID"]  = ""
        DisplayMessage( "" + PromptArray["drvimp.js_4158_1"] + ":\n" + ErrorInfo )
		return ( RetRegUserInfo )
	}
	else
	{
        var UserID           = GetInfoByTagFromXml( ReturnXML, "UserID" )
        
        var UserType         = GetInfoByTagFromXml( ReturnXML, "RegType" )
        
        var DownloadPath     = GetInfoByTagFromXml( ReturnXML, "DownloadPath" )
        
        var HostSerialNumber = GetInfoByTagFromXml( ReturnXML, "HostSerialNumber" )
        
        var CaseID           = GetInfoByTagFromXml( ReturnXML, "CaseID" )

        RetRegUserInfo["Success"         ] = true
        RetRegUserInfo["Info"            ]    = "" + PromptArray["drvimp.js_4174_1"] + ",UserID=" + UserID 
        RetRegUserInfo["UserID"          ]  = UserID
        
        RetRegUserInfo["UserType"        ]  = UserType
        
        RetRegUserInfo["DownloadPath"    ]  = DownloadPath
        
        RetRegUserInfo["HostSerialNumber"] = HostSerialNumber
        
        RetRegUserInfo["CaseID"          ] = CaseID
        
        
        DisplayMessage( "" + PromptArray["drvimp.js_4186_1"] + ",UserID=" + UserID + ",CaseID=" + CaseID + ",Path=" + DownloadPath + ",S/N:" + HostSerialNumber )
		return ( RetRegUserInfo )
	}

}

function GetGivenDeviceBackupDriverInfo( DeviceInfo )
{
    
    

    
	
	
	
	
	
	
	
	
	
	
	
	
	


	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	

	
    var BackupDriverInfo = new Array()
    BackupDriverInfo["Success"] = false

	var DriverProvider = ""
    var BackupDriverStatus = DeviceInfo[7] 
	
	if ( BackupDriverStatus & 0x00000080 )
	{
		DriverProvider = "DownloadDrv"
	}
	
	else if ( BackupDriverStatus & 0x00000100 )
	{
		DriverProvider = "CDDrv"
	}
	
	else
	{
		DriverProvider = DeviceInfo[13]
	}

    
    
    
	var hKey = DrvCert.RegOpenKey( 2 , "SOFTWARE\\Walker\\MyDrivers\\" + DriverProvider )
    
    
	
	
    var ClassNameIndex     = 0
    var ClassName		= DrvCert.RegEnumKey( hKey , ClassNameIndex )
    while ( ClassName )
    {
        var hClassKey	= DrvCert.RegOpenKey( 2 , "SOFTWARE\\Walker\\MyDrivers\\" + DriverProvider + "\\" + ClassName )
        
        
        
        var InstanceKeyIndex = 0
        var InstanceKeyName = DrvCert.RegEnumKey( hClassKey , InstanceKeyIndex )
        while ( InstanceKeyName )
        {
            var CurRegKeyName = "SOFTWARE\\Walker\\MyDrivers\\" + DriverProvider + "\\" + ClassName + "\\" + InstanceKeyName
            var hInstanceKey  = DrvCert.RegOpenKey( 2 , CurRegKeyName )
            var MatchingDeviceID  = DrvCert.RegQueryValue( hInstanceKey , "HardwareID" )
            if ( MatchingDeviceID.toUpperCase() == DeviceInfo[10].toUpperCase())
            {
                var DrvDate = DrvCert.RegQueryValue( hInstanceKey , "DrvDate" )

                if ( !BackupDriverInfo["BackupDriverDate"] || 
                      ( Date.parse(BackupDriverInfo["BackupDriverDate"]) < Date.parse( DrvDate ) ) )
                {
                    BackupDriverInfo["MatchingDeviceID"]    = DrvCert.RegQueryValue( hInstanceKey , "HardwareID" )
                    BackupDriverInfo["DriverBackupPath"]    = DrvCert.RegQueryValue( hInstanceKey , "BackupBaseDir" )
                    BackupDriverInfo["BackupDriverStatus"]  = DrvCert.RegQueryValue( hInstanceKey , "BackupDriverStatus" )
                    BackupDriverInfo["DeviceDesc"]          = DrvCert.RegQueryValue( hInstanceKey , "DeviceDesc" )
                    BackupDriverInfo["BackupDriverDate"]    = DrvDate
                    BackupDriverInfo["BackupDriverVer"]     = DrvCert.RegQueryValue( hInstanceKey , "DrvVersion" )
                    BackupDriverInfo["MatchingDeviceID"]    = DrvCert.RegQueryValue( hInstanceKey , "HardwareID" )
                    BackupDriverInfo["HardwareIDCompaIDs"]  = DrvCert.RegQueryValue( hInstanceKey , "HardwareIDsCompatibleIDs" )
                    BackupDriverInfo["INFSectionName"]      = DrvCert.RegQueryValue( hInstanceKey , "InfSection" )
                    BackupDriverInfo["CATName"]             = DrvCert.RegQueryValue( hInstanceKey , "CatalogFileName" )
                    BackupDriverInfo["INFName"]             = ( BackupDriverInfo["CATName"] ) 
                                                                     ? BackupDriverInfo["CATName"].replace( /.cat$/ig , ".INF" )
                                                                     : DrvCert.RegQueryValue( hInstanceKey , "SystemInfName" )
                    BackupDriverInfo["RegPath"]             = CurRegKeyName
                    BackupDriverInfo["ClassName"]           = ClassName
                    BackupDriverInfo["Provider"]            = DriverProvider
                    BackupDriverInfo["Success"]             = true
                }
            }
            
            InstanceKeyIndex ++
            InstanceKeyName = DrvCert.RegEnumKey( hClassKey , InstanceKeyIndex )
            DrvCert.RegCloseKey( hInstanceKey )
        }

        ClassNameIndex ++
        ClassName   = DrvCert.RegEnumKey( hKey , ClassNameIndex )
        DrvCert.RegCloseKey( hClassKey )
    }
    DrvCert.RegCloseKey( hKey )
    
	
	
	
	
	
	
	
    
    
    
    
    
    
    return ( BackupDriverInfo )
}

function CheckGivenBackupDriverValidity( BackupDriverInfo )
{
    
	
	
	
	
	
	
	
    
    
    
    
    
    
    return CheckExportDriverValidity( BackupDriverInfo )
}
function UploadUserErrorBackupDriverInfoToServer( UserID , BackupDriverInfo  , errorString )
{
    
	
	
	
	
	
	
	
    
    
    
    
    
    
	var SoapApplyURL = ServerName.value + SoapAspURL.value		

	var SoapRequestXML = ""
    
	
	SoapRequestXML += '<?xml version="1.0" standalone="no"?>\n'
	SoapRequestXML += '<SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http:\/\/schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http:\/\/schemas.xmlsoap.org/soap/envelope/">\n'
	SoapRequestXML += "   <SOAP-ENV:Header xmlns:wsu =\"http:\/\/schemas.xmlsoap.org/ws/2002/07/utility\" "
	SoapRequestXML += "                    xmlns:wsse=\"http:\/\/schemas.xmlsoap.org/ws/2002/07/secext\" >\n"
    SoapRequestXML += GetClientInfo()
	SoapRequestXML += "   </SOAP-ENV:Header>\n"
	SoapRequestXML += "   <SOAP-ENV:Body>\n"
	SoapRequestXML += "     <n:UploadUserErrorBackupDriverInfo xmlns:n=\"http:\/\/e-drivers.cn/soap/\">\n"
	SoapRequestXML += GetOSInfo() + "\n"
    SoapRequestXML += "         <UserID>"               + UserID                                                + "</UserID>\n"
    SoapRequestXML += "         <RegPath>"              + XmlEncoding( BackupDriverInfo["RegPath"] )            + "</RegPath>\n"
    SoapRequestXML += "         <DeviceDesc>"           + XmlEncoding( BackupDriverInfo["DeviceDesc"] )         + "</DeviceDesc>\n"
    SoapRequestXML += "         <BackupDriverStatus>"   + XmlEncoding( BackupDriverInfo["BackupDriverStatus"] ) + "</BackupDriverStatus>\n"
    SoapRequestXML += "         <MatchingDeviceID>"     + XmlEncoding( BackupDriverInfo["MatchingDeviceID"] )   + "</MatchingDeviceID>\n"
    SoapRequestXML += "         <HardwareIDCompaIDs>"   + XmlEncoding( BackupDriverInfo["HardwareIDCompaIDs"] ) + "</HardwareIDCompaIDs>\n"
    SoapRequestXML += "         <BackupDriverDate>"     + XmlEncoding( BackupDriverInfo["BackupDriverDate"] )   + "</BackupDriverDate>\n"
    SoapRequestXML += "         <BackupDriverVer>"      + XmlEncoding( BackupDriverInfo["BackupDriverVer"] )    + "</BackupDriverVer>\n"
    SoapRequestXML += "         <DriverBackupPath>"     + XmlEncoding( BackupDriverInfo["DriverBackupPath"] )   + "</DriverBackupPath>\n"
    SoapRequestXML += "         <INFName>"              + XmlEncoding( BackupDriverInfo["INFName"] )            + "</INFName>\n"
    SoapRequestXML += "         <CATName>"              + XmlEncoding( BackupDriverInfo["CATName"] )            + "</CATName>\n"
    SoapRequestXML += "         <INFSectionName>"       + XmlEncoding( BackupDriverInfo["INFSectionName"] )     + "</INFSectionName>\n"
    SoapRequestXML += "         <ClassName>"            + XmlEncoding( BackupDriverInfo["ClassName"] )          + "</ClassName>\n"
    SoapRequestXML += "         <Provider>"             + XmlEncoding( BackupDriverInfo["Provider"] )           + "</Provider>\n"
    SoapRequestXML += "         <DriverBackupPath>"     + XmlEncoding( BackupDriverInfo["DriverBackupPath"] )   + "</DriverBackupPath>\n"
    SoapRequestXML += "         <ErrorString>"          + XmlEncoding( errorString )                            + "</ErrorString>\n"
    
    
    SoapRequestXML += "         <INFContent>\n"         + XmlEncoding( DrvCert.GetBASE64StringFromBinFile( BackupDriverInfo["DriverBackupPath"] + "\\" + BackupDriverInfo["INFName"] ) ) + "</INFContent>\n"
    SoapRequestXML += "     </n:UploadUserErrorBackupDriverInfo>\n"
	SoapRequestXML += "   </SOAP-ENV:Body>\n"
	SoapRequestXML += "</SOAP-ENV:Envelope>"

	
    
    var ReturnXML = MyXMLHttpRequest( SoapApplyURL , SoapRequestXML )

	if (ReturnXML == null || ReturnXML == "")
	{
		alert( "" + PromptArray["drvimp.js_4437_1"] + "" )
        DisplayMessage( "" + PromptArray["drvimp.js_4438_1"] + "," + PromptArray["drvimp.js_4438_2"] + ":\n" + SoapRequestXML )
		return ""
	}

	var ErrorInfo = GetInfoByTagFromXml( ReturnXML, SOAP_RET_ERROR_STRING_TAG )
	if (ErrorInfo != null) 
	{
		
		return ""
	}
	else
	{
		return GetInfoByTagFromXml( ReturnXML, "DriverID" )
	}

}

function CheckAmountBeforeDriverImportUpdateProcedure()
{
    
    
    
    
    var UserSelectDrvNumber = 0

    if ( g_DeviceRowsNeedUpdateDriver )
	{

        for (var i=0; i<g_NormalSystemDeviceRows ; i++)
        {
            
            
            
            if ( (g_NormalSystemDeviceInfoArray[i+",21"] != undefined) && (g_NormalSystemDeviceInfoArray[i+",21"] != false) )
            {
                UserSelectDrvNumber ++
            }		
        }
        for (var i=0; i<g_UserDrvDeviceRows ; i++)
        {
            
            
            
            if ( ( g_UserDrvDeviceInfoArray[i+",21"] != undefined ) && (g_UserDrvDeviceInfoArray[i+",21"] != false) )
            {
                UserSelectDrvNumber ++
            }		
        }
    }
    for (var i=0; i<g_DevErrDeviceRows ; i++)
    {
        
        
        
        if ( g_DevErrDeviceInfoArray[i+",20"] && ( g_DevErrDeviceInfoArray[i+",21"] != undefined ) && ( g_DevErrDeviceInfoArray[i+",21"] != false ) )
        {
            UserSelectDrvNumber ++
        }	
    }
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    DriverImportPrompt( UserSelectDrvNumber )
}
function DriverImportUpdateProcedure()
{
    
    
    g_RunningStatus += "Step=3 , Status=0 , Finish=0 ; "
    SetCookie( "eDrv_Param" , g_RunningStatus , 1 )

	DisplayMessage("" + PromptArray["drvimp.js_4531_1"] + "...");
    
    
    
    UpdateDriverFromServer()
	DisplayMessage("" + PromptArray["drvimp.js_4536_1"] + "");
    
    DisplayMessage("" + PromptArray["drvimp.js_4538_1"] + "...");
    
    
    
    ImportDriverFromServer()
	DisplayMessage("" + PromptArray["drvimp.js_4543_1"] + "");

    
    DisplayMessage("" + PromptArray["drvimp.js_4546_1"] + "...");
    OtherDriverImportFromServer()
	DisplayMessage("" + PromptArray["drvimp.js_4548_1"] + "");

    
    
    
    
    
	

    
    
    
    if ( g_LogConfigInfo[ USER_DEVICE_FIX_LOG_NAME ] == "true" )
    {
        SubmitDeviceFixInfoLog(     g_UserID , 
                                    g_CaseID , 
                                    g_UpdatedDeviceArray , g_UpdatedDeviceRows ,
                                    g_ImportedDeviceArray , g_ImportedDeviceRows ,
                                    g_ImportedOtherDriverDeviceArray , g_ImportedOtherDriverRows ,
                                    USER_DEVICE_FIX_LOG_NAME )   
    }




    
    var BackupDeviceErrorRow  = g_UserSelectExpDrvNumber - g_ExportedSuccessDeviceRows 
	var ProcessResult = ''
                     
                     
                     + '<center>' + PromptArray["drvimp.js_4578_1"] + '</center><br>'
                     
                     + '<ul>'
                     + '<li>' + PromptArray["drvimp.js_4581_1"] + ' ' + (g_MaxDeviceIndex) + ' ' + PromptArray["drvimp.js_4581_2"] + '</li>'
	
    
    
    
    
    
    

    var TotalExp = g_UserExportedDriverRows + g_ExportedSuccessDeviceRows
    
    

    

    
    
    
    
    if ( g_UserSelectImpDrvNumber || g_CanImportDrvNumber )
    {
        
        
        if ( g_CanImportDrvNumber )
        {        
            
            
            
                ProcessResult += "<li>" + PromptArray["drvimp.js_4609_1"] + "" + g_CanImportDrvNumber + "" + PromptArray["drvimp.js_4609_2"] + ""
        }
        if ( g_UserSelectImpDrvNumber )
        {
            ProcessResult += "" + PromptArray["drvimp.js_4613_1"] + "" + g_UserSelectImpDrvNumber + "" + PromptArray["drvimp.js_4613_2"] + ""
        }
        else
        {
            ProcessResult += "" + PromptArray["drvimp.js_4617_1"] + "" + (g_CanImportDrvNumber-g_UserSelectImpDrvNumber) + "" + PromptArray["drvimp.js_4617_2"] + ""
        }

        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        

        ProcessResult   += "。"
    }
    
    
    
    
    
    
    
    

    


    
    if ( g_UserSelectUpdateDrvNumber || g_DeviceRowsNeedUpdateDriver )
    {
        if ( g_DeviceRowsNeedUpdateDriver )
        {
            
            ProcessResult += "<li>" + PromptArray["drvimp.js_4665_1"] + "" + g_DeviceRowsNeedUpdateDriver + "" + PromptArray["drvimp.js_4665_2"] + ""
        }

        
        
        if ( g_DeviceRowsNeedUpdateDriver )
        {
            
            
            ProcessResult += "" + PromptArray["drvimp.js_4674_1"] + "" + g_UserSelectUpdateDrvNumber + "" + PromptArray["drvimp.js_4674_2"] + ""
        }
        else
        {
            
            
            ProcessResult += "" + PromptArray["drvimp.js_4680_1"] + "" + (g_DeviceRowsNeedUpdateDriver-g_UserSelectUpdateDrvNumber) + "" + PromptArray["drvimp.js_4680_2"] + ""
        }

        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        ProcessResult   += "。"
    }
    
    
    
    
    
    
    
    

    
    

    
    
    
    

    
    if ( g_OtherDriverListNumber )
    {
        ProcessResult += "<li>" + PromptArray["drvimp.js_4725_1"] + "" + g_OtherDriverListNumber + "" + PromptArray["drvimp.js_4725_2"] + ""

        if ( g_OtherDriverNeedImpNumber )
        {
           ProcessResult += "" + PromptArray["drvimp.js_4729_1"] + "" + g_OtherDriverNeedImpNumber + "" + PromptArray["drvimp.js_4729_2"] + ""
        }
        else
        {
            ProcessResult += "" + PromptArray["drvimp.js_4733_1"] + "" + (g_OtherDriverListNumber-g_OtherDriverNeedImpNumber) + "" + PromptArray["drvimp.js_4733_2"] + ""
        }

        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        ProcessResult   += "。"
    }

    var RebootFlag          = false

    
    
    var ImportPrompt = ""
    
    for (var i=0; i<g_ImportedDeviceRows ; i++)
    {
        
        if ( g_ImportedDeviceArray[ i + ",22"] )
        {
            
            if ( g_ImportedDeviceArray[ i + ",4"] & 0x00000100 ) RebootFlag = true
            
            if ( g_ImportedDeviceArray[ i + ",5"] == 28 ) RebootFlag = true

            
            if (    
                    ( 
                       ( g_ImportedDeviceArray[ i + ",8"].search(/^USB/i) != -1 ) 
                     || 
                       ( g_ImportedDeviceArray[ i + ",8"].search(/^PCMCIA/i) != -1 ) 
                    ) 
                 && 
                    ( g_ImportedDeviceArray[ i + ",5"] ) 
               )
            {
               ImportPrompt += "<li>" + PromptArray["drvimp.js_4786_1"] + "[" + g_ImportedDeviceArray[ i + ",6"] + "]" + PromptArray["drvimp.js_4786_2"] + "</li>"
               RebootFlag = true
            }
        }

        
        if ( g_ImportedDeviceArray[ i + ",5"] == 22 ) 
        {
           ImportPrompt += "<li>" + PromptArray["drvimp.js_4794_1"] + "[" + g_ImportedDeviceArray[ i + ",6"] + "]" + PromptArray["drvimp.js_4794_2"] + "CMOS" + PromptArray["drvimp.js_4794_3"] + "</li>"
        }
        
        if ( g_ImportedDeviceArray[ i + ",5"] == 24 ) 
        {
           ImportPrompt += "<li>" + PromptArray["drvimp.js_4799_1"] + "[" + g_ImportedDeviceArray[ i + ",6"] + "]" + PromptArray["drvimp.js_4799_2"] + "</li>"
        }
    }
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    ImportPrompt = ( ImportPrompt ) ? "<li>" + PromptArray["drvimp.js_4827_1"] + "<ul>" + ImportPrompt + "</ul></li>" : ""


    
    
    for (var i=0; ( !RebootFlag && (i<g_DeviceRowsNeedUpdateDriver) ); i++ )
    {
        
        
        if ( g_UpdatedDeviceArray[ i + ",22"] )
        {
            
            if ( g_UpdatedDeviceArray[ i + ",4"] & 0x00000100 ) RebootFlag = true
        }
    }


    
    
    
    if ( RebootFlag )
        ProcessResult += "" + PromptArray["drvimp.js_4848_1"] + ""

    ProcessResult   += ''
                     + '</li>'
                     
                     + ImportPrompt
					 + '</ul>'
                     
                     
    
    


	Title.innerHTML = ProcessResult ;
    
	
    
    
    
    
    
    
    
    

    
    var AccountInfoArray = GetAccountInfoFromServer( g_SessionEmail )
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
	UserIDTag.innerHTML =   '<table>'
                          + '<tr>'
                          + '<td>' + PromptArray["drvimp.js_4895_1"] + ':</td><td align=left>' + g_UserID + '&nbsp;&nbsp;&nbsp;</td>'
                          
                          + '</tr>'
                          + '<tr>'
                          + '<td>' + PromptArray["drvimp.js_4899_1"] + ':</td><td align=left><span id=AmountValue>' + AccountInfoArray["Amount"] + '</span></td>'
                          
                          + '</tr>'
                          + '</table>'

    DeleteDeviceTable();
	CreateDeviceTable();
	oTableContainer.align="center"

    ListDriverImportedResult()

    ListDriverUpdatedResult()

    
    ListOtherDriverImportedResult()

    
    
    
    
    
    

    oRow  = document.createElement("TR");
	oCell = document.createElement("TD");
	oCell.colSpan= g_maxcols+1
	oCell.align = "center"
    
    
    
    
    if ( !g_NextStepClickedFlag )
    {
        
        DisplayMessage("" + PromptArray["drvimp.js_4933_1"] + "...");
        
        
        
        
        DisplayMessage("" + PromptArray["drvimp.js_4938_1"] + "" + g_DeviceRows );
        var CurrentDeviceNumber = g_DeviceRows
        DisplayMessage( "" + PromptArray["drvimp.js_4940_1"] + "..." );
        
        
        g_DeviceRows = 0
        DrvInst.EnumDevice(0)
        DisplayMessage( "" + PromptArray["drvimp.js_4945_1"] + "" );
        DisplayMessage( "" + PromptArray["drvimp.js_4946_1"] + "" + g_DeviceRows );
        
        if ( g_DeviceRows <= CurrentDeviceNumber )
        {
            
            
            
            
            
            
            
            
            
            if ( g_LogConfigInfo[ "RetUrlItemD" ] != undefined )
            {
                oCell.innerHTML = "<br>"
                                
                                + "<input type='button' value='" + PromptArray["drvimp.js_4963_1"] + "' onclick='window.opener.location=\"" + g_LogConfigInfo[ g_LogConfigInfo[ "RetUrlItemD" ] + ",RetUrlSetting" ] + "?wssret=311\";window.close()'>"
            }
            else
            {
	            oCell.innerHTML = "<br>"
					
					
					+ "<input type='button' value='" + PromptArray["drvimp.js_4970_1"] + "' onclick='window.document.location.href=\"Comment.htm\"; return false;'>"
            }
            
            
            g_RunningStatus += "Step=3 , Status=1 , Finish=1 ; "
            SetCookie( "eDrv_Param" , g_RunningStatus , 1 )
            
        	
        }
        else
        {
            
            
            
            
            
            
            
            
            
            if ( g_LogConfigInfo[ "RetUrlItemD" ] != undefined )
            {
                oCell.innerHTML = "<br>"
                                
                                + "<input type='button' value='" + PromptArray["drvimp.js_4994_1"] + "' onclick='window.opener.location=\"" + g_LogConfigInfo[ g_LogConfigInfo[ "RetUrlItemD" ] + ",RetUrlSetting" ] + "?wssret=311\";window.close()'>"
            }
            else
            {
	            oCell.innerHTML = "<br>"
                    
	                
                    
                    
					
                    
                    
                    
                    
                    
                    
                    
					
                     + "<input type='button' value='" + PromptArray["drvimp.js_5012_1"] + "' onclick='StartDriverImportUpdate( 1 );g_NextStepClickedFlag=true'>"
             }
            
            
            g_RunningStatus += "Step=3 , Status=1 , Finish=1 ; "
            SetCookie( "eDrv_Param" , g_RunningStatus , 1 )
            
        	
        }
    }
    
    else
    {
        
        
        
        
        
        
        
        
        
        if ( g_LogConfigInfo[ "RetUrlItemD" ] != undefined )
        {
            oCell.innerHTML = "<br>"
                            
                            + "<input type='button' value='" + PromptArray["drvimp.js_5038_1"] + "' onclick='window.opener.location=\"" + g_LogConfigInfo[ g_LogConfigInfo[ "RetUrlItemD" ] + ",RetUrlSetting" ] + "?wssret=311\";window.close()'>"
        }
        else
        {
	        oCell.innerHTML = "<br>"
                    
	                
                    
                    
                    
                    
					
                    
					
					
					+ "<input type='button' value='" + PromptArray["drvimp.js_5053_1"] + "' onclick='window.document.location.href=\"Comment.htm\"; return false;'>"
         }
        
        
        g_RunningStatus += "Step=3 , Status=1 , Finish=1 ; "
        SetCookie( "eDrv_Param" , g_RunningStatus , 1 )
        
    	
    }

    oRow.appendChild(oCell);
	g_oTBody0.appendChild(oRow);

    DisplayMessage(Title.innerText)
}
function ImportDriverFromServer()
{
    var DeviceInfo	= new Array;

    
    
	{

        Title.innerHTML = '<center>' + PromptArray["drvimp.js_5076_1"] + '...</center>'
                        + '<br>'
                        + '<table align=center id=PercentTbl width=400 bgColor=black border=0 cellSpacing=0 cellPadding=0 >'
                        + '<tr><td>'
                        + '  <IMG id="PercentImg" SRC="img/img.gif" WIDTH="0" HEIGHT="16" BORDER=0>'
                        + '</td></tr></table>'
                        + '<div id=PercentString>&nbsp;</div>'
                        + '<table align=center id=PercentSubTbl width=400 bgColor=black border=0 cellSpacing=0 cellPadding=0 >'
                        + '<tr><td>'
                        + '  <IMG id="PercentSubImg" SRC="img/img.gif" WIDTH="0" HEIGHT="16" BORDER=0>'
                        + '</td></tr></table>'
                        + '<div id=PercentSubString>&nbsp;</div>'
        DrvCert.UIRefresh()

        for (var i=0; i<g_DevErrDeviceRows ; i++)
        {
            ReadArrayToDeviceInfo(DeviceInfo , g_DevErrDeviceInfoArray , i);
            
            if ( g_DevErrDeviceInfoArray[i+",20"] && ( g_DevErrDeviceInfoArray[i+",21"] != false ) )
            {
                g_UserSelectImpDrvNumber ++

                
                
            }	
            
            if ( g_DevErrDeviceInfoArray[i+",20"] )
            {
                g_CanImportDrvNumber ++
            }
        }

        
        
        
        
        
        

        
        
        
        
        for (var i=0; i<g_DevErrDeviceRows; i++)
        {
            
            var FinishedValue = (g_ImportedDeviceRows+1)/g_UserSelectImpDrvNumber
            FinishedValue = ( FinishedValue > 1 ) ? 1 : FinishedValue
            
            
            PercentImg.width=PercentTbl.width*FinishedValue
            PercentString.innerHTML = '<center>' + Math.floor(FinishedValue*100) + '%</center>'
            

            ReadArrayToDeviceInfo( DeviceInfo , g_DevErrDeviceInfoArray , i);

            RunDriverExportToServerOpenProcess( DeviceInfo );	
            
            
            
            
            
            
            
            if ( g_DevErrDeviceInfoArray[i+",20"] && ( g_DevErrDeviceInfoArray[i+",21"] != false ) )
            {
              
              

                DisplayMessage("" + PromptArray["drvimp.js_5145_1"] + "[" + DeviceInfo[6] + "]" + PromptArray["drvimp.js_5145_2"] + "...");
                
                
                
                
                
                
                var EraseDriverResult = EraseDeviceDriver( DeviceInfo )
                if ( EraseDriverResult["Success"] )
                {
                    DisplayMessage( "" + PromptArray["drvimp.js_5155_1"] + "[" + DeviceInfo[6] + "]" + PromptArray["drvimp.js_5155_2"] + "(" + EraseDriverResult["Info"] + ")" )
                }
                else
                {
                    
                    
                    DisplayMessage( "" + PromptArray["drvimp.js_5161_1"] + "[" + DeviceInfo[6] + "]" + PromptArray["drvimp.js_5161_2"] + "" )
                }

                
                DisplayMessage("" + PromptArray["drvimp.js_5165_1"] + "[" + DeviceInfo[6] + "]" + PromptArray["drvimp.js_5165_2"] + "...");
                var ImportResult = ImportDriverToGivenDeviceFromServer( g_DevErrDeviceInfoArray[i+",UserID"] , 
                                                                        g_DevErrDeviceInfoArray[i+",DriverID"] ,
                                                                        DeviceInfo )
                

                
                SaveDeviceInfoToArray( DeviceInfo , g_ImportedDeviceArray , g_ImportedDeviceRows )

                if ( ImportResult["Success"] )
                {

                    var FinishedPercent = 100
                    PercentSubImg.width=PercentSubTbl.width*FinishedPercent/100
                    PercentSubString.innerHTML='<center>' + FinishedPercent + '%</center>'
                    ProcessingInfo.innerHTML = '' + PromptArray["drvimp.js_5180_1"] + ''
                    DrvCert.UIRefresh()

                    DisplayMessage( "" + PromptArray["drvimp.js_5183_1"] + "[" + DeviceInfo[6] + "]" + PromptArray["drvimp.js_5183_2"] + "" )
                    g_ImportedDeviceArray[ g_ImportedDeviceRows + ",22"] = true
                    
                    g_ImportedDeviceArray[ g_ImportedDeviceRows + ",23"] = ImportResult["Info"] + ";" + EraseDriverResult["Info"]
                    
                    g_ImportedDeviceArray[ g_ImportedDeviceRows + ",NewDriverID"] = g_DevErrDeviceInfoArray[i+",NewDriverID"]
                    g_ImportedSuccessDeviceRows ++
                }
                else
                {
                    var FinishedPercent = 100
                    PercentSubImg.width=PercentSubTbl.width*FinishedPercent/100
                    PercentSubString.innerHTML='<center>' + FinishedPercent + '%</center>'
                    ProcessingInfo.innerHTML = '' + PromptArray["drvimp.js_5196_1"] + ''
                    DrvCert.UIRefresh()

                    DisplayMessage( "" + PromptArray["drvimp.js_5199_1"] + "[" + DeviceInfo[6] + "]" + PromptArray["drvimp.js_5199_2"] + "(" + PromptArray["drvimp.js_5199_3"] + ":" + ImportResult["Info"] + ")" )
                    
                    g_ImportedDeviceArray[ g_ImportedDeviceRows + ",22"] = false
                    
                    g_ImportedDeviceArray[ g_ImportedDeviceRows + ",23"] = "" + PromptArray["drvimp.js_5203_1"] + ":" + ImportResult["Info"] + "" + ";" + EraseDriverResult["Info"]
                    
                    g_ImportedDeviceArray[ g_ImportedDeviceRows + ",NewDriverID"] = g_DevErrDeviceInfoArray[i+",NewDriverID"]
                }
                g_ImportedDeviceRows ++
            }
            
            else
            {
                
                SaveDeviceInfoToArray( DeviceInfo , g_NoImportDeviceArray , g_NoImportDeviceRows )
                g_NoImportDeviceRows ++
            }
            
            RunDriverExportToServerCloseProcess( DeviceInfo )
        }
    }
    return true
}
function UpdateDriverFromServer()
{
    var DeviceInfo	= new Array;
    var UpdateSystemDrvFlag = ( GetCookie( "UpdateSystemDrvFlag" ) == "true" )

    var SystemDriverCanUpdate = 0
    var UserDriverCanUpdate   = 0

    
    if ( g_DeviceRowsNeedUpdateDriver )
	{

        Title.innerHTML = '<center>' + PromptArray["drvimp.js_5234_1"] + '...</center>'
                        + '<br>'
                        + '<table align=center id=PercentTbl width=400 bgColor=black border=0 cellSpacing=0 cellPadding=0 >'
                        + '<tr><td>'
                        + '  <IMG id="PercentImg" SRC="img/img.gif" WIDTH="0" HEIGHT="16" BORDER=0>'
                        + '</td></tr></table>'
                        + '<div id=PercentString>&nbsp;</div>'
                        + '<table align=center id=PercentSubTbl width=400 bgColor=black border=0 cellSpacing=0 cellPadding=0 >'
                        + '<tr><td>'
                        + '  <IMG id="PercentSubImg" SRC="img/img.gif" WIDTH="0" HEIGHT="16" BORDER=0>'
                        + '</td></tr></table>'
                        + '<div id=PercentSubString>&nbsp;</div>'
        DrvCert.UIRefresh()


        for (var i=0; i<g_NormalSystemDeviceRows && UpdateSystemDrvFlag; i++)
        {
            ReadArrayToDeviceInfo( DeviceInfo , g_NormalSystemDeviceInfoArray , i );
            
            if ( g_NormalSystemDeviceInfoArray[i+",21"] != false )
            {
                g_UserSelectUpdateDrvNumber ++
                SystemDriverCanUpdate ++
                
                
            }		
        }
        for (var i=0; i<g_UserDrvDeviceRows ; i++)
        {
            ReadArrayToDeviceInfo( DeviceInfo , g_UserDrvDeviceInfoArray , i );
            
            if ( g_UserDrvDeviceInfoArray[i+",21"] != false )
            {
                g_UserSelectUpdateDrvNumber ++
                UserDriverCanUpdate ++
                
                
            }		
        }

        


       
       if ( UpdateSystemDrvFlag && SystemDriverCanUpdate )
       {
        for (var i=0; i<g_NormalSystemDeviceRows; i++)
        {
            
            
            
            
            
            var FinishedValue = (g_UpdatedDeviceRows+1)/g_UserSelectUpdateDrvNumber
            FinishedValue = ( FinishedValue > 1 ) ? 1 : FinishedValue
            PercentImg.width=PercentTbl.width*FinishedValue
            PercentString.innerHTML = '<center>' + Math.floor( FinishedValue*100 ) + '%</center>'

            ReadArrayToDeviceInfo( DeviceInfo , g_NormalSystemDeviceInfoArray , i);

            RunDriverExportToServerOpenProcess( DeviceInfo );	
            
            
            
            
            
            
            
            if ( g_NormalSystemDeviceInfoArray[i+",21"] != false )
            {
              
              
                DisplayMessage("" + PromptArray["drvimp.js_5306_1"] + "[" + DeviceInfo[6] + "]" + PromptArray["drvimp.js_5306_2"] + "...");

            	var UserChoiceUseOthersDrvFlag = ( GetCookie( "DriverType" ) != "Private" ) 
                
                if ( UserChoiceUseOthersDrvFlag )
                {
                    var Result = ImportDriverToGivenDeviceFromServer( g_NormalSystemDeviceInfoArray[i+",NewUserID"] , 
                                                                      g_NormalSystemDeviceInfoArray[i+",NewDriverID"] ,
                                                                      DeviceInfo )
                }
                
                else
                {
                    var Result = ImportDriverToGivenDeviceFromServer( g_NormalSystemDeviceInfoArray[i+",UserID"] , 
                                                                      g_NormalSystemDeviceInfoArray[i+",DriverID"] ,
                                                                      DeviceInfo )
                }

                

                
                SaveDeviceInfoToArray( DeviceInfo , g_UpdatedDeviceArray , g_UpdatedDeviceRows )

                if ( Result["Success"] )
                {

                    var FinishedPercent = 100
                    PercentSubImg.width=PercentSubTbl.width*FinishedPercent/100
                    PercentSubString.innerHTML='<center>' + FinishedPercent + '%</center>'
                    ProcessingInfo.innerHTML = '' + PromptArray["drvimp.js_5335_1"] + ''
                    DrvCert.UIRefresh()

                    DisplayMessage( "" + PromptArray["drvimp.js_5338_1"] + "[" + DeviceInfo[6] + "]" + PromptArray["drvimp.js_5338_2"] + "" )
                    g_UpdatedDeviceArray[ g_UpdatedDeviceRows + ",22"] = true
                    g_UpdatedDeviceArray[ g_UpdatedDeviceRows + ",23"] = Result["Info"]
                    
                    g_UpdatedDeviceArray[ g_UpdatedDeviceRows + ",NewDriverID"] = g_NormalSystemDeviceInfoArray[i+",NewDriverID"]

                    g_UpdatedSuccessDeviceRows ++
                }
                else
                {
                    var FinishedPercent = 100
                    PercentSubImg.width=PercentSubTbl.width*FinishedPercent/100
                    PercentSubString.innerHTML='<center>' + FinishedPercent + '%</center>'
                    ProcessingInfo.innerHTML = '' + PromptArray["drvimp.js_5351_1"] + ''
                    DrvCert.UIRefresh()

                    DisplayMessage( "" + PromptArray["drvimp.js_5354_1"] + "[" + DeviceInfo[6] + "]" + PromptArray["drvimp.js_5354_2"] + "(" + PromptArray["drvimp.js_5354_3"] + ":" + Result["Info"] + ")" )
                    
                    g_UpdatedDeviceArray[ g_UpdatedDeviceRows + ",22"] = false
                    
                    
                    g_UpdatedDeviceArray[ g_UpdatedDeviceRows + ",23"] = "" + Result["Info"] + ""
                    
                    g_UpdatedDeviceArray[ g_UpdatedDeviceRows + ",NewDriverID"] = g_NormalSystemDeviceInfoArray[i+",NewDriverID"]
                }
                g_UpdatedDeviceRows ++
            }
            else if ( 
                        
                        ( g_NormalSystemDeviceInfoArray[i+",CanUpdate"] && ( g_NormalSystemDeviceInfoArray[i+",21"] == false ) )
                      || 
                        
                        ( g_NormalSystemDeviceInfoArray[i+",UpdateDisable"] )
                    )
            {
                
                SaveDeviceInfoToArray( DeviceInfo , g_NoUpdateDeviceArray , g_NoUpdateDeviceRows )
                g_NoUpdateDeviceRows ++
            }
            
            RunDriverExportToServerCloseProcess( DeviceInfo )
        }
      }
    
        {
            
            for (var i=0; i<g_UserDrvDeviceRows; i++)
            {
                
                var FinishedValue = (g_UpdatedDeviceRows+1)/g_UserSelectUpdateDrvNumber
                FinishedValue = ( FinishedValue > 1 ) ? 1 : FinishedValue
                

                PercentImg.width=PercentTbl.width*FinishedValue
                
                
                PercentString.innerHTML = '<center>' + Math.floor( FinishedValue*100 ) + '%</center>'

                ReadArrayToDeviceInfo( DeviceInfo , g_UserDrvDeviceInfoArray , i);

                RunDriverExportToServerOpenProcess( DeviceInfo );	
                
                
                
                
                
                
                
                if ( g_UserDrvDeviceInfoArray[i+",21"] != false )
                {
                  
                  
                    DisplayMessage("" + PromptArray["drvimp.js_5410_1"] + "[" + DeviceInfo[6] + "]" + PromptArray["drvimp.js_5410_2"] + "...");

                    var UserChoiceUseOthersDrvFlag = ( GetCookie( "DriverType" ) != "Private" ) 
                    
                    if ( UserChoiceUseOthersDrvFlag )
                    {
                        var Result = ImportDriverToGivenDeviceFromServer( g_UserDrvDeviceInfoArray[i+",NewUserID"] , 
                                                                          g_UserDrvDeviceInfoArray[i+",NewDriverID"] ,
                                                                          DeviceInfo )
                    }
                    
                    else
                    {
                        var Result = ImportDriverToGivenDeviceFromServer( g_UserDrvDeviceInfoArray[i+",UserID"] , 
                                                                          g_UserDrvDeviceInfoArray[i+",DriverID"] ,
                                                                          DeviceInfo )
                    }
                    

                    
                    SaveDeviceInfoToArray( DeviceInfo , g_UpdatedDeviceArray , g_UpdatedDeviceRows )

                    if ( Result["Success"] )
                    {

                        var FinishedPercent = 100
                        PercentSubImg.width=PercentSubTbl.width*FinishedPercent/100
                        PercentSubString.innerHTML='<center>' + FinishedPercent + '%</center>'
                        ProcessingInfo.innerHTML = '' + PromptArray["drvimp.js_5438_1"] + ''
                        DrvCert.UIRefresh()

                        DisplayMessage( "" + PromptArray["drvimp.js_5441_1"] + "[" + DeviceInfo[6] + "]" + PromptArray["drvimp.js_5441_2"] + "" )
                        g_UpdatedDeviceArray[ g_UpdatedDeviceRows + ",22"] = true
                        g_UpdatedDeviceArray[ g_UpdatedDeviceRows + ",23"] = Result["Info"]
                        
                        g_UpdatedDeviceArray[ g_UpdatedDeviceRows + ",NewDriverID"] = g_UserDrvDeviceInfoArray[i+",NewDriverID"]
                        g_UpdatedSuccessDeviceRows ++
                    }
                    else
                    {
                        var FinishedPercent = 100
                        PercentSubImg.width=PercentSubTbl.width*FinishedPercent/100
                        PercentSubString.innerHTML='<center>' + FinishedPercent + '%</center>'
                        ProcessingInfo.innerHTML = '' + PromptArray["drvimp.js_5453_1"] + ''
                        DrvCert.UIRefresh()

                        DisplayMessage( "" + PromptArray["drvimp.js_5456_1"] + "[" + DeviceInfo[6] + "]" + PromptArray["drvimp.js_5456_2"] + "(" + PromptArray["drvimp.js_5456_3"] + ":" + Result["Info"] + ")" )
                        
                        g_UpdatedDeviceArray[ g_UpdatedDeviceRows + ",22"] = false
                        
                        
                        g_UpdatedDeviceArray[ g_UpdatedDeviceRows + ",23"] = "" + Result["Info"] + ""
                        
                        g_UpdatedDeviceArray[ g_UpdatedDeviceRows + ",NewDriverID"] = g_UserDrvDeviceInfoArray[i+",NewDriverID"]
                    }
                    g_UpdatedDeviceRows ++
                }
                else if 
                ( 
                            
                            ( g_UserDrvDeviceInfoArray[i+",CanUpdate"] && ( g_UserDrvDeviceInfoArray[i+",21"] == false ) )
                          || 
                            
                            ( g_UserDrvDeviceInfoArray[i+",UpdateDisable"] )
                        )
                {
                    
                    SaveDeviceInfoToArray( DeviceInfo , g_NoUpdateDeviceArray , g_NoUpdateDeviceRows )
                    g_NoUpdateDeviceRows ++
                }
                
                RunDriverExportToServerCloseProcess( DeviceInfo )
            }
        }

    }
    return true
}
function ListDriverImportedResult()
{
    
    var stock = new Array()

    if ( g_ImportedDeviceRows )
	{
        
        var DevNeedRebootFlag   = false
        var DevNoNeedRebootFlag = false
        
        for (var i=0; i<g_ImportedDeviceRows ; i++)
		{
            if ( g_ImportedDeviceArray[ i + ",4"] & 0x00000100 ) 
            {
                DevNeedRebootFlag = true
            }
            else
            {
                DevNoNeedRebootFlag = true
            }
        }
        
        
        
        if ( DevNoNeedRebootFlag )
        {
        

            
            var SuccessFlag = false
            var FalseFlag   = false
            for (var i=0; i<g_ImportedDeviceRows ; i++)
            {
                
                
                
                
                
                
                
                ReadArrayToDeviceInfo(stock , g_ImportedDeviceArray , i)
                if ( !( stock[4] & 0x00000100 ) && ( g_ImportedDeviceArray[i+",22"] && !stock[5] ) )
                {
                    SuccessFlag = true
                }
                
                
                
                if ( !( stock[4] & 0x00000100 ) && ( !g_ImportedDeviceArray[i+",22"] || ( g_ImportedDeviceArray[i+",22"] && stock[5]) ) )
                {
                    FalseFlag = true
                }
            }

            if ( SuccessFlag )
            {
                
                
                
                
                

                oRow = document.createElement("TR");
                oCell = document.createElement("TD");
                oCell.colSpan= g_maxcols+1
                oCell.align = "center"
                
                
                oCell.innerHTML = "" + PromptArray["drvimp.js_5557_1"] + "<br><br>"

                oRow.appendChild(oCell);
                g_oTBody0.appendChild(oRow);


                for (var i=0; i<g_ImportedDeviceRows ; i++)
                {

                    ReadArrayToDeviceInfo(stock , g_ImportedDeviceArray , i)

                    
                    
                    
                    
                    
                    
                    if ( !( stock[4] & 0x00000100 ) && ( g_ImportedDeviceArray[i+",22"] && !stock[5] ) )
                    {
                        var oRow,oCell;
                        oRow = document.createElement("TR");
                        g_oTBody0.appendChild(oRow);

                        
                        
                        TranslateDeviceInfoToArray( stock , g_ImportedDeviceArray , i ,i );

                        if (!stock[6] || stock[1]==0 ||  !stock[4] )
                        {
                            stock[0] = stock[1] = stock[2] = stock[3] = stock[4] = stock[5] = stock[6] = stock[7] = "";
                        }
                        
                        
                            var ImpDrvHtml = ""
                        
                        
                        
                        
                        
                        
                        for (j=0; j<g_maxcols; j++)
                        {

                            oCell = document.createElement("TD");
                            
                            (j==0)? oCell.innerHTML =""
                               :(j==1)? oCell.innerHTML = ImpDrvHtml
                                    :(j==2)	? oCell.innerHTML = stock[7]
                                        : (j==6) ? oCell.innerHTML = stock[2]
                                             : (j==7) ? oCell.innerHTML = stock[6]
                                                      : oCell.innerHTML = stock[j];
                            
                            oCell.vAlign	="top"; 
                            if (j==7)
                            {
                                oCell.align = "left";
                            }
                            else
                            {
                                oCell.align = "center";
                            }
                            oRow.appendChild(oCell);
                        }
                    }
                }
            }

            if ( FalseFlag )
            {
                
                
                
                
                

                oRow = document.createElement("TR");
                oCell = document.createElement("TD");
                oCell.colSpan= g_maxcols+1
                oCell.align = "center"
                
                
                oCell.innerHTML = "<br>" + PromptArray["drvimp.js_5638_1"] + "<br><br>"

                oRow.appendChild(oCell);
                g_oTBody0.appendChild(oRow);


                for (var i=0; i<g_ImportedDeviceRows ; i++)
                {

                    ReadArrayToDeviceInfo(stock , g_ImportedDeviceArray , i)

                    
                    
                    
                    
                    
                    
                    
                    if ( !( stock[4] & 0x00000100 ) && ( !g_ImportedDeviceArray[i+",22"] || ( g_ImportedDeviceArray[i+",22"] && stock[5]) ) )
                    
                    {
                        var oRow,oCell;
                        oRow = document.createElement("TR");
                        g_oTBody0.appendChild(oRow);

                        
                        
                        TranslateDeviceInfoToArray( stock , g_ImportedDeviceArray , i ,i );

                        if (!stock[6] || stock[1]==0 ||  !stock[4] )
                        {
                            stock[0] = stock[1] = stock[2] = stock[3] = stock[4] = stock[5] = stock[6] = stock[7] = "";
                        }
                        
                        
                        
                        
                        
                        
                        
                            var ImpDrvHtml = ""
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        if ( g_ImportedDeviceArray[i+",22"] && !g_ImportedDeviceArray[i+",5"] ) 
                        {
                            
                            
                            stock[6] += "<span style='color: green;font-style: normal;font-family: " + PromptArray["drvimp.js_5692_1"] + ";' VALIGN='top'>"
                                      + "(" + PromptArray["drvimp.js_5693_1"] + "," + PromptArray["drvimp.js_5693_2"] + "," + PromptArray["drvimp.js_5693_3"] + ")"
                                      + "</span>"
                        }
                        else if ( !g_ImportedDeviceArray[i+",22"] )
                        {
                            
                            stock[6] += "<span style='color: green;font-style: normal;font-family: " + PromptArray["drvimp.js_5699_1"] + ";' VALIGN='top'>"
                                     
                                     
                                     + "(" + g_ImportedDeviceArray[i+",23"] + ")"
                                     
                                     +  "</span>"
                        }
                        for (j=0; j<g_maxcols; j++)
                        {

                            oCell = document.createElement("TD");
                            
                            (j==0)? oCell.innerHTML =""
                               :(j==1)? oCell.innerHTML = ImpDrvHtml
                                    :(j==2)	? oCell.innerHTML = stock[7]
                                        : (j==6) ? oCell.innerHTML = stock[2]
                                             : (j==7) ? oCell.innerHTML = stock[6]
                                                      : oCell.innerHTML = stock[j];
                            
                            oCell.vAlign	="top"; 
                            if (j==7)
                            {
                                oCell.align = "left";
                            }
                            else
                            {
                                oCell.align = "center";
                            }
                            oRow.appendChild(oCell);
                        }
                    }
                }
            }
        }

        if ( DevNeedRebootFlag )
        {
            
            
            
            
            

            oRow = document.createElement("TR");
            oCell = document.createElement("TD");
            oCell.colSpan= g_maxcols+1
            oCell.align = "center"
            oCell.innerHTML = "<br>" + PromptArray["drvimp.js_5746_1"] + "<br><br>"

            oRow.appendChild(oCell);
            g_oTBody0.appendChild(oRow);


            for (var i=0; i<g_ImportedDeviceRows ; i++)
            {
                ReadArrayToDeviceInfo(stock , g_ImportedDeviceArray , i)

                
                
                
                
                if ( stock[4] & 0x00000100 )
                {
                    var oRow,oCell;
                    oRow = document.createElement("TR");
                    g_oTBody0.appendChild(oRow);

                    
                    
                    TranslateDeviceInfoToArray( stock , g_ImportedDeviceArray , i ,i );

                    if (!stock[6] || stock[1]==0 ||  !stock[4] )
                    {
                        stock[0] = stock[1] = stock[2] = stock[3] = stock[4] = stock[5] = stock[6] = stock[7] = "";
                    }
                    
                    
                        var ImpDrvHtml = ""
                    
                    
                    
                    
                    
                    
                    for (j=0; j<g_maxcols; j++)
                    {

                        oCell = document.createElement("TD");
                        
                        (j==0)? oCell.innerHTML =""
                           :(j==1)? oCell.innerHTML = ImpDrvHtml
                                :(j==2)	? oCell.innerHTML = stock[7]
                                    : (j==6) ? oCell.innerHTML = stock[2]
                                         : (j==7) ? oCell.innerHTML = stock[6]
                                                  : oCell.innerHTML = stock[j];
                        
                        oCell.vAlign	="top"; 
                        if (j==7)
                        {
                            oCell.align = "left";
                        }
                        else
                        {
                            oCell.align = "center";
                        }
                        oRow.appendChild(oCell);
                    }
                }
            }
        }
	}

    
    
    
    
    
    
	
	
	
	
	
    
	
	
    
	
    
    
	
	
	
	
	
    
    
	
	
	
    
	
	
	
	
    
    
	
	
	
    
	
	
	
	
    
    
	
	
    
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
}   
function ListDriverUpdatedResult()
{   
    
    var stock = new Array()

    if ( g_UpdatedDeviceRows )
	{
        var DevNeedRebootFlag   = false
        var DevNoNeedRebootFlag = false
        for (var i=0; i<g_UpdatedDeviceRows ; i++)
		{
            
            if ( g_UpdatedDeviceArray[ i + ",4"] & 0x00000100 ) 
            {
                DevNeedRebootFlag = true
            }
            else
            {
                DevNoNeedRebootFlag = true
            }
        }

        if ( DevNoNeedRebootFlag )
        {
            
            var SuccessFlag = false
            var FalseFlag   = false
            for (var i=0; i<g_UpdatedDeviceRows ; i++)
            {
                
                
                
                
                
                
                
                
                
                
                ReadArrayToDeviceInfo(stock , g_UpdatedDeviceArray , i)

                if ( !(stock[4] & 0x00000100) && ( g_UpdatedDeviceArray[i+",22"] && !stock[5] ) )
                
                {
                    SuccessFlag = true
                }
                
                
                
                
                if ( !(stock[4] & 0x00000100) && ( !g_UpdatedDeviceArray[i+",22"] || ( g_UpdatedDeviceArray[i+",22"] && stock[5] ) ) )
                {
                    FalseFlag = true
                }
            }
            if ( SuccessFlag )
            {
                
                
                
                
                
            
                oRow = document.createElement("TR");
                oCell = document.createElement("TD");
                oCell.colSpan= g_maxcols+1
                oCell.align = "center"
                oCell.innerHTML = "<center><br>" + PromptArray["drvimp.js_5952_1"] + "<br></center><br>"
                oRow.appendChild(oCell);
                g_oTBody0.appendChild(oRow);


                for (var i=0; i<g_UpdatedDeviceRows ; i++)
                {
                    ReadArrayToDeviceInfo(stock , g_UpdatedDeviceArray , i)

                    
                    
                    
                    
                    
                    if ( !(stock[4] & 0x00000100) && ( g_UpdatedDeviceArray[i+",22"] && !stock[5] ) )
                    {
                        var oRow,oCell;
                        oRow = document.createElement("TR");
                        g_oTBody0.appendChild(oRow);

                        
                        
                        TranslateDeviceInfoToArray( stock , g_UpdatedDeviceArray , i ,i );

                        if (!stock[6] || stock[1]==0 ||  !stock[4] )
                        {
                            stock[0] = stock[1] = stock[2] = stock[3] = stock[4] = stock[5] = stock[6] = stock[7] = "";
                        }
                        
                        
                            var ImpDrvHtml = ""
                        
                        
                        
                        
                        
                        
                        for (j=0; j<g_maxcols; j++)
                        {

                            oCell = document.createElement("TD");
                            
                            (j==0)? oCell.innerHTML =""
                               :(j==1)? oCell.innerHTML = ImpDrvHtml
                                    :(j==2)	? oCell.innerHTML = stock[7]
                                        : (j==6) ? oCell.innerHTML = stock[2]
                                             : (j==7) ? oCell.innerHTML = stock[6]
                                                      : oCell.innerHTML = stock[j];
                            
                            oCell.vAlign	="top"; 
                            if (j==7)
                            {
                                oCell.align = "left";
                            }
                            else
                            {
                                oCell.align = "center";
                            }
                            oRow.appendChild(oCell);
                        }
                    }
                }
            }

            if ( FalseFlag )
            {
                
                
                
                
                
            
                oRow = document.createElement("TR");
                oCell = document.createElement("TD");
                oCell.colSpan= g_maxcols+1
                oCell.align = "center"
                oCell.innerHTML = "<center><br>" + PromptArray["drvimp.js_6028_1"] + "<br></center><br>"
                oRow.appendChild(oCell);
                g_oTBody0.appendChild(oRow);


                for (var i=0; i<g_UpdatedDeviceRows ; i++)
                {
                    ReadArrayToDeviceInfo(stock , g_UpdatedDeviceArray , i)

                    
                    
                    
                    
                    
                    if ( !(stock[4] & 0x00000100) && ( !g_UpdatedDeviceArray[i+",22"] || ( g_UpdatedDeviceArray[i+",22"] && stock[5] ) ) )
                    {
                        var oRow,oCell;
                        oRow = document.createElement("TR");
                        g_oTBody0.appendChild(oRow);

                        
                        
                        TranslateDeviceInfoToArray( stock , g_UpdatedDeviceArray , i ,i );

                        if (!stock[6] || stock[1]==0 ||  !stock[4] )
                        {
                            stock[0] = stock[1] = stock[2] = stock[3] = stock[4] = stock[5] = stock[6] = stock[7] = "";
                        }
                        
                        
                        
                        
                        
                        
                        
                        
                            var ImpDrvHtml = ""
                        
                        
                        
                        
                        
                        
                        
                        if ( g_UpdatedDeviceArray[i+",22"] && g_UpdatedDeviceArray[i+",5"] )
                        {
                            
                            
                            
                            stock[6] += "<span style='color: green;font-style: normal;font-family: " + PromptArray["drvimp.js_6077_1"] + ";' VALIGN='top'>"
                                     
                                     
                                     +  "(" + PromptArray["drvimp.js_6080_1"] + "," + PromptArray["drvimp.js_6080_2"] + "," + PromptArray["drvimp.js_6080_3"] + "" + g_UpdatedDeviceArray[i+",23"] + ")"
                                     
                                     +  "</span>"
                        }
                        
                        
                        
                        else if ( !g_UpdatedDeviceArray[i+",22"] && !g_UpdatedDeviceArray[i+",5"] )
                        {
                            
                            
                            stock[6] += "<span style='color: green;font-style: normal;font-family: " + PromptArray["drvimp.js_6091_1"] + ";' VALIGN='top'>"
                                     
                                     
                                     +  "(" + PromptArray["drvimp.js_6094_1"] + "," + PromptArray["drvimp.js_6094_2"] + "," + PromptArray["drvimp.js_6094_3"] + "," + PromptArray["drvimp.js_6094_4"] + "" + g_UpdatedDeviceArray[i+",23"] + ")"
                                     
                                     +  "</span>"
                        }
                        
                        
                        
                        else if ( !g_UpdatedDeviceArray[i+",22"] && g_UpdatedDeviceArray[i+",5"] )
                        {
                            
                            
                            stock[6] += "<span style='color: green;font-style: normal;font-family: " + PromptArray["drvimp.js_6105_1"] + ";' VALIGN='top'>"
                                     
                                     
                                     +  "(" + PromptArray["drvimp.js_6108_1"] + "," + PromptArray["drvimp.js_6108_2"] + "," + PromptArray["drvimp.js_6108_3"] + "" + g_UpdatedDeviceArray[i+",23"] + ")"
                                     
                                     +  "</span>"
                        }
                        
                        else
                        {
                            
                            stock[6] += "<span style='color: green;font-style: normal;font-family: " + PromptArray["drvimp.js_6116_1"] + ";' VALIGN='top'>"
                                     
                                     
                                     +  "(" + PromptArray["drvimp.js_6119_1"] + "," + PromptArray["drvimp.js_6119_2"] + "" + g_UpdatedDeviceArray[i+",23"] + ")"
                                     
                                     +  "</span>"
                        }

                        for (j=0; j<g_maxcols; j++)
                        {

                            oCell = document.createElement("TD");
                            
                            (j==0)? oCell.innerHTML =""
                               :(j==1)? oCell.innerHTML = ImpDrvHtml
                                    :(j==2)	? oCell.innerHTML = stock[7]
                                        : (j==6) ? oCell.innerHTML = stock[2]
                                             : (j==7) ? oCell.innerHTML = stock[6]
                                                      : oCell.innerHTML = stock[j];
                            
                            oCell.vAlign	="top"; 
                            if (j==7)
                            {
                                oCell.align = "left";
                            }
                            else
                            {
                                oCell.align = "center";
                            }
                            oRow.appendChild(oCell);
                        }
                    }
                }
            }

		}

        if ( DevNeedRebootFlag )
        {
            
            
            
            
            
        
            oRow = document.createElement("TR");
            oCell = document.createElement("TD");
            oCell.colSpan= g_maxcols+1
            oCell.align = "center"
            oCell.innerHTML = "<center><br>" + PromptArray["drvimp.js_6165_1"] + "<br></center><br>"
            oRow.appendChild(oCell);
            g_oTBody0.appendChild(oRow);


            for (var i=0; i<g_UpdatedDeviceRows ; i++)
            {
                ReadArrayToDeviceInfo(stock , g_UpdatedDeviceArray , i)

                
                
                
                if ( stock[4] & 0x00000100 )
                {
                    var oRow,oCell;
                    oRow = document.createElement("TR");
                    g_oTBody0.appendChild(oRow);

                    
                    
                    TranslateDeviceInfoToArray( stock , g_UpdatedDeviceArray , i ,i );

                    if (!stock[6] || stock[1]==0 ||  !stock[4] )
                    {
                        stock[0] = stock[1] = stock[2] = stock[3] = stock[4] = stock[5] = stock[6] = stock[7] = "";
                    }
                    
                    
                        var ImpDrvHtml = ""
                    
                    
                    
                    
                    
                    
                    for (j=0; j<g_maxcols; j++)
                    {

                        oCell = document.createElement("TD");
                        
                        (j==0)? oCell.innerHTML =""
                           :(j==1)? oCell.innerHTML = ImpDrvHtml
                                :(j==2)	? oCell.innerHTML = stock[7]
                                    : (j==6) ? oCell.innerHTML = stock[2]
                                         : (j==7) ? oCell.innerHTML = stock[6]
                                                  : oCell.innerHTML = stock[j];
                        
                        oCell.vAlign	="top"; 
                        if (j==7)
                        {
                            oCell.align = "left";
                        }
                        else
                        {
                            oCell.align = "center";
                        }
                        oRow.appendChild(oCell);
                    }
                }
            }
        }
	}

       
    
    
    
	
	
	
	
	
    
	
	
    
	
    
    
    
	
	
	
	
    
    
	
	
	
    
	
	
	
	
    
    
	
	
	
    
	
	
	
	
    
    
	
	
    
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
}   
function ImportDriverToGivenDeviceFromServer( UserID , DriverID , DeviceInfo )
{
    var RetInfo         = new Array()
    
    
    
    
    
    
    
    
    
    var OrgDeviceInfo = new Array()
    OrgDeviceInfo[1]   = DeviceInfo[1] 
    OrgDeviceInfo[2]   = DeviceInfo[2] 
    OrgDeviceInfo[3]   = DeviceInfo[3] 
    OrgDeviceInfo[4]   = DeviceInfo[4] 
    OrgDeviceInfo[5]   = DeviceInfo[5] 
    OrgDeviceInfo[6]   = DeviceInfo[6] 
    OrgDeviceInfo[7]   = DeviceInfo[7] 
    OrgDeviceInfo[8]   = DeviceInfo[8] 
    OrgDeviceInfo[9]   = DeviceInfo[9] 
    OrgDeviceInfo[10]  = DeviceInfo[10]
    OrgDeviceInfo[11]  = DeviceInfo[11]
    OrgDeviceInfo[12]  = DeviceInfo[12]
    OrgDeviceInfo[13]  = DeviceInfo[13]

    
    DisplayMessage( "" + PromptArray["drvimp.js_6327_1"] + "" + g_UserID + "" + PromptArray["drvimp.js_6327_2"] + "(UserID=" + UserID + ",DriverID=" + DriverID + ")..." )

    var FinishedPercent = 10
    PercentSubImg.width=PercentSubTbl.width*FinishedPercent/100
    PercentSubString.innerHTML='<center>' + FinishedPercent + '%</center>'
    ProcessingInfo.innerHTML = '' + PromptArray["drvimp.js_6332_1"] + '...'
    DrvCert.UIRefresh()

    
    
    
    
    var errInfo = UploadDriverToImportDeviceInfoToServer( g_UserID , UserID , DriverID , DeviceInfo )
    if ( errInfo )
    {
        RetInfo["Success"]  = false
        RetInfo["Info"]     = errInfo
        return ( RetInfo )
    }
    
    DisplayMessage( "" + PromptArray["drvimp.js_6347_1"] + "/" + PromptArray["drvimp.js_6347_2"] + "" )
    
    

    
    DisplayMessage( "" + PromptArray["drvimp.js_6352_1"] + "" + g_UserID + "" + PromptArray["drvimp.js_6352_2"] + "(UserID=" + UserID + ",DriverID=" + DriverID + ")..." )

    FinishedPercent = 20
    PercentSubImg.width=PercentSubTbl.width*FinishedPercent/100
    PercentSubString.innerHTML='<center>' + FinishedPercent + '%</center>'
    ProcessingInfo.innerHTML = '' + PromptArray["drvimp.js_6357_1"] + '...'
    DrvCert.UIRefresh()
    
    var DriverInfo = GetGivenDriverInfoFromServerByDriverID( g_UserID , DriverID )
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    

    if ( DriverInfo["Success"] )
    {
        DriverInfo["DriverID"] = DriverID
    }
    else
    {
        
        DeviceInfo[6] += "(" + PromptArray["drvimp.js_6392_1"] + ":" + PromptArray["drvimp.js_6392_2"] + "#" + DriverID + "" + PromptArray["drvimp.js_6392_3"] + ")"
        UploadDriverImportedDeviceInfoToServer( g_UserID , UserID , DriverID , DeviceInfo , OrgDeviceInfo );

        RetInfo["Success"]  = false
        RetInfo["Info"]     = DriverInfo["Info"]
        return ( RetInfo )
    }
    
    DisplayMessage( "" + PromptArray["drvimp.js_6400_1"] + "#" + DriverID + "" + PromptArray["drvimp.js_6400_2"] + "" )


    FinishedPercent = 30
    PercentSubImg.width=PercentSubTbl.width*FinishedPercent/100
    PercentSubString.innerHTML='<center>' + FinishedPercent + '%</center>'
    ProcessingInfo.innerHTML = '' + PromptArray["drvimp.js_6406_1"] + '...'
    DrvCert.UIRefresh()
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    var DriverNameSubDir = ""
    
    if ( DriverInfo["DriverName"].indexOf( "\\" ) != -1 )
    {
        
        DriverNameSubDir = "\\" + DriverInfo["DriverName"].substring( 0 , DriverInfo["DriverName"].indexOf("\\") )
        DriverInfo["DriverName"] = DriverInfo["DriverName"].substr( DriverInfo["DriverName"].indexOf("\\") + 1 )
    }
    
    var DownloadPath =  g_DownloadPath + "\\" + DOWNLOAD_DRIVER_SUBDIR + "\\" 
                                
                                
                                
                                + DriverInfo["Provider"].replace( /[\/\?\*\:\<\>\|]/gi , "" )    + "\\" 
                                
                                
                                
                                
                                + DriverInfo["ClassName"].replace( /[\/\?\*\:\<\>\|]/gi , "" )   + "\\" 
                                
                                + DriverID   
                                
                                + DriverNameSubDir

    
    
    
    
    var DriverCabFilename = DownloadPath + "\\"  + DriverInfo["DriverName"] 
	var DrvFileNameXml = DrvCert.FindFileInPath( DriverCabFilename ) ;
    var FindFileName = GetXmlSingleNodeText( DrvFileNameXml , "FileItem0" )
    
    if ( FindFileName && ( DrvCert.GetFileSize( DriverCabFilename ) == DriverInfo["DriverSize"] ) ) 
    {
        FinishedPercent = 40
        PercentSubImg.width=PercentSubTbl.width*FinishedPercent/100
        PercentSubString.innerHTML='<center>' + FinishedPercent + '%</center>'
        ProcessingInfo.innerHTML = '' + PromptArray["drvimp.js_6464_1"] + '...'
        DrvCert.UIRefresh()
        DisplayMessage( "" + PromptArray["drvimp.js_6466_1"] + "[" + ( DriverCabFilename ) + "]" + PromptArray["drvimp.js_6466_2"] + "," + PromptArray["drvimp.js_6466_3"] + "" )
    }
    
    else
    {
        
        FinishedPercent = 35
        PercentSubImg.width=PercentSubTbl.width*FinishedPercent/100
        PercentSubString.innerHTML='<center>' + FinishedPercent + '%</center>'
        ProcessingInfo.innerHTML = '' + PromptArray["drvimp.js_6475_1"] + '...'
        DrvCert.UIRefresh()

        DisplayMessage( "" + PromptArray["drvimp.js_6478_1"] + "" + g_DownloadPath.substring( 0 , 1 ) + ":" + "" + PromptArray["drvimp.js_6478_2"] + "..." )

        var CurDriveFreeSpaceXml = DrvCert.GetDiskFreeSpaceXml( g_DownloadPath.substring( 0 , 1 ) + ":" )
        var CurDriveFreeSpace    = parseInt( GetXmlSingleNodeText( CurDriveFreeSpaceXml , "FreeBytes" ) )
        if ( CurDriveFreeSpace < DriverInfo["DriverSize"] )
        {
            DisplayMessage( g_DownloadPath.substring( 0 , 1 ) + ":" + "" + PromptArray["drvimp.js_6484_1"] + "#" + DriverID + "(len=" + DriverInfo["DriverSize"] + ")" )

            
            DeviceInfo[6] += "(" + PromptArray["drvimp.js_6487_1"] + ":" + g_DownloadPath.substring( 0 , 1 ) + ":" + "" + PromptArray["drvimp.js_6487_2"] + "," + PromptArray["drvimp.js_6487_3"] + "#" + DriverID + ",len=" + DriverInfo["DriverSize"] + ")"
            UploadDriverImportedDeviceInfoToServer( g_UserID , UserID , DriverID , DeviceInfo , OrgDeviceInfo );

            RetInfo["Success"]  = false
            RetInfo["Info"]     = g_DownloadPath.substring( 0 , 1 ) + ":" + "" + PromptArray["drvimp.js_6491_1"] + "," + PromptArray["drvimp.js_6491_2"] + ""
            return ( RetInfo )
        }
        
        
        

        FinishedPercent = 40
        PercentSubImg.width=PercentSubTbl.width*FinishedPercent/100
        PercentSubString.innerHTML='<center>' + FinishedPercent + '%</center>'
        ProcessingInfo.innerHTML = '' + PromptArray["drvimp.js_6501_1"] + '...'
        DrvCert.UIRefresh()

        DrvCert.DeleteFile( DownloadPath + "\\" + DriverInfo["DriverName"] )
        
        DisplayMessage( "" + PromptArray["drvimp.js_6506_1"] + "" + ( DownloadPath + "\\" + DriverInfo["DriverName"] ) + "" + PromptArray["drvimp.js_6506_2"] + "" )

        
        
        var DownloadInfo = DownloadMatchingDriverFromServerToPath( g_UserID , DriverInfo , DownloadPath + "\\" + DriverInfo["DriverName"] )
        if ( DownloadInfo["Success"] )
        {
        }
        else
        {
            
            DeviceInfo[6] += "(" + PromptArray["drvimp.js_6517_1"] + ":" + PromptArray["drvimp.js_6517_2"] + "#" + DriverInfo["DriverID"] + "" + PromptArray["drvimp.js_6517_3"] + " - " + DownloadInfo["Info"] + ")"
            UploadDriverImportedDeviceInfoToServer( g_UserID , UserID , DriverID , DeviceInfo , OrgDeviceInfo );

            RetInfo["Success"]  = false
            RetInfo["Info"]     = DownloadInfo["Info"]
            return ( RetInfo )
        }
        
        DisplayMessage( "" + PromptArray["drvimp.js_6525_1"] + "#" + g_UserID + "" + PromptArray["drvimp.js_6525_2"] + "#" + DriverInfo["DriverID"] + "" + PromptArray["drvimp.js_6525_3"] + "" + ( DownloadPath + "\\" + DriverInfo["DriverName"] ) + "" + PromptArray["drvimp.js_6525_4"] + "" )

        var DriverCabFilename = DownloadPath + "\\" + DriverInfo["DriverName"]

        
        
        
        if ( DrvCert.GetFileSize( DriverCabFilename ) < 50 )
        {
            
            DeviceInfo[6] += "(" + PromptArray["drvimp.js_6535_1"] + ":" + PromptArray["drvimp.js_6535_2"] + "#" + DriverInfo["DriverID"] + "" + PromptArray["drvimp.js_6535_3"] + "," + PromptArray["drvimp.js_6535_4"] + ")"
            UploadDriverImportedDeviceInfoToServer( g_UserID , UserID , DriverID , DeviceInfo , OrgDeviceInfo );

            RetInfo["Success"]  = false
            RetInfo["Info"]     = "" + PromptArray["drvimp.js_6539_1"] + "" + DriverCabFilename + "" + PromptArray["drvimp.js_6539_2"] + "(" + PromptArray["drvimp.js_6539_3"] + ")"
            return ( RetInfo )
        }
    }
    
    

    FinishedPercent = 80
    PercentSubImg.width=PercentSubTbl.width*FinishedPercent/100
    PercentSubString.innerHTML='<center>' + FinishedPercent + '%</center>'
    ProcessingInfo.innerHTML = '' + PromptArray["drvimp.js_6549_1"] + '...'
    DrvCert.UIRefresh()
    
    var ExtractCabPath = DownloadPath + "\\" + DriverCabFilename.substr( DriverCabFilename.lastIndexOf("\\") + 1 ).replace( /\.cab$/gi , "" )
    
    
    
    var extractResult = DrvCert.ExtractCabToPath( DriverCabFilename , ExtractCabPath )
    
    
    
    DisplayMessage( "" + PromptArray["drvimp.js_6560_1"] + "" + DriverCabFilename + "" + PromptArray["drvimp.js_6560_2"] + "" + ExtractCabPath  )

    FinishedPercent = 85
    PercentSubImg.width=PercentSubTbl.width*FinishedPercent/100
    PercentSubString.innerHTML='<center>' + FinishedPercent + '%</center>'
    ProcessingInfo.innerHTML = '' + PromptArray["drvimp.js_6565_1"] + 'INF' + PromptArray["drvimp.js_6565_2"] + '...'
    DrvCert.UIRefresh()
    
    
    
    
    
    
    
    
    
    
    if ( DriverInfo["DriverDecKey"] )
    {
        var EncryptKey = DriverInfo["DriverDecKey"]
    }
    
    else
    {
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
    }
    
	
    var FileNameXml = DrvCert.FindFileInPath( ExtractCabPath + "\\*.enc.inf" ) ;
    var EncINFFileName = GetXmlSingleNodeText( FileNameXml , "FileItem0" )
    if ( !EncINFFileName ) 
    {
        
        DeviceInfo[6] += "(" + PromptArray["drvimp.js_6607_1"] + ":" + PromptArray["drvimp.js_6607_2"] + "#" + DriverInfo["DriverID"] + "" + PromptArray["drvimp.js_6607_3"] + "*.enc.inf" + PromptArray["drvimp.js_6607_4"] + ")"
        UploadDriverImportedDeviceInfoToServer( g_UserID , UserID , DriverID , DeviceInfo , OrgDeviceInfo );

        RetInfo["Success"]  = false
        
        
        RetInfo["Info"]     = "" + PromptArray["drvimp.js_6613_1"] + "" + ExtractCabPath + "" + PromptArray["drvimp.js_6613_2"] + "*.enc.inf" + PromptArray["drvimp.js_6613_3"] + ""
        return ( RetInfo )
    }
    
    
    
    
    var INFFIleName = EncINFFileName
    
    

    
    
    
    var INFFilePathFileName = ExtractCabPath + "\\" + INFFIleName
    
    
    
    
    
    
    

    
    DisplayMessage( "" + PromptArray["drvimp.js_6637_1"] + "INF" + PromptArray["drvimp.js_6637_2"] + "" + INFFilePathFileName + "" + PromptArray["drvimp.js_6637_3"] + "" )    

    
    
    
    

    
    
    
    


    FinishedPercent = 90
    PercentSubImg.width=PercentSubTbl.width*FinishedPercent/100
    PercentSubString.innerHTML='<center>' + FinishedPercent + '%</center>'
    ProcessingInfo.innerHTML = '' + PromptArray["drvimp.js_6653_1"] + '...'
    DrvCert.UIRefresh()
    
    
    
    
    
    var InfHandle = DrvInf.OpenINFFile( INFFilePathFileName )
    
    
    if ( InfHandle == 0xFFFFFFFF )
    {
        
        DeviceInfo[6] += "(" + PromptArray["drvimp.js_6666_1"] + ":" + PromptArray["drvimp.js_6666_2"] + "#" + DriverInfo["DriverID"] + "" + PromptArray["drvimp.js_6666_3"] + "INF" + PromptArray["drvimp.js_6666_4"] + ")"
        UploadDriverImportedDeviceInfoToServer( g_UserID , UserID , DriverID , DeviceInfo , OrgDeviceInfo );

        
        DisplayMessage( "" + PromptArray["drvimp.js_6670_1"] + "INF" + PromptArray["drvimp.js_6670_2"] + "" + INFFilePathFileName )

        RetInfo["Success"]  = false
        RetInfo["Info"]     = "" + PromptArray["drvimp.js_6673_1"] + "INF" + PromptArray["drvimp.js_6673_2"] + "" + INFFIleName
        return ( RetInfo )
    }
    

    var SectionFalg             = (DrvInf.GetSectionKeyValue( InfHandle , "Version" , "" , 0 )) ? true : false
    var DriverType              = ( SectionFalg ) ? DrvInf.GetSectionKeyValue( InfHandle , "Version" , "DriverType"  , 1 ) : ""
    var DriverProvider          = ( SectionFalg ) ? DrvInf.GetSectionKeyValue( InfHandle , "Version" , "Provider"    , 1 ) : ""

    
    if ( DriverType && ( DriverType.toUpperCase() == "EXE" ) )
    {
        
        DisplayMessage( "" + PromptArray["drvimp.js_6686_1"] + "INF" + PromptArray["drvimp.js_6686_2"] + "EXE," + PromptArray["drvimp.js_6686_3"] + "" + DriverProvider )

        
        DisplayMessage( "" + PromptArray["drvimp.js_6689_1"] + "#" + DriverID + "" + PromptArray["drvimp.js_6689_2"] + "..." )

        var HashValueExistFlag = false
        var hKey = DrvCert.RegOpenKey( 2 , "SOFTWARE\\Walker\\MyDrivers")
        if ( hKey )
        {
            HashValueExistFlag = DrvCert.RegQueryValue( hKey , DriverInfo["DriverHash" ] )
            DrvCert.RegCloseKey( hKey )
            hKey = null
        }
        
        
        
        if ( DeviceInfo[5] || !HashValueExistFlag )
        
        
        
        
        
        {
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            var InfContext              = DrvInf.FindFirstLineInSection( InfHandle , DriverProvider , "" )
            
            var InfSectionName = ""
            var MatchingDeviceID = ""
            var StrArrayTmp1 = new Array
            var StrArrayTmp2 = new Array
            var AllLineContent = ""
            while ( InfContext )
            {
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                InfSectionName          = DrvInf.GetFieldValueInLine( InfContext ,  1 )
                MatchingDeviceID        = DrvInf.GetFieldValueInLine( InfContext ,  2 )
                if ( DriverInfo["DeviceID"].toUpperCase() == MatchingDeviceID.toUpperCase() )
                {
                    break
                }
                InfContext = DrvInf.FindNextLineInSection( InfContext )
            }
            
            

            InfContext              = DrvInf.FindFirstLineInSection( InfHandle , InfSectionName , "AddReg" )
            var AddRegSectionName   = DrvInf.GetFieldValueInLine( InfContext ,  1 )
            InfContext              = DrvInf.FindFirstLineInSection( InfHandle , AddRegSectionName , "" )
            
            
            
            
            

            var SetupExePathFilename    = DrvInf.GetFieldValueInLine( InfContext ,  5 )
            
            DisplayMessage( "" + PromptArray["drvimp.js_6805_1"] + "\"" + SetupExePathFilename + "\"" )

            
            DrvInf.CloseINFFile( InfHandle )
            
            
            
            
            DrvCert.DeleteFile( INFFilePathFileName )

            
            
            
            SetupExePathFilename = SetupExePathFilename.replace( / \/s/i , "" ) 

            
            if ( !SetupExePathFilename )
            {
                
                DeviceInfo[6] += "(" + PromptArray["drvimp.js_6824_1"] + ":" + PromptArray["drvimp.js_6824_2"] + "#" + DriverInfo["DriverID"] + "" + PromptArray["drvimp.js_6824_3"] + "-" + SetupExePathFilename + ")"
                UploadDriverImportedDeviceInfoToServer( g_UserID , UserID , DriverID , DeviceInfo , OrgDeviceInfo );

                var installResult = 1
                var installResultInfo = "" + PromptArray["drvimp.js_6828_1"] + "\"" + SetupExePathFilename + "\""
                
                
                DisplayMessage( "" + PromptArray["drvimp.js_6831_1"] + "" + ExtractCabPath + "" + PromptArray["drvimp.js_6831_2"] + "" + installResultInfo )

                RetInfo["Success"]  = false
                RetInfo["Info"]     = installResultInfo
                return ( RetInfo )
            }
            else
            {
                
                
                
                
                
                
                
                var EXEDrvShellRunFlag = DrvCert.ShellRun( SetupExePathFilename , true )    
                
                
                
                var installResult = 0 
                
                
                
                var hKey = DrvCert.RegOpenKey( 2 , "SOFTWARE\\Walker\\MyDrivers")
                if ( hKey )
                {
                    var ValueDataString =	"<RegInfo>"
                                        +		"<RegValueType>REG_DWORD</RegValueType>"
                                        +		"<RegValueData>1</RegValueData>"
                                        +	"</RegInfo>"	
                    DrvCert.RegSetValue( hKey , DriverInfo["DriverHash" ] , ValueDataString )
                    
                    DrvCert.RegCloseKey( hKey )
                    hKey = null
                }
                
                
            }
        }
        
        else
        {
            
            DisplayMessage( "" + PromptArray["drvimp.js_6874_1"] + "" )
        }
    }
    
    else
    {
        
        DisplayMessage( "" + PromptArray["drvimp.js_6881_1"] + "INF" + PromptArray["drvimp.js_6881_2"] + "INF," + PromptArray["drvimp.js_6881_3"] + "" + DriverProvider )

        
        DrvInf.CloseINFFile( InfHandle )

        
        
        
        
        
        
        
        var NewDeviceIndex = DeviceInfo[1]

        
        g_OSEnumDevFlag = 1
        
        
        
        
        
        
        

        
        
        
        
        DisplayMessage( "" + PromptArray["drvimp.js_6909_1"] + "..." )

        
        
        var installResult       = DrvInst.InstallDriver( ExtractCabPath ,NewDeviceIndex )
        
        var installStatusString = DrvInst.StatusString

        
        
        
        
        
        

        
        
        
        
        
        
        var hKey = DrvCert.RegOpenKey( 2 , "SOFTWARE\\Walker\\MyDrivers")
        if ( hKey )
        {
            var ValueDataString =	"<RegInfo>"
                                +		"<RegValueType>REG_DWORD</RegValueType>"
                                +		"<RegValueData>1</RegValueData>"
                                +	"</RegInfo>"	
            DrvCert.RegSetValue( hKey , DriverInfo["DriverHash" ] , ValueDataString )
            
            DrvCert.RegCloseKey( hKey )
            hKey = null
        }
        
        

        
        
        g_OSEnumDevFlag = 0

        
        
        var installResultInfo = ( installResult == 0 ) ? "" + PromptArray["drvimp.js_6951_1"] + "" : "" + PromptArray["drvimp.js_6951_2"] + "( " + installStatusString + " )"
        
        
        DisplayMessage( "" + PromptArray["drvimp.js_6954_1"] + "" + ExtractCabPath + "" + PromptArray["drvimp.js_6954_2"] + "" + installResultInfo )
        
        

    }
    
    

    FinishedPercent = 95
    PercentSubImg.width=PercentSubTbl.width*FinishedPercent/100
    PercentSubString.innerHTML='<center>' + FinishedPercent + '%</center>'
    ProcessingInfo.innerHTML = '' + PromptArray["drvimp.js_6965_1"] + '...'
    DrvCert.UIRefresh()


    
    
    
    
    
    
    

    
    
	 var getStatusResult       = DrvInst.GetDeviceStatus( DeviceInfo[1] )
    
    
    var getStatusResultString = DrvInst.StatusString
    
    if ( getStatusResult )
    {
        
        
        DisplayMessage( "" + PromptArray["drvimp.js_6988_1"] + "#" + DeviceInfo[1] + "" + PromptArray["drvimp.js_6988_2"] + "(" + getStatusResultString + ")" )
        
        
    }
    else
    {
        
        GetDeviceInfoToArray( DeviceInfo )
    }

    
    
    if ( 
            
            
            ( installResult && installStatusString && installStatusString.indexOf( "" + PromptArray["drvimp.js_7003_1"] + " - " + PromptArray["drvimp.js_7003_2"] + "" ) != -1 )
            
            
         
         
       )
    {
        DisplayMessage( "" + PromptArray["drvimp.js_7010_1"] + "#" + DeviceInfo[1] + "" + PromptArray["drvimp.js_7010_2"] + "..." )
        
        DeviceInfo[4] |= 0x00000100
        
        
        
        
        
        
        
        
    	
        var Sys32Path = DrvCert.GetFolderPath( 37 )
        
        var InfNameTmp = DriverInfo["InfName"].replace( /.enc.inf$/gi, ".inf" )
        var ShellCmd   = Sys32Path + "\\rundll32 " + Sys32Path + "\\advpack.dll,LaunchINFSection " 
                       
                       
                       + ExtractCabPath + "\\" + InfNameTmp.substr( InfNameTmp.lastIndexOf("\\")+1 ) 
                       
                       + "," + DriverInfo["Section"]
        
        DisplayMessage( "" + PromptArray["drvimp.js_7032_1"] + "#" + DeviceInfo[1] + "" + PromptArray["drvimp.js_7032_2"] + "" + ShellCmd )
        
        
        DrvInst.DelDevice( DeviceInfo[1] )
        
        installResult = 0
    }
    
    

    
    
    
    
    if ( !OrgDeviceInfo[5] && DeviceInfo[5] )
    {
        var flag = DrvInst.RestoreDriver( OrgDeviceInfo[1] )

        if (flag != 0)
        {
            DisplayMessage("" + PromptArray["drvimp.js_7052_1"] + "[" + DeviceInfo[6] + "](#" + OrgDeviceInfo[1] + ")" + PromptArray["drvimp.js_7052_2"] + "")
        }
        else
        {
            DisplayMessage("" + PromptArray["drvimp.js_7056_1"] + "[" + DeviceInfo[6] + "](#" + OrgDeviceInfo[1] + ")" + PromptArray["drvimp.js_7056_2"] + "")
        }
    }
    
    
    


    
    
    if ( EXEDrvShellRunFlag ) DeviceInfo[4] |= 0x00000100;
    
    

    FinishedPercent = 98
    PercentSubImg.width=PercentSubTbl.width*FinishedPercent/100
    PercentSubString.innerHTML='<center>' + FinishedPercent + '%</center>'
    ProcessingInfo.innerHTML = '' + PromptArray["drvimp.js_7073_1"] + '...'
    DrvCert.UIRefresh()
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    DeviceInfo[6] += ( installResult == 0 ) ? "" : "(" + PromptArray["drvimp.js_7089_1"] + ": " + installStatusString + " )"
    UploadDriverImportedDeviceInfoToServer( g_UserID , UserID , DriverID , DeviceInfo , OrgDeviceInfo );
    
     
    
    

    
                                             
    RetInfo["Success"]  = (DeviceInfo[5])    ? ( EXEDrvShellRunFlag ) ? true 
                                             
                                             : ( installResult == 0 ) ? true : false 
                                             
                                             
                                             : ( installResult == 0 ) ? true : false 

                                             
    RetInfo["Info"]     = (DeviceInfo[5])    ? ( EXEDrvShellRunFlag ) ? "" + PromptArray["drvimp.js_7106_1"] + "(" + PromptArray["drvimp.js_7106_2"] + "," + PromptArray["drvimp.js_7106_3"] + ")" 
                                             
                                             : ( installResult == 0 ) ? "" + PromptArray["drvimp.js_7108_1"] + "(" + PromptArray["drvimp.js_7108_2"] + "," + PromptArray["drvimp.js_7108_3"] + ")" 
                                                                      : "" + PromptArray["drvimp.js_7109_1"] + "(" + installStatusString + ")"
                                             
                                             
                                             : ( installResult == 0 ) ? "" + PromptArray["drvimp.js_7112_1"] + "" : "" + PromptArray["drvimp.js_7112_2"] + "" + installResultInfo
    

    return ( RetInfo )
}
function GetUserExportedDriverRows()
{
    var Rows = 0
	for (var i=0; i<g_DevErrDeviceRows ; i++)
	{
        if ( g_DevErrDeviceInfoArray[i+",UserID"  ] == g_UserID ) Rows ++
	}
    
	for (var i=0; i<g_UserDrvDeviceRows ; i++)
	{
        if ( g_UserDrvDeviceInfoArray[i+",UserID"  ] == g_UserID ) Rows ++
    }
    return Rows

}


function UploadDriverToImportDeviceInfoToServer(        UserID , 
                                                        MatchingDriverUserID , 
                                                        MatchingDriverDriverID , 
                                                        DeviceInfo )
{
	
	
	
	
	
	
	
	
	
	
	
	
	
	               

    var SoapApplyURL = ServerName.value + SoapAspURL.value		

	var SoapRequestXML = ""
    
	
	SoapRequestXML += '<?xml version="1.0" standalone="no"?>\n'
	SoapRequestXML += '<SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http:\/\/schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http:\/\/schemas.xmlsoap.org/soap/envelope/">\n'
	SoapRequestXML += "   <SOAP-ENV:Header xmlns:wsu =\"http:\/\/schemas.xmlsoap.org/ws/2002/07/utility\" "
	SoapRequestXML += "                    xmlns:wsse=\"http:\/\/schemas.xmlsoap.org/ws/2002/07/secext\" >\n"
    SoapRequestXML += GetClientInfo()
	SoapRequestXML += "   </SOAP-ENV:Header>\n"
	SoapRequestXML += "   <SOAP-ENV:Body>\n"
	SoapRequestXML += "     <n:UploadDriverToImportDeviceInfo xmlns:n=\"http:\/\/e-drivers.cn/soap/\">\n"
    SoapRequestXML += "         <UserID>"                   + UserID                        + "</UserID>\n"
    SoapRequestXML += "         <MatchingDriverUserID>"     + MatchingDriverUserID          + "</MatchingDriverUserID>\n"
    SoapRequestXML += "         <MatchingDriverDriverID>"   + MatchingDriverDriverID        + "</MatchingDriverDriverID>\n"
    SoapRequestXML += "         <DeviceIndex>"              + DeviceInfo[1]                 + "</DeviceIndex>\n"
    SoapRequestXML += "         <DeviceClassID>"            + DeviceInfo[2]                 + "</DeviceClassID>\n"
    SoapRequestXML += "         <DeviceClassType>"          + DeviceInfo[3]                 + "</DeviceClassType>\n"
    SoapRequestXML += "         <DeviceStatus>"             + DeviceInfo[4]                 + "</DeviceStatus>\n"
    SoapRequestXML += "         <DeviceProblem>"            + DeviceInfo[5]                 + "</DeviceProblem>\n"
    SoapRequestXML += "         <DeviceName>"               + XmlEncoding( DeviceInfo[6] )  + "</DeviceName>\n"
    SoapRequestXML += "         <BackupDriverStatus>"       + DeviceInfo[7]                 + "</BackupDriverStatus>\n"
    SoapRequestXML += "         <HardwareID>"               + XmlEncoding( DeviceInfo[8] )  + "</HardwareID>\n"
    SoapRequestXML += "         <CompatibleID>"             + XmlEncoding( DeviceInfo[9] )  + "</CompatibleID>\n"
    SoapRequestXML += "         <MatchingDeviceID>"         + XmlEncoding( DeviceInfo[10])  + "</MatchingDeviceID>\n"
    SoapRequestXML += "         <DriverDate>"               + XmlEncoding( DeviceInfo[11])  + "</DriverDate>\n"
    SoapRequestXML += "         <DriverVer>"                + XmlEncoding( DeviceInfo[12])  + "</DriverVer>\n"
    SoapRequestXML += "         <DriverProvider>"           + XmlEncoding( DeviceInfo[13])  + "</DriverProvider>\n"
    SoapRequestXML += "     </n:UploadDriverToImportDeviceInfo>\n"
	SoapRequestXML += "   </SOAP-ENV:Body>\n"
	SoapRequestXML += "</SOAP-ENV:Envelope>"

	
    
    var ReturnXML = MyXMLHttpRequest( SoapApplyURL , SoapRequestXML )

	if (ReturnXML == null || ReturnXML == "")
	{
        DisplayMessage( "" + PromptArray["drvimp.js_7193_1"] + "," + PromptArray["drvimp.js_7193_2"] + ":\n" + SoapRequestXML )
		return "" + PromptArray["drvimp.js_7194_1"] + ""
	}

	var ErrorInfo = GetInfoByTagFromXml( ReturnXML, SOAP_RET_ERROR_STRING_TAG )
	if (ErrorInfo != null) 
	{
		return ErrorInfo
	}
	else
	{
        var UploadResult = GetInfoByTagFromXml( ReturnXML, "Result" )
		return ( UploadResult == "Success" ) ? "" : UploadResult
	}
}



function DownloadMatchingDriverFromServerToPath( DownloadUserID , DriverInfo , DownloadPathFileName )
{
    
    
    
    
    
    
    

    
    var CookieFlag = GetCookie( "DrvTransforMode" )
	if ( ( CookieFlag == "true") || !CookieFlag ) 
    {
        var RetInfo = DownloadDriverByCGI( DriverInfo , DownloadPathFileName )
        return ( RetInfo )
    }
    else
    {
        var RetInfo = DownloadDriverBySOAP( DriverInfo , DownloadPathFileName )
        return ( RetInfo )
    }
}

function DownloadDriverByCGI( DriverInfo , DownloadPathFileName )
{
    
    var CurFilePointer  = 0
    var ReadSize        = 0
    var FinishedPercent = 0

    
    
    g_SkipImpCurDrvFlag = 0

    var RetInfo = new Array()
    RetInfo["Success"] = false
    RetInfo["Info"]    = ""

    try
    {
        
        var URL = ServerName.value + SoapAspURL.value + "?Mode=DownloadDrv&DriverID=" + DriverInfo["DriverID"]

        var hHttpFile       = DrvCert.HttpOpenRequestToHandle( URL )
        if ( !hHttpFile ) 
        {
            RetInfo["Info"]    = "" + PromptArray["drvimp.js_7258_1"] + "HttpOpenRequestToHandle(" +  URL + ")" + PromptArray["drvimp.js_7258_2"] + ""
            return ( RetInfo )
        }
        var SubmitFlag = DrvCert.HttpWriteFile( hHttpFile , null , 0 )
        if ( !SubmitFlag )
        {
            
            DrvCert.HttpCloseRequest( hHttpFile )
            

            RetInfo["Info"]    = "" + PromptArray["drvimp.js_7268_1"] + "HttpWriteFile(" +  hHttpFile + ")" + PromptArray["drvimp.js_7268_2"] + "" + DrvCert.ErrorString
            return ( RetInfo )
        }

        var TotalSize       = DrvCert.HttpQueryFileLength( hHttpFile )
        if ( !TotalSize )
        {
            
            TotalSize = DriverInfo["DriverSize"]

            
            
            
            
            
            
        }

        
        try
        {
        

            var ReadSize        = CGI_DOWNLOAD_CAB_FILE_BUFFER_SIZE
            
            
            var FileBinContent

            
            
            
            DrvCert.DeleteFile( DownloadPathFileName )

            var TargetFileHandle = DrvCert.OpenFileForWrite( DownloadPathFileName )

            for (var ReadedSize = 0 ; ReadedSize < TotalSize ;  ReadedSize += ReadSize )
            {
                FinishedPercent = 40 + Math.floor( 40*( CurFilePointer / DriverInfo["DriverSize"] ) )
                PercentSubImg.width=PercentSubTbl.width*FinishedPercent/100
                PercentSubString.innerHTML='<center>' + FinishedPercent + '%</center>'
                
                
                ProcessingInfo.innerHTML = '<div >' + PromptArray["drvimp.js_7310_1"] + '<br>' + PromptArray["drvimp.js_7310_2"] + '...'
                
                                         + Math.floor( CurFilePointer/1024 ) + 'k/' + Math.floor( DriverInfo["DriverSize"]/1024 ) + 'k'
                                         + '&nbsp;&nbsp;<a href="?" onclick="g_SkipImpCurDrvFlag=1;return false;">' + PromptArray["drvimp.js_7313_1"] + '</a>'
                                         + '</div>'
                DrvCert.UIRefresh()

                
                if ( g_SkipImpCurDrvFlag )
                {
                    RetInfo["Info"]    = "" + PromptArray["drvimp.js_7320_1"] + ""
                    return ( RetInfo )
                }
                
                
                FileBinContent  = DrvCert.HttpReadFile( hHttpFile , ReadSize )
                
                
                
                
                
                
                
                
                
                
                
                
                
                

                if ( !DrvCert.AppendBinDataToFile( TargetFileHandle , FileBinContent ) )
                {
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    DisplayMessage( "" + PromptArray["drvimp.js_7363_1"] + "," + PromptArray["drvimp.js_7363_2"] + "..." )
                    
                    var ContinueFlag = true
                    while( ContinueFlag )
                    {
                        DisplayMessage( "" + PromptArray["drvimp.js_7368_1"] + "" + hHttpFile + "..." )
                        
                        if ( ( hHttpFile != 0xffffffff ) && ( hHttpFile != 0 ) )   DrvCert.HttpCloseRequest( hHttpFile )

                        hHttpFile        = 0xffffffff

                        
                        URL = ServerName.value + SoapAspURL.value + "?Mode=DownloadDrv&DriverID=" + DriverInfo["DriverID"] + "&Offset=" + ( CurFilePointer + ReadSize )

                        DisplayMessage( "" + PromptArray["drvimp.js_7377_1"] + "(URL=" +URL + ")..." )
                        hHttpFile       = DrvCert.HttpOpenRequestToHandle( URL )
                        
                        if (!hHttpFile)     hHttpFile = DrvCert.HttpOpenRequestToHandle( URL )
                        if (!hHttpFile)     hHttpFile = DrvCert.HttpOpenRequestToHandle( URL )
                        if (!hHttpFile)     hHttpFile = DrvCert.HttpOpenRequestToHandle( URL )

                        
                        if ( !hHttpFile )  
                        {
                            
                            if ( !confirm( "" + PromptArray["drvimp.js_7388_1"] + "," + PromptArray["drvimp.js_7388_2"] + "\n" + PromptArray["drvimp.js_7388_3"] + "“" + PromptArray["drvimp.js_7388_4"] + "”" + PromptArray["drvimp.js_7388_5"] + "“" + PromptArray["drvimp.js_7388_6"] + "”" ) )
                            {
                                DisplayMessage( "" + PromptArray["drvimp.js_7390_1"] + "," + PromptArray["drvimp.js_7390_2"] + "" )
                                RetInfo["Info"]    = "" + PromptArray["drvimp.js_7391_1"] + "," + PromptArray["drvimp.js_7391_2"] + ""
                                return ( RetInfo )
                            }
                            

                            DisplayMessage( "" + PromptArray["drvimp.js_7396_1"] + "," + PromptArray["drvimp.js_7396_2"] + "..." )
                            DrvInst.Sleep( 3000 ) 
                            continue
                        }
                        DisplayMessage( "" + PromptArray["drvimp.js_7400_1"] + "(handle=" + hHttpFile + ")" )

                        DisplayMessage( "" + PromptArray["drvimp.js_7402_1"] + "CGI" + PromptArray["drvimp.js_7402_2"] + "..." )
                        
                        SubmitFlag = DrvCert.HttpWriteFile( hHttpFile , null , 0 )
                        
                        if ( !SubmitFlag ) SubmitFlag = DrvCert.HttpWriteFile( hHttpFile , null , 0 )
                        if ( !SubmitFlag ) SubmitFlag = DrvCert.HttpWriteFile( hHttpFile , null , 0 )
                        if ( !SubmitFlag ) SubmitFlag = DrvCert.HttpWriteFile( hHttpFile , null , 0 )

                        if ( !SubmitFlag ) 
                        {
                            
                            if ( !confirm( "" + PromptArray["drvimp.js_7413_1"] + "," + PromptArray["drvimp.js_7413_2"] + "\n" + PromptArray["drvimp.js_7413_3"] + "“" + PromptArray["drvimp.js_7413_4"] + "”" + PromptArray["drvimp.js_7413_5"] + "“" + PromptArray["drvimp.js_7413_6"] + "”" ) )
                            {
                                DisplayMessage( "" + PromptArray["drvimp.js_7415_1"] + "," + PromptArray["drvimp.js_7415_2"] + "" )
                                RetInfo["Info"]    = "" + PromptArray["drvimp.js_7416_1"] + "," + PromptArray["drvimp.js_7416_2"] + ""
                                return ( RetInfo )
                            }
                            

                            DisplayMessage( "" + PromptArray["drvimp.js_7421_1"] + "CGI" + PromptArray["drvimp.js_7421_2"] + "" )
                            DrvInst.Sleep( 3000 )
                            continue
                        }
                        DisplayMessage( "" + PromptArray["drvimp.js_7425_1"] + "CGI" + PromptArray["drvimp.js_7425_2"] + "" )

                        
                        
                        
                        
                        
                        
                        
                        
                        
                        DisplayMessage( "" + PromptArray["drvimp.js_7436_1"] + "(handle=" + hHttpFile + ",size=" + ReadSize + ")..." )
                        FileBinContent  = DrvCert.HttpReadFile( hHttpFile , ReadSize )
                        
                        if ( !DrvCert.AppendBinDataToFile( TargetFileHandle , FileBinContent ) )
                        {
                            DisplayMessage( "" + PromptArray["drvimp.js_7441_1"] + "," + PromptArray["drvimp.js_7441_2"] + "..." )
                            continue
                        }
                        else
                        {
                            DisplayMessage( "" + PromptArray["drvimp.js_7446_1"] + "" )
                            ContinueFlag = false
                            break
                        }
                    }
                    
                    
                }
                
                

                CurFilePointer = ( ReadedSize > TotalSize ) ? TotalSize : ReadedSize
            }
        
        
        
        
        
        }
        finally
        {
            
            
            
            
            if ( ( hHttpFile          != 0xffffffff ) && ( hHttpFile          != 0 ) )   DrvCert.HttpCloseRequest( hHttpFile )
            if ( ( TargetFileHandle   != 0xffffffff ) && ( TargetFileHandle   != 0 ) )   DrvCert.CloseFileForRead( TargetFileHandle )
        }
        
        

        
        if ( ReadedSize >= TotalSize )
        {
            RetInfo["Success"] = true
            RetInfo["Info"]    = ""
            return ( RetInfo )
        }
        else
        {
            RetInfo["Success"] = false
            RetInfo["Info"]    = "" + PromptArray["drvimp.js_7487_1"] + "" + DriverInfo["DriverName"] + "" + PromptArray["drvimp.js_7487_2"] + ""
            return ( RetInfo )
        }
    }
    finally
    {
    }

}
function DownloadDriverBySOAP( DriverInfo , DownloadPathFileName )
{
    
    var FinishedFlag    = false
    var CurFilePointer  = 0
    var FileContentInfo = ""
    var ReadSize        = 0
    var FinishedPercent = 0

    
    
    g_SkipImpCurDrvFlag = 0
    do
    {
        FinishedPercent = 40 + Math.floor( 40*( CurFilePointer / DriverInfo["DriverSize"] ) )
        PercentSubImg.width=PercentSubTbl.width*FinishedPercent/100
        PercentSubString.innerHTML='<center>' + FinishedPercent + '%</center>'
        ProcessingInfo.innerHTML = '<div >' + PromptArray["drvimp.js_7513_1"] + '...'
                                 + Math.floor( CurFilePointer/1024 ) + 'k/' + Math.floor( DriverInfo["DriverSize"]/1024 ) + 'k'
                                 + '&nbsp;&nbsp;<a href="?" onclick="g_SkipImpCurDrvFlag=1;return false;">' + PromptArray["drvimp.js_7515_1"] + '</a>'
                                 + '</div>'
        DrvCert.UIRefresh()

        
        if ( g_SkipImpCurDrvFlag )
        {
            var RetInfo = new Array()
            RetInfo["Success"] = false
            RetInfo["Info"]    = "" + PromptArray["drvimp.js_7524_1"] + ""
            return ( RetInfo )
        }

        ReadSize = DOWNLOAD_CAB_FILE_BUFFER_SIZE
        FileContentInfo = ReadFileContentFromServerByFilePointer( DriverInfo["DriverID"] , CurFilePointer , ReadSize )
        
        if ( !FileContentInfo["Success"]) break
        DrvCert.AppendBinDataInBASE64ToFile( DownloadPathFileName , FileContentInfo["Content"] )
        CurFilePointer += parseInt( FileContentInfo["ReadSize"] )
        
        if ( CurFilePointer>= DriverInfo["DriverSize"] ) FinishedFlag = true
    }
    while (!FinishedFlag)
    var RetInfo = new Array()
    
    if ( FinishedFlag )
    {
        RetInfo["Success"] = true
        RetInfo["Info"]    = ""
        return ( RetInfo )
    }
    else
    {
        if ( !FileContentInfo["Success"] )
        {
            RetInfo["Success"] = false
            RetInfo["Info"]    = "" + PromptArray["drvimp.js_7551_1"] + "" + DriverInfo["DriverName"] + "" + PromptArray["drvimp.js_7551_2"] + " : " + FileContentInfo["Info"]
            return ( RetInfo )
        }
        else
        {
            RetInfo["Success"] = false
            RetInfo["Info"]    = "" + PromptArray["drvimp.js_7557_1"] + "" + DriverInfo["DriverName"] + "" + PromptArray["drvimp.js_7557_2"] + " : " + PromptArray["drvimp.js_7557_3"] + ""
            return ( RetInfo )
        }
    }

}







function UploadDriverImportedDeviceInfoToServer(  
                                            UserID , 
                                            MatchingDriverUserID , 
                                            MatchingDriverDriverID , 
                                            
                                            
                                            
                                            DeviceInfo ,
                                            OrgDeviceInfo )
{
	
	
	
	
	
	
	
	
	
	
	
	
	
	               
    
	
	
	
	
	
	
	
	
	
	
	
	
	

    var SoapApplyURL = ServerName.value + SoapAspURL.value		

	var SoapRequestXML = ""
    
	
	SoapRequestXML += '<?xml version="1.0" standalone="no"?>\n'
	SoapRequestXML += '<SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http:\/\/schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http:\/\/schemas.xmlsoap.org/soap/envelope/">\n'
	SoapRequestXML += "   <SOAP-ENV:Header xmlns:wsu =\"http:\/\/schemas.xmlsoap.org/ws/2002/07/utility\" "
	SoapRequestXML += "                    xmlns:wsse=\"http:\/\/schemas.xmlsoap.org/ws/2002/07/secext\" >\n"
    SoapRequestXML += GetClientInfo()
	SoapRequestXML += "   </SOAP-ENV:Header>\n"
	SoapRequestXML += "   <SOAP-ENV:Body>\n"
	SoapRequestXML += "     <n:UploadDriverImportedDeviceInfo xmlns:n=\"http:\/\/e-drivers.cn/soap/\">\n"
    SoapRequestXML += "         <UserID>"                   + UserID                        + "</UserID>\n"
    SoapRequestXML += "         <MatchingDriverUserID>"     + MatchingDriverUserID          + "</MatchingDriverUserID>\n"
    SoapRequestXML += "         <MatchingDriverDriverID>"   + MatchingDriverDriverID        + "</MatchingDriverDriverID>\n"
    SoapRequestXML += "         <DeviceIndex>"              + DeviceInfo[1]                 + "</DeviceIndex>\n"
    SoapRequestXML += "         <DeviceClassID>"            + DeviceInfo[2]                 + "</DeviceClassID>\n"
    SoapRequestXML += "         <DeviceClassType>"          + DeviceInfo[3]                 + "</DeviceClassType>\n"
    SoapRequestXML += "         <DeviceStatus>"             + DeviceInfo[4]                 + "</DeviceStatus>\n"
    SoapRequestXML += "         <DeviceProblem>"            + DeviceInfo[5]                 + "</DeviceProblem>\n"
    SoapRequestXML += "         <DeviceName>"               + XmlEncoding( DeviceInfo[6] )  + "</DeviceName>\n"
    SoapRequestXML += "         <BackupDriverStatus>"       + DeviceInfo[7]                 + "</BackupDriverStatus>\n"
    SoapRequestXML += "         <HardwareID>"               + XmlEncoding( DeviceInfo[8] )  + "</HardwareID>\n"
    SoapRequestXML += "         <CompatibleID>"             + XmlEncoding( DeviceInfo[9] )  + "</CompatibleID>\n"
    SoapRequestXML += "         <MatchingDeviceID>"         + XmlEncoding( DeviceInfo[10])  + "</MatchingDeviceID>\n"
    SoapRequestXML += "         <DriverDate>"               + XmlEncoding( DeviceInfo[11])  + "</DriverDate>\n"
    SoapRequestXML += "         <DriverVer>"                + XmlEncoding( DeviceInfo[12])  + "</DriverVer>\n"
    SoapRequestXML += "         <DriverProvider>"           + XmlEncoding( DeviceInfo[13])  + "</DriverProvider>\n"
    
    SoapRequestXML += "         <OrgDeviceIndex>"              + OrgDeviceInfo[1]                 + "</OrgDeviceIndex>\n"
    SoapRequestXML += "         <OrgDeviceClassID>"            + OrgDeviceInfo[2]                 + "</OrgDeviceClassID>\n"
    SoapRequestXML += "         <OrgDeviceClassType>"          + OrgDeviceInfo[3]                 + "</OrgDeviceClassType>\n"
    SoapRequestXML += "         <OrgDeviceStatus>"             + OrgDeviceInfo[4]                 + "</OrgDeviceStatus>\n"
    SoapRequestXML += "         <OrgDeviceProblem>"            + OrgDeviceInfo[5]                 + "</OrgDeviceProblem>\n"
    SoapRequestXML += "         <OrgDeviceName>"               + XmlEncoding( OrgDeviceInfo[6] )  + "</OrgDeviceName>\n"
    SoapRequestXML += "         <OrgBackupDriverStatus>"       + OrgDeviceInfo[7]                 + "</OrgBackupDriverStatus>\n"
    SoapRequestXML += "         <OrgHardwareID>"               + XmlEncoding( OrgDeviceInfo[8] )  + "</OrgHardwareID>\n"
    SoapRequestXML += "         <OrgCompatibleID>"             + XmlEncoding( OrgDeviceInfo[9] )  + "</OrgCompatibleID>\n"
    SoapRequestXML += "         <OrgMatchingDeviceID>"         + XmlEncoding( OrgDeviceInfo[10])  + "</OrgMatchingDeviceID>\n"
    SoapRequestXML += "         <OrgDriverDate>"               + XmlEncoding( OrgDeviceInfo[11])  + "</OrgDriverDate>\n"
    SoapRequestXML += "         <OrgDriverVer>"                + XmlEncoding( OrgDeviceInfo[12])  + "</OrgDriverVer>\n"
    SoapRequestXML += "         <OrgDriverProvider>"           + XmlEncoding( OrgDeviceInfo[13])  + "</OrgDriverProvider>\n"
    
    SoapRequestXML += "     </n:UploadDriverImportedDeviceInfo>\n"
	SoapRequestXML += "   </SOAP-ENV:Body>\n"
	SoapRequestXML += "</SOAP-ENV:Envelope>"

	
    
    var ReturnXML = MyXMLHttpRequest( SoapApplyURL , SoapRequestXML )

	if (ReturnXML == null || ReturnXML == "")
	{
        DisplayMessage( "" + PromptArray["drvimp.js_7663_1"] + "," + PromptArray["drvimp.js_7663_2"] + ":\n" + SoapRequestXML )
		return "" + PromptArray["drvimp.js_7664_1"] + ""
	}

	var ErrorInfo = GetInfoByTagFromXml( ReturnXML, SOAP_RET_ERROR_STRING_TAG )
	if (ErrorInfo != null) 
	{
		return ErrorInfo
	}
	else
	{
        var UploadResult = GetInfoByTagFromXml( ReturnXML, "Result" )
		return ( UploadResult == "Success" ) ? "" : UploadResult
	}
}







function ReadFileContentFromServerByFilePointer( DriverID , CurFilePointer , ReadSize )
{
    var FileContentInBASE64 = ""

    var RetInfo = new Array()
    var SoapApplyURL = ServerName.value + SoapAspURL.value		

	var SoapRequestXML = ""
    
	
	SoapRequestXML += '<?xml version="1.0" standalone="no"?>\n'
	SoapRequestXML += '<SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http:\/\/schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http:\/\/schemas.xmlsoap.org/soap/envelope/">\n'
	SoapRequestXML += "   <SOAP-ENV:Header xmlns:wsu =\"http:\/\/schemas.xmlsoap.org/ws/2002/07/utility\" "
	SoapRequestXML += "                    xmlns:wsse=\"http:\/\/schemas.xmlsoap.org/ws/2002/07/secext\" >\n"
    SoapRequestXML += GetClientInfo()
	SoapRequestXML += "   </SOAP-ENV:Header>\n"
	SoapRequestXML += "   <SOAP-ENV:Body>\n"
	SoapRequestXML += "     <n:ReadDriverContent xmlns:n=\"http:\/\/e-drivers.cn/soap/\">\n"
    SoapRequestXML += "         <DriverID>"                 + DriverID                      + "</DriverID>\n"
    SoapRequestXML += "         <User>"                     + g_UserID                      + "</User>\n"
    SoapRequestXML += "         <ReadStart>"                + CurFilePointer                + "</ReadStart>\n"
    SoapRequestXML += "         <ReadSize>"                 + ReadSize                      + "</ReadSize>\n"
    SoapRequestXML += "     </n:ReadDriverContent>\n"
	SoapRequestXML += "   </SOAP-ENV:Body>\n"
	SoapRequestXML += "</SOAP-ENV:Envelope>"

	
    
    var ReturnXML = MyXMLHttpRequest( SoapApplyURL , SoapRequestXML )

	if (ReturnXML == null || ReturnXML == "")
	{
        DisplayMessage( "" + PromptArray["drvimp.js_7717_1"] + "," + PromptArray["drvimp.js_7717_2"] + ":\n" + SoapRequestXML )
        RetInfo["Success"] = false
        RetInfo["Info"]    = "" + PromptArray["drvimp.js_7719_1"] + ""
		return ( RetInfo )
	}

	var ErrorInfo = GetInfoByTagFromXml( ReturnXML, SOAP_RET_ERROR_STRING_TAG )
	if (ErrorInfo != null) 
	{
        RetInfo["Success"] = false
        RetInfo["Info"]    = ErrorInfo
		return ( RetInfo )
	}
	else
	{
        var Result = GetInfoByTagFromXml( ReturnXML, "Result" )
        RetInfo["Success"] = ( Result == "Success" ) ? true : false
        RetInfo["Info"]    = ""
        
        RetInfo["Content" ]    = GetInfoByTagFromXml( ReturnXML, "Content" )
        RetInfo["ReadSize"]    = GetInfoByTagFromXml( ReturnXML, "ReadSize" )
        ReadSize               = RetInfo["ReadSize"]
		return ( RetInfo )
	}
}
function GetDSPCertContent()
{
    var RetInfo = new Array()
    var SoapApplyURL = ServerName.value + SoapAspURL.value		

	var SoapRequestXML = ""
    
	
	SoapRequestXML += '<?xml version="1.0" standalone="no"?>\n'
	SoapRequestXML += '<SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http:\/\/schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http:\/\/schemas.xmlsoap.org/soap/envelope/">\n'
	SoapRequestXML += "   <SOAP-ENV:Header xmlns:wsu =\"http:\/\/schemas.xmlsoap.org/ws/2002/07/utility\" "
	SoapRequestXML += "                    xmlns:wsse=\"http:\/\/schemas.xmlsoap.org/ws/2002/07/secext\" >\n"
    SoapRequestXML += GetClientInfo()
	SoapRequestXML += "   </SOAP-ENV:Header>\n"
	SoapRequestXML += "   <SOAP-ENV:Body>\n"
	SoapRequestXML += "     <n:GetDSPCertContent xmlns:n=\"http:\/\/e-drivers.cn/soap/\">\n"
    SoapRequestXML += "     </n:GetDSPCertContent>\n"
	SoapRequestXML += "   </SOAP-ENV:Body>\n"
	SoapRequestXML += "</SOAP-ENV:Envelope>"

	
    
    var ReturnXML = MyXMLHttpRequest( SoapApplyURL , SoapRequestXML )

	if (ReturnXML == null || ReturnXML == "")
	{
        DisplayMessage( "" + PromptArray["drvimp.js_7768_1"] + "," + PromptArray["drvimp.js_7768_2"] + ":\n" + SoapRequestXML )
        RetInfo["Success"] = false
        RetInfo["Info"]    = "" + PromptArray["drvimp.js_7770_1"] + ""
		return ( RetInfo )
	}

	var ErrorInfo = GetInfoByTagFromXml( ReturnXML, SOAP_RET_ERROR_STRING_TAG )
	if (ErrorInfo != null) 
	{
        RetInfo["Success"] = false
        RetInfo["Info"]    = ErrorInfo
		return ( RetInfo )
	}
	else
	{
        var Result = GetInfoByTagFromXml( ReturnXML, "Result" )
        RetInfo["Success"       ] = ( Result == "Success" ) ? true : false
        RetInfo["Info"          ] = ""
        RetInfo["DSPCert"       ] = GetInfoByTagFromXml( ReturnXML, "DSPCertContent" )
        RetInfo["VerifyData"    ] = GetInfoByTagFromXml( ReturnXML, "DSPServerTime" )
        RetInfo["VerifyValue"   ] = GetInfoByTagFromXml( ReturnXML, "DSPSignature" )
		return ( RetInfo )
	}
}


function CheckDSPCertValid()
{
    
    var DSPCertContent = GetDSPCertContent()
    if ( !DSPCertContent["Success"] )
    {
		DisplayMessage( "" + PromptArray["drvimp.js_7800_1"] + ": " + DSPCertContent["Info"] );
		Title.innerHTML = "<br><center>" + PromptArray["drvimp.js_7801_1"] + "<br>(" + DSPCertContent["Info"] + ")</center>"
		return false
    }
    

    
    var DSPCertContext      = DrvCert.OpenCertInPFX( DSPCertContent["DSPCert"]  )

    var CertNotBeforeString = DrvCert.GetCertNotBefore(  DSPCertContext ) 
    var CertNotAfterString  = DrvCert.GetCertNotAfter(   DSPCertContext )

    
    
    
    
    
    
    
    var CertNotBefore  = Date.parse( CNDateToUSDate( CertNotBeforeString ) )
    var CertNotAfter   = Date.parse( CNDateToUSDate( CertNotAfterString  ) )
    
    
    

    
    var SubCACertContext    = DrvCert.OpenCertInX509( EDRIVERS_ROOT_CA_CERT_CONTEXT_IN_X509_BASE64 )
    var DSPCertValidFlag    = DrvCert.CheckDSPCertIssuedBySubCACert( DSPCertContext , SubCACertContext )
    if ( !DSPCertValidFlag )
    {
		DisplayMessage("" + PromptArray["drvimp.js_7830_1"] + ":" + DrvCert.ErrorString )
		Title.innerHTML = "<br><center>" + PromptArray["drvimp.js_7831_1"] + "</center>"
        DrvCert.CloseUserCert( DSPCertContext )
        DrvCert.CloseUserCert( SubCACertContext )
		return false
    }
    
    
	if (!DrvCert.VerifyStringByBASE64Sign( DSPCertContext , DSPCertContent["VerifyData"] , DSPCertContent["VerifyValue"] ))
	{
		DisplayMessage("" + PromptArray["drvimp.js_7840_1"] + "" )
		Title.innerHTML = "<br><center>" + PromptArray["drvimp.js_7841_1"] + "</center>"
        DrvCert.CloseUserCert( DSPCertContext )
        DrvCert.CloseUserCert( SubCACertContext )
		return false
	}

    DrvCert.CloseUserCert( DSPCertContext )
    DrvCert.CloseUserCert( SubCACertContext )


    
    var d = new Date()
    var CurTime = d.getTime()
    
    
    var ActualTime = GetRecentDocTime()
    
    
    if ( ActualTime > CurTime ) CurTime = ActualTime
    
    if (!( ( CertNotBefore <= CurTime ) && ( CurTime <= CertNotAfter ) ) )
    {
		DisplayMessage("" + PromptArray["drvimp.js_7863_1"] + "(" + PromptArray["drvimp.js_7863_2"] + "" + CertNotBeforeString + "" + PromptArray["drvimp.js_7863_3"] + "" + CertNotAfterString + ")" )
		Title.innerHTML = "<br><center>" + PromptArray["drvimp.js_7864_1"] + "<br>" + PromptArray["drvimp.js_7864_2"] + "," + PromptArray["drvimp.js_7864_3"] + "</center>"
		return false
    }

    return true
}


function GetAllDeviceInfoToXml()
{

	var DeviceListInfo = g_DeviceInfo
	var DeviceNumber   = g_DeviceRows
	var DeviceName , HardwareID , CompatibleID, MatchingDeviceId
	var DriverDate , DriverVer , DriverProvider


	var Xml = "<DeviceList>\n"
	var CurDeviceInfo = new Array()
	var i
	for (i=0;i<DeviceNumber ;i++ )
	{
		ReadArrayToDeviceInfo( CurDeviceInfo , DeviceListInfo , i )

		DeviceName = CurDeviceInfo[6]
		
		
		DeviceName = DeviceName.replace(/(\&)/gi ,"&amp;");
		DeviceName = DeviceName.replace(/(\<)/gi ,"&lt;");
		DeviceName = DeviceName.replace(/(\>)/gi ,"&gt;");

		HardwareID = CurDeviceInfo[8]
		
		
		HardwareID = HardwareID.replace(/(\&)/gi ,"&amp;");
		HardwareID = HardwareID.replace(/(\<)/gi ,"&lt;");
		HardwareID = HardwareID.replace(/(\>)/gi ,"&gt;");

		CompatibleID = CurDeviceInfo[9]
		
		
		CompatibleID = CompatibleID.replace(/(\&)/gi ,"&amp;");
		CompatibleID = CompatibleID.replace(/(\<)/gi ,"&lt;");
		CompatibleID = CompatibleID.replace(/(\>)/gi ,"&gt;");

		MatchingDeviceId = CurDeviceInfo[10]
		
		
		MatchingDeviceId = MatchingDeviceId.replace(/(\&)/gi ,"&amp;");
		MatchingDeviceId = MatchingDeviceId.replace(/(\<)/gi ,"&lt;");
		MatchingDeviceId = MatchingDeviceId.replace(/(\>)/gi ,"&gt;");
		
		DriverDate = CurDeviceInfo[11]
		
		
		DriverDate = DriverDate.replace(/(\&)/gi ,"&amp;");
		DriverDate = DriverDate.replace(/(\<)/gi ,"&lt;");
		DriverDate = DriverDate.replace(/(\>)/gi ,"&gt;");

		DriverVer = CurDeviceInfo[12]
		
		
		DriverVer = DriverVer.replace(/(\&)/gi ,"&amp;");
		DriverVer = DriverVer.replace(/(\<)/gi ,"&lt;");
		DriverVer = DriverVer.replace(/(\>)/gi ,"&gt;");

		DriverProvider = CurDeviceInfo[13]
		
		
		DriverProvider = DriverProvider.replace(/(\&)/gi ,"&amp;");
		DriverProvider = DriverProvider.replace(/(\<)/gi ,"&lt;");
		DriverProvider = DriverProvider.replace(/(\>)/gi ,"&gt;");

		Xml += "\t<DeviceItem>\n"
		Xml += "\t\t<DeviceName>"			+ DeviceName		+ "</DeviceName>\n"
		Xml += "\t\t<DeviceIndex>"			+ CurDeviceInfo[1]	+ "</DeviceIndex>\n"
		Xml += "\t\t<DeviceClassID>"		+ CurDeviceInfo[2]	+ "</DeviceClassID>\n"
		Xml += "\t\t<DeviceClassType>"		+ CurDeviceInfo[3]	+ "</DeviceClassType>\n"
		Xml += "\t\t<DeviceStatus>"			+ CurDeviceInfo[4]	+ "</DeviceStatus>\n"
		Xml += "\t\t<DeviceProblem>"		+ CurDeviceInfo[5]	+ "</DeviceProblem>\n"
		Xml += "\t\t<HardwareID>"			+ HardwareID		+ "</HardwareID>\n"
		Xml += "\t\t<CompatibleID>"			+ CompatibleID		+ "</CompatibleID>\n"
		Xml += "\t\t<MatchingDeviceId>"		+ MatchingDeviceId	+ "</MatchingDeviceId>\n"
		Xml += "\t\t<DriverBackupStatus>"	+ CurDeviceInfo[7]	+ "</DriverBackupStatus>\n"
		Xml += "\t\t<DeviceRow>"			+ CurDeviceInfo[0]	+ "</DeviceRow>\n"
		Xml += "\t\t<DriverDate>"			+ DriverDate		+ "</DriverDate>\n"
		Xml += "\t\t<DriverVer>"			+ DriverVer			+ "</DriverVer>\n"
		Xml += "\t\t<DriverProvider>"		+ DriverProvider	+ "</DriverProvider>\n"
        
        if ( !CurDeviceInfo[5] && ( CurDeviceInfo[7] & 0x00080000 ) )
        {
            var SysPath = DrvCert.GetFolderPath( 36 )	
            var InfPathFileName = SysPath + "\\inf\\" + CurDeviceInfo[14]
            var InfContentInBASE64 = DrvCert.GetBASE64StringFromBinFile( InfPathFileName )
            var InfHash = DrvCert.GetDataHash( InfContentInBASE64 )
            Xml += "\t\t<InfHash>"          + InfHash                       + "</InfHash>\n"
        }
		Xml += "\t</DeviceItem>\n"
	}
	Xml += "</DeviceList>"
return (Xml)
}
function GetClientInfo()
{
    var ClientVersion   =""
    var OEMVendor       =""
    var Provider        =""
    var Language        =""
    
    
    
    
    
    var AccessMode      = g_LoaderString

    var hKey = DrvCert.RegOpenKey( 2 , "SOFTWARE\\Walker\\DrvInst")
    if (hKey)
    {
        ClientVersion = DrvCert.RegQueryValue( hKey , "Version" )
        DrvCert.RegCloseKey( hKey)
        hKey = null
    }

    hKey = DrvCert.RegOpenKey( 2 , "SOFTWARE\\Walker\\DrvInst\\Setup")
    if (hKey) 
    {
        Language  = CLIENT_LANGUAGE 
        OEMVendor = DrvCert.RegQueryValue( hKey , "OEMVendor" )
        Provider  = DrvCert.RegQueryValue( hKey , "Provider" )
        
        if ( !Language ) Language   = ""
        if ( !OEMVendor) OEMVendor  = ""
        if ( !Provider)  Provider   = ""

        DrvCert.RegCloseKey( hKey )
        hKey = null
    }

    var OSPlatform = GetInfoByTagFromXml( GetOSInfo() , "OSPlatform" )

    
    var CurUserLangPrimaryID = GetInfoByTagFromXml( GetOSInfo() , "OSCurUserLangPrimaryID" )
    var OSCurUserLangSubID   = GetInfoByTagFromXml( GetOSInfo() , "OSCurUserLangSubID" )
    
    
    
    
    
    
    
    
    

    var RetInfo = ""
    
    RetInfo += "<ClientInfo>\n"
             + "  <Version>"      + XmlEncoding( ClientVersion )  + "</Version>\n"
             + "  <Vendor>"       + XmlEncoding( OEMVendor )      + "</Vendor>\n"
             + "  <Provider>"     + XmlEncoding( Provider )       + "</Provider>\n"
             + "  <Language>"     + XmlEncoding( Language )       + "</Language>\n"
             + "  <AccessMode>"   + XmlEncoding( AccessMode )     + "</AccessMode>\n"
             
             + "  <OSPlatform>"   + XmlEncoding( OSPlatform )     + "</OSPlatform>\n"
             + "</ClientInfo>\n"
   return ( RetInfo )
}













































function RegUserDeviceInfoList( UserID )
{















































	var SoapApplyURL = ServerName.value + SoapAspURL.value		

	var SoapRequestXML = ""
    
	
	SoapRequestXML += '<?xml version="1.0" standalone="no"?>\n'
	SoapRequestXML += '<SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http:\/\/schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http:\/\/schemas.xmlsoap.org/soap/envelope/">\n'
	SoapRequestXML += "   <SOAP-ENV:Header xmlns:wsu =\"http:\/\/schemas.xmlsoap.org/ws/2002/07/utility\" "
	SoapRequestXML += "                    xmlns:wsse=\"http:\/\/schemas.xmlsoap.org/ws/2002/07/secext\" >\n"
    SoapRequestXML += GetClientInfo()
	SoapRequestXML += "   </SOAP-ENV:Header>\n"
	SoapRequestXML += "   <SOAP-ENV:Body>\n"
	SoapRequestXML += "     <n:RegUserDeviceInfo xmlns:n=\"http:\/\/e-drivers.cn/soap/\">\n"
    
    
    
    
    SoapRequestXML += GetAllDeviceInfoToXml()       
    SoapRequestXML += "         <UserID>" + UserID + "</UserID>\n"
	SoapRequestXML += "     </n:RegUserDeviceInfo>\n"
	SoapRequestXML += "   </SOAP-ENV:Body>\n"
	SoapRequestXML += "</SOAP-ENV:Envelope>"

	
    
    var ReturnXML = MyXMLHttpRequest( SoapApplyURL , SoapRequestXML )

    
    
    
    
    

	if (ReturnXML == null || ReturnXML == "")
	{
        DisplayMessage( "" + PromptArray["drvimp.js_8159_1"] + "[" + DeviceInfo[6] + "]" + PromptArray["drvimp.js_8159_2"] + "\n" + PromptArray["drvimp.js_8159_3"] + ":\n" + SoapRequestXML )
        RetInfo["Success"       ] = false
        RetInfo["ErrorInfo"     ] = "" + PromptArray["drvimp.js_8161_1"] + "[" + DeviceInfo[6] + "]" + PromptArray["drvimp.js_8161_2"] + ""
		return ( RetInfo )
	}

    var RetInfo = new Array()

    var ErrorInfo = GetInfoByTagFromXml( ReturnXML, SOAP_RET_ERROR_STRING_TAG )
	if ( ErrorInfo ) 
	{
        DisplayMessage( "" + PromptArray["drvimp.js_8170_1"] + ":\n" + ErrorInfo )
        RetInfo["Success"       ] = false
        RetInfo["ErrorInfo"     ] = ErrorInfo
		return ( RetInfo )
	}
	else
	{
        DisplayMessage( "" + PromptArray["drvimp.js_8177_1"] + "" )
        var ResultString = GetInfoByTagFromXml( ReturnXML, "Result" )
        RetInfo["Success"       ] = ( ResultString == "Success" ) ? true : false
        RetInfo["ErrorInfo"     ] = ""
		return ( RetInfo )
	}
}
function RegUserDeviceInfo( UserID , DeviceInfo )
{
	
	
	
	
	
	
	
	
	
	
	
	
	


	var SoapApplyURL = ServerName.value + SoapAspURL.value		

	var SoapRequestXML = ""
    
	
	SoapRequestXML += '<?xml version="1.0" standalone="no"?>\n'
	SoapRequestXML += '<SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http:\/\/schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http:\/\/schemas.xmlsoap.org/soap/envelope/">\n'
	SoapRequestXML += "   <SOAP-ENV:Header xmlns:wsu =\"http:\/\/schemas.xmlsoap.org/ws/2002/07/utility\" "
	SoapRequestXML += "                    xmlns:wsse=\"http:\/\/schemas.xmlsoap.org/ws/2002/07/secext\" >\n"
    SoapRequestXML += GetClientInfo()
	SoapRequestXML += "   </SOAP-ENV:Header>\n"
	SoapRequestXML += "   <SOAP-ENV:Body>\n"
	SoapRequestXML += "     <n:RegUserDeviceInfo xmlns:n=\"http:\/\/e-drivers.cn/soap/\">\n"
    
    
    
    
    
    
    SoapRequestXML += GetDeviceRowInfoToXml( DeviceInfo )
    
    SoapRequestXML += "         <UserID>" + UserID + "</UserID>\n"
	SoapRequestXML += "     </n:RegUserDeviceInfo>\n"
	SoapRequestXML += "   </SOAP-ENV:Body>\n"
	SoapRequestXML += "</SOAP-ENV:Envelope>"

	
    
    var ReturnXML = MyXMLHttpRequest( SoapApplyURL , SoapRequestXML )

	if (ReturnXML == null || ReturnXML == "")
	{
        DisplayMessage( "" + PromptArray["drvimp.js_8233_1"] + "[" + DeviceInfo[6] + "]" + PromptArray["drvimp.js_8233_2"] + "\n" + PromptArray["drvimp.js_8233_3"] + ":\n" + SoapRequestXML )
        RetInfo["Success"       ] = false
        RetInfo["ErrorInfo"     ] = "" + PromptArray["drvimp.js_8235_1"] + "[" + DeviceInfo[6] + "]" + PromptArray["drvimp.js_8235_2"] + ""
		return ( RetInfo )
	}

    var RetInfo = new Array()

    var ErrorInfo = GetInfoByTagFromXml( ReturnXML, SOAP_RET_ERROR_STRING_TAG )
	if ( ErrorInfo ) 
	{
        DisplayMessage( "" + PromptArray["drvimp.js_8244_1"] + "[" + DeviceInfo[6] + "]" + PromptArray["drvimp.js_8244_2"] + ":\n" + ErrorInfo )
        RetInfo["Success"       ] = false
        RetInfo["ErrorInfo"     ] = ErrorInfo
		return ( RetInfo )
	}
	else
	{
        DisplayMessage( "" + PromptArray["drvimp.js_8251_1"] + "[" + DeviceInfo[6] + "]" + PromptArray["drvimp.js_8251_2"] + "" )
        var ResultString = GetInfoByTagFromXml( ReturnXML, "Result" )
        RetInfo["Success"       ] = ( ResultString == "Success" ) ? true : false
        RetInfo["ErrorInfo"     ] = ""
		return ( RetInfo )
	}

}


function GetDeviceRowInfoToXml( DeviceInfo )
{
	var Xml = "<DeviceList>"
	{
		DeviceName = DeviceInfo[6]
		
		
		DeviceName = DeviceName.replace(/(\&)/gi ,"&amp;");
		DeviceName = DeviceName.replace(/(\<)/gi ,"&lt;");
		DeviceName = DeviceName.replace(/(\>)/gi ,"&gt;");

		HardwareID = DeviceInfo[8]
		
		
		HardwareID = HardwareID.replace(/(\&)/gi ,"&amp;");
		HardwareID = HardwareID.replace(/(\<)/gi ,"&lt;");
		HardwareID = HardwareID.replace(/(\>)/gi ,"&gt;");

		CompatibleID = DeviceInfo[9]
		
		
		CompatibleID = CompatibleID.replace(/(\&)/gi ,"&amp;");
		CompatibleID = CompatibleID.replace(/(\<)/gi ,"&lt;");
		CompatibleID = CompatibleID.replace(/(\>)/gi ,"&gt;");

		MatchingDeviceId = DeviceInfo[10]
		
		
		MatchingDeviceId = MatchingDeviceId.replace(/(\&)/gi ,"&amp;");
		MatchingDeviceId = MatchingDeviceId.replace(/(\<)/gi ,"&lt;");
		MatchingDeviceId = MatchingDeviceId.replace(/(\>)/gi ,"&gt;");
		
		DriverDate = DeviceInfo[11]
		
		
		DriverDate = DriverDate.replace(/(\&)/gi ,"&amp;");
		DriverDate = DriverDate.replace(/(\<)/gi ,"&lt;");
		DriverDate = DriverDate.replace(/(\>)/gi ,"&gt;");

		DriverVer = DeviceInfo[12]
		
		
		DriverVer = DriverVer.replace(/(\&)/gi ,"&amp;");
		DriverVer = DriverVer.replace(/(\<)/gi ,"&lt;");
		DriverVer = DriverVer.replace(/(\>)/gi ,"&gt;");

		DriverProvider = DeviceInfo[13]
		
		
		DriverProvider = DriverProvider.replace(/(\&)/gi ,"&amp;");
		DriverProvider = DriverProvider.replace(/(\<)/gi ,"&lt;");
		DriverProvider = DriverProvider.replace(/(\>)/gi ,"&gt;");

		Xml += "\t<DeviceItem>\n"
		Xml += "\t\t<DeviceName>"			+ DeviceName		+ "</DeviceName>\n"
		Xml += "\t\t<DeviceIndex>"			+ DeviceInfo[1]	+ "</DeviceIndex>\n"
		Xml += "\t\t<DeviceClassID>"		+ DeviceInfo[2]	+ "</DeviceClassID>\n"
		Xml += "\t\t<DeviceClassType>"		+ DeviceInfo[3]	+ "</DeviceClassType>\n"
		Xml += "\t\t<DeviceStatus>"			+ DeviceInfo[4]	+ "</DeviceStatus>\n"
		Xml += "\t\t<DeviceProblem>"		+ DeviceInfo[5]	+ "</DeviceProblem>\n"
		Xml += "\t\t<HardwareID>"			+ HardwareID		+ "</HardwareID>\n"
		Xml += "\t\t<CompatibleID>"			+ CompatibleID		+ "</CompatibleID>\n"
		Xml += "\t\t<MatchingDeviceId>"		+ MatchingDeviceId	+ "</MatchingDeviceId>\n"
		Xml += "\t\t<DriverBackupStatus>"	+ DeviceInfo[7]	+ "</DriverBackupStatus>\n"
		Xml += "\t\t<DeviceRow>"			+ DeviceInfo[0]	+ "</DeviceRow>\n"
		Xml += "\t\t<DriverDate>"			+ DriverDate		+ "</DriverDate>\n"
		Xml += "\t\t<DriverVer>"			+ DriverVer			+ "</DriverVer>\n"
		Xml += "\t\t<DriverProvider>"		+ DriverProvider	+ "</DriverProvider>\n"
		Xml += "\t</DeviceItem>\n"
	}
	Xml += "</DeviceList>"
return (Xml)
}














































































































function GetRecentDocTime()
{
    var RecentDocPath = DrvCert.GetFolderPath( 8 )
    var DocInfoXml = DrvCert.FindFileInPath( RecentDocPath + "\\*.*" )
    var CurFileNum = 0
    var CurTime    = 0
    var LastFileTime = ""
    do
    {
    	var FileName = GetXmlSingleNodeText( DocInfoXml , "FileItem" + CurFileNum )
        if ( FileName )
        {
            var FileTime = DrvCert.GetFileDate( RecentDocPath + "\\" + FileName )
            var TimeTemp = Date.parse( CNDateToUSDate( FileTime ) )
            if ( TimeTemp > CurTime ) 
            {
                CurTime = TimeTemp
                LastFileTime = FileTime
            }
            CurFileNum ++
        }
    }
    while ( FileName )
return ( CurTime )
}
function CNDateToUSDate( CNDate )
{
    var USDate = CNDate
    USDate = USDate.replace( /^([0-9]+)[-\/]{1}([0-9]+)[-\/]{1}([0-9]+)(.*)$/i , "$2-$3-$1$4")
    return (USDate)
}

function CreateMessageObject()
{
    
    if ( !g_CreateMessageObjFlag )
    {
	    var oDiv=window.document.createElement("<DIV ID='MsgTableTag'></DIV>");
	    window.document.body.appendChild(oDiv);
        
        g_CreateMessageObjFlag = true
    }

	var PromptTableHTML = "";
	PromptTableHTML += '<!-- A DHTML alert box -->'
	PromptTableHTML += '<Table bgcolor="#DDDDC8" border=0 cellspacing=0 cellpadding=0 ID="MsgTable" style="display:none; position:absolute;">'
	PromptTableHTML += '<!--' + PromptArray["drvimp.js_8490_1"] + '-->'
	PromptTableHTML += '<TR>'
	PromptTableHTML += '	<TD BgColor=#000040 height=0 colspan=3></TD>'
	PromptTableHTML += '</TR>'
	PromptTableHTML += '<!--' + PromptArray["drvimp.js_8494_1"] + '-->'
	PromptTableHTML += '<TR>'
	PromptTableHTML += '	<!--' + PromptArray["drvimp.js_8496_1"] + '-->'
	PromptTableHTML += '	<TD BgColor=#000040 width=1></TD>'
	PromptTableHTML += '	<!--' + PromptArray["drvimp.js_8498_1"] + '-->'
	PromptTableHTML += '	<TD bgcolor="#000000" valign="bottom">'
	PromptTableHTML += '      <p align="right"><input type="button" value="><" style="letter-spacing: -2; font-size: 6pt; color: black" onclick="HideMessageInfo()" onMouseMove="this.style.color=\'red\';this.style.cursor=\'hand\';" onMouseOut="this.style.color=\'black\';this.style.fontStyle=\'normal\';" ></p>'
	PromptTableHTML += '    </TD>'
	PromptTableHTML += '	<!--' + PromptArray["drvimp.js_8502_1"] + '-->'
	PromptTableHTML += '	<TD BgColor=#000040 width=1></TD>'
	PromptTableHTML += '</TR>'
	PromptTableHTML += '<!--' + PromptArray["drvimp.js_8505_1"] + '-->'
	PromptTableHTML += '<TR>'
	PromptTableHTML += '	<TD BgColor=#000040 height=0 colspan=3></TD>'
	PromptTableHTML += '</TR>'
	PromptTableHTML += '<TR>'
	PromptTableHTML += '	<!--' + PromptArray["drvimp.js_8510_1"] + '-->'
	PromptTableHTML += '	<TD BgColor=#000040 width=1></TD>'
	PromptTableHTML += '	<!--' + PromptArray["drvimp.js_8512_1"] + '-->'
	PromptTableHTML += '	<TD><br>'
	PromptTableHTML += '		<CENTER>'
	PromptTableHTML += '			<table width=100% height=100%><tr><td width=8></td><td><Span ID="MsgTag"></Span></td><td width=8></td></tr></table>'
	PromptTableHTML += '		</CENTER>'
	PromptTableHTML += '	  <br>'
	PromptTableHTML += '	</TD>'
	PromptTableHTML += '	<!--' + PromptArray["drvimp.js_8519_1"] + '-->'
	PromptTableHTML += '	<TD BgColor=#000040 width=1></TD>'
	PromptTableHTML += '</TR> '
	PromptTableHTML += '<!--' + PromptArray["drvimp.js_8522_1"] + '-->'
	PromptTableHTML += '<TR>'
	PromptTableHTML += '	<TD BgColor=#000040 height=0 colspan=3></TD>'
	PromptTableHTML += '</TR>'
	PromptTableHTML += '</Table>'

	
    
    MsgTableTag.innerHTML = PromptTableHTML
}

function DispMessageInfo( sMessage )
{
    
    var newsMessage = sMessage
    newsMessage = newsMessage.replace( /\<td\>\<b\>DeviceID/i        , "<td><b>" + PromptArray["drvimp.js_8538_1"] )
    newsMessage = newsMessage.replace( /\<td\>\<b\>Device/i          , "<td><b>" + PromptArray["drvimp.js_8537_1"] )
    newsMessage = newsMessage.replace( /\<td\>\<b\>Size/i            , "<td><b>" + PromptArray["drvimp.js_8539_1"] )
    newsMessage = newsMessage.replace( /\<td\>\<b\>Platform/i        , "<td><b>" + PromptArray["drvimp.js_8540_1"] )
    newsMessage = newsMessage.replace( /\<td\>\<b\>Publish Date/i    , "<td><b>" + PromptArray["drvimp.js_8542_1"] )
    newsMessage = newsMessage.replace( /\<td\>\<b\>Date/i            , "<td><b>" + PromptArray["drvimp.js_8541_1"] )
    newsMessage = newsMessage.replace( /\<td\>\<b\>Version/i         , "<td><b>" + PromptArray["drvimp.js_8543_1"] )
    newsMessage = newsMessage.replace( /\<td\>\<b\>Provider/i        , "<td><b>" + PromptArray["drvimp.js_8544_1"] )
    newsMessage = newsMessage.replace( /\<td\>\<b\>Class/i           , "<td><b>" + PromptArray["drvimp.js_8545_1"] )
    newsMessage = newsMessage.replace( /\<td\>\<b\>DriverID/i        , "<td><b>" + PromptArray["drvimp.js_8546_1"] )
	
	MsgTag.innerHTML = '' + newsMessage + ''
	MsgTable.style.display='';
    
    
    
	
    
	
    
    
    if ( window.document.body.scrollTop == 0 )
    {
        MsgTable.style.pixelTop  = (window.document.documentElement.clientHeight - MsgTable.clientHeight ) / 2 + (window.document.documentElement.scrollTop ) 
        MsgTable.style.pixelLeft = (window.document.documentElement.clientWidth  - MsgTable.clientWidth  ) / 2 + (window.document.documentElement.scrollLeft)
    }
    
    
    
    else
    {
        MsgTable.style.pixelTop  = (window.document.body.clientHeight - MsgTable.clientHeight ) / 2 + (window.document.body.scrollTop ) 
        MsgTable.style.pixelLeft = (window.document.body.clientWidth  - MsgTable.clientWidth  ) / 2 + (window.document.body.scrollLeft)
    }
}
function HideMessageInfo() 
{
	window.status="";
	MsgTable.style.display='none';
}


function FindDriver( UserID , MainBoardInfoXml , DeviceInfo , OSInfoXml )
{
    
    
    
    
    
    
    
    
    
    
    
    
    
    
	
	
	
	
	
	
	
	
	
	
	
	
	
    
    
    
    
    
    
    
    
    
    
    
    
    
    

    var RequestInfo = new Array()

    RequestInfo["UserID"] = UserID

    RequestInfo[ 1] = DeviceInfo[ 1]  
    RequestInfo[ 2] = DeviceInfo[ 2]  
    RequestInfo[ 3] = DeviceInfo[ 3]  
    RequestInfo[ 4] = DeviceInfo[ 4]  
    RequestInfo[ 5] = DeviceInfo[ 5]  
    RequestInfo[ 6] = DeviceInfo[ 6]  
    RequestInfo[ 7] = DeviceInfo[ 7]  
    RequestInfo[ 8] = DeviceInfo[ 8]  
    RequestInfo[ 9] = DeviceInfo[ 9]  
    RequestInfo[10] = DeviceInfo[10]  
    RequestInfo[11] = DeviceInfo[11]  
    RequestInfo[12] = DeviceInfo[12]  
    RequestInfo[13] = DeviceInfo[13]  
    
    RequestInfo[14] = DeviceInfo[14]  

    
    
    
    
    
    var ComputerMfg             = GetXmlSingleNodeText( MainBoardInfoXml , "ComputerManufacturer" )
    var ComputerModel           = GetXmlSingleNodeText( MainBoardInfoXml , "ComputerModel" )
    var BaseBoardMfg            = GetXmlSingleNodeText( MainBoardInfoXml , "BaseBoardManufacturer" )
    var BaseBoardProduct        = GetXmlSingleNodeText( MainBoardInfoXml , "BaseBoardProduct" )
    var BaseBoardVersion        = GetXmlSingleNodeText( MainBoardInfoXml , "BaseBoardVersion" )

    RequestInfo["ComputerMfg"       ] = ( ComputerMfg       == null ) ? "undefined" : ComputerMfg
    RequestInfo["ComputerModel"     ] = ( ComputerModel     == null ) ? "undefined" : ComputerModel
    RequestInfo["BaseBoardMfg"      ] = ( BaseBoardMfg      == null ) ? "undefined" : BaseBoardMfg
    RequestInfo["BaseBoardProduct"  ] = ( BaseBoardProduct  == null ) ? "undefined" : BaseBoardProduct
    RequestInfo["BaseBoardVersion"  ] = ( BaseBoardVersion  == null ) ? "undefined" : BaseBoardVersion

    
    
    
    RequestInfo["OSMajorVer"       ] = GetXmlSingleNodeText( OSInfoXml , "OSMajorVer" )
    RequestInfo["OSMinorVer"       ] = GetXmlSingleNodeText( OSInfoXml , "OSMinorVer" )
    RequestInfo["OSPlatform"       ] = GetXmlSingleNodeText( OSInfoXml , "OSPlatform" )

    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    

    
    var DriverType = GetCookie( "DriverType" )
    if ( DriverType == "Public" || DriverType == "Private" )
    {
        
        RequestInfo["ComputerMfg"       ] = ""
        RequestInfo["ComputerModel"     ] = ""
        RequestInfo["BaseBoardMfg"      ] = ""
        RequestInfo["BaseBoardProduct"  ] = ""
        RequestInfo["BaseBoardVersion"  ] = ""
    }

    DisplayMessage( "" + PromptArray["drvimp.js_8691_1"] + "[" + DeviceInfo[6] + "]" + PromptArray["drvimp.js_8691_2"] + "..." )
    
    
    
    
    
    
    
    
    
    
    
    
    
    RequestInfo["OSPlatform"] = ""
    RequestInfo["DeviceIDs"] = DeviceInfo[8]                                      

    var RetInfo = SubmitSoapRequestFindDriver( RequestInfo )
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    if ( RetInfo["Success"] ) return ( RetInfo )
    

    DisplayMessage( "" + PromptArray["drvimp.js_8727_1"] + "[" + DeviceInfo[6] + "]" + PromptArray["drvimp.js_8727_2"] + "..." )
    
    
    
    
    
    

    
    
    
    
    

    
    

    
    
    RequestInfo["DeviceIDs"] = DeviceInfo[9]                
    RetInfo = SubmitSoapRequestFindDriver( RequestInfo )
    
    
    if ( RetInfo["Success"] ) return ( RetInfo )
    

    return ( RetInfo )
}
function SubmitSoapRequestFindDriver( RequestInfo )
{







































    var RetInfo     = new Array()

    var SoapApplyURL = ServerName.value + SoapAspURL.value

	var SoapRequestXML = ""
    
	
	SoapRequestXML += '<?xml version="1.0" standalone="no"?>\n'
	SoapRequestXML += '<SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http:\/\/schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http:\/\/schemas.xmlsoap.org/soap/envelope/">\n'
	SoapRequestXML += "   <SOAP-ENV:Header xmlns:wsu =\"http:\/\/schemas.xmlsoap.org/ws/2002/07/utility\" "
	SoapRequestXML += "                    xmlns:wsse=\"http:\/\/schemas.xmlsoap.org/ws/2002/07/secext\" >\n"
    SoapRequestXML += GetClientInfo()
	SoapRequestXML += "   </SOAP-ENV:Header>\n"
	SoapRequestXML += "   <SOAP-ENV:Body>\n"
	SoapRequestXML += "     <n:FindDriver xmlns:n=\"http:\/\/e-drivers.cn/soap/\">\n"
    SoapRequestXML += "         <UserID>"               +              RequestInfo["UserID"          ]      + "</UserID>\n"
    SoapRequestXML += "         <HardwareIDCompaIDs>"   + XmlEncoding( RequestInfo["DeviceIDs"       ]  )   + "</HardwareIDCompaIDs>\n"
    SoapRequestXML += "         <ComputerMfg>"          + XmlEncoding( RequestInfo["ComputerMfg"     ]  )   + "</ComputerMfg>\n"
    SoapRequestXML += "         <ComputerModel>"        + XmlEncoding( RequestInfo["ComputerModel"   ]  )   + "</ComputerModel>\n"
    SoapRequestXML += "         <BaseBoardMfg>"         + XmlEncoding( RequestInfo["BaseBoardMfg"    ]  )   + "</BaseBoardMfg>\n"
    SoapRequestXML += "         <BaseBoardProduct>"     + XmlEncoding( RequestInfo["BaseBoardProduct"]  )   + "</BaseBoardProduct>\n"
    SoapRequestXML += "         <BaseBoardVersion>"     + XmlEncoding( RequestInfo["BaseBoardVersion"]  )   + "</BaseBoardVersion>\n"
    SoapRequestXML += "         <OSMajorVer>"           +              RequestInfo["OSMajorVer"      ]      + "</OSMajorVer>\n"
    SoapRequestXML += "         <OSMinorVer>"           +              RequestInfo["OSMinorVer"      ]      + "</OSMinorVer>\n"
    SoapRequestXML += "         <OSPlatform>"           + XmlEncoding( RequestInfo["OSPlatform"      ]  )   + "</OSPlatform>\n"
	SoapRequestXML += "     </n:FindDriver>\n"
	SoapRequestXML += "   </SOAP-ENV:Body>\n"
	SoapRequestXML += "</SOAP-ENV:Envelope>"

	
    
    var ReturnXML = MyXMLHttpRequest( SoapApplyURL , SoapRequestXML )

	if ( ReturnXML == null || ReturnXML == "" )
	{
        
        RetInfo["Success"       ] = false
        RetInfo["ErrorInfo"     ] = "" + PromptArray["drvimp.js_8833_1"] + "[" + RequestInfo[6] + "]" + PromptArray["drvimp.js_8833_2"] + ""      
		return ( RetInfo )
	}

    var ErrorInfo = GetInfoByTagFromXml( ReturnXML, SOAP_RET_ERROR_STRING_TAG )
	if ( ErrorInfo ) 
	{
        
        RetInfo["Success"       ] = false
        RetInfo["ErrorInfo"     ] = "" + PromptArray["drvimp.js_8842_1"] + "[" + RequestInfo[6] + "]" + PromptArray["drvimp.js_8842_2"] + ":" + ErrorInfo 
        RetInfo["UserID"        ] = 0
        RetInfo["DriverID"      ] = 0
        RetInfo["DriverDate"    ] = ""
        RetInfo["DriverMfg"     ] = ""
        RetInfo["NewUserID"     ] = 0
        RetInfo["NewDriverID"   ] = 0
        RetInfo["NewDriverDate" ] = ""
        RetInfo["NewDriverMfg"  ] = ""
	}
	else
	{
        
        var ResultString         = GetInfoByTagFromXml( ReturnXML, "Result" )
        var ResultUserID         = GetInfoByTagFromXml( ReturnXML, "UserID" )
        var ResultDriverID       = GetInfoByTagFromXml( ReturnXML, "DriverID" )
        var ResultDriverDate     = GetInfoByTagFromXml( ReturnXML, "DriverDate" )
        var ResultDriverMfg      = GetInfoByTagFromXml( ReturnXML, "DriverMfg" )
        var ResultNewUserID      = GetInfoByTagFromXml( ReturnXML, "NewUserID" )
        var ResultNewDriverID    = GetInfoByTagFromXml( ReturnXML, "NewDriverID" )
        var ResultNewDriverDate  = GetInfoByTagFromXml( ReturnXML, "NewDriverDate" )
        var ResultNewDriverMfg   = GetInfoByTagFromXml( ReturnXML, "NewDriverMfg" )

        
        var ResultDriverDesc     = GetInfoByTagFromXml( ReturnXML, "DriverDesc" )
        var ResultNewDriverDesc  = GetInfoByTagFromXml( ReturnXML, "NewDriverDesc" )

        var CurPath = DrvCert.GetFolderPath( 32 )
        
        
        CurPath     = CurPath.substring( 0 , CurPath.lastIndexOf( "\\" ) )    
        CurPath     = CurPath + "\\Temp"
        var TmpFileName = CurPath + "\\DrvImp.TMP"
        DrvCert.DeleteFile( TmpFileName )
        
        if ( ResultDriverDesc )
        {
            DrvCert.SaveBASE64ToBinFile( ResultDriverDesc , TmpFileName )
            ResultDriverDesc = DrvCert.GetStringFromFile( TmpFileName )
            DrvCert.DeleteFile( TmpFileName )
        }
        if ( ResultNewDriverDesc )
        {
            DrvCert.SaveBASE64ToBinFile( ResultNewDriverDesc , TmpFileName )
            ResultNewDriverDesc = DrvCert.GetStringFromFile( TmpFileName )
            DrvCert.DeleteFile( TmpFileName )
        }
        

        RetInfo["Success"       ] = ( ResultString == "Success" ) ? true : false
        RetInfo["ErrorInfo"     ] = ""
        RetInfo["UserID"        ] = ResultUserID
        RetInfo["DriverID"      ] = ResultDriverID
        RetInfo["DriverDate"    ] = ResultDriverDate
        RetInfo["DriverMfg"     ] = ResultDriverMfg
        
        RetInfo["DriverDesc"    ] = ResultDriverDesc

        RetInfo["NewUserID"     ] = ResultNewUserID
        RetInfo["NewDriverID"   ] = ResultNewDriverID
        RetInfo["NewDriverDate" ] = ResultNewDriverDate
        RetInfo["NewDriverMfg"  ] = ResultNewDriverMfg
        
        RetInfo["NewDriverDesc" ] = ResultNewDriverDesc
    }
return ( RetInfo )
}

function EraseDeviceDriver( DeviceInfo )
{
















    var RetInfo = new Array()
    RetInfo["Success"] = false
    RetInfo["Info"   ] = ""


    var SysPath    = DrvCert.GetFolderPath( 36 )	
    var SysInfPath = SysPath + "\\inf"

	var SysDrvInfFilesInfo = DrvCert.FindFileInPath( SysInfPath + "\\oem*.inf" )
    var i=0
    var SysDrvInfFile   = GetXmlSingleNodeText( SysDrvInfFilesInfo , "FileItem" + i )
    
    DisplayMessage( "" + PromptArray["drvimp.js_8940_1"] + "[" + DeviceInfo[6] + "]" + PromptArray["drvimp.js_8940_2"] + "inf" + PromptArray["drvimp.js_8940_3"] + ":" + SysDrvInfFile )

    while ( SysDrvInfFile )
    {
        var IfInfEraseFlag = false
        var InfFilename = SysInfPath + "\\" + SysDrvInfFile
        var InfHandle = DrvInf.OpenINFFile( InfFilename )
        
        
        
        
        
        
        
        
        
        if ( InfHandle == 0xFFFFFFFF ) 
        {
            
            DisplayMessage( "" + PromptArray["drvimp.js_8959_1"] + "inf" + PromptArray["drvimp.js_8959_2"] + "" + InfFilename + "" + PromptArray["drvimp.js_8959_3"] + "" )

            i ++
            SysDrvInfFile   = GetXmlSingleNodeText( SysDrvInfFilesInfo , "FileItem" + i )
            continue
        }
        
        

        
        DisplayMessage( "" + PromptArray["drvimp.js_8969_1"] + "inf" + PromptArray["drvimp.js_8969_2"] + "" + InfFilename + "" + PromptArray["drvimp.js_8969_3"] + "" )

        var InfContext = DrvInf.FindFirstLineInSection( InfHandle , "Manufacturer" , "" )
        var MfgSectionName = new Array()
        MfgSectionName["Rows"] = 0 
        
        
        
        for ( var k=0; InfContext ; k++)
        {
            var MfgSectionNameTmp  = "StartStart"
            
            for ( var j=1; MfgSectionNameTmp ; j++)
            {
                MfgSectionNameTmp  = DrvInf.GetFieldValueInLine( InfContext ,  j )
                if ( MfgSectionNameTmp )
                {
                    if ( j== 1 )
                    {
                        
                        MfgSectionName[ MfgSectionName["Rows"] ] = MfgSectionNameTmp
                        MfgSectionName["Rows"] ++
                        
                        DisplayMessage( "" + PromptArray["drvimp.js_8992_1"] + "inf" + PromptArray["drvimp.js_8992_2"] + "" + InfFilename + "" + PromptArray["drvimp.js_8992_3"] + "[" + MfgSectionNameTmp + "]" )
                    }
                    else
                    {
                        
                        
                        
                        
                        
                        
                        
                        MfgSectionName[ MfgSectionName["Rows"] ] = MfgSectionName[0] + "." + MfgSectionNameTmp
                        MfgSectionName["Rows"] ++
                        
                        DisplayMessage( "" + PromptArray["drvimp.js_9006_1"] + "inf" + PromptArray["drvimp.js_9006_2"] + "" + InfFilename + "" + PromptArray["drvimp.js_9006_3"] + "[" + MfgSectionName[ MfgSectionName["Rows"] ] + "]" )
                    }
                }
                else
                {
                    
                    DisplayMessage( "" + PromptArray["drvimp.js_9012_1"] + "inf" + PromptArray["drvimp.js_9012_2"] + "" + InfFilename + "" + PromptArray["drvimp.js_9012_3"] + "" )
                    break
                }
            }
            InfContext = DrvInf.FindNextLineInSection( InfContext )
        }
        
        
        

        
        
        
        
        
        
        
        
        
        for ( var k=0; k<MfgSectionName["Rows"]; k++)
        {
            
            
            

            var DeviveContext = DrvInf.FindFirstLineInSection( InfHandle , MfgSectionName[k] , "" )
            
            var DeviceID = ""
            var tmpA     = ""
            var tmpB     = ""
            
            
            DisplayMessage( "" + PromptArray["drvimp.js_9044_1"] + "inf" + PromptArray["drvimp.js_9044_2"] + "[" + MfgSectionName[k] + "]" + PromptArray["drvimp.js_9044_3"] + "DeviceID:" + DeviceInfo[8] + "..." )

            for ( var j=0; DeviveContext ; j++)
            {
                
                
                
                
                DeviceID     = DrvInf.GetFieldValueInLine( DeviveContext ,  2 )

                
                if ( DeviceID )
                {
                    
                    

                    
                    
                    
                    tmpA = ";" + DeviceID + ";"
                    tmpB = ";" + DeviceInfo[8] + ";" 

                    
                    
                    
                    
                    if ( tmpB.toUpperCase().indexOf( tmpA.toUpperCase() ) != -1 )
                    {
                        
                        DisplayMessage( "" + PromptArray["drvimp.js_9073_1"] + "inf" + PromptArray["drvimp.js_9073_2"] + "" + InfFilename + "" + PromptArray["drvimp.js_9073_3"] + "DeviceID:" + DeviceID + "," + PromptArray["drvimp.js_9073_4"] + "" )

                        IfInfEraseFlag = true
                        break
                    }
                    
                    
                    
                }

                DeviveContext = DrvInf.FindNextLineInSection( DeviveContext )
            }
            
            
            

            if ( IfInfEraseFlag ) break
        }
        
        
        DrvInf.CloseINFFile( InfHandle )

        
        if ( IfInfEraseFlag ) 
        {
            var DelInfResult = DrvCert.DeleteFile( InfFilename )
            var PnfFilename  = InfFilename.replace( /\.inf$/gi , ".pnf" )
            var DelPnfResult = DrvCert.DeleteFile( PnfFilename )
            RetInfo["Success"] = true

            if ( DelInfResult )
            {
                RetInfo["Info"   ] += "" + PromptArray["drvimp.js_9105_1"] + "" + InfFilename + ";"
            }
            else
            {
                RetInfo["Info"   ] += "" + PromptArray["drvimp.js_9109_1"] + "" + InfFilename + "" + PromptArray["drvimp.js_9109_2"] + ";"
            }

            if ( PnfFilename )
            {
                RetInfo["Info"   ] += "" + PromptArray["drvimp.js_9114_1"] + "" + PnfFilename + ";"
            }
            else
            {
                RetInfo["Info"   ] += "" + PromptArray["drvimp.js_9118_1"] + "" + PnfFilename + "" + PromptArray["drvimp.js_9118_2"] + ";"
            }
        }

        i ++
        SysDrvInfFile   = GetXmlSingleNodeText( SysDrvInfFilesInfo , "FileItem" + i )
    }
return ( RetInfo )
}






function GetDriverExportStatusFromDBEx( UserID )
{
    var DeviceInfo  = new Array()
    DeviceInfo["Rows"] = 0 

    var stock = new Array()

    
    

    
    
    PercentImg.width=PercentTbl.width*1/4
    PercentString.innerHTML = '<center>20%</center>'
    DrvCert.UIRefresh()
    
    

    DeviceInfo[ "UserID"] = UserID
    
	for (var i=0; i<g_DevErrDeviceRows ; i++)
	{
		ReadArrayToDeviceInfo( stock , g_DevErrDeviceInfoArray , i);
        
        
        
        
        DeviceInfo[ DeviceInfo["Rows"] + ",HardwareIDs"   ] = stock[8]

        
        
        
        
        
        
        

        DeviceInfo[ DeviceInfo["Rows"] + ",CompatibleIDs" ] = stock[9]  

        
        
        

        DeviceInfo[ DeviceInfo["Rows"] + ",Date"          ] = "01-01-1990"  
        DeviceInfo[ DeviceInfo["Rows"] + ",Class"         ] = "Error"
        DeviceInfo[ DeviceInfo["Rows"] + ",ClassDevRow"   ] = i
        
        DeviceInfo[ DeviceInfo["Rows"] + ",Inf"           ] = stock[14]
        
        DeviceInfo[ DeviceInfo["Rows"] + ",DeviceIndex"   ] = stock[1]


        DeviceInfo["Rows"] ++
	}

    
    
    PercentImg.width=PercentTbl.width*2/4
    PercentString.innerHTML = '<center>40%</center>'
    DrvCert.UIRefresh()
    
    

    
	for (var i=0; i<g_UserDrvDeviceRows ; i++)
	{


		ReadArrayToDeviceInfo( stock , g_UserDrvDeviceInfoArray , i);


        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        if ( GetCookie( "DriverType" ) == "Special" )
        {
            DeviceInfo[ DeviceInfo["Rows"] + ",HardwareIDs"   ] = stock[8]
        }
        
        else
        {
            var HardwareIDArray = stock[8].split( ";" )
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            var UpdateDeviceIDs = ( HardwareIDArray[1] ) ? ( HardwareIDArray[0].toUpperCase() != stock[10].toUpperCase()) 
                                                              ? HardwareIDArray[0] + ";" + HardwareIDArray[1] 
                                                              
                                                              : HardwareIDArray[0] + ";"
                                                         : HardwareIDArray[0] + ";" + UNKNOWN_DEVICE_ID;

            DeviceInfo[ DeviceInfo["Rows"] + ",HardwareIDs"   ] = UpdateDeviceIDs
        }



        

        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        if ( GetCookie( "DriverType" ) == "Special" )
        {
            DeviceInfo[ DeviceInfo["Rows"] + ",CompatibleIDs" ] = stock[9]
        }
        
        else
        {
            DeviceInfo[ DeviceInfo["Rows"] + ",CompatibleIDs" ] = UNKNOWN_DEVICE_ID        
        }
        

        DeviceInfo[ DeviceInfo["Rows"] + ",Date"          ] = stock[11]
        DeviceInfo[ DeviceInfo["Rows"] + ",Class"         ] = "User"
        DeviceInfo[ DeviceInfo["Rows"] + ",ClassDevRow"   ] = i
        
        DeviceInfo[ DeviceInfo["Rows"] + ",Inf"           ] = stock[14]
        
        DeviceInfo[ DeviceInfo["Rows"] + ",DeviceIndex"   ] = stock[1]

        DeviceInfo["Rows"] ++
	}


    
    var UpdateSystemDrvFlag = ( GetCookie( "UpdateSystemDrvFlag" ) == "true" )
    var CurSystemDeviceRows = ( UpdateSystemDrvFlag ) ? g_NormalSystemDeviceRows : 0 
	if ( g_NormalSystemDeviceRows && UpdateSystemDrvFlag )
	{
		
        
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
        
        
		
		
		for (var i=0; i<g_NormalSystemDeviceRows && UpdateSystemDrvFlag ; i++)
		{
		
			ReadArrayToDeviceInfo( stock , g_NormalSystemDeviceInfoArray , i);
		
            
			
            
            
            if ( GetCookie( "DriverType" ) == "Special" )
            {
                DeviceInfo[ DeviceInfo["Rows"] + ",HardwareIDs"   ] = stock[8]
            }
            
            else
            {
                var HardwareIDArray = stock[8].split( ";" )
                
                
                var UpdateDeviceIDs = ( HardwareIDArray[1] ) ? ( HardwareIDArray[0].toUpperCase() != stock[10].toUpperCase()) 
                                                                  ? HardwareIDArray[0] + ";" + HardwareIDArray[1] 
                                                                  
                                                                  : HardwareIDArray[0] + ";"
                                                             : HardwareIDArray[0] + ";" + UNKNOWN_DEVICE_ID;

                DeviceInfo[ DeviceInfo["Rows"] + ",HardwareIDs"   ] = UpdateDeviceIDs
            }

            
			
            
            
            if ( GetCookie( "DriverType" ) == "Special" )
            {
                DeviceInfo[ DeviceInfo["Rows"] + ",CompatibleIDs" ] = stock[9]
            }
            
            else
            {
                DeviceInfo[ DeviceInfo["Rows"] + ",CompatibleIDs" ] = UNKNOWN_DEVICE_ID        
            }


			DeviceInfo[ DeviceInfo["Rows"] + ",Date"          ] = stock[11]
			DeviceInfo[ DeviceInfo["Rows"] + ",Class"         ] = "System"
			DeviceInfo[ DeviceInfo["Rows"] + ",ClassDevRow"   ] = i
            
            DeviceInfo[ DeviceInfo["Rows"] + ",Inf"           ] = stock[14]
            
            DeviceInfo[ DeviceInfo["Rows"] + ",DeviceIndex"   ] = stock[1]
		
			DeviceInfo["Rows"] ++
		}
	}


    
    
    PercentImg.width=PercentTbl.width*3/5
    PercentString.innerHTML = '<center>60%</center>'
    DrvCert.UIRefresh()
    if ( g_LogConfigInfo[ USER_DEVICE_DETECT_LOG_NAME ] == "true" )
    {
        DisplayMessage("" + PromptArray["drvimp.js_9489_1"] + "..." )

        SubmitUserDeviceInfoLog(    g_UserID , 
                                    g_CaseID , 
                                    g_DevErrDeviceInfoArray , g_DevErrDeviceRows ,
                                    g_UserDrvDeviceInfoArray , g_UserDrvDeviceRows ,
                                    g_NormalSystemDeviceInfoArray , g_NormalSystemDeviceRows ,
                                    USER_DEVICE_DETECT_LOG_NAME )   
    }
    
    
    

    
    
    g_RunningStatus += "Step=1 , Status=1 , Finish=0 ; "
    SetCookie( "eDrv_Param" , g_RunningStatus , 1 )

    
    
    PercentImg.width=PercentTbl.width*4/5
    PercentString.innerHTML = '<center>80%</center>'
    DrvCert.UIRefresh()
    

    g_MatchingDeviceInfo = SubmitSoapRequestFindDriverEx( DeviceInfo )

	
	
	
	
	
	
	
	
	
	
	
	
    
	
    
	
    
    
    
    
    
    
    
    
    
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
    
    
    
	
    
    
    
	


	var TotalRows = 0 

    

    
	for (var i=0; i<g_DevErrDeviceRows ; i++)
	{
            
       		
            ReadArrayToDeviceInfo( stock , g_DevErrDeviceInfoArray , i);

			
            if ( g_MatchingDeviceInfo[ TotalRows ] )
			{
                var MatchingRow = g_MatchingDeviceInfo[ TotalRows ].replace( /^Row/gi , "" )
				DisplayMessage("" + PromptArray["drvimp.js_9581_1"] + "[" + stock[6] + "]" + PromptArray["drvimp.js_9581_2"] + "(DriverID=" + g_MatchingDeviceInfo[ MatchingRow + ",DriverID"] + ")" )
				
				g_DevErrDeviceInfoArray[i+",20"] = true
				g_DevErrDeviceInfoArray[i+",UserID"         ] = g_MatchingDeviceInfo[ MatchingRow + ",UserID"]
				g_DevErrDeviceInfoArray[i+",DriverID"       ] = g_MatchingDeviceInfo[ MatchingRow + ",DriverID"]
				g_DevErrDeviceInfoArray[i+",DriverDate"     ] = g_MatchingDeviceInfo[ MatchingRow + ",DriverDate"]
				g_DevErrDeviceInfoArray[i+",DriverMfg"      ] = g_MatchingDeviceInfo[ MatchingRow + ",DriverMfg"]
				
				g_DevErrDeviceInfoArray[i+",DriverDesc"     ] = g_MatchingDeviceInfo[ MatchingRow + ",DriverDesc"]

				g_DevErrDeviceInfoArray[i+",NewUserID"      ] = g_MatchingDeviceInfo[ MatchingRow + ",UserID"]
				g_DevErrDeviceInfoArray[i+",NewDriverID"    ] = g_MatchingDeviceInfo[ MatchingRow + ",DriverID"]
				g_DevErrDeviceInfoArray[i+",NewDriverDate"  ] = g_MatchingDeviceInfo[ MatchingRow + ",DriverDate"]
				g_DevErrDeviceInfoArray[i+",NewDriverMfg"   ] = g_MatchingDeviceInfo[ MatchingRow + ",DriverMfg"]
				
				g_DevErrDeviceInfoArray[i+",NewDriverDesc"  ] = g_MatchingDeviceInfo[ MatchingRow + ",DriverDesc"]
                
				g_DevErrDeviceInfoArray[i+",InstallOrder"   ] = g_MatchingDeviceInfo[ MatchingRow + ",InstallOrder"]
                
                
                
				g_DevErrDeviceInfoArray[i+",ForceInstall"   ] = g_MatchingDeviceInfo[ MatchingRow + ",ForceInstall"]
                
				g_DevErrDeviceInfoArray[i+",DispatchLogic"  ] = g_MatchingDeviceInfo[ MatchingRow + ",DispatchLogic"]
				g_DevErrDeviceInfoArray[i+",DriverHash"     ] = g_MatchingDeviceInfo[ MatchingRow + ",DriverHash"   ]
                
				g_DevErrDeviceInfoArray[i+",DriverSize"     ] = g_MatchingDeviceInfo[ MatchingRow + ",DriverSize"   ]
                
				g_DevErrDeviceInfoArray[i+",OldDrvID"       ] = g_MatchingDeviceInfo[ MatchingRow + ",OldDrvID"   ]
                
                g_DevErrDeviceInfoArray[i+",DriverVer"       ] = g_MatchingDeviceInfo[ MatchingRow + ",DriverVer"   ]
                
                
                
                g_MatchingDeviceInfo[ MatchingRow + ",MatchDeviceClass"] = "Error," + i
                
                
                g_DevErrDeviceInfoArray[i+",FindDriverRetRow"   ] = MatchingRow

				g_DeviceRowsCanImportDriver ++
			}
			else
			{
				
				g_DevErrDeviceInfoArray[i+",20"] = false
				
				DisplayMessage("" + PromptArray["drvimp.js_9627_1"] + "[" + stock[6] + "]" + PromptArray["drvimp.js_9627_2"] + ":" + g_MatchingDeviceInfo["ErrorInfo"] )

                
				
				
				
				
				
                
				
                g_DevErrDeviceInfoArray[i+",UserID"      ] = 0
				g_DevErrDeviceInfoArray[i+",DriverID"    ] = ""
				g_DevErrDeviceInfoArray[i+",DriverDate"  ] = ""
				g_DevErrDeviceInfoArray[i+",DriverMfg"   ] = ""
				g_DevErrDeviceInfoArray[i+",DriverDesc"  ] = ""

                g_DevErrDeviceInfoArray[i+",NewUserID"      ] = 0
				g_DevErrDeviceInfoArray[i+",NewDriverID"    ] = ""
				g_DevErrDeviceInfoArray[i+",NewDriverDate"  ] = ""
				g_DevErrDeviceInfoArray[i+",NewDriverMfg"   ] = ""
				g_DevErrDeviceInfoArray[i+",NewDriverDesc"  ] = ""

				g_DevErrDeviceInfoArray[i+",InstallOrder"   ] = 0
                
                
                
                
				g_DevErrDeviceInfoArray[i+",ForceInstall"   ] = 0 
                
				g_DevErrDeviceInfoArray[i+",DispatchLogic"  ] = 0
				g_DevErrDeviceInfoArray[i+",DriverHash"     ] = ""
                
				g_DevErrDeviceInfoArray[i+",DriverSize"     ] = 0
                
				g_DevErrDeviceInfoArray[i+",OldDrvID"       ] = 0
                
                g_DevErrDeviceInfoArray[i+",DriverVer"      ] = ""

			}
		TotalRows ++
	}
    
    
    PercentImg.width=PercentTbl.width
    PercentString.innerHTML = '<center>100%</center>'
    DrvCert.UIRefresh()
    
    

    
	for (var i=0; i<g_UserDrvDeviceRows ; i++)
	{
      		ReadArrayToDeviceInfo( stock , g_UserDrvDeviceInfoArray , i);

            if ( g_MatchingDeviceInfo[ TotalRows ] )
			{
                var MatchingRow = g_MatchingDeviceInfo[ TotalRows ].replace( /^Row/gi , "" )
				DisplayMessage("" + PromptArray["drvimp.js_9684_1"] + "[" + stock[6] + "]" + PromptArray["drvimp.js_9684_2"] + "(DriverID=" + g_MatchingDeviceInfo[ MatchingRow + ",DriverID"] + ")" )

				
				g_UserDrvDeviceInfoArray[i+",20"          ] = true
				g_UserDrvDeviceInfoArray[i+",UserID"      ] = g_MatchingDeviceInfo[ MatchingRow + ",UserID"]
				g_UserDrvDeviceInfoArray[i+",DriverID"    ] = g_MatchingDeviceInfo[ MatchingRow + ",DriverID"]
				g_UserDrvDeviceInfoArray[i+",DriverDate"  ] = g_MatchingDeviceInfo[ MatchingRow + ",DriverDate"]
				g_UserDrvDeviceInfoArray[i+",DriverMfg"   ] = g_MatchingDeviceInfo[ MatchingRow + ",DriverMfg"]
				
				g_UserDrvDeviceInfoArray[i+",DriverDesc"  ] = g_MatchingDeviceInfo[ MatchingRow + ",DriverDesc"]

				g_UserDrvDeviceInfoArray[i+",NewUserID"      ] = g_MatchingDeviceInfo[ MatchingRow + ",UserID"]
				g_UserDrvDeviceInfoArray[i+",NewDriverID"    ] = g_MatchingDeviceInfo[ MatchingRow + ",DriverID"]
				g_UserDrvDeviceInfoArray[i+",NewDriverDate"  ] = g_MatchingDeviceInfo[ MatchingRow + ",DriverDate"]
				g_UserDrvDeviceInfoArray[i+",NewDriverMfg"   ] = g_MatchingDeviceInfo[ MatchingRow + ",DriverMfg"]
				
				g_UserDrvDeviceInfoArray[i+",NewDriverDesc"  ] = g_MatchingDeviceInfo[ MatchingRow + ",DriverDesc"]
                
				g_UserDrvDeviceInfoArray[i+",InstallOrder"   ] = g_MatchingDeviceInfo[ MatchingRow + ",InstallOrder"]
                
                
                
				g_UserDrvDeviceInfoArray[i+",ForceInstall"   ] = g_MatchingDeviceInfo[ MatchingRow + ",ForceInstall"]
                
				g_UserDrvDeviceInfoArray[i+",DispatchLogic"  ] = g_MatchingDeviceInfo[ MatchingRow + ",DispatchLogic"]
				g_UserDrvDeviceInfoArray[i+",DriverHash"     ] = g_MatchingDeviceInfo[ MatchingRow + ",DriverHash"   ]
                
				g_UserDrvDeviceInfoArray[i+",DriverSize"     ] = g_MatchingDeviceInfo[ MatchingRow + ",DriverSize"   ]
                
				g_UserDrvDeviceInfoArray[i+",OldDrvID"       ] = g_MatchingDeviceInfo[ MatchingRow + ",OldDrvID"   ]
                
                g_UserDrvDeviceInfoArray[i+",DriverVer"       ] = g_MatchingDeviceInfo[ MatchingRow + ",DriverVer"   ]
                
                
                
                g_MatchingDeviceInfo[ MatchingRow + ",MatchDeviceClass"] = "User,"+i
                
                
                g_UserDrvDeviceInfoArray[i+",FindDriverRetRow"   ] = MatchingRow

			}
			else
			{
				DisplayMessage("" + PromptArray["drvimp.js_9727_1"] + "[" + stock[6] + "]" + PromptArray["drvimp.js_9727_2"] + "")
				
				g_UserDrvDeviceInfoArray[i+",20"] = false

                
				
				
				
				
				
                
				
                g_UserDrvDeviceInfoArray[i+",UserID"      ] = 0
				g_UserDrvDeviceInfoArray[i+",DriverID"    ] = ""
				g_UserDrvDeviceInfoArray[i+",DriverDate"  ] = ""
				g_UserDrvDeviceInfoArray[i+",DriverMfg"   ] = ""
				g_UserDrvDeviceInfoArray[i+",DriverDesc"  ] = ""

                g_UserDrvDeviceInfoArray[i+",NewUserID"      ] = 0
				g_UserDrvDeviceInfoArray[i+",NewDriverID"    ] = ""
				g_UserDrvDeviceInfoArray[i+",NewDriverDate"  ] = ""
				g_UserDrvDeviceInfoArray[i+",NewDriverMfg"   ] = ""
				g_UserDrvDeviceInfoArray[i+",NewDriverDesc"  ] = ""

				g_UserDrvDeviceInfoArray[i+",InstallOrder"   ] = 0
                
                
				g_UserDrvDeviceInfoArray[i+",ForceInstall"   ] = 0
                
				g_UserDrvDeviceInfoArray[i+",DispatchLogic"  ] = 0
				g_UserDrvDeviceInfoArray[i+",DriverHash"     ] = ""
                
				g_UserDrvDeviceInfoArray[i+",DriverSize"     ] = ""
                
				g_UserDrvDeviceInfoArray[i+",OldDrvID"       ] = ""
                
                g_UserDrvDeviceInfoArray[i+",DriverVer"       ] = ""
				
			}
			
			if ( Date.parse( g_UserDrvDeviceInfoArray[i+",NewDriverDate"] ) > Date.parse( stock[11] ) )
			{
				g_DeviceRowsNeedUpdateDriver ++
			}
		TotalRows ++ 
	}

    
    
    
	for (var i=0; i<g_NormalSystemDeviceRows ; i++)
	{
      		ReadArrayToDeviceInfo( stock , g_NormalSystemDeviceInfoArray , i);

            if ( g_MatchingDeviceInfo[ TotalRows ] )
			{
                var MatchingRow = g_MatchingDeviceInfo[ TotalRows ].replace( /^Row/gi , "" )
				DisplayMessage("" + PromptArray["drvimp.js_9784_1"] + "[" + stock[6] + "]" + PromptArray["drvimp.js_9784_2"] + "(DriverID=" + g_MatchingDeviceInfo[ MatchingRow + ",DriverID"] + ")" )

				
				g_NormalSystemDeviceInfoArray[i+",20"          ] = true
				g_NormalSystemDeviceInfoArray[i+",UserID"      ] = g_MatchingDeviceInfo[ MatchingRow + ",UserID"]
				g_NormalSystemDeviceInfoArray[i+",DriverID"    ] = g_MatchingDeviceInfo[ MatchingRow + ",DriverID"]
				g_NormalSystemDeviceInfoArray[i+",DriverDate"  ] = g_MatchingDeviceInfo[ MatchingRow + ",DriverDate"]
				g_NormalSystemDeviceInfoArray[i+",DriverMfg"   ] = g_MatchingDeviceInfo[ MatchingRow + ",DriverMfg"]
				
				g_NormalSystemDeviceInfoArray[i+",DriverDesc"  ] = g_MatchingDeviceInfo[ MatchingRow + ",DriverDesc"]

				g_NormalSystemDeviceInfoArray[i+",NewUserID"      ] = g_MatchingDeviceInfo[ MatchingRow + ",UserID"]
				g_NormalSystemDeviceInfoArray[i+",NewDriverID"    ] = g_MatchingDeviceInfo[ MatchingRow + ",DriverID"]
				g_NormalSystemDeviceInfoArray[i+",NewDriverDate"  ] = g_MatchingDeviceInfo[ MatchingRow + ",DriverDate"]
				g_NormalSystemDeviceInfoArray[i+",NewDriverMfg"   ] = g_MatchingDeviceInfo[ MatchingRow + ",DriverMfg"]
				
				g_NormalSystemDeviceInfoArray[i+",NewDriverDesc"  ] = g_MatchingDeviceInfo[ MatchingRow + ",DriverDesc"]
                
				g_NormalSystemDeviceInfoArray[i+",InstallOrder"   ] = g_MatchingDeviceInfo[ MatchingRow + ",InstallOrder"]
                
                
                
				g_NormalSystemDeviceInfoArray[i+",ForceInstall"   ] = g_MatchingDeviceInfo[ MatchingRow + ",ForceInstall"]
                
				g_NormalSystemDeviceInfoArray[i+",DispatchLogic"  ] = g_MatchingDeviceInfo[ MatchingRow + ",DispatchLogic"]
				g_NormalSystemDeviceInfoArray[i+",DriverHash"     ] = g_MatchingDeviceInfo[ MatchingRow + ",DriverHash"   ]
                
				g_NormalSystemDeviceInfoArray[i+",DriverSize"     ] = g_MatchingDeviceInfo[ MatchingRow + ",DriverSize"   ]
                
				g_NormalSystemDeviceInfoArray[i+",OldDrvID"       ] = g_MatchingDeviceInfo[ MatchingRow + ",OldDrvID"     ]
                
                g_NormalSystemDeviceInfoArray[i+",DriverVer"      ] = g_MatchingDeviceInfo[ MatchingRow + ",DriverVer"     ]
                
                
                
                g_MatchingDeviceInfo[ MatchingRow + ",MatchDeviceClass"] = "System," + i
                
                
                g_NormalSystemDeviceInfoArray[i+",FindDriverRetRow"   ] = MatchingRow
			}
			else
			{
				
				
				g_NormalSystemDeviceInfoArray[i+",20"] = false

                
				
				
				
				
				
                
				
                g_NormalSystemDeviceInfoArray[i+",UserID"      ] = 0
				g_NormalSystemDeviceInfoArray[i+",DriverID"    ] = ""
				g_NormalSystemDeviceInfoArray[i+",DriverDate"  ] = ""
				g_NormalSystemDeviceInfoArray[i+",DriverMfg"   ] = ""
				g_NormalSystemDeviceInfoArray[i+",DriverDesc"  ] = ""

                g_NormalSystemDeviceInfoArray[i+",NewUserID"      ] = 0
				g_NormalSystemDeviceInfoArray[i+",NewDriverID"    ] = ""
				g_NormalSystemDeviceInfoArray[i+",NewDriverDate"  ] = ""
				g_NormalSystemDeviceInfoArray[i+",NewDriverMfg"   ] = ""
				g_NormalSystemDeviceInfoArray[i+",NewDriverDesc"  ] = ""

				g_NormalSystemDeviceInfoArray[i+",InstallOrder"   ] = 0
                
                
				g_NormalSystemDeviceInfoArray[i+",ForceInstall"   ] = 0
                
				g_NormalSystemDeviceInfoArray[i+",DispatchLogic"  ] = 0
				g_NormalSystemDeviceInfoArray[i+",DriverHash"     ] = ""
                
				g_NormalSystemDeviceInfoArray[i+",DriverSize"     ] = ""
                
				g_NormalSystemDeviceInfoArray[i+",OldDrvID"       ] = ""
                
                g_NormalSystemDeviceInfoArray[i+",DriverVer"       ] = ""
				
			}
			
			if ( Date.parse( g_NormalSystemDeviceInfoArray[i+",NewDriverDate"] ) > Date.parse( stock[11] ) )
			{
				g_DeviceRowsNeedUpdateDriver ++
			}
		TotalRows ++ 
	}
	
	
	
	
	
	
	
	
	
	
    
    
    
	
    
    
    
	
    
    
    
    

    g_NoMatchDeviceDriverInfoArray["Rows"] = 0
    var j = 0
    for ( var i=0; i<g_MatchingDeviceInfo[ "Rows" ]; i++ )
    {
        
        
        
        
        if ( !g_MatchingDeviceInfo[ i + ",MatchDeviceClass"] )
        {
			DisplayMessage("" + PromptArray["drvimp.js_9905_1"] + "(DriverID=" + g_MatchingDeviceInfo[ i + ",DriverID"] + ")" )
            j = g_NoMatchDeviceDriverInfoArray["Rows"]

            g_NoMatchDeviceDriverInfoArray[ j + ",20"               ] = true
            g_NoMatchDeviceDriverInfoArray[ j + ",UserID"           ] = g_MatchingDeviceInfo[ i + ",UserID"       ]
            g_NoMatchDeviceDriverInfoArray[ j + ",DriverID"         ] = g_MatchingDeviceInfo[ i + ",DriverID"     ]
            g_NoMatchDeviceDriverInfoArray[ j + ",DriverDate"       ] = g_MatchingDeviceInfo[ i + ",DriverDate"   ]
            g_NoMatchDeviceDriverInfoArray[ j + ",DriverMfg"        ] = g_MatchingDeviceInfo[ i + ",DriverMfg"    ]
            
            g_NoMatchDeviceDriverInfoArray[ j + ",DriverDesc"       ] = g_MatchingDeviceInfo[ i + ",DriverDesc"   ]
            g_NoMatchDeviceDriverInfoArray[ j + ",NewUserID"        ] = g_MatchingDeviceInfo[ i + ",UserID"       ]
            g_NoMatchDeviceDriverInfoArray[ j + ",NewDriverID"      ] = g_MatchingDeviceInfo[ i + ",DriverID"     ]
            g_NoMatchDeviceDriverInfoArray[ j + ",NewDriverDate"    ] = g_MatchingDeviceInfo[ i + ",DriverDate"   ]
            g_NoMatchDeviceDriverInfoArray[ j + ",NewDriverMfg"     ] = g_MatchingDeviceInfo[ i + ",DriverMfg"    ]
            
            g_NoMatchDeviceDriverInfoArray[ j + ",NewDriverDesc"    ] = g_MatchingDeviceInfo[ i + ",DriverDesc"   ]
            
            g_NoMatchDeviceDriverInfoArray[ j + ",InstallOrder"     ] = g_MatchingDeviceInfo[ i + ",InstallOrder" ]
            
            
            
            g_NoMatchDeviceDriverInfoArray[ j + ",ForceInstall"     ] = g_MatchingDeviceInfo[ i + ",ForceInstall" ]
            
            g_NoMatchDeviceDriverInfoArray[ j + ",DispatchLogic"    ] = g_MatchingDeviceInfo[ i + ",DispatchLogic"]
            g_NoMatchDeviceDriverInfoArray[ j + ",DriverHash"       ] = g_MatchingDeviceInfo[ i + ",DriverHash"   ]
            
            g_NoMatchDeviceDriverInfoArray[ j + ",DriverSize"       ] = g_MatchingDeviceInfo[ i + ",DriverSize"   ]
            
            g_NoMatchDeviceDriverInfoArray[ j + ",OldDrvID"         ] = g_MatchingDeviceInfo[ i + ",OldDrvID"     ]
            
            g_NoMatchDeviceDriverInfoArray[ j + ",DriverVer"        ] = g_MatchingDeviceInfo[ i + ",DriverVer"     ]
            
            g_NoMatchDeviceDriverInfoArray[ j + ",MatchDeviceClass" ] = g_MatchingDeviceInfo[ i + ",MatchDeviceClass"] = "Other," + j
                
            g_NoMatchDeviceDriverInfoArray["Rows"] ++
        }
    }
    
    

}

function SubmitSoapRequestFindDriverEx( DeviceInfo )
{
    var RequestInfo = new Array()

    var MainBoardInfoXml = GetMainBoardInfo()

    
    
    
    
    
    var ComputerMfg             = GetXmlSingleNodeText( MainBoardInfoXml , "ComputerManufacturer" )
    var ComputerModel           = GetXmlSingleNodeText( MainBoardInfoXml , "ComputerModel" )
    var BaseBoardMfg            = GetXmlSingleNodeText( MainBoardInfoXml , "BaseBoardManufacturer" )
    var BaseBoardProduct        = GetXmlSingleNodeText( MainBoardInfoXml , "BaseBoardProduct" )
    var BaseBoardVersion        = GetXmlSingleNodeText( MainBoardInfoXml , "BaseBoardVersion" )

    RequestInfo["ComputerMfg"       ] = ( ComputerMfg       == null ) ? "undefined" : ComputerMfg
    RequestInfo["ComputerModel"     ] = ( ComputerModel     == null ) ? "undefined" : ComputerModel
    RequestInfo["BaseBoardMfg"      ] = ( BaseBoardMfg      == null ) ? "undefined" : BaseBoardMfg
    RequestInfo["BaseBoardProduct"  ] = ( BaseBoardProduct  == null ) ? "undefined" : BaseBoardProduct
    RequestInfo["BaseBoardVersion"  ] = ( BaseBoardVersion  == null ) ? "undefined" : BaseBoardVersion

    var OSInfoXml = GetOSInfo()
    
    
    
    RequestInfo["OSMajorVer"       ] = GetXmlSingleNodeText( OSInfoXml , "OSMajorVer" )
    RequestInfo["OSMinorVer"       ] = GetXmlSingleNodeText( OSInfoXml , "OSMinorVer" )
    RequestInfo["OSPlatform"       ] = GetXmlSingleNodeText( OSInfoXml , "OSPlatform" )

    
    var RequestXml = ""

    var RetInfo     = new Array()
    RetInfo[ "Rows"     ] = 0

    var SoapApplyURL = ServerName.value + SoapAspURL.value

	var SoapRequestXML = ""
    
	
	SoapRequestXML += '<?xml version="1.0" standalone="no"?>\n'
	SoapRequestXML += '<SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http:\/\/schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http:\/\/schemas.xmlsoap.org/soap/envelope/">\n'
	SoapRequestXML += "   <SOAP-ENV:Header xmlns:wsu =\"http:\/\/schemas.xmlsoap.org/ws/2002/07/utility\" "
	SoapRequestXML += "                    xmlns:wsse=\"http:\/\/schemas.xmlsoap.org/ws/2002/07/secext\" >\n"
    SoapRequestXML += GetClientInfo()
	SoapRequestXML += "   </SOAP-ENV:Header>\n"
	SoapRequestXML += "   <SOAP-ENV:Body>\n"
    SoapRequestXML += "<n:FindDriverRowset xmlns:n=\"http:\/\/e-drivers.cn/soap/\">\n"
                   +  "     <UserID>"            + DeviceInfo["UserID"            ]  + "</UserID>\n"
                   +  "     <OSMajorVer>"        + RequestInfo["OSMajorVer"       ]  + "</OSMajorVer>\n"
                   +  "     <OSMinorVer>"        + RequestInfo["OSMinorVer"       ]  + "</OSMinorVer>\n"
                   +  "     <OSPlatform>"        + RequestInfo["OSPlatform"       ]  + "</OSPlatform>\n"
                   +  "     <ComputerMfg>"       + RequestInfo["ComputerMfg"      ]  + "</ComputerMfg>\n"
                   +  "     <ComputerModel>"     + RequestInfo["ComputerModel"    ]  + "</ComputerModel>\n"
                   +  "     <BaseBoardMfg>"      + RequestInfo["BaseBoardMfg"     ]  + "</BaseBoardMfg>\n"
                   +  "     <BaseBoardProduct>"  + RequestInfo["BaseBoardProduct" ]  + "</BaseBoardProduct>\n"
                   +  "     <BaseBoardVersion>"  + RequestInfo["BaseBoardVersion" ]  + "</BaseBoardVersion>\n"
                   
                   +  "     <HostSerialNumber>"  + g_UserHostSerialNumber            + "</HostSerialNumber>\n"
                   
    SoapRequestXML += "     <RowSet>\n"

    
    var SysPath
    var InfPathFileName
    var InfContentInBASE64
    var InfHash
    for (var i=0;i<DeviceInfo["Rows"];i++)
    {
        SoapRequestXML += "     <Row>\n"
        SoapRequestXML += "         <HardwareIDs>"      + XmlEncoding( DeviceInfo[ i + ",HardwareIDs"     ] ) + "</HardwareIDs>\n"
        SoapRequestXML += "         <CompatibleIDs>"    + XmlEncoding( DeviceInfo[ i + ",CompatibleIDs"   ] ) + "</CompatibleIDs>\n"
        SoapRequestXML += "         <DriverDate>"       + XmlEncoding( DeviceInfo[ i + ",Date"            ] ) + "</DriverDate>\n"
        SoapRequestXML += "         <RowID>"            + i                                                   + "</RowID>\n"
        
        SoapRequestXML += "         <ClassDevRow>"      + DeviceInfo[ i + ",ClassDevRow"      ]               + "</ClassDevRow>\n"
        SoapRequestXML += "         <DeviceIndex>"      + DeviceInfo[ i + ",DeviceIndex"      ]               + "</DeviceIndex>\n"
        
        SysPath = DrvCert.GetFolderPath( 36 )	
        
        
        
        if ( DeviceInfo[ i + ",Inf" ] && ( DeviceInfo[ i + ",Class"].toUpperCase() == "USER")  )
        {
            InfPathFileName = SysPath + "\\inf\\" + DeviceInfo[ i + ",Inf" ]
            InfContentInBASE64 = DrvCert.GetBASE64StringFromBinFile( InfPathFileName )
            InfHash = DrvCert.GetDataHash( InfContentInBASE64 )
            SoapRequestXML += "         <InfHash>"      + InfHash                                             + "</InfHash>\n"
        }
        
        
        else
        {
            SoapRequestXML += "         <InfHash></InfHash>\n"
        }
        SoapRequestXML += "         <Class>"             + XmlEncoding( DeviceInfo[ i + ",Class"            ] ) + "</Class>\n"
        
        SoapRequestXML += "     </Row>\n"
    }
    SoapRequestXML += "     </RowSet>\n"
	SoapRequestXML += "   </n:FindDriverRowset>\n"
	SoapRequestXML += " </SOAP-ENV:Body>\n"
	SoapRequestXML += "</SOAP-ENV:Envelope>"

    
    

    
    
    var ReturnXML = MyXMLHttpRequest( SoapApplyURL , SoapRequestXML )


	

	
	if ( ReturnXML == null)
	{

        
        RetInfo["Success"       ] = false
        RetInfo["ErrorInfo"     ] = "" + PromptArray["drvimp.js_10069_1"] + ""      
		return ( RetInfo )
	}


    var ErrorInfo = GetInfoByTagFromXml( ReturnXML, SOAP_RET_ERROR_STRING_TAG )

	if ( ErrorInfo ) 
	{
        
        RetInfo["Success"       ] = false
        RetInfo["ErrorInfo"     ] = "" + PromptArray["drvimp.js_10080_1"] + ":" + ErrorInfo 
        RetInfo["UserID"        ] = 0
        RetInfo["DriverID"      ] = 0
        RetInfo["DriverDate"    ] = ""
        RetInfo["DriverMfg"     ] = ""
        RetInfo["NewUserID"     ] = 0
        RetInfo["NewDriverID"   ] = 0
        RetInfo["NewDriverDate" ] = ""
        RetInfo["NewDriverMfg"  ] = ""
	}
	else
	{
		
		
		
		
		
		
		
		
		
		
		
		
        
		
        
		
		
		
		
		
		
		
		
		
        
		
        
		
        
        
        
        
        
        
        
        
        
        
        
		
		
		
		

        
        var ResultString         = GetInfoByTagFromXml( ReturnXML, "Result" )
		var ResultRows			 = GetInfoByTagFromXml( ReturnXML, "Rows" )
		if ( ResultRows )
		{
			var xmlDoc = new ActiveXObject("Microsoft.XMLDOM")
			xmlDoc.async = false
			xmlDoc.loadXML( ReturnXML )
			var objRowDataNode = xmlDoc.selectSingleNode("\/\/Rowset")
			if ( objRowDataNode )
			{
				var oNodeList ;
		
				var oNodeList = objRowDataNode.childNodes;
				for (var i=0;i<oNodeList.length ; i++)
				{
                    
                    
                    
					RetInfo[ i + ",OrgRow"     ] = XmlDencoding( GetXmlSingleNodeText( oNodeList(i).xml , "OrgRow" ) )
                    
                    
                    
					RetInfo[ RetInfo[ i + ",OrgRow"] ] = "Row" + RetInfo[ "Rows"     ]
					RetInfo[ i + ",UserID"     ] = XmlDencoding( GetXmlSingleNodeText( oNodeList(i).xml , "UserID" ) )
					RetInfo[ i + ",DriverID"   ] = XmlDencoding( GetXmlSingleNodeText( oNodeList(i).xml , "DriverID" ) )
					RetInfo[ i + ",DriverDate" ] = XmlDencoding( GetXmlSingleNodeText( oNodeList(i).xml , "DriverDate" ) )
					RetInfo[ i + ",DriverMfg"  ] = XmlDencoding( GetXmlSingleNodeText( oNodeList(i).xml , "DriverMfg" ) )
					RetInfo[ i + ",DriverDesc" ] = XmlDencoding( GetXmlSingleNodeText( oNodeList(i).xml , "DriverDesc" ) )
                    
					RetInfo[ i + ",InstallOrder"]= XmlDencoding( GetXmlSingleNodeText( oNodeList(i).xml , "InstallOrder" ) )
                    
                    
					
                    var ForceInstFlag = XmlDencoding( GetXmlSingleNodeText( oNodeList(i).xml , "ForceInstall" ) )
                    
                    
                    
                    
                    
                    RetInfo[ i + ",ForceInstall"] = ( parseInt( ForceInstFlag ) == 0 ) ? 1 : 0
                    
                    var DispatchLogicFlag = XmlDencoding( GetXmlSingleNodeText( oNodeList(i).xml , "DispatchLogic" ) )
                    RetInfo[ i + ",DispatchLogic"] = parseInt( DispatchLogicFlag ) 
                    RetInfo[ i + ",DriverHash"] = XmlDencoding( GetXmlSingleNodeText( oNodeList(i).xml , "DriverHash" ) )
                    
                    RetInfo[ i + ",DriverSize"] = GetXmlSingleNodeText( oNodeList(i).xml , "DriverSize" )
                    
                    RetInfo[ i + ",OldDrvID"] = GetXmlSingleNodeText( oNodeList(i).xml , "OldDrvID" )
                    
                    RetInfo[ i + ",DriverVer"] = GetXmlSingleNodeText( oNodeList(i).xml , "DriverVer" )


					
					if ( RetInfo[ i + ",DriverDesc" ] )
					{
						var CurPath = DrvCert.GetFolderPath( 32 )
						
						
						CurPath     = CurPath.substring( 0 , CurPath.lastIndexOf( "\\" ) )    
						CurPath     = CurPath + "\\Temp"
						var TmpFileName = CurPath + "\\DrvImp.TMP"
						DrvCert.DeleteFile( TmpFileName )

						DrvCert.SaveBASE64ToBinFile( RetInfo[ i + ",DriverDesc" ] , TmpFileName )
						RetInfo[ i + ",DriverDesc" ] = DrvCert.GetStringFromFile( TmpFileName )
						DrvCert.DeleteFile( TmpFileName )
					}
					RetInfo[ "Rows"     ] = i+1
				}
			}
			RetInfo["Success"       ] = ( ResultString == "Success" ) ? true : false
			RetInfo["ErrorInfo"     ] = ""
            
            
            xmlDoc = null
		}
		else
		{
	        RetInfo["Success"       ] = false
			RetInfo["ErrorInfo"     ] = "" + PromptArray["drvimp.js_10216_1"] + ""
		}
    }
return ( RetInfo )
}


function MyXMLHttpRequest( SoapApplyURL , SoapRequestXML )
{
    var RespXml = ""
    var xmlhttp=false;
    
    
    
    
     try 
     {
        xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
     } 
     catch (e) 
     {
        try 
        {
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        } 
        catch (E) 
        {
            xmlhttp = false;
        }
     }
    
    
    
    
    
    
    
    
    
    
    

    
    
    
    
    
    
    
    
    
    
    if ( !xmlhttp ) 
    {
        
        
        DisplayMessage( "XMLHttpRequest open failed" ) 

        return ( null )
    }

    
    var Flag = GetCookie( "SoapRequestLogFlag" )

    try
    {
        

        
        
        
        

        

        xmlhttp.Open( "POST", "http:\/\/" + SoapApplyURL , false )
        
        
        xmlhttp.setRequestHeader("Content-Type", "text/xml-SOAP" )
        
        
        
        
        
        
        
        

        
        if ( Flag == "true" )
        {
            DrvInst.AppendStringToFileEnd( g_DrvInstLogFilePath , "\r\n" + GetLocalTime() + SoapRequestXML )
        }
        

        xmlhttp.send( SoapRequestXML )    
        
        
        
        
        
        
        
        RespXml = xmlhttp.responseXML





        
        
    }
    catch( err ) 
    {
        var errInfo = "XMLHttpRequest() error - " + err.description + " (0x" + err.number.toString(16) + ")"
        
        
        DisplayMessage( errInfo ) 
    }
    if (typeof(RespXml) == "object")
		RespXml = RespXml.xml

    
    if ( Flag == "true" )
    {
        DrvInst.AppendStringToFileEnd( g_DrvInstLogFilePath , "\r\n" + GetLocalTime() + RespXml )
    }

return ( RespXml )
}



	

		

		

		

		

		

		

		

		

		

		

		

	




function CheckAndModifyDiskInfo( DiskInfoXml )
{
    var NewDiskInfoXml  = ""
    NewDiskInfoXml     += "<DiskInfo>\n"

    var xmlDoc = new ActiveXObject("Microsoft.XMLDOM")
    xmlDoc.async = false
    xmlDoc.loadXML( DiskInfoXml )

    
    
    
    var DiskModel           = ""
    var DiskSerialNumber    = ""
    
    
    

    
    var DiskType            = ""

    
    var DiskHeads           = ""
    var DiskSectorsPerTrack = ""
    var DiskSize            = ""

    var objRowDataNode = xmlDoc.selectSingleNode("\/\/DiskInfo")
    if ( objRowDataNode )
    {
        var oNodeList = objRowDataNode.childNodes;
        for (var i=0;i<oNodeList.length ; i++)
        {
        
            
            
            
            
            DiskModel           = XmlDencoding( GetXmlSingleNodeText( oNodeList(i).xml , "DiskModel" ) )
            DiskSerialNumber    = XmlDencoding( GetXmlSingleNodeText( oNodeList(i).xml , "DiskSerialNumber" ) )

            
            
            
            
            DiskType            = XmlDencoding( GetXmlSingleNodeText( oNodeList(i).xml , "DiskType" ) )
            

            
            DiskHeads           = XmlDencoding( GetXmlSingleNodeText( oNodeList(i).xml , "DiskHeads" ) )
            DiskSectorsPerTrack = XmlDencoding( GetXmlSingleNodeText( oNodeList(i).xml , "DiskSectorsPerTrack" ) )
            DiskSize            = XmlDencoding( GetXmlSingleNodeText( oNodeList(i).xml , "DiskSize" ) )

            
            
            if ( !DiskModel || !DiskSerialNumber || ( !DiskHeads || !DiskSectorsPerTrack.toString(10) || !DiskSize.toString(10) ) || !DiskType )
            {
                
            }
            
            else
            {
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                DiskType            = XmlDencoding( GetXmlSingleNodeText( oNodeList(i).xml , "DiskType" ) )
                
                if ( ( DiskType.toUpperCase().indexOf( "FIXED" ) != -1 ) && ( DiskType != "Fixed" ) )
                {
                    var DiskTypeXmlDoc = new ActiveXObject("Microsoft.XMLDOM")
                    DiskTypeXmlDoc.async = false
                    DiskTypeXmlDoc.loadXML( oNodeList(i).xml )

                    var DiskTypeobjNode = DiskTypeXmlDoc.selectSingleNode("\/\/DiskType" )
                    DiskTypeobjNode.text= "Fixed"
                    NewDiskInfoXml += DiskTypeXmlDoc.xml
                    DiskTypeXmlDoc = null
                }
                else
                {
                    NewDiskInfoXml += oNodeList(i).xml
                }
            }           
        
        }
    }
    else
    {
        
        xmlDoc = null
        return ( DiskInfoXml ) 
    }

    NewDiskInfoXml += "</DiskInfo>\n"

    xmlDoc = null

return ( NewDiskInfoXml )
}




function ListDriverNeedRebootResult()
{
    var NeedRebootFlag = false

    if ( g_ImportedDeviceRows + g_UpdatedDeviceRows )
    {
        for (var i=0; i<g_ImportedDeviceRows ; i++)
		{
            if ( g_ImportedDeviceArray[ i + ",4"] & 0x00000100 ) 
            {
                NeedRebootFlag = true
                break
            }
        }
        for (var i=0; i<g_UpdatedDeviceRows ; i++)
		{
            if ( g_UpdatedDeviceArray[ i + ",4"] & 0x00000100 ) 
            {
                NeedRebootFlag = true
                break
            }
        }
    }
    else
    {
        return
    }
    
    if ( NeedRebootFlag )
    {
        var stock = new Array()

        oRow = document.createElement("TR");
        oCell = document.createElement("TD");
        oCell.colSpan= g_maxcols+1
        oCell.align = "center"
        oCell.innerHTML = "" + PromptArray["drvimp.js_10530_1"] + "<br><br>"
        oRow.appendChild(oCell);
        g_oTBody0.appendChild(oRow)

        if ( g_ImportedDeviceRows )
        {
            for (var i=0; i<g_ImportedDeviceRows ; i++)
            {
                ReadArrayToDeviceInfo(stock , g_ImportedDeviceArray , i)

                if ( stock[4] & 0x00000100 ) 
                {
                    var oRow,oCell;
                    oRow = document.createElement("TR");
                    g_oTBody0.appendChild(oRow);
                    oCell = document.createElement("TD");
                    oCell.innerHTML	= stock[6]
                    oCell.vAlign	="top"; 
                    oCell.align = "left";
                    oRow.appendChild(oCell);
                }
            }
        }

        
        if ( g_UpdatedDeviceRows )
        {
            for (var i=0; i<g_UpdatedDeviceRows ; i++)
            {
                ReadArrayToDeviceInfo(stock , g_UpdatedDeviceArray , i)

                if ( stock[4] & 0x00000100 ) 
                {
                    var oRow,oCell;
                    oRow = document.createElement("TR");
                    g_oTBody0.appendChild(oRow);
                    oCell = document.createElement("TD");
                    oCell.innerHTML	= stock[6]
                    oCell.vAlign	="top"; 
                    oCell.align = "left";
                    oRow.appendChild(oCell);
                }
            }
        }
    }
}

function SetHiddenWinToTop()
{
    var handle = DrvCert.DrvFindWindow( "" + PromptArray["drvimp.js_10579_1"] + "" )
    if ( handle ) DrvCert.DrvSetWindowToTop( handle )
}


function GetDownloadDrive()
{
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    

    
    
    
    var MaxSpaceLeftDrive = "C:" 
    var MaxSpaceLeft = 0
    var CurDriveFreeSpaceXml
    var CurDrive = ""
    var CurDriveFreeSpace = 0
    
    var LogicalDriveInfoXml = DrvCert.GetLogicalDriveInfo()
    var DriveName = ""
    var DriveType = ""
    var CurDrive  = ""
    var xmlDoc = new ActiveXObject("Microsoft.XMLDOM")
    xmlDoc.async = false
    xmlDoc.loadXML( LogicalDriveInfoXml )
    var objRowDataNode = xmlDoc.selectSingleNode("\/\/DriveInfo")
    if ( objRowDataNode )
    {
        var oNodeList = objRowDataNode.childNodes;
        for (var i=0;i<oNodeList.length ; i++)
        {
            DriveName = GetXmlSingleNodeText( oNodeList(i).xml , "DriveName" )
            DriveType = GetXmlSingleNodeText( oNodeList(i).xml , "DriveType" )
            if ( DriveType == "Fixed" )
            {
                CurDrive = DriveName.substring( 0 , 1 )
                
                
                
                
                if ( CurDrive == "C" || CurDrive == "c" ) continue
                CurDriveFreeSpaceXml = DrvCert.GetDiskFreeSpaceXml( CurDrive + ":" )
                CurDriveFreeSpace    = parseInt( GetXmlSingleNodeText( CurDriveFreeSpaceXml , "FreeBytes" ) )
                
                if ( CurDriveFreeSpace > MaxSpaceLeft )
                {
                    MaxSpaceLeft        = CurDriveFreeSpace
                    MaxSpaceLeftDrive   = CurDrive + ":"
                }
            }
        }
        xmlDoc = null
    }
return ( MaxSpaceLeftDrive )
}

function SubmitUserDownloadDriverPath( UserID , DownloadPath )
{
    var RetInfo = new Array()
    var SoapApplyURL = ServerName.value + SoapAspURL.value		

	var SoapRequestXML = ""
	SoapRequestXML += '<?xml version="1.0" standalone="no"?>\n'
	SoapRequestXML += '<SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http:\/\/schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http:\/\/schemas.xmlsoap.org/soap/envelope/">\n'
	SoapRequestXML += "   <SOAP-ENV:Header xmlns:wsu =\"http:\/\/schemas.xmlsoap.org/ws/2002/07/utility\" "
	SoapRequestXML += "                    xmlns:wsse=\"http:\/\/schemas.xmlsoap.org/ws/2002/07/secext\" >\n"
    SoapRequestXML += GetClientInfo()
	SoapRequestXML += "   </SOAP-ENV:Header>\n"
	SoapRequestXML += "   <SOAP-ENV:Body>\n"
	SoapRequestXML += "     <n:SetUserDownloadDriverPath xmlns:n=\"http:\/\/e-drivers.cn/soap/\">\n"
    SoapRequestXML += "         <UserID>"           + UserID                        + "</UserID>\n"
    SoapRequestXML += "         <DownloadPath>"     + XmlEncoding( DownloadPath )   + "</DownloadPath>\n"
    SoapRequestXML += "     </n:SetUserDownloadDriverPath>\n"
	SoapRequestXML += "   </SOAP-ENV:Body>\n"
	SoapRequestXML += "</SOAP-ENV:Envelope>"

	
    
    var ReturnXML = MyXMLHttpRequest( SoapApplyURL , SoapRequestXML )

	if (ReturnXML == null || ReturnXML == "")
	{
        DisplayMessage( "" + PromptArray["drvimp.js_10689_1"] + "," + PromptArray["drvimp.js_10689_2"] + ":\n" + SoapRequestXML )
        RetInfo["Success"] = false
        RetInfo["Info"]    = "" + PromptArray["drvimp.js_10691_1"] + ""
		return ( RetInfo )
	}

	var ErrorInfo = GetInfoByTagFromXml( ReturnXML, SOAP_RET_ERROR_STRING_TAG )
	if (ErrorInfo != null) 
	{
        RetInfo["Success"] = false
        RetInfo["Info"]    = ErrorInfo
		return ( RetInfo )
	}
	else
	{
        var Result = GetInfoByTagFromXml( ReturnXML, "Result" )
        RetInfo["Success"       ] = ( Result == "Success" ) ? true : false
        RetInfo["Info"          ] = ""
		return ( RetInfo )
	}
}

function  CheckUserHostSerialNumber( SerialNumber )
{
	DisplayMessage("" + PromptArray["drvimp.js_10713_1"] + "" + SerialNumber )
    var RetInfo = CheckUserHostSerialNumberMethod( SerialNumber , g_UserID )
    
    
    if ( RetInfo["Success"] == true )
    {
        g_UserHostSerialNumber = SerialNumber
        
        SetCookie( "UserHostSerialNumber" , SerialNumber )
        
    	
        
        
    }
    
    
    
    else
    {
        Title.innerHTML = "<center><br><br>" + RetInfo["Info"] + "</center>"
    }
    
    EnumDeviceAfter()
}
function CheckUserHostSerialNumberMethod( SerialNumber , UserID )
{
    var RetInfo = new Array()
    var SoapApplyURL = ServerName.value + SoapAspURL.value		

	var SoapRequestXML = ""
	SoapRequestXML += '<?xml version="1.0" standalone="no"?>\n'
	SoapRequestXML += '<SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http:\/\/schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http:\/\/schemas.xmlsoap.org/soap/envelope/">\n'
	SoapRequestXML += "   <SOAP-ENV:Header xmlns:wsu =\"http:\/\/schemas.xmlsoap.org/ws/2002/07/utility\" "
	SoapRequestXML += "                    xmlns:wsse=\"http:\/\/schemas.xmlsoap.org/ws/2002/07/secext\" >\n"
    SoapRequestXML += GetClientInfo()
	SoapRequestXML += "   </SOAP-ENV:Header>\n"
	SoapRequestXML += "   <SOAP-ENV:Body>\n"
	SoapRequestXML += "     <n:CheckUserHostSerialNumber xmlns:n=\"http:\/\/e-drivers.cn/soap/\">\n"
    SoapRequestXML += "         <UserID>"           + UserID                        + "</UserID>\n"
    SoapRequestXML += "         <SerialNumber>"     + XmlEncoding( SerialNumber )   + "</SerialNumber>\n"
    SoapRequestXML += "     </n:CheckUserHostSerialNumber>\n"
	SoapRequestXML += "   </SOAP-ENV:Body>\n"
	SoapRequestXML += "</SOAP-ENV:Envelope>"

	
    
    var ReturnXML = MyXMLHttpRequest( SoapApplyURL , SoapRequestXML )

	if (ReturnXML == null || ReturnXML == "")
	{
        DisplayMessage( "" + PromptArray["drvimp.js_10763_1"] + "," + PromptArray["drvimp.js_10763_2"] + ":\n" + SoapRequestXML )
        RetInfo["Success"] = false
        RetInfo["Info"]    = "" + PromptArray["drvimp.js_10765_1"] + ""
		return ( RetInfo )
	}

	var ErrorInfo = GetInfoByTagFromXml( ReturnXML, SOAP_RET_ERROR_STRING_TAG )
	if (ErrorInfo != null) 
	{
        RetInfo["Success"] = false
        RetInfo["Info"]    = ErrorInfo
		return ( RetInfo )
	}
	else
	{
        var Result = GetInfoByTagFromXml( ReturnXML, "Result" )
        RetInfo["Success"       ] = ( Result == "Success" ) ? true : false
        RetInfo["Info"          ] = ""
		return ( RetInfo )
	}
}

function ListOtherDriverForImport()
{
	
    

    
    
	
	
	
	
	
	
	
	
	
    
    
    
	
    
    
    
	
    
    
    
    
    
    
    var MatchingDriverType = ""
    var StringArray = new Array()
    var stock1       = new Array()
    var stock2       = new Array()
    var ListCurDeviceFlag
    var strTmp       = ""

    
    
    
    
    
    
    
    
    
    
    

	
    
    
    
	{
		var stock = new Array()

		oRow  = document.createElement("TR");
		oCell = document.createElement("TD");
		oCell.colSpan= g_maxcols
        
		
        
        
        
        
		
        oCell.innerHTML = "<span id=ListOtherTag></span>"
        
		oRow.appendChild(oCell);
		g_oTBody0.appendChild(oRow);

        
        var ListCurDeviceFlag  = true
        var HashValueExistFlag = false
        var hKey               = 0

        for (var i=0; i<g_MatchingDeviceInfo["Rows"]; i++)
		{
            
            ListCurDeviceFlag = false

            oCell = document.createElement("TD");
            oCell.align="right"
            
            if ( !g_MatchingDeviceInfo[ i + ",ListedFlag" ] )
            {
                
                
                
                if ( g_MatchingDeviceInfo[ i + ",MatchDeviceClass"] )
                {
                    ListCurDeviceFlag = true
                    StringArray = g_MatchingDeviceInfo[ i + ",MatchDeviceClass"].split( "," )

                    
                    HashValueExistFlag = false
                    
                    if ( g_MatchingDeviceInfo[i+",DriverHash"] )
                    {
                        hKey = DrvCert.RegOpenKey( 2 , "SOFTWARE\\Walker\\MyDrivers")
                        if (hKey)
                        {
                            HashValueExistFlag = DrvCert.RegQueryValue( hKey , g_MatchingDeviceInfo[i+",DriverHash"] )
                            DrvCert.RegCloseKey( hKey )
                            hKey = null
                        }    
                    }
                    
                    ListCurDeviceFlag = ( HashValueExistFlag ) ? false : true
                    

                    if ( StringArray[0] == "System" )
                    {
                        TranslateDeviceInfoToArray( stock2 , g_NormalSystemDeviceInfoArray , StringArray[1] , StringArray[1] );
                        
                        PushCurDeviceInfo( g_NormalSystemDeviceInfoArray , StringArray[1] , g_DeviceForOtherListArray )
                    }
                    if ( StringArray[0] == "User" )
                    {
                        TranslateDeviceInfoToArray( stock2 , g_UserDrvDeviceInfoArray , StringArray[1] , StringArray[1] );
                        
                        PushCurDeviceInfo( g_UserDrvDeviceInfoArray , StringArray[1] , g_DeviceForOtherListArray )
                    }
                    if ( StringArray[0] == "Error" )
                    {
                        TranslateDeviceInfoToArray( stock2 , g_DevErrDeviceInfoArray , StringArray[1] , StringArray[1] );
                        
                        PushCurDeviceInfo( g_DevErrDeviceInfoArray , StringArray[1] , g_DeviceForOtherListArray )
                    }
                    
                    if ( StringArray[0] == "Other" )
                    {
                        
                        
                        ListCurDeviceFlag = false
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        if (  !HashValueExistFlag )
                        {
                            
                            ListCurDeviceFlag = true
                            
                            stock2[0] = 0   
                            
                            
                            stock2[1] = 0   
                            
                            stock2[2] = 0   
                            stock2[3] = ""  
                            stock2[4] = ""  
                            stock2[5] = ""  
                            
                            
                            
                            
                            strTmp = g_NoMatchDeviceDriverInfoArray[ StringArray[1] + ",DriverDesc" ].replace( /\<table\>\<tr\>  \<td\>\<b\>Device\<\/b\>\<\/td\><td>/gi , "" )
                            strTmp = strTmp.substring( 0 , strTmp.indexOf("\<\/td\>") )
                            
                            
                            
                            stock2[6] =   ( g_MatchingDeviceInfo[ i + ",DriverVer"] != "null" ) 
                                         ? strTmp + " - " + g_MatchingDeviceInfo[ i + ",DriverVer"]
                                         : strTmp
                            
                            stock2[7] = ""          
                            stock2[8] = ""          
                            stock2[9] = ""          
                            stock2[10] = ""         
                            stock2[11] = g_MatchingDeviceInfo[ i + ",DriverDate"]         
                            stock2[12] = ""         
                            stock2[13] = g_MatchingDeviceInfo[ i + ",DriverMfg"]         
                            stock2[14] = ""         
                            
                            
                            
                            stock2["CanUpdate"] = true
                            
                            
                            stock2["21"]        = ( g_MatchingDeviceInfo[ i + ",ForceInstall" ] ) ? true : false

                            stock2["NewDriverID"] = g_MatchingDeviceInfo[ i + ",DriverID"]
                            stock2["DriverID"   ] = g_MatchingDeviceInfo[ i + ",DriverID"]
                            
                            stock2["NewUserID"] = g_MatchingDeviceInfo[ i + ",UserID"]
                            stock2["UserID"   ] = g_MatchingDeviceInfo[ i + ",UserID"]

                            
                            
                            g_DeviceForOtherListArray[ g_DeviceForOtherListArray["Rows"] + ",0"  ] = stock2[0]
                            g_DeviceForOtherListArray[ g_DeviceForOtherListArray["Rows"] + ",1"  ] = stock2[1];
                            g_DeviceForOtherListArray[ g_DeviceForOtherListArray["Rows"] + ",2"  ] = stock2[2];
                            g_DeviceForOtherListArray[ g_DeviceForOtherListArray["Rows"] + ",3"  ] = stock2[3];
                            g_DeviceForOtherListArray[ g_DeviceForOtherListArray["Rows"] + ",4"  ] = stock2[4];
                            g_DeviceForOtherListArray[ g_DeviceForOtherListArray["Rows"] + ",5"  ] = stock2[5];
                            g_DeviceForOtherListArray[ g_DeviceForOtherListArray["Rows"] + ",6"  ] = stock2[6];
                            g_DeviceForOtherListArray[ g_DeviceForOtherListArray["Rows"] + ",7"  ] = stock2[7];
                            g_DeviceForOtherListArray[ g_DeviceForOtherListArray["Rows"] + ",8"  ] = stock2[8];
                            g_DeviceForOtherListArray[ g_DeviceForOtherListArray["Rows"] + ",9"  ] = stock2[9];
                            g_DeviceForOtherListArray[ g_DeviceForOtherListArray["Rows"] + ",10" ] = stock2[10];
                            g_DeviceForOtherListArray[ g_DeviceForOtherListArray["Rows"] + ",11" ] = stock2[11];
                            g_DeviceForOtherListArray[ g_DeviceForOtherListArray["Rows"] + ",12" ] = stock2[12];
                            g_DeviceForOtherListArray[ g_DeviceForOtherListArray["Rows"] + ",13" ] = stock2[13];
                            g_DeviceForOtherListArray[ g_DeviceForOtherListArray["Rows"] + ",14" ] = stock2[14];
                            if ( stock2["CanUpdate"] )
                                g_DeviceForOtherListArray[ g_DeviceForOtherListArray["Rows"] + ",CanUpdate" ] = stock2["CanUpdate"]    
                            if ( stock2["21"] )
                                g_DeviceForOtherListArray[ g_DeviceForOtherListArray["Rows"] + ",21" ] = stock2["21"]
                            if ( stock2["NewDriverID"] )
                                g_DeviceForOtherListArray[ g_DeviceForOtherListArray["Rows"] + ",NewDriverID" ] = stock2["NewDriverID"]
                            if ( stock2["DriverID"] )
                                g_DeviceForOtherListArray[ g_DeviceForOtherListArray["Rows"] + ",DriverID" ] = stock2["DriverID"]
                            
                            if ( stock2["NewUserID"] )
                                g_DeviceForOtherListArray[ g_DeviceForOtherListArray["Rows"] + ",NewUserID" ] = stock2["NewUserID"]
                            if ( stock2["UserID"] )
                                g_DeviceForOtherListArray[ g_DeviceForOtherListArray["Rows"] + ",UserID" ] = stock2["UserID"]
                            
                            if ( g_MatchingDeviceInfo[ i + ",DriverHash"] )
                                g_DeviceForOtherListArray[ g_DeviceForOtherListArray["Rows"] + ",DriverHash" ] = g_MatchingDeviceInfo[ i + ",DriverHash"]

                            
                            if ( g_MatchingDeviceInfo[ i + ",ForceInstall"] )
                                g_DeviceForOtherListArray[ g_DeviceForOtherListArray["Rows"] + ",ForceInstall" ] = g_MatchingDeviceInfo[ i + ",ForceInstall"]
                            if ( g_MatchingDeviceInfo[ i + ",DispatchLogic"] )
                                g_DeviceForOtherListArray[ g_DeviceForOtherListArray["Rows"] + ",DispatchLogic" ] = g_MatchingDeviceInfo[ i + ",DispatchLogic"]
                            if ( g_MatchingDeviceInfo[ i + ",DriverSize"] )
                                g_DeviceForOtherListArray[ g_DeviceForOtherListArray["Rows"] + ",DriverSize" ] = g_MatchingDeviceInfo[ i + ",DriverSize"]
                            if ( g_MatchingDeviceInfo[ i + ",OldDrvID"] )
                                g_DeviceForOtherListArray[ g_DeviceForOtherListArray["Rows"] + ",OldDrvID" ] = g_MatchingDeviceInfo[ i + ",OldDrvID"]
                            
                            if ( g_MatchingDeviceInfo[ i + ",DriverVer"] )
                                g_DeviceForOtherListArray[ g_DeviceForOtherListArray["Rows"] + ",DriverVer" ] = g_MatchingDeviceInfo[ i + ",DriverVer"]
                            

                            g_DeviceForOtherListArray["Rows"] ++

                            
                            stock2[2] = "<img border='0' src='img/unknown.gif'"
                                + " alt='" + PromptArray["drvimp.js_11038_1"] + "' " 
                                + " width='16' height='16' "
                                + " id='img" + g_MatchingDeviceInfo[ i + ",MatchDeviceClass"] + "'" 
                                + " onMouseMove='this.style.cursor=\"help\"' "
                                + " onMoveOut=DeviceMouseMoveOutEvent('" + g_MatchingDeviceInfo[ i + ",MatchDeviceClass"] + "')" 
                                + " >" 
                        }
                        
                        
                        
                        
                        
                        

                    }
                    
                    
                    

                    
                    
                    
                    else
                    {
                    }

                    
                    
                    oCell.innerHTML =   ( stock2["21"] )
                                      ? '<INPUT TYPE="checkbox" checked onclick="g_DeviceForOtherListArray[' + ( g_DeviceForOtherListArray["Rows"]-1 ) + '+ \',21\']=this.checked">'
                                      : '<INPUT TYPE="checkbox"         onclick="g_DeviceForOtherListArray[' + ( g_DeviceForOtherListArray["Rows"]-1 ) + '+ \',21\']=this.checked">'
                    
                    
                    
                    if ( ListCurDeviceFlag )
                    {
                        
                        
                        ListCurDeviceFlag = ( stock2["21"] ) ? true : false;
                    }
                }
                
                
                
                
                
                
                
                
                
                else
                {
                    ListCurDeviceFlag = true
                    StringArray = g_MatchingDeviceInfo[ i + ",MatchDeviceClass"].split( "," )
                    
                    
                    var strTmp = g_NoMatchDeviceDriverInfoArray[ StringArray[1] + ",DriverDesc" ].replace( /\<table\>\<tr\>  \<td\>\<b\>Device\<\/b\>\<\/td\><td>/gi , "" )
                    strTmp = strTmp.substring( 0 , strTmp.indexOf("\<\/td\>") )
                    stock2[6] = strTmp

                    
                    
                    
                    
                    
                    
                    
                    g_DeviceForOtherListArray[ g_DeviceForOtherListArray["Rows"] + ",CanUpdate"]  = true
                    
                    g_DeviceForOtherListArray[ g_DeviceForOtherListArray["Rows"] + ",21"]         = false
                    oCell.innerHTML = '<INPUT TYPE="checkbox" onclick="g_DeviceForOtherListArray[' + g_DeviceForOtherListArray["Rows"] + '+ \',21\']=this.checked">'
                    
                    PushCurDeviceInfo( g_MatchingDeviceInfo , i , g_DeviceForOtherListArray )
                }
            }
            
            else
            {
            }


            if ( ListCurDeviceFlag )
            {
                
                g_OtherDriverListNumber ++

                oRow = document.createElement("TR");
                g_oTBody0.appendChild(oRow);
                oRow.appendChild(oCell)

                oCell = document.createElement("TD");
                oCell.align="right"
                
                
                
                oCell.innerHTML = "<img src='img/what.gif' " 
                                + "onclick='DispMessageInfo( g_MatchingDeviceInfo[\"" + i + ",DriverDesc\"] )' " 
                                + "onMouseMove='this.style.cursor=\"help\"' width='16' height='16' "
                                + "alt='" + PromptArray["drvimp.js_11136_1"] + "'>"
                
                

                oRow.appendChild(oCell)
                

                var hostname        = ServerName.value + SoapAspURL.value
                
                
                
                var DownloadURL = hostname + "?mode=downloaddrv&driverid=" + g_MatchingDeviceInfo[ i + ",DriverID" ]
                var DeviceDescHtml  = "<a href='?' onclick='DownloadDriverByUserClick( \"" + DownloadURL + "\" );return false'>" + stock[6] + "</a>"
                

                

                for (j=g_mincols; j<g_maxcols; j++)
                {
                    oCell = document.createElement("TD");
                    
                    (j==2)	? oCell.innerHTML = stock2[7]
                            : (j==6) ? oCell.innerHTML = stock2[2]
                                    
                                    
                                    : (j==7) ? oCell.innerHTML = DeviceDescHtml
                                              : oCell.innerHTML = stock2[j];
                    
                    oCell.vAlign	="top"; 
                    (j==7) ? oCell.align = "left": oCell.align = "center";
                    oRow.appendChild(oCell);
                }
            }
		}
    }
    
    
    
    if ( g_OtherDriverListNumber )
    {
        
        
        ListOtherTag.innerHTML = "<br><center>" + PromptArray["drvimp.js_11178_1"] + "</center><br>"
    }
    
    else
    {
        
        
        
        
        ListUpdateImportResultTag.innerHTML += "<li>" + PromptArray["drvimp.js_11187_1"] + ""
    }
}

function OtherDriverImportFromServer()
{
    
    
	
	
	
	
	
	
	
	
	
	
	
	
	
	
    
    
    
    
    
    
    

    
	
	
	
	
	
	
	
	
	
	
	
    
    
    
    
    var DeviceInfo	= new Array;
    var OtherDriverNeedImpNumber = 0 
    var StringArray = new Array

    
    
    if ( g_DeviceForOtherListArray["Rows"] )
	{

        Title.innerHTML = '<center>' + PromptArray["drvimp.js_11242_1"] + '...</center>'
                        + '<br>'
                        + '<table align=center id=PercentTbl width=400 bgColor=black border=0 cellSpacing=0 cellPadding=0 >'
                        + '<tr><td>'
                        + '  <IMG id="PercentImg" SRC="img/img.gif" WIDTH="0" HEIGHT="16" BORDER=0>'
                        + '</td></tr></table>'
                        + '<div id=PercentString>&nbsp;</div>'
                        + '<table align=center id=PercentSubTbl width=400 bgColor=black border=0 cellSpacing=0 cellPadding=0 >'
                        + '<tr><td>'
                        + '  <IMG id="PercentSubImg" SRC="img/img.gif" WIDTH="0" HEIGHT="16" BORDER=0>'
                        + '</td></tr></table>'
                        + '<div id=PercentSubString>&nbsp;</div>'
        DrvCert.UIRefresh()

        
        
        
        
        
        
        
        
        
        
        
        
        
        for (var i=0; i<g_DeviceForOtherListArray["Rows"] ; i++)
        {
            
            
            
            {
                
                if ( g_DeviceForOtherListArray[i+",21"] )
                {
                    g_OtherDriverNeedImpNumber ++
                }
            }
        }

        
        
        
        for (var i=0; i<g_DeviceForOtherListArray["Rows"]; i++)
        {
            
            
            
            
                
                
                
                if ( g_DeviceForOtherListArray[i+",21"] )
                {
                    
                    var FinishedValue = (g_ImportedOtherDriverRows+1)/g_OtherDriverNeedImpNumber
                    FinishedValue = ( FinishedValue > 1 ) ? 1 : FinishedValue
                    PercentImg.width=PercentTbl.width*FinishedValue
                    PercentString.innerHTML = '<center>' + Math.floor(FinishedValue*100) + '%</center>'

                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    ReadArrayToDeviceInfo( DeviceInfo , g_DeviceForOtherListArray , i );

                    
                    
                    
                    
                    
                    
                    SaveDeviceInfoToArray( DeviceInfo , g_ImportedOtherDriverDeviceArray , g_ImportedOtherDriverRows )

                    RunDriverExportToServerOpenProcess( DeviceInfo );	
                    
                    DisplayMessage("" + PromptArray["drvimp.js_11333_1"] + "[" + DeviceInfo[6] + "]" + PromptArray["drvimp.js_11333_2"] + "...");
                    
                    
                    
                    
                    var ImportResult = ImportDriverToGivenDeviceFromServer( g_DeviceForOtherListArray[ i + ",UserID"     ] , 
                                                                            g_DeviceForOtherListArray[ i + ",DriverID"   ] ,
                                                                            DeviceInfo )
                    

                    
                    
                    
                    
                    
                    
                    
                    
                    ReadArrayToDeviceInfo( DeviceInfo , g_DeviceForOtherListArray , i );


                    if ( ImportResult["Success"] )
                    {

                        var FinishedPercent = 100
                        PercentSubImg.width=PercentSubTbl.width*FinishedPercent/100
                        PercentSubString.innerHTML='<center>' + FinishedPercent + '%</center>'
                        ProcessingInfo.innerHTML = '' + PromptArray["drvimp.js_11360_1"] + ''
                        DrvCert.UIRefresh()

                        DisplayMessage( "" + PromptArray["drvimp.js_11363_1"] + "[" + DeviceInfo[6] + "]" + PromptArray["drvimp.js_11363_2"] + "" )
                        g_ImportedOtherDriverDeviceArray[ g_ImportedOtherDriverRows + ",22"] = true
                        
                        g_ImportedOtherDriverDeviceArray[ g_ImportedOtherDriverRows + ",23"] = ImportResult["Info"] + ";"
                        
                        g_ImportedOtherDriverDeviceArray[ g_ImportedOtherDriverRows + ",NewDriverID"] = g_DeviceForOtherListArray[ i + ",DriverID"   ]
                        g_ImportedSuccessDeviceRows ++
                    }
                    else
                    {
                        var FinishedPercent = 100
                        PercentSubImg.width=PercentSubTbl.width*FinishedPercent/100
                        PercentSubString.innerHTML='<center>' + FinishedPercent + '%</center>'
                        ProcessingInfo.innerHTML = '' + PromptArray["drvimp.js_11376_1"] + ''
                        DrvCert.UIRefresh()

                        DisplayMessage( "" + PromptArray["drvimp.js_11379_1"] + "[" + DeviceInfo[6] + "]" + PromptArray["drvimp.js_11379_2"] + "(" + PromptArray["drvimp.js_11379_3"] + ":" + ImportResult["Info"] + ")" )
                        
                        g_ImportedOtherDriverDeviceArray[ g_ImportedOtherDriverRows + ",22"] = false
                        
                        g_ImportedOtherDriverDeviceArray[ g_ImportedOtherDriverRows + ",23"] = "" + PromptArray["drvimp.js_11383_1"] + ":" + ImportResult["Info"] + ";"
                        
                        g_ImportedOtherDriverDeviceArray[ g_ImportedOtherDriverRows + ",NewDriverID"] = g_DeviceForOtherListArray[ i + ",DriverID"   ]
                    }
                    g_ImportedOtherDriverRows ++
                    
                    g_ImportedOtherDriverDeviceArray["Rows"] = g_ImportedOtherDriverRows
                }
                
                else
                {
                    
                    SaveDeviceInfoToArray( DeviceInfo , g_NoImportOtherDriverDeviceArray , g_NoImportOtherDriverDeviceRows )
                    g_NoImportOtherDriverDeviceRows ++
                    
                    g_NoImportOtherDriverDeviceArray["Rows"] = g_NoImportOtherDriverDeviceRows
                }
                
                RunDriverExportToServerCloseProcess( DeviceInfo )
            
            
        }
    }
    return true
}

function ListOtherDriverImportedResult()
{
    
    
    
    
    
    

    
    var stock = new Array()

    if ( g_OtherDriverListNumber )
	{
        
        
        
        
        
        
		
        
        
        
        
        
        
        
        
        
        var DevNeedRebootFlag   = false
        
        var DevNoNeedRebootFlag = true  

        
        
        
        if ( DevNoNeedRebootFlag )
        {
        

            
            var SuccessFlag = false
            var FalseFlag   = false
            for (var i=0; i<g_ImportedOtherDriverRows ; i++)
            {
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                if ( g_ImportedOtherDriverDeviceArray[ i + ",22"] == true )
                    SuccessFlag = true
                if ( g_ImportedOtherDriverDeviceArray[ i + ",22"] == false )
                    FalseFlag = true
            }

            if ( SuccessFlag )
            {
                
                
                
                
                

                oRow = document.createElement("TR");
                oCell = document.createElement("TD");
                oCell.colSpan= g_maxcols+1
                oCell.align = "center"
                
                
                oCell.innerHTML = "" + PromptArray["drvimp.js_11495_1"] + "<br><br>"

                oRow.appendChild(oCell);
                g_oTBody0.appendChild(oRow);


                for (var i=0; i<g_ImportedOtherDriverRows ; i++)
                {
                    if ( g_ImportedOtherDriverDeviceArray[ i + ",22"] == true )
                    {
                        ReadArrayToDeviceInfo(stock , g_ImportedOtherDriverDeviceArray , i)

                        
                        
                        
                        
                        
                        
                        
                        
                        {
                            var oRow,oCell;
                            oRow = document.createElement("TR");
                            g_oTBody0.appendChild(oRow);

                            
                            
                            TranslateDeviceInfoToArray( stock , g_ImportedOtherDriverDeviceArray , i ,i );

                            
                            
                            
                            
                            
                            
                            
                                var ImpDrvHtml = ""
                            
                            
                            
                            
                            
                            
                            for (j=0; j<g_maxcols; j++)
                            {

                                oCell = document.createElement("TD");
                                
                                (j==0)? oCell.innerHTML =""
                                   :(j==1)? oCell.innerHTML = ImpDrvHtml
                                        :(j==2)	? oCell.innerHTML = stock[7]
                                            : (j==6) ? oCell.innerHTML = stock[2]
                                                 : (j==7) ? oCell.innerHTML = stock[6]
                                                          : oCell.innerHTML = stock[j];
                                
                                oCell.vAlign	="top"; 
                                if (j==7)
                                {
                                    oCell.align = "left";
                                }
                                else
                                {
                                    oCell.align = "center";
                                }
                                oRow.appendChild(oCell);
                            }
                        }
                    }
                }
            }

            if ( FalseFlag )
            {
                
                
                
                
                

                oRow = document.createElement("TR");
                oCell = document.createElement("TD");
                oCell.colSpan= g_maxcols+1
                oCell.align = "center"
                
                
                oCell.innerHTML = "<br>" + PromptArray["drvimp.js_11580_1"] + "<br><br>"

                oRow.appendChild(oCell);
                g_oTBody0.appendChild(oRow);


                for (var i=0; i<g_ImportedOtherDriverRows ; i++)
                {
                    if ( g_ImportedOtherDriverDeviceArray[ i + ",22"] == false )
                    {
                        ReadArrayToDeviceInfo(stock , g_ImportedOtherDriverDeviceArray , i)

                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        {
                            var oRow,oCell;
                            oRow = document.createElement("TR");
                            g_oTBody0.appendChild(oRow);

                            
                            
                            TranslateDeviceInfoToArray( stock , g_ImportedOtherDriverDeviceArray , i ,i );

                            
                            
                            
                            
                            
                            
                            
                            
                            
                            
                            
                            
                                var ImpDrvHtml = ""
                            
                            
                            
                            
                            
                            
                            
                            
                            
                            if ( g_ImportedOtherDriverDeviceArray[i+",22"] && !g_ImportedOtherDriverDeviceArray[i+",5"] ) 
                            {
                                
                                
                                stock[6] += "<span style='color: green;font-style: normal;font-family: " + PromptArray["drvimp.js_11637_1"] + ";' VALIGN='top'>"
                                          + "(" + PromptArray["drvimp.js_11638_1"] + "," + PromptArray["drvimp.js_11638_2"] + "," + PromptArray["drvimp.js_11638_3"] + ")"
                                          + "</span>"
                            }
                            else if ( !g_ImportedOtherDriverDeviceArray[i+",22"] )
                            {
                                
                                stock[6] += "<span style='color: green;font-style: normal;font-family: " + PromptArray["drvimp.js_11644_1"] + ";' VALIGN='top'>"
                                         
                                         
                                         + "(" + g_ImportedOtherDriverDeviceArray[i+",23"] + ")"
                                         
                                         +  "</span>"
                            }
                            for (j=0; j<g_maxcols; j++)
                            {

                                oCell = document.createElement("TD");
                                
                                (j==0)? oCell.innerHTML =""
                                   :(j==1)? oCell.innerHTML = ImpDrvHtml
                                        :(j==2)	? oCell.innerHTML = stock[7]
                                            : (j==6) ? oCell.innerHTML = stock[2]
                                                 : (j==7) ? oCell.innerHTML = stock[6]
                                                          : oCell.innerHTML = stock[j];
                                
                                oCell.vAlign	="top"; 
                                if (j==7)
                                {
                                    oCell.align = "left";
                                }
                                else
                                {
                                    oCell.align = "center";
                                }
                                oRow.appendChild(oCell);
                            }
                        }
                    }
                }
            }
        }

        if ( DevNeedRebootFlag )
        {
            oRow = document.createElement("TR");
            oCell = document.createElement("TD");
            oCell.colSpan= g_maxcols+1
            oCell.align = "center"
            oCell.innerHTML = "<br>" + PromptArray["drvimp.js_11686_1"] + "<br><br>"

            oRow.appendChild(oCell);
            g_oTBody0.appendChild(oRow);


            for (var i=0; i<g_ImportedOtherDriverRows ; i++)
            {
                ReadArrayToDeviceInfo(stock , g_ImportedOtherDriverDeviceArray , i)

                
                
                
                
                
                
                {
                    var oRow,oCell;
                    oRow = document.createElement("TR");
                    g_oTBody0.appendChild(oRow);

                    
                    
                    TranslateDeviceInfoToArray( stock , g_ImportedOtherDriverDeviceArray , i ,i );

                    if (!stock[6] || stock[1]==0 ||  !stock[4] )
                    {
                        stock[0] = stock[1] = stock[2] = stock[3] = stock[4] = stock[5] = stock[6] = stock[7] = "";
                    }
                    
                    
                        var ImpDrvHtml = ""
                    
                    
                    
                    
                    
                    
                    for (j=0; j<g_maxcols; j++)
                    {

                        oCell = document.createElement("TD");
                        
                        (j==0)? oCell.innerHTML =""
                           :(j==1)? oCell.innerHTML = ImpDrvHtml
                                :(j==2)	? oCell.innerHTML = stock[7]
                                    : (j==6) ? oCell.innerHTML = stock[2]
                                         : (j==7) ? oCell.innerHTML = stock[6]
                                                  : oCell.innerHTML = stock[j];
                        
                        oCell.vAlign	="top"; 
                        if (j==7)
                        {
                            oCell.align = "left";
                        }
                        else
                        {
                            oCell.align = "center";
                        }
                        oRow.appendChild(oCell);
                    }
                }
            }
        }
	}

    
    
    
    
    
    
	
	
	
	
	
    
	
	
    
	
    
    
	
	
	
	
	
    
    
	
	
	
    
	
	
	
	
    
    
	
	
	
    
	
	
	
	
    
    
	
	
    
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
}


function GetLogConfigInfoFromServer( Loader , UserID )
{
    var RetInfo = new Array()
    var SoapApplyURL = ServerName.value + SoapAspURL.value		

	var SoapRequestXML = ""
	SoapRequestXML += '<?xml version="1.0" standalone="no"?>\n'
	SoapRequestXML += '<SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http:\/\/schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http:\/\/schemas.xmlsoap.org/soap/envelope/">\n'
	SoapRequestXML += "   <SOAP-ENV:Header xmlns:wsu =\"http:\/\/schemas.xmlsoap.org/ws/2002/07/utility\" "
	SoapRequestXML += "                    xmlns:wsse=\"http:\/\/schemas.xmlsoap.org/ws/2002/07/secext\" >\n"
    SoapRequestXML += GetClientInfo()
	SoapRequestXML += "   </SOAP-ENV:Header>\n"
	SoapRequestXML += "   <SOAP-ENV:Body>\n"
	SoapRequestXML += "     <n:GetLoaderLogConfigInfo xmlns:n=\"http:\/\/e-drivers.cn/soap/\">\n"
    SoapRequestXML += "         <UserID>"     + UserID                  + "</UserID>\n"
    SoapRequestXML += "         <Loader>"     + XmlEncoding( Loader )   + "</Loader>\n"
    SoapRequestXML += "     </n:GetLoaderLogConfigInfo>\n"
	SoapRequestXML += "   </SOAP-ENV:Body>\n"
	SoapRequestXML += "</SOAP-ENV:Envelope>"
	
    
    var ReturnXML = MyXMLHttpRequest( SoapApplyURL , SoapRequestXML )
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    

	if (ReturnXML == null || ReturnXML == "")
	{
        DisplayMessage( "" + PromptArray["drvimp.js_11872_1"] + "," + PromptArray["drvimp.js_11872_2"] + ":\n" + SoapRequestXML )
        RetInfo["Success"] = false
        RetInfo["Info"]    = "" + PromptArray["drvimp.js_11874_1"] + ""
		return ( RetInfo )
	}

	var ErrorInfo = GetInfoByTagFromXml( ReturnXML, SOAP_RET_ERROR_STRING_TAG )
	if (ErrorInfo != null) 
	{
        RetInfo["Success"] = false
        RetInfo["Info"]    = ErrorInfo
	}
	else
	{
        var Result = GetInfoByTagFromXml( ReturnXML, "Result" )
        RetInfo["Success"       ] = ( Result == "Success" ) ? true : false
        RetInfo["Info"          ] = ""
        RetInfo["Rows"          ] = GetInfoByTagFromXml( ReturnXML, "Rows" )
		if ( RetInfo["Rows"] )
		{
			var xmlDoc = new ActiveXObject("Microsoft.XMLDOM")
			xmlDoc.async = false
			xmlDoc.loadXML( ReturnXML )
			var objRowDataNode = xmlDoc.selectSingleNode("\/\/Items")
			if ( objRowDataNode )
			{
				var oNodeList ;
		
				var oNodeList = objRowDataNode.childNodes;
				for (var i=0;i<oNodeList.length ; i++)
				{
					RetInfo[ i + ",LogItemName"     ] = XmlDencoding( GetXmlSingleNodeText( oNodeList(i).xml , "LogItemName" ) )
					RetInfo[ i + ",LogValidFlag"    ] = XmlDencoding( GetXmlSingleNodeText( oNodeList(i).xml , "LogValidFlag" ) )
                    
                    
                    
                    RetInfo[ RetInfo[ i + ",LogItemName" ] ] = RetInfo[ i + ",LogValidFlag"    ]
					RetInfo[ i + ",LogItemDesc"     ] = XmlDencoding( GetXmlSingleNodeText( oNodeList(i).xml , "LogItemDesc" ) )
				}
			}

            xmlDoc = null
		}
        
        RetInfo["RetUrlRows"          ] = GetInfoByTagFromXml( ReturnXML, "RetUrlRows" )
		if ( RetInfo["RetUrlRows"] )
		{
			var xmlDoc = new ActiveXObject("Microsoft.XMLDOM")
			xmlDoc.async = false
			xmlDoc.loadXML( ReturnXML )
			var objRowDataNode = xmlDoc.selectSingleNode("\/\/RetUrlItems")
			if ( objRowDataNode )
			{
				var oNodeList ;
		
				oNodeList = objRowDataNode.childNodes;
				for (var i=0;i<oNodeList.length ; i++)
				{
					RetInfo[ i + ",RetUrlItemName"      ] = XmlDencoding( GetXmlSingleNodeText( oNodeList(i).xml , "RetUrlItemName" ) )
					RetInfo[ i + ",RetUrlItemCaller"    ] = XmlDencoding( GetXmlSingleNodeText( oNodeList(i).xml , "RetUrlItemCaller" ) )
                    RetInfo[ i + ",RetUrlSetting"       ] = XmlDencoding( GetXmlSingleNodeText( oNodeList(i).xml , "RetUrlSetting" ) )
                    
                    
                    
                    RetInfo[ "RetUrl" + RetInfo[ i + ",RetUrlItemName"      ] ] = i
                    
					RetInfo[ i + ",RetUrlDesc"          ] = XmlDencoding( GetXmlSingleNodeText( oNodeList(i).xml , "RetUrlDesc" ) )
				}
			}

            xmlDoc = null
		}
	}
return ( RetInfo )
}



function SubmitUserDeviceOSBrowseInfoLog( UserID , CaseID , DeviceInfo , DeviceRows , OSInfoXml , BrowseInfo )
{

	var SoapApplyURL = ServerName.value + SoapAspURL.value		
    
    
    var DeviceListInfo		= GetAllDeviceInfoToXml()

	var SoapRequestXML = ""
    
	
    SoapRequestXML += '<?xml version="1.0" standalone="no"?>\n'
    
	SoapRequestXML += '<SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http:\/\/schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http:\/\/schemas.xmlsoap.org/soap/envelope/">\n'
	SoapRequestXML += "   <SOAP-ENV:Header xmlns:wsu =\"http:\/\/schemas.xmlsoap.org/ws/2002/07/utility\" "
	SoapRequestXML += "                    xmlns:wsse=\"http:\/\/schemas.xmlsoap.org/ws/2002/07/secext\" >\n"
    SoapRequestXML += GetClientInfo()
	SoapRequestXML += "   </SOAP-ENV:Header>\n"
	SoapRequestXML += "   <SOAP-ENV:Body>\n"
	SoapRequestXML += "     <n:SubmitUserDeviceOSBrowseInfoLog xmlns:n=\"http:\/\/e-drivers.cn/soap/\">\n"
    SoapRequestXML += "     <UserID>"       + UserID + "</UserID>\n"
    SoapRequestXML += "     <CaseID>"       + CaseID + "</CaseID>\n"
    
    SoapRequestXML += "     <CaseStepStatus>" + USER_DEVICE_OS_BROWSE_LOG_NAME + "</CaseStepStatus>\n"
    
    SoapRequestXML += DeviceListInfo        + "\n"
    SoapRequestXML += OSInfoXml             + "\n"
    SoapRequestXML += "     <BrowseInfo>"   + XmlEncoding( BrowseInfo ) + "</BrowseInfo>\n"
	SoapRequestXML += "     </n:SubmitUserDeviceOSBrowseInfoLog>\n"
	SoapRequestXML += "   </SOAP-ENV:Body>\n"
	SoapRequestXML += "</SOAP-ENV:Envelope>"


    var RetInfo = new Array()
    var ErrorInfo = ""

    
    DisplayMessage( "" + PromptArray["drvimp.js_11987_1"] + "..." )
    
	
    var ReturnXML = MyXMLHttpRequest( SoapApplyURL , SoapRequestXML )
    

	
    
    if ( !ReturnXML )
	{
        {
            ErrorInfo = "" + PromptArray["drvimp.js_11998_1"] + "" + ServerName.value + "" + PromptArray["drvimp.js_11998_2"] + ""
            DisplayMessage( "" + PromptArray["drvimp.js_11999_1"] + "\n" + PromptArray["drvimp.js_11999_2"] + "" + ServerName.value + "" + PromptArray["drvimp.js_11999_3"] + "," + PromptArray["drvimp.js_11999_4"] + "\n" + SoapRequestXML)
        }
        RetInfo["Success"] = false
        RetInfo["Info"]    = ErrorInfo
        RetInfo["UserID"]  = ""
		return ( RetInfo )
	}

	ErrorInfo = GetInfoByTagFromXml( ReturnXML, SOAP_RET_ERROR_STRING_TAG )

	if (ErrorInfo != null) 
	{
        RetInfo["Success"] = false
        RetInfo["Info"]    = ErrorInfo
        RetInfo["UserID"]  = ""
        DisplayMessage( "" + PromptArray["drvimp.js_12014_1"] + ":\n" + ErrorInfo )
		return ( RetInfo )
	}
	else
	{
        var UserID           = GetInfoByTagFromXml( ReturnXML, "UserID" )

        RetInfo["Success"         ]  = true
        RetInfo["Info"            ]  = "" + PromptArray["drvimp.js_12022_1"] + "" 
        RetInfo["UserID"          ]  = UserID
        DisplayMessage( "" + PromptArray["drvimp.js_12024_1"] + "" )
		return ( RetInfo )
	}
}
function SubmitUserDeviceInfoLog(   UserID , 
                                    CaseID ,                                     
                                    DevErrDeviceInfoArray , DevErrDeviceInfoRows ,
                                    UserDrvDeviceInfoArray , UserDrvDeviceInfoRows  , 
                                    NormalSystemDeviceInfoArray , NormalSystemDeviceInfoRows ,
                                    LogStep )
{

	var SoapApplyURL = ServerName.value + SoapAspURL.value		

    var DeviceListXml	= "<DeviceList>\n"
    if ( DevErrDeviceInfoRows )
        DeviceListXml      += GetDeviceArrayInfoToXml( DevErrDeviceInfoArray          , DevErrDeviceInfoRows        , "Error"   )
    if ( UserDrvDeviceInfoRows )
        DeviceListXml      += GetDeviceArrayInfoToXml( UserDrvDeviceInfoArray         , UserDrvDeviceInfoRows       , "User"    )
    if ( NormalSystemDeviceInfoRows )
        DeviceListXml      += GetDeviceArrayInfoToXml( NormalSystemDeviceInfoArray    , NormalSystemDeviceInfoRows  , "System"  )
    DeviceListXml	   += "</DeviceList>\n"

	var SoapRequestXML = ""
    
	
    SoapRequestXML += '<?xml version="1.0" standalone="no"?>\n'
    
	SoapRequestXML += '<SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http:\/\/schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http:\/\/schemas.xmlsoap.org/soap/envelope/">\n'
	SoapRequestXML += "   <SOAP-ENV:Header xmlns:wsu =\"http:\/\/schemas.xmlsoap.org/ws/2002/07/utility\" "
	SoapRequestXML += "                    xmlns:wsse=\"http:\/\/schemas.xmlsoap.org/ws/2002/07/secext\" >\n"
    SoapRequestXML += GetClientInfo()
	SoapRequestXML += "   </SOAP-ENV:Header>\n"
	SoapRequestXML += "   <SOAP-ENV:Body>\n"
	SoapRequestXML += "     <n:SubmitUserDeviceInfoLog xmlns:n=\"http:\/\/e-drivers.cn/soap/\">\n"
    SoapRequestXML += "     <UserID>"       + UserID + "</UserID>\n"
    SoapRequestXML += "     <CaseID>"       + CaseID + "</CaseID>\n"
    
    SoapRequestXML += "     <CaseStepStatus>" + LogStep + "</CaseStepStatus>\n"
    
    SoapRequestXML += DeviceListXml        + "\n"
	SoapRequestXML += "     </n:SubmitUserDeviceInfoLog>\n"
	SoapRequestXML += "   </SOAP-ENV:Body>\n"
	SoapRequestXML += "</SOAP-ENV:Envelope>"


    var RetInfo = new Array()
    var ErrorInfo = ""

    
    DisplayMessage( "" + PromptArray["drvimp.js_12074_1"] + "..." )
    
	
    var ReturnXML = MyXMLHttpRequest( SoapApplyURL , SoapRequestXML )
    

	
    
    if ( !ReturnXML )
	{
        {
            ErrorInfo = "" + PromptArray["drvimp.js_12085_1"] + "" + ServerName.value + "" + PromptArray["drvimp.js_12085_2"] + ""
            DisplayMessage( "" + PromptArray["drvimp.js_12086_1"] + "\n" + PromptArray["drvimp.js_12086_2"] + "" + ServerName.value + "" + PromptArray["drvimp.js_12086_3"] + "," + PromptArray["drvimp.js_12086_4"] + "\n" + SoapRequestXML)
        }
        RetInfo["Success"] = false
        RetInfo["Info"]    = ErrorInfo
        RetInfo["UserID"]  = ""
		return ( RetInfo )
	}

	ErrorInfo = GetInfoByTagFromXml( ReturnXML, SOAP_RET_ERROR_STRING_TAG )

	if (ErrorInfo != null) 
	{
        RetInfo["Success"] = false
        RetInfo["Info"]    = ErrorInfo
        RetInfo["UserID"]  = ""
        DisplayMessage( "" + PromptArray["drvimp.js_12101_1"] + ":\n" + ErrorInfo )
		return ( RetInfo )
	}
	else
	{
        var UserID           = GetInfoByTagFromXml( ReturnXML, "UserID" )

        RetInfo["Success"         ] = true
        RetInfo["Info"            ]    = "" + PromptArray["drvimp.js_12109_1"] + "" 
        RetInfo["UserID"          ]  = UserID
        DisplayMessage( "" + PromptArray["drvimp.js_12111_1"] + "" )
		return ( RetInfo )
	}
}
function GetDeviceArrayInfoToXml( DeviceInfo , DeviceRows , DeviceType )
{

	var DeviceListInfo = DeviceInfo
	var DeviceNumber   = DeviceRows
	var DeviceName , HardwareID , CompatibleID, MatchingDeviceId
	var DriverDate , DriverVer , DriverProvider


	var Xml = ""
	var CurDeviceInfo = new Array()
	var i = 0
    var DriverType = ""
	for (i=0;i<DeviceNumber ;i++ )
	{
		ReadArrayToDeviceInfo( CurDeviceInfo , DeviceListInfo , i )

		DeviceName = CurDeviceInfo[6]
		
		
		DeviceName = DeviceName.replace(/(\&)/gi ,"&amp;");
		DeviceName = DeviceName.replace(/(\<)/gi ,"&lt;");
		DeviceName = DeviceName.replace(/(\>)/gi ,"&gt;");

		HardwareID = CurDeviceInfo[8]
		
		
		HardwareID = HardwareID.replace(/(\&)/gi ,"&amp;");
		HardwareID = HardwareID.replace(/(\<)/gi ,"&lt;");
		HardwareID = HardwareID.replace(/(\>)/gi ,"&gt;");

		CompatibleID = CurDeviceInfo[9]
		
		
		CompatibleID = CompatibleID.replace(/(\&)/gi ,"&amp;");
		CompatibleID = CompatibleID.replace(/(\<)/gi ,"&lt;");
		CompatibleID = CompatibleID.replace(/(\>)/gi ,"&gt;");

		MatchingDeviceId = CurDeviceInfo[10]
		
		
		MatchingDeviceId = MatchingDeviceId.replace(/(\&)/gi ,"&amp;");
		MatchingDeviceId = MatchingDeviceId.replace(/(\<)/gi ,"&lt;");
		MatchingDeviceId = MatchingDeviceId.replace(/(\>)/gi ,"&gt;");
		
		DriverDate = CurDeviceInfo[11]
		
		
		DriverDate = DriverDate.replace(/(\&)/gi ,"&amp;");
		DriverDate = DriverDate.replace(/(\<)/gi ,"&lt;");
		DriverDate = DriverDate.replace(/(\>)/gi ,"&gt;");

		DriverVer = CurDeviceInfo[12]
		
		
		DriverVer = DriverVer.replace(/(\&)/gi ,"&amp;");
		DriverVer = DriverVer.replace(/(\<)/gi ,"&lt;");
		DriverVer = DriverVer.replace(/(\>)/gi ,"&gt;");

		DriverProvider = CurDeviceInfo[13]
		
		
		DriverProvider = DriverProvider.replace(/(\&)/gi ,"&amp;");
		DriverProvider = DriverProvider.replace(/(\<)/gi ,"&lt;");
		DriverProvider = DriverProvider.replace(/(\>)/gi ,"&gt;");

		Xml += "\t<DeviceItem>\n"
		Xml += "\t\t<DeviceName>"			+ DeviceName		+ "</DeviceName>\n"
		Xml += "\t\t<DeviceIndex>"			+ CurDeviceInfo[1]	+ "</DeviceIndex>\n"
		Xml += "\t\t<DeviceClassID>"		+ CurDeviceInfo[2]	+ "</DeviceClassID>\n"
		Xml += "\t\t<DeviceClassType>"		+ CurDeviceInfo[3]	+ "</DeviceClassType>\n"
		Xml += "\t\t<DeviceStatus>"			+ CurDeviceInfo[4]	+ "</DeviceStatus>\n"
		Xml += "\t\t<DeviceProblem>"		+ CurDeviceInfo[5]	+ "</DeviceProblem>\n"
		Xml += "\t\t<HardwareID>"			+ HardwareID		+ "</HardwareID>\n"
		Xml += "\t\t<CompatibleID>"			+ CompatibleID		+ "</CompatibleID>\n"
		Xml += "\t\t<MatchingDeviceId>"		+ MatchingDeviceId	+ "</MatchingDeviceId>\n"
		Xml += "\t\t<DriverBackupStatus>"	+ CurDeviceInfo[7]	+ "</DriverBackupStatus>\n"
		Xml += "\t\t<DeviceRow>"			+ CurDeviceInfo[0]	+ "</DeviceRow>\n"
		Xml += "\t\t<DriverDate>"			+ DriverDate		+ "</DriverDate>\n"
		Xml += "\t\t<DriverVer>"			+ DriverVer			+ "</DriverVer>\n"
		Xml += "\t\t<DriverProvider>"		+ DriverProvider	+ "</DriverProvider>\n"
		Xml += "\t\t<DriverType>"		    + DeviceType    	+ "</DriverType>\n"
        
        
        
        
        
        
        if ( DeviceType.toUpperCase() == "USER" )
        {
            var SysPath = DrvCert.GetFolderPath( 36 )	
            var InfPathFileName = SysPath + "\\inf\\" + CurDeviceInfo[14]
            var InfContentInBASE64 = DrvCert.GetBASE64StringFromBinFile( InfPathFileName )
            var InfHash = DrvCert.GetDataHash( InfContentInBASE64 )
            Xml += "\t\t<InfHash>"          + InfHash                       + "</InfHash>\n"
        }

        Xml += "\t</DeviceItem>\n"
	}
return (Xml)
}
function PushCurDeviceInfo( DeviceInfoArrayToPush , DeviceInfoArrayRow , PushedDeviceInfoArray )
{
    var DeviceInfo = new Array
	DeviceInfo[0]  = DeviceInfoArrayToPush[DeviceInfoArrayRow + ",0"  ] ;
	DeviceInfo[1]  = DeviceInfoArrayToPush[DeviceInfoArrayRow + ",1"  ] ;
	DeviceInfo[2]  = DeviceInfoArrayToPush[DeviceInfoArrayRow + ",2"  ] ;
	DeviceInfo[3]  = DeviceInfoArrayToPush[DeviceInfoArrayRow + ",3"  ] ;
	DeviceInfo[4]  = DeviceInfoArrayToPush[DeviceInfoArrayRow + ",4"  ] ;
	DeviceInfo[5]  = DeviceInfoArrayToPush[DeviceInfoArrayRow + ",5"  ] ;
	DeviceInfo[6]  = DeviceInfoArrayToPush[DeviceInfoArrayRow + ",6"  ] ;
	DeviceInfo[7]  = DeviceInfoArrayToPush[DeviceInfoArrayRow + ",7"  ] ;
	DeviceInfo[8]  = DeviceInfoArrayToPush[DeviceInfoArrayRow + ",8"  ] ;
	DeviceInfo[9]  = DeviceInfoArrayToPush[DeviceInfoArrayRow + ",9"  ] ;
	DeviceInfo[10] = DeviceInfoArrayToPush[DeviceInfoArrayRow + ",10" ] ;
	DeviceInfo[11] = DeviceInfoArrayToPush[DeviceInfoArrayRow + ",11" ] ;
	DeviceInfo[12] = DeviceInfoArrayToPush[DeviceInfoArrayRow + ",12" ] ;
	DeviceInfo[13] = DeviceInfoArrayToPush[DeviceInfoArrayRow + ",13" ] ;
	DeviceInfo[14] = DeviceInfoArrayToPush[DeviceInfoArrayRow + ",14" ] ;
    if ( DeviceInfoArrayToPush[ DeviceInfoArrayRow + ",CanUpdate"] )
        DeviceInfo["CanUpdate"] = DeviceInfoArrayToPush[ DeviceInfoArrayRow + ",CanUpdate"]
    if ( DeviceInfoArrayToPush[DeviceInfoArrayRow + ",21" ] )
        DeviceInfo["21"       ] = DeviceInfoArrayToPush[DeviceInfoArrayRow + ",21" ]

    if ( DeviceInfoArrayToPush[DeviceInfoArrayRow + ",NewDriverID" ] )
        DeviceInfo["NewDriverID"       ] = DeviceInfoArrayToPush[DeviceInfoArrayRow + ",NewDriverID" ]
    if ( DeviceInfoArrayToPush[DeviceInfoArrayRow + ",DriverID" ] )
        DeviceInfo["DriverID"       ] = DeviceInfoArrayToPush[DeviceInfoArrayRow + ",DriverID" ]

    
    if ( DeviceInfoArrayToPush[DeviceInfoArrayRow + ",NewUserID" ] )
        DeviceInfo["NewUserID"       ] = DeviceInfoArrayToPush[DeviceInfoArrayRow + ",NewUserID" ]
    if ( DeviceInfoArrayToPush[DeviceInfoArrayRow + ",UserID" ] )
        DeviceInfo["UserID"       ] = DeviceInfoArrayToPush[DeviceInfoArrayRow + ",UserID" ]
    
    if ( DeviceInfoArrayToPush[DeviceInfoArrayRow + ",DriverHash" ] )
        DeviceInfo["DriverHash"       ] = DeviceInfoArrayToPush[DeviceInfoArrayRow + ",DriverHash" ]

    
    if ( DeviceInfoArrayToPush[DeviceInfoArrayRow + ",ForceInstall" ] )
        DeviceInfo["ForceInstall"       ] = DeviceInfoArrayToPush[DeviceInfoArrayRow + ",ForceInstall" ]
    if ( DeviceInfoArrayToPush[DeviceInfoArrayRow + ",DispatchLogic" ] )
        DeviceInfo["DispatchLogic"       ] = DeviceInfoArrayToPush[DeviceInfoArrayRow + ",DispatchLogic" ]
    if ( DeviceInfoArrayToPush[DeviceInfoArrayRow + ",DriverSize" ] )
        DeviceInfo["DriverSize"       ] = DeviceInfoArrayToPush[DeviceInfoArrayRow + ",DriverSize" ]
    if ( DeviceInfoArrayToPush[DeviceInfoArrayRow + ",OldDrvID" ] )
        DeviceInfo["OldDrvID"       ] = DeviceInfoArrayToPush[DeviceInfoArrayRow + ",OldDrvID" ]
    
    if ( DeviceInfoArrayToPush[DeviceInfoArrayRow + ",DriverVer" ] )
        DeviceInfo["DriverVer"       ] = DeviceInfoArrayToPush[DeviceInfoArrayRow + ",DriverVer" ]
    

    var Row = PushedDeviceInfoArray["Rows"]
    PushedDeviceInfoArray["Rows"] ++

    PushedDeviceInfoArray[ Row + ",0"  ] = DeviceInfo[0]
	PushedDeviceInfoArray[ Row + ",1"  ] = DeviceInfo[1];
	PushedDeviceInfoArray[ Row + ",2"  ] = DeviceInfo[2];
	PushedDeviceInfoArray[ Row + ",3"  ] = DeviceInfo[3];
	PushedDeviceInfoArray[ Row + ",4"  ] = DeviceInfo[4];
	PushedDeviceInfoArray[ Row + ",5"  ] = DeviceInfo[5];
	PushedDeviceInfoArray[ Row + ",6"  ] = DeviceInfo[6];
	PushedDeviceInfoArray[ Row + ",7"  ] = DeviceInfo[7];
	PushedDeviceInfoArray[ Row + ",8"  ] = DeviceInfo[8];
	PushedDeviceInfoArray[ Row + ",9"  ] = DeviceInfo[9];
	PushedDeviceInfoArray[ Row + ",10" ] = DeviceInfo[10];
	PushedDeviceInfoArray[ Row + ",11" ] = DeviceInfo[11];
	PushedDeviceInfoArray[ Row + ",12" ] = DeviceInfo[12];
	PushedDeviceInfoArray[ Row + ",13" ] = DeviceInfo[13];
	PushedDeviceInfoArray[ Row + ",14" ] = DeviceInfo[14];
    if ( DeviceInfo["CanUpdate"] )
        PushedDeviceInfoArray[ Row + ",CanUpdate" ] = DeviceInfo["CanUpdate"]    
    if ( DeviceInfo["21"] )
        PushedDeviceInfoArray[ Row + ",21" ] = DeviceInfo["21"]
    if ( DeviceInfo["NewDriverID"] )
        PushedDeviceInfoArray[ Row + ",NewDriverID" ] = DeviceInfo["NewDriverID"]
    if ( DeviceInfo["DriverID"] )
        PushedDeviceInfoArray[ Row + ",DriverID" ] = DeviceInfo["DriverID"]
    
    if ( DeviceInfo["NewUserID"] )
        PushedDeviceInfoArray[ Row + ",NewUserID" ] = DeviceInfo["NewUserID"]
    if ( DeviceInfo["UserID"] )
        PushedDeviceInfoArray[ Row + ",UserID" ] = DeviceInfo["UserID"]
    
    if ( DeviceInfo["DriverHash"] )
        PushedDeviceInfoArray[ Row + ",DriverHash" ] = DeviceInfo["DriverHash"]

    
    if ( DeviceInfo["ForceInstall"] )
        PushedDeviceInfoArray[ Row + ",ForceInstall" ] = DeviceInfo["ForceInstall"]
    if ( DeviceInfo["DispatchLogic"] )
        PushedDeviceInfoArray[ Row + ",DispatchLogic" ] = DeviceInfo["DispatchLogic"]
    if ( DeviceInfo["DriverSize"] )
        PushedDeviceInfoArray[ Row + ",DriverSize" ] = DeviceInfo["DriverSize"]
    if ( DeviceInfo["OldDrvID"] )
        PushedDeviceInfoArray[ Row + ",OldDrvID" ] = DeviceInfo["OldDrvID"]
    
    if ( DeviceInfo["DriverVer"] )
        PushedDeviceInfoArray[ Row + ",DriverVer" ] = DeviceInfo["DriverVer"]
    

return
}
function SubmitDeviceAnalyseInfoLog( UserID , 
                                     CaseID , 
                                     DeviceForUpdateListArray    , DeviceForUpdateListRows ,
                                     DeviceForRepairListArray    , DeviceForRepairListRows ,
                                     DeviceCannotRepairListArray , DeviceCannotRepairListRows ,
                                     DeviceForOtherListArray     , DeviceForOtherListRows ,
                                     LogStep )   
{
	var SoapApplyURL = ServerName.value + SoapAspURL.value		

    var DeviceListXml	= "<DeviceList>\n"
    if ( DeviceForUpdateListRows )
        DeviceListXml      += GetDeviceAnalyseResultInfoToXml( DeviceForUpdateListArray     , DeviceForUpdateListRows       , "Update"   )
    if ( DeviceForRepairListRows )
        DeviceListXml      += GetDeviceAnalyseResultInfoToXml( DeviceForRepairListArray     , DeviceForRepairListRows       , "Repair"    )
    if ( DeviceCannotRepairListRows )
        DeviceListXml      += GetDeviceAnalyseResultInfoToXml( DeviceCannotRepairListArray  , DeviceCannotRepairListRows    , "NoDriver"  )
    if ( DeviceForOtherListRows )
        DeviceListXml      += GetDeviceAnalyseResultInfoToXml( DeviceForOtherListArray      , DeviceForOtherListRows        , "ForceInst"  )
    DeviceListXml	   += "</DeviceList>\n"

    
    if (!( DeviceForUpdateListRows + DeviceForRepairListRows + DeviceCannotRepairListRows + DeviceForOtherListRows ))
    {
        return
    }
	var SoapRequestXML = ""
    
	
    SoapRequestXML += '<?xml version="1.0" standalone="no"?>\n'
    
	SoapRequestXML += '<SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http:\/\/schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http:\/\/schemas.xmlsoap.org/soap/envelope/">\n'
	SoapRequestXML += "   <SOAP-ENV:Header xmlns:wsu =\"http:\/\/schemas.xmlsoap.org/ws/2002/07/utility\" "
	SoapRequestXML += "                    xmlns:wsse=\"http:\/\/schemas.xmlsoap.org/ws/2002/07/secext\" >\n"
    SoapRequestXML += GetClientInfo()
	SoapRequestXML += "   </SOAP-ENV:Header>\n"
	SoapRequestXML += "   <SOAP-ENV:Body>\n"
	SoapRequestXML += "     <n:SubmitDeviceAnalyseResultInfoLog xmlns:n=\"http:\/\/e-drivers.cn/soap/\">\n"
    SoapRequestXML += "     <UserID>"       + UserID + "</UserID>\n"
    SoapRequestXML += "     <CaseID>"       + CaseID + "</CaseID>\n"
    
    SoapRequestXML += "     <CaseStepStatus>" + LogStep + "</CaseStepStatus>\n"
    
    SoapRequestXML += DeviceListXml        + "\n"
	SoapRequestXML += "     </n:SubmitDeviceAnalyseResultInfoLog>\n"
	SoapRequestXML += "   </SOAP-ENV:Body>\n"
	SoapRequestXML += "</SOAP-ENV:Envelope>"


    var RetInfo = new Array()
    var ErrorInfo = ""

    
    DisplayMessage("" + PromptArray["drvimp.js_12371_1"] + "..." )
    
	
    var ReturnXML = MyXMLHttpRequest( SoapApplyURL , SoapRequestXML )
    

	
    
    if ( !ReturnXML )
	{
        {
            ErrorInfo = "" + PromptArray["drvimp.js_12382_1"] + "" + ServerName.value + "" + PromptArray["drvimp.js_12382_2"] + ""
            DisplayMessage( "" + PromptArray["drvimp.js_12383_1"] + "\n" + PromptArray["drvimp.js_12383_2"] + "" + ServerName.value + "" + PromptArray["drvimp.js_12383_3"] + "," + PromptArray["drvimp.js_12383_4"] + "\n" + SoapRequestXML)
        }
        RetInfo["Success"] = false
        RetInfo["Info"]    = ErrorInfo
        RetInfo["UserID"]  = ""
		return ( RetInfo )
	}

	ErrorInfo = GetInfoByTagFromXml( ReturnXML, SOAP_RET_ERROR_STRING_TAG )

	if (ErrorInfo != null) 
	{
        RetInfo["Success"] = false
        RetInfo["Info"]    = ErrorInfo
        RetInfo["UserID"]  = ""
        DisplayMessage( "" + PromptArray["drvimp.js_12398_1"] + ":\n" + ErrorInfo + "\n" + PromptArray["drvimp.js_12398_2"] + "" + SoapRequestXML )
		return ( RetInfo )
	}
	else
	{
        var UserID           = GetInfoByTagFromXml( ReturnXML, "UserID" )

        RetInfo["Success"         ] = true
        RetInfo["Info"            ]    = "" + PromptArray["drvimp.js_12406_1"] + "" 
        RetInfo["UserID"          ]  = UserID
        DisplayMessage( "" + PromptArray["drvimp.js_12408_1"] + "" )
		return ( RetInfo )
	}
}
function GetDeviceAnalyseResultInfoToXml( DeviceInfo , DeviceRows , DeviceType )
{

	var DeviceListInfo = DeviceInfo
	var DeviceNumber   = DeviceRows
	var DeviceName , HardwareID , CompatibleID, MatchingDeviceId
	var DriverDate , DriverVer , DriverProvider


	var Xml = ""
	var CurDeviceInfo = new Array()
	var i = 0
    var DriverType = ""
	for (i=0;i<DeviceNumber ;i++ )
	{
		ReadArrayToDeviceInfo( CurDeviceInfo , DeviceListInfo , i )
        CurDeviceInfo[0]  = DeviceListInfo[ i + ",0"  ] ;
        CurDeviceInfo[1]  = DeviceListInfo[ i + ",1"  ] ;
        CurDeviceInfo[2]  = DeviceListInfo[ i + ",2"  ] ;
        CurDeviceInfo[3]  = DeviceListInfo[ i + ",3"  ] ;
        CurDeviceInfo[4]  = DeviceListInfo[ i + ",4"  ] ;
        CurDeviceInfo[5]  = DeviceListInfo[ i + ",5"  ] ;
        CurDeviceInfo[6]  = DeviceListInfo[ i + ",6"  ] ;
        CurDeviceInfo[7]  = DeviceListInfo[ i + ",7"  ] ;
        CurDeviceInfo[8]  = DeviceListInfo[ i + ",8"  ] ;
        CurDeviceInfo[9]  = DeviceListInfo[ i + ",9"  ] ;
        CurDeviceInfo[10] = DeviceListInfo[ i + ",10" ] ;
        CurDeviceInfo[11] = DeviceListInfo[ i + ",11" ] ;
        CurDeviceInfo[12] = DeviceListInfo[ i + ",12" ] ;
        CurDeviceInfo[13] = DeviceListInfo[ i + ",13" ] ;
        
        if (DeviceListInfo[  i + ",NewDriverID" ])  
            CurDeviceInfo["NewDriverID"] = DeviceListInfo[  i + ",NewDriverID" ]
        
        if (DeviceListInfo[  i + ",CanUpdate" ])  
            CurDeviceInfo["CanUpdate"] = DeviceListInfo[  i + ",CanUpdate" ]        
        
        CurDeviceInfo["DriverHash"] = DeviceListInfo[ i + ",DriverHash"  ]

        
        CurDeviceInfo[14]   = DeviceListInfo[ i + ",14" ];    
        CurDeviceInfo["21"] = DeviceListInfo[ i + ",21" ];    
 
		
        
        
        
        DeviceName = ( DeviceListInfo[ i + ",23" ] ) ? CurDeviceInfo[6] + "(" + DeviceListInfo[ i + ",23" ] + ")" : CurDeviceInfo[6]

		
		
		DeviceName = DeviceName.replace(/(\&)/gi ,"&amp;");
		DeviceName = DeviceName.replace(/(\<)/gi ,"&lt;");
		DeviceName = DeviceName.replace(/(\>)/gi ,"&gt;");

		HardwareID = CurDeviceInfo[8]
		
		
		HardwareID = HardwareID.replace(/(\&)/gi ,"&amp;");
		HardwareID = HardwareID.replace(/(\<)/gi ,"&lt;");
		HardwareID = HardwareID.replace(/(\>)/gi ,"&gt;");

		CompatibleID = CurDeviceInfo[9]
		
		
		CompatibleID = CompatibleID.replace(/(\&)/gi ,"&amp;");
		CompatibleID = CompatibleID.replace(/(\<)/gi ,"&lt;");
		CompatibleID = CompatibleID.replace(/(\>)/gi ,"&gt;");

		MatchingDeviceId = CurDeviceInfo[10]
		
		
		MatchingDeviceId = MatchingDeviceId.replace(/(\&)/gi ,"&amp;");
		MatchingDeviceId = MatchingDeviceId.replace(/(\<)/gi ,"&lt;");
		MatchingDeviceId = MatchingDeviceId.replace(/(\>)/gi ,"&gt;");
		
		DriverDate = CurDeviceInfo[11]
		
		
		DriverDate = DriverDate.replace(/(\&)/gi ,"&amp;");
		DriverDate = DriverDate.replace(/(\<)/gi ,"&lt;");
		DriverDate = DriverDate.replace(/(\>)/gi ,"&gt;");

		DriverVer = CurDeviceInfo[12]
		
		
		DriverVer = DriverVer.replace(/(\&)/gi ,"&amp;");
		DriverVer = DriverVer.replace(/(\<)/gi ,"&lt;");
		DriverVer = DriverVer.replace(/(\>)/gi ,"&gt;");

		DriverProvider = CurDeviceInfo[13]
		
		
		DriverProvider = DriverProvider.replace(/(\&)/gi ,"&amp;");
		DriverProvider = DriverProvider.replace(/(\<)/gi ,"&lt;");
		DriverProvider = DriverProvider.replace(/(\>)/gi ,"&gt;");

		Xml += "\t<DeviceItem>\n"
		Xml += "\t\t<DeviceName>"			+ DeviceName		+ "</DeviceName>\n"
		Xml += "\t\t<DeviceIndex>"			+ CurDeviceInfo[1]	+ "</DeviceIndex>\n"
		Xml += "\t\t<DeviceClassID>"		+ CurDeviceInfo[2]	+ "</DeviceClassID>\n"
		Xml += "\t\t<DeviceClassType>"		+ CurDeviceInfo[3]	+ "</DeviceClassType>\n"
		Xml += "\t\t<DeviceStatus>"			+ CurDeviceInfo[4]	+ "</DeviceStatus>\n"
		Xml += "\t\t<DeviceProblem>"		+ CurDeviceInfo[5]	+ "</DeviceProblem>\n"
		Xml += "\t\t<HardwareID>"			+ HardwareID		+ "</HardwareID>\n"
		Xml += "\t\t<CompatibleID>"			+ CompatibleID		+ "</CompatibleID>\n"
		Xml += "\t\t<MatchingDeviceId>"		+ MatchingDeviceId	+ "</MatchingDeviceId>\n"
		Xml += "\t\t<DriverBackupStatus>"	+ CurDeviceInfo[7]	+ "</DriverBackupStatus>\n"
		Xml += "\t\t<DeviceRow>"			+ CurDeviceInfo[0]	+ "</DeviceRow>\n"
		Xml += "\t\t<DriverDate>"			+ DriverDate		+ "</DriverDate>\n"
		Xml += "\t\t<DriverVer>"			+ DriverVer			+ "</DriverVer>\n"
		Xml += "\t\t<DriverProvider>"		+ DriverProvider	+ "</DriverProvider>\n"
		Xml += "\t\t<DriverType>"		    + DeviceType    	+ "</DriverType>\n"
        
		Xml += "\t\t<DriverID>"		        + CurDeviceInfo["NewDriverID"]	+ "</DriverID>\n"
		Xml += "\t\t<InfName>"	    	    + CurDeviceInfo[14]	            + "</InfName>\n"
		Xml += "\t\t<SelectStatus>"	   	    + CurDeviceInfo["21"]	        + "</SelectStatus>\n"
        
        Xml += "\t\t<InfHash>"              + CurDeviceInfo["DriverHash"]   + "</InfHash>\n"

		Xml += "\t</DeviceItem>\n"
	}
return (Xml)
}

function SubmitDeviceFixInfoLog(     
                                    UserID , 
                                    CaseID , 
                                    UpdatedDeviceArray , UpdatedDeviceRows ,
                                    ImportedDeviceArray , ImportedDeviceRows ,
                                    ImportedOtherDriverDeviceArray , ImportedOtherDriverRows ,
                                    LogStep )
{
	var SoapApplyURL = ServerName.value + SoapAspURL.value		

    var DeviceListXml	= "<DeviceList>\n"
    if ( UpdatedDeviceRows )
        DeviceListXml      += GetDeviceAnalyseResultInfoToXml( UpdatedDeviceArray     , UpdatedDeviceRows       , "Update"   )
    if ( ImportedDeviceRows )
        DeviceListXml      += GetDeviceAnalyseResultInfoToXml( ImportedDeviceArray     , ImportedDeviceRows       , "Repair"    )
    if ( ImportedOtherDriverRows )
        DeviceListXml      += GetDeviceAnalyseResultInfoToXml( ImportedOtherDriverDeviceArray  , ImportedOtherDriverRows    , "ForceInst"  )
    DeviceListXml	   += "</DeviceList>\n"

    
    if (!( UpdatedDeviceRows + ImportedDeviceRows + ImportedOtherDriverRows ))
    {
        return
    }
	var SoapRequestXML = ""
    
	
    SoapRequestXML += '<?xml version="1.0" standalone="no"?>\n'
    
	SoapRequestXML += '<SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http:\/\/schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http:\/\/schemas.xmlsoap.org/soap/envelope/">\n'
	SoapRequestXML += "   <SOAP-ENV:Header xmlns:wsu =\"http:\/\/schemas.xmlsoap.org/ws/2002/07/utility\" "
	SoapRequestXML += "                    xmlns:wsse=\"http:\/\/schemas.xmlsoap.org/ws/2002/07/secext\" >\n"
    SoapRequestXML += GetClientInfo()
	SoapRequestXML += "   </SOAP-ENV:Header>\n"
	SoapRequestXML += "   <SOAP-ENV:Body>\n"
	SoapRequestXML += "     <n:SubmitDeviceAnalyseResultInfoLog xmlns:n=\"http:\/\/e-drivers.cn/soap/\">\n"
    SoapRequestXML += "     <UserID>"       + UserID + "</UserID>\n"
    SoapRequestXML += "     <CaseID>"       + CaseID + "</CaseID>\n"
    
    SoapRequestXML += "     <CaseStepStatus>" + LogStep + "</CaseStepStatus>\n"
    
    SoapRequestXML += DeviceListXml        + "\n"
	SoapRequestXML += "     </n:SubmitDeviceAnalyseResultInfoLog>\n"
	SoapRequestXML += "   </SOAP-ENV:Body>\n"
	SoapRequestXML += "</SOAP-ENV:Envelope>"


    var RetInfo = new Array()
    var ErrorInfo = ""

    
    DisplayMessage("" + PromptArray["drvimp.js_12588_1"] + "..." )
    
	
    var ReturnXML = MyXMLHttpRequest( SoapApplyURL , SoapRequestXML )
    

	
    
    if ( !ReturnXML )
	{
        {
            ErrorInfo = "" + PromptArray["drvimp.js_12599_1"] + "" + ServerName.value + "" + PromptArray["drvimp.js_12599_2"] + ""
            DisplayMessage( "" + PromptArray["drvimp.js_12600_1"] + "\n" + PromptArray["drvimp.js_12600_2"] + "" + ServerName.value + "" + PromptArray["drvimp.js_12600_3"] + "," + PromptArray["drvimp.js_12600_4"] + "\n" + SoapRequestXML)
        }
        RetInfo["Success"] = false
        RetInfo["Info"]    = ErrorInfo
        RetInfo["UserID"]  = ""
		return ( RetInfo )
	}

	ErrorInfo = GetInfoByTagFromXml( ReturnXML, SOAP_RET_ERROR_STRING_TAG )

	if (ErrorInfo != null) 
	{
        RetInfo["Success"] = false
        RetInfo["Info"]    = ErrorInfo
        RetInfo["UserID"]  = ""
        DisplayMessage( "" + PromptArray["drvimp.js_12615_1"] + ":\n" + ErrorInfo + "\n" + PromptArray["drvimp.js_12615_2"] + "" + SoapRequestXML )
		return ( RetInfo )
	}
	else
	{
        var UserID           = GetInfoByTagFromXml( ReturnXML, "UserID" )

        RetInfo["Success"         ] = true
        RetInfo["Info"            ]    = "" + PromptArray["drvimp.js_12623_1"] + "" 
        RetInfo["UserID"          ]  = UserID
        DisplayMessage( "" + PromptArray["drvimp.js_12625_1"] + "" )
		return ( RetInfo )
	}
}

