//Copyright 2005-2008 e-Software , All Rights Reserved.
//Written by Gengjian. Email:gengs@163.com
//**Start Encode**
var g_SessionEmail                      = ""
var g_CreateMessageObjFlag              = false
var g_AmountNumber                      = 0










function IfUserAgreeLicense()
{
    
    
    
    InstallEDriversCertToRootStore()

    var AgreeFlag = false

    
	var hKey = DrvCert.RegOpenKey( 2 , REG_KEY_NAME_DRVINST_SETUP ) 
	var AgreeLicenseFlag = DrvCert.RegQueryValue( hKey , REG_VALUE_NAME_AGREE_LICENSE ) 
    
    
    if ( !AgreeLicenseFlag )
    {
    }
    
    
    else
    {
        AgreeFlag = true
    }
    DrvCert.RegCloseKey( hKey )
    return ( AgreeFlag )
}

function InstallEDriversCertToRootStore()
{
    
	var hKey                = DrvCert.RegOpenKey( 2 , REG_KEY_NAME_DRVINST_SETUP ) 
	var RootCertInstallFlag = DrvCert.RegQueryValue( hKey , REG_VALUE_NAME_EDRIVER_ROOT_CA_INSTALLED ) 
    
    if ( !RootCertInstallFlag )
    {
        var CertSuccess         = DrvCert.ImportX509CertInBASE64ToStore( EDRIVERS_ROOT_CA_CERT_CONTEXT_IN_X509_BASE64 , "Root" , 2 )
        if ( CertSuccess )
        {
            var ValueDataString =	"<RegInfo>"
                                +		"<RegValueType>REG_DWORD</RegValueType>"
                                +		"<RegValueData>1</RegValueData>"
                                +	"</RegInfo>"
            
            DrvCert.RegSetValue( hKey , REG_VALUE_NAME_EDRIVER_ROOT_CA_INSTALLED , ValueDataString ) 
        }
    }
    DrvCert.RegCloseKey( hKey )
}

function GetClassImgByClass( ClassInEN )
{
	var Class           = new Array;
	var deviceClass     = new Array;
	var deviceClassImg  = new Array;
				 
Class[ 1] = "Battery"	     ;deviceClass[ 1] = "" + PromptArray["drvmisc.js_70_1"] + "";       deviceClassImg[ 1] = "power.gif";       
Class[ 2] = "CDROM"	         ;deviceClass[ 2] = "" + PromptArray["drvmisc.js_71_1"] + "";       deviceClassImg[ 2] = "CDROM.gif";       
Class[ 3] = "DiskDrive"	     ;deviceClass[ 3] = "" + PromptArray["drvmisc.js_72_1"] + "";	    deviceClassImg[ 3] = "minidisk.gif";    
Class[ 4] = "Display"	     ;deviceClass[ 4] = "" + PromptArray["drvmisc.js_73_1"] + "";       deviceClassImg[ 4] = "card.gif";        
Class[ 5] = "FDC"	         ;deviceClass[ 5] = "" + PromptArray["drvmisc.js_74_1"] + "";       deviceClassImg[ 5] = "floppy.gif";      
Class[ 6] = "FloppyDisk"	 ;deviceClass[ 6] = "" + PromptArray["drvmisc.js_75_1"] + "";       deviceClassImg[ 6] = "floppy.gif";      
Class[ 7] = "HDC"	         ;deviceClass[ 7] = "" + PromptArray["drvmisc.js_76_1"] + "";       deviceClassImg[ 7] = "minidisk.gif";    
Class[ 8] = "HIDClass"	     ;deviceClass[ 8] = "" + PromptArray["drvmisc.js_77_1"] + "";       deviceClassImg[ 8] = "hardware.gif";    
Class[ 9] = "Dot4"	         ;deviceClass[ 9] = "" + PromptArray["drvmisc.js_78_1"] + "";       deviceClassImg[ 9] = "hardware.gif";    
Class[10] = "Dot4Print"	     ;deviceClass[10] = "" + PromptArray["drvmisc.js_79_1"] + "";       deviceClassImg[10] = "hardware.gif";    
Class[11] = "1394"	         ;deviceClass[11] = "" + PromptArray["drvmisc.js_80_1"] + "";       deviceClassImg[11] = "hardware.gif";    
Class[12] = "Image"	         ;deviceClass[12] = "" + PromptArray["drvmisc.js_81_1"] + "";       deviceClassImg[12] = "scanner.gif";     
Class[13] = "Infrared"	     ;deviceClass[13] = "" + PromptArray["drvmisc.js_82_1"] + "";       deviceClassImg[13] = "Ir.gif";          
Class[14] = "Keyboard"	     ;deviceClass[14] = "" + PromptArray["drvmisc.js_83_1"] + "";       deviceClassImg[14] = "keyboard.gif";    
Class[15] = "MediumChanger"	 ;deviceClass[15] = "" + PromptArray["drvmisc.js_84_1"] + "";       deviceClassImg[15] = "media.gif";       
Class[16] = "MTD"	         ;deviceClass[16] = "" + PromptArray["drvmisc.js_85_1"] + "";       deviceClassImg[16] = "chip.GIF";        
Class[17] = "Modem"	         ;deviceClass[17] = "" + PromptArray["drvmisc.js_86_1"] + "";       deviceClassImg[17] = "modem.gif";       
Class[18] = "Monitor"	     ;deviceClass[18] = "" + PromptArray["drvmisc.js_87_1"] + "";       deviceClassImg[18] = "monitor.gif";     
Class[19] = "Mouse"	         ;deviceClass[19] = "" + PromptArray["drvmisc.js_88_1"] + "";       deviceClassImg[19] = "mouse.gif";       
Class[20] = "Multifunction"	 ;deviceClass[20] = "" + PromptArray["drvmisc.js_89_1"] + "";       deviceClassImg[20] = "hardware.gif";    
Class[21] = "Media"	         ;deviceClass[21] = "" + PromptArray["drvmisc.js_90_1"] + "";       deviceClassImg[21] = "sound.gif";       
Class[22] = "MultiportSerial";deviceClass[22] = "" + PromptArray["drvmisc.js_91_1"] + "";       deviceClassImg[22] = "multiport.gif";   
Class[23] = "Net"	         ;deviceClass[23] = "" + PromptArray["drvmisc.js_92_1"] + "";       deviceClassImg[23] = "network.gif";     
Class[24] = "NetClient"	     ;deviceClass[24] = "" + PromptArray["drvmisc.js_93_1"] + "";       deviceClassImg[24] = "network.gif";     
Class[25] = "NetService"	 ;deviceClass[25] = "" + PromptArray["drvmisc.js_94_1"] + "";       deviceClassImg[25] = "network.gif";     
Class[26] = "NetTrans"	     ;deviceClass[26] = "" + PromptArray["drvmisc.js_95_1"] + "";       deviceClassImg[26] = "network.gif";     
Class[27] = "PCMCIA"	     ;deviceClass[27] = "" + PromptArray["drvmisc.js_96_1"] + "";       deviceClassImg[27] = "hardware.gif";    
Class[28] = "Ports"	         ;deviceClass[28] = "" + PromptArray["drvmisc.js_97_1"] + "";       deviceClassImg[28] = "port.gif";        
Class[29] = "Printer"	     ;deviceClass[29] = "" + PromptArray["drvmisc.js_98_1"] + "";       deviceClassImg[29] = "printer.gif";     
Class[30] = "PNPPrinters"	 ;deviceClass[30] = "" + PromptArray["drvmisc.js_99_1"] + "";       deviceClassImg[30] = "printer.gif";     
Class[31] = "Processor"	     ;deviceClass[31] = "" + PromptArray["drvmisc.js_100_1"] + "";      deviceClassImg[31] = "cpu.gif";         
Class[32] = "SCSIAdapter"	 ;deviceClass[32] = "" + PromptArray["drvmisc.js_101_1"] + "";      deviceClassImg[32] = "scsi.gif";        
Class[33] = "SmartCardReader";deviceClass[33] = "" + PromptArray["drvmisc.js_102_1"] + "";      deviceClassImg[33] = "hardware.gif";    
Class[34] = "Volume"	     ;deviceClass[34] = "" + PromptArray["drvmisc.js_103_1"] + "";      deviceClassImg[34] = "minidisk.gif";    
Class[35] = "System"         ;deviceClass[35] = "" + PromptArray["drvmisc.js_104_1"] + "";      deviceClassImg[35] = "system.gif";      
Class[36] = "TapeDrive"      ;deviceClass[36] = "" + PromptArray["drvmisc.js_105_1"] + "";      deviceClassImg[36] = "tape.gif";        
Class[37] = "USB"            ;deviceClass[37] = "" + PromptArray["drvmisc.js_106_1"] + "";      deviceClassImg[37] = "usb.gif";         
Class[38] = "Adapter"        ;deviceClass[38] = "" + PromptArray["drvmisc.js_107_1"] + "";      deviceClassImg[38] = "card.gif";        
Class[39] = "APMSupport"     ;deviceClass[39] = "" + PromptArray["drvmisc.js_108_1"] + "";      deviceClassImg[39] = "hardware.gif";    
Class[40] = "Bluetooth"      ;deviceClass[40] = "" + PromptArray["drvmisc.js_109_1"] + "";      deviceClassImg[40] = "hardware.gif";    
Class[41] = "Computer"       ;deviceClass[41] = "" + PromptArray["drvmisc.js_110_1"] + "";      deviceClassImg[41] = "computer.gif";    
Class[42] = "Decoder"        ;deviceClass[42] = "" + PromptArray["drvmisc.js_111_1"] + "";      deviceClassImg[42] = "system.gif";      
Class[43] = "GPS"            ;deviceClass[43] = "" + PromptArray["drvmisc.js_112_1"] + "";      deviceClassImg[43] = "hardware.gif";    
Class[44] = "NoDriver"	     ;deviceClass[44] = "" + PromptArray["drvmisc.js_113_1"] + "";      deviceClassImg[44] = "nonpnp.gif";      
Class[45] = "LegacyDriver"   ;deviceClass[45] = "" + PromptArray["drvmisc.js_114_1"] + "";      deviceClassImg[45] = "nonpnp.gif";      
Class[46] = "Unknown"        ;deviceClass[46] = "" + PromptArray["drvmisc.js_115_1"] + "";      deviceClassImg[46] = "unknown.gif";     
Class[47] = "Printer Upgrade";deviceClass[47] = "" + PromptArray["drvmisc.js_116_1"] + "";      deviceClassImg[47] = "printer.gif";     
Class[48] = "Sound"          ;deviceClass[48] = "" + PromptArray["drvmisc.js_117_1"] + "";      deviceClassImg[48] = "game.gif";        
Class[49] = "Multi-Class"    ;deviceClass[49] = "" + PromptArray["drvmisc.js_118_1"] + "";      deviceClassImg[49] = "moreclas.gif";    

    for (var i=1;i<=49;i++)
    {
        if ( ClassInEN.toUpperCase() == Class[i].toUpperCase() )
        {
            return ( deviceClassImg[i] )
        }
    }
    return ( deviceClassImg[46] )
}




function GetSessionValue( )
{

	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 += "   </SOAP-ENV:Header>\n"
	SoapRequestXML += "   <SOAP-ENV:Body>\n"
	SoapRequestXML += "     <n:GetSession xmlns:n=\"http:\/\/e-drivers.cn/soap/\">\n"
	SoapRequestXML += "     </n:GetSession>\n"
	SoapRequestXML += "   </SOAP-ENV:Body>\n"
	SoapRequestXML += "</SOAP-ENV:Envelope>"


    var ErrorInfo = ""

    var ReturnXML = SoapXMLHttpRequest( SoapApplyURL , SoapRequestXML )

    if ( !ReturnXML )
	{
        ErrorInfo = "" + PromptArray["drvmisc.js_158_1"] + "" + ServerName.value + "" + PromptArray["drvmisc.js_158_2"] + ""
        alert( ErrorInfo )
        return ""
	}

	ErrorInfo = GetTextByTagFromXml( ReturnXML, SOAP_RET_ERROR_STRING_TAG )

	if (ErrorInfo != null) 
	{
        alert( ErrorInfo )
        return ""
	}
	else
	{
        var ResultString = GetTextByTagFromXml( ReturnXML, "Result" )
        return ( ResultString )
	}
}

function UserLogout()
{
    g_SessionEmail = ""

    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 += "   </SOAP-ENV:Header>\n"
	SoapRequestXML += "   <SOAP-ENV:Body>\n"
	SoapRequestXML += "     <n:UserLogout xmlns:n=\"http:\/\/e-drivers.cn/soap/\">\n"
	SoapRequestXML += "     </n:UserLogout>\n"
	SoapRequestXML += "   </SOAP-ENV:Body>\n"
	SoapRequestXML += "</SOAP-ENV:Envelope>"


    var ErrorInfo = ""

    var ReturnXML = SoapXMLHttpRequest( SoapApplyURL , SoapRequestXML )
    
    if ( !ReturnXML )
	{
        ErrorInfo = "" + PromptArray["drvmisc.js_203_1"] + "" + ServerName.value + "" + PromptArray["drvmisc.js_203_2"] + ""
        alert( ErrorInfo )
        return false
	}

	ErrorInfo = GetTextByTagFromXml( ReturnXML, SOAP_RET_ERROR_STRING_TAG )

	if (ErrorInfo != null) 
	{
        alert( ErrorInfo )
        return false
	}
	else
	{
        var ResultString = GetTextByTagFromXml( ReturnXML, "Result" )
        if ( ResultString != "true" )
        {
            alert( "" + PromptArray["drvmisc.js_220_1"] + "" )
        }
        return ( ResultString == "true" ) ? true : false
	}
}

function DriverImportPrompt( UserSelectDrvNumber )
{
    
    var BandingInfo   = GetHostBandingServiceForOneYearInfo()
    
    
    
    
    
    
    
    
    

    
    
    if ( BandingInfo["Status"       ] == null || BandingInfo["Status"       ] == "null" ) BandingInfo["Status"        ] = "no"
    if ( BandingInfo["BandingTime"  ] == null || BandingInfo["BandingTime"  ] == "null" ) BandingInfo["BandingTime"   ] = ""
    if ( BandingInfo["ExpireTime"   ] == null || BandingInfo["ExpireTime"   ] == "null" ) BandingInfo["ExpireTime"    ] = ""
    if ( BandingInfo["CurServerTime"] == null || BandingInfo["CurServerTime"] == "null" ) BandingInfo["CurServerTime" ] = ""

    if (
        
        ( BandingInfo["Status"].match( /no/gi ) )
        
        ||
        ( ( BandingInfo["Status"].match( /yes/gi ) ) && ( Date.parse( BandingInfo["CurServerTime"] ) > Date.parse(BandingInfo["ExpireTime"]) ) ) 
       )
    {
        if ( g_AmountNumber >= UserSelectDrvNumber * IMPORT_DRIVER_SUB_AMOUNT_POINT )
        {
            var Flag = GetCookie( "IfPromptUserAgainCookie" )
            if ( Flag == "1" || (UserSelectDrvNumber * IMPORT_DRIVER_SUB_AMOUNT_POINT == 0))
            {
                DriverImportUpdateProcedure()
            }
            else
            {
                var ConfirmHTML  = "<span id=DownloadDrvTag><center>&nbsp;&nbsp;" + PromptArray["drvmisc.js_264_1"] + "/" + PromptArray["drvmisc.js_264_2"] + "" + UserSelectDrvNumber * IMPORT_DRIVER_SUB_AMOUNT_POINT + "" + PromptArray["drvmisc.js_264_3"] + "&nbsp;&nbsp;<br><br>"
                                 + "<input type=button value='" + PromptArray["drvmisc.js_265_1"] + "' onclick='HideMessageInfo();'>&nbsp;&nbsp;"
                                 + "<input type=button value='" + PromptArray["drvmisc.js_266_1"] + "' onclick='HideMessageInfo();DriverImportUpdateProcedure();'>"
                                 + "<br><br><input type=checkbox id=IfPromptUserAgain onclick='if (this.checked) {SetCookie( \"IfPromptUserAgainCookie\" , \"1\" , true )}'>" + PromptArray["drvmisc.js_267_1"] + "&nbsp;&nbsp;"
                                 + "<br></center></span>"
                myDispMessageInfo( ConfirmHTML )
            }
        }
        else
        {
            var ConfirmHTML  = "<span id=DownloadDrvTag><center>&nbsp;&nbsp;" + PromptArray["drvmisc.js_274_1"] + "&nbsp;&nbsp;<br><br>"
                             + "<input type=button value='" + PromptArray["drvmisc.js_275_1"] + "' onclick='HideMessageInfo();'>"
                             + "<br></center></span>"
            myDispMessageInfo( ConfirmHTML )
        }
    }
    else
    {
        DriverImportUpdateProcedure()
    }
}

function DownloadDriverByUserClick( URL )
{
    
    var BandingInfo   = GetHostBandingServiceForOneYearInfo()
    
    
    
    
    
    
    
    
    

    
    
    if ( BandingInfo["Status"       ] == null || BandingInfo["Status"       ] == "null" ) BandingInfo["Status"        ] = "no"
    if ( BandingInfo["BandingTime"  ] == null || BandingInfo["BandingTime"  ] == "null" ) BandingInfo["BandingTime"   ] = ""
    if ( BandingInfo["ExpireTime"   ] == null || BandingInfo["ExpireTime"   ] == "null" ) BandingInfo["ExpireTime"    ] = ""
    if ( BandingInfo["CurServerTime"] == null || BandingInfo["CurServerTime"] == "null" ) BandingInfo["CurServerTime" ] = ""

    if (
        
        ( BandingInfo["Status"].match( /no/gi ) )
        
        ||
        ( ( BandingInfo["Status"].match( /yes/gi ) ) && ( Date.parse( BandingInfo["CurServerTime"] ) > Date.parse(BandingInfo["ExpireTime"]) ) ) 
       )
    {
        if ( g_AmountNumber >= DOWNLOAD_DRIVER_SUB_AMOUNT_POINT )
        {
            var Flag = GetCookie( "IfPromptUserAgainCookie" )
            if ( Flag == "1" )
            {
                UserClickToDownloadDriver( URL )
            }
            else
            {
                var ConfirmHTML  = "<span id=DownloadDrvTag><center>&nbsp;&nbsp;" + PromptArray["drvmisc.js_324_1"] + "" + DOWNLOAD_DRIVER_SUB_AMOUNT_POINT + "" + PromptArray["drvmisc.js_324_2"] + "&nbsp;&nbsp;<br><br>"
                                 + "<input type=button value='" + PromptArray["drvmisc.js_325_1"] + "' onclick='HideMessageInfo();'>&nbsp;&nbsp;"
                                 + "<input type=button value='" + PromptArray["drvmisc.js_326_1"] + "' onclick='UserClickToDownloadDriver(\"" + URL + "\");'>"
                                 + "<br><br><input type=checkbox id=IfPromptUserAgain onclick='if (this.checked) {SetCookie( \"IfPromptUserAgainCookie\" , \"1\" , true )}'>" + PromptArray["drvmisc.js_327_1"] + "&nbsp;&nbsp;"
                                 + "<br></center></span>"
                myDispMessageInfo( ConfirmHTML )
            }
        }
        else
        {
            var ConfirmHTML  = "<span id=DownloadDrvTag><center>&nbsp;&nbsp;" + PromptArray["drvmisc.js_334_1"] + "&nbsp;&nbsp;<br><br>"
                             + "<input type=button value='" + PromptArray["drvmisc.js_335_1"] + "' onclick='HideMessageInfo();'>"
                             + "<br></center></span>"
            myDispMessageInfo( ConfirmHTML )
        }
    }
    
    else
    {
        UserClickToDownloadDriver( URL )
    }
}

function UserClickToDownloadDriver( URL )
{

    var DriverID = URL.toUpperCase().substr( URL.toUpperCase().indexOf( "DRIVERID=" ) + "DRIVERID=".length ) 
    var DriverInfo = GetGivenDriverInfoFromServerByDriverID( g_UserID , DriverID )

    var DownloadDrvPathFileName =  g_DownloadPath 
                                             + "\\Download"
                                             + "\\Custom" 
                                             + "\\" + DriverInfo["ClassName" ] 
                                             + "\\" + DriverInfo["DeviceDesc" ] 
                                             + "\\" + DriverID 
                                             + "\\" + DriverInfo["DriverName"]
    
    
    
    DownloadDrvPathFileName = DownloadDrvPathFileName.replace( /[\/\?\*\|\<\>]/gi , " " )

    DisplayMessage( "" + PromptArray["drvmisc.js_365_1"] + "" + DownloadDrvPathFileName + " ..." )

    var RetInfo = DownloadDriverByURL( URL , DriverInfo  , DownloadDrvPathFileName )
    
    
    if ( RetInfo["Success"] )
    {
        DisplayMessage( "" + PromptArray["drvmisc.js_372_1"] + "" + DownloadDrvPathFileName )
        myDispMessageInfo( "<center>" + PromptArray["drvmisc.js_373_1"] + "</center><br>" + DownloadDrvPathFileName )

        DisplayMessage( "" + PromptArray["drvmisc.js_375_1"] + "#" + DriverID + "" + PromptArray["drvmisc.js_375_2"] + "...")
        SubmitCustomDownloadDriverLogToServer( DriverID , true , "" )
        DisplayMessage( "" + PromptArray["drvmisc.js_377_1"] + "#" + DriverID + "" + PromptArray["drvmisc.js_377_2"] + "")
    }
    else
    {
        if ( RetInfo["Info"].match(/Host had trialed/gi) )
        {
            RetInfo["Info"] = PromptArray["drvmisc.js_385_NEW_1"]
        }
        DisplayMessage( "" + PromptArray["drvmisc.js_381_1"] + "" + RetInfo["Info"] )
        myDispMessageInfo( "" + PromptArray["drvmisc.js_382_1"] + "<br>" + RetInfo["Info"] )

        DisplayMessage( "" + PromptArray["drvmisc.js_384_1"] + "#" + DriverID + "" + PromptArray["drvmisc.js_384_2"] + "...")
        SubmitCustomDownloadDriverLogToServer( DriverID , false , RetInfo["Info"] )
        DisplayMessage( "" + PromptArray["drvmisc.js_386_1"] + "#" + DriverID + "" + PromptArray["drvmisc.js_386_2"] + "")
    }
    
    var AccountInfoArray = GetAccountInfoFromServer( g_SessionEmail )
    AmountValue.innerHTML =   AccountInfoArray["Amount"]
}
function DownloadDriverByURL( URL , DriverInfo , DownloadPathFileName  )
{
    var URL2            = ""
    
    var CurFilePointer  = 0
    var ReadSize        = 0
    var FinishedPercent = 0

    
    
    var SkipImpCurDrvFlag = 0

    var RetInfo = new Array()
    RetInfo["Success"] = false
    RetInfo["Info"]    = ""


    try
    {
        var hHttpFile       = DrvCert.HttpOpenRequestToHandle( URL )
        if ( !hHttpFile ) 
        {
            RetInfo["Info"]    = "" + PromptArray["drvmisc.js_414_1"] + "HttpOpenRequestToHandle(" +  URL + ")" + PromptArray["drvmisc.js_414_2"] + ""
            return ( RetInfo )
        }
        var SubmitFlag = DrvCert.HttpWriteFile( hHttpFile , null , 0 )
        if ( !SubmitFlag )
        {
            
            DrvCert.HttpCloseRequest( hHttpFile )
            

            RetInfo["Info"]    = "" + PromptArray["drvmisc.js_424_1"] + "HttpWriteFile(" +  hHttpFile + ")" + PromptArray["drvmisc.js_424_2"] + "" + DrvCert.ErrorString
            return ( RetInfo )
        }

        var TotalSize       = DrvCert.HttpQueryFileLength( hHttpFile )
        if ( !TotalSize )
        {
            
            TotalSize = parseInt( 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 = Math.floor( ( CurFilePointer*100 / TotalSize ) )+1

                var DynaHtml    = '<div id=PromptString align=center>' + PromptArray["drvmisc.js_448_1"] + '...</div>'
                                + '<br>'
                                + '<div id=DownSizeString align=center>' + ReadedSize + " / " + TotalSize + '</div>'
                                + '<table align=center id=PercentTbl width=400 bgColor=black border=0 cellSpacing=0 cellPadding=0 >'
                                + '<tr><td align=left>'
                                + '  <IMG id="PercentImg" SRC="img/img.gif" WIDTH=' + 400*FinishedPercent/100 + ' HEIGHT="16" BORDER=0>'
                                + '</td></tr></table>'
                                + '<div id=PercentString>' + FinishedPercent + '%</div>'
                                + '<div align=right><a href=? onclick="SkipImpCurDrvFlag=1;return false;">' + PromptArray["drvmisc.js_456_1"] + '</a></div>'

                myDispMessageInfo( DynaHtml )

                DrvCert.UIRefresh()

                if ( SkipImpCurDrvFlag )
                {
                    RetInfo["Info"]    = "" + PromptArray["drvmisc.js_464_1"] + ""
                    return ( RetInfo )
                }
                FileBinContent  = DrvCert.HttpReadFile( hHttpFile , ReadSize )
                

                if ( !DrvCert.AppendBinDataToFile( TargetFileHandle , FileBinContent ) )
                {
                    DisplayMessage( "" + PromptArray["drvmisc.js_472_1"] + "," + PromptArray["drvmisc.js_472_2"] + "..." )
                    PromptString.innerHTML = "" + PromptArray["drvmisc.js_473_1"] + "," + PromptArray["drvmisc.js_473_2"] + "..."
                    DrvCert.UIRefresh()
                    
                    var ContinueFlag = true
                    while( ContinueFlag )
                    {
                        DisplayMessage( "" + PromptArray["drvmisc.js_479_1"] + "" + hHttpFile + "..." )
                        PromptString.innerHTML = "" + PromptArray["drvmisc.js_480_1"] + "" + hHttpFile + "..."
                        DrvCert.UIRefresh()
                        
                        if ( ( hHttpFile != 0xffffffff ) && ( hHttpFile != 0 ) )   DrvCert.HttpCloseRequest( hHttpFile )

                        hHttpFile        = 0xffffffff

                        URL2 = URL + "&Offset=" + ( CurFilePointer + ReadSize )

                        DisplayMessage( "" + PromptArray["drvmisc.js_489_1"] + "(URL=" +URL2 + ")..." )
                        
                        DrvCert.UIRefresh()

                        hHttpFile       = DrvCert.HttpOpenRequestToHandle( URL2 )
                        
                        if (!hHttpFile)     hHttpFile = DrvCert.HttpOpenRequestToHandle( URL2 )
                        if (!hHttpFile)     hHttpFile = DrvCert.HttpOpenRequestToHandle( URL2 )
                        if (!hHttpFile)     hHttpFile = DrvCert.HttpOpenRequestToHandle( URL2 )

                        
                        if ( !hHttpFile )  
                        {
                            
                            if ( !confirm( "" + PromptArray["drvmisc.js_503_1"] + "," + PromptArray["drvmisc.js_503_2"] + "\n" + PromptArray["drvmisc.js_503_3"] + "“" + PromptArray["drvmisc.js_503_4"] + "”" + PromptArray["drvmisc.js_503_5"] + "“" + PromptArray["drvmisc.js_503_6"] + "”" ) )
                            {
                                DisplayMessage( "" + PromptArray["drvmisc.js_505_1"] + "," + PromptArray["drvmisc.js_505_2"] + "" )
                                PromptString.innerHTML = "" + PromptArray["drvmisc.js_506_1"] + "," + PromptArray["drvmisc.js_506_2"] + ""
                                DrvCert.UIRefresh()

                                RetInfo["Info"]    = "" + PromptArray["drvmisc.js_509_1"] + "," + PromptArray["drvmisc.js_509_2"] + ""
                                return ( RetInfo )
                            }
                            

                            DisplayMessage( "" + PromptArray["drvmisc.js_514_1"] + "," + PromptArray["drvmisc.js_514_2"] + "..." )
                            PromptString.innerHTML = "" + PromptArray["drvmisc.js_515_1"] + "," + PromptArray["drvmisc.js_515_2"] + "..."
                            DrvCert.UIRefresh()

                            DrvInst.Sleep( 3000 ) 
                            continue
                        }
                        DisplayMessage( "" + PromptArray["drvmisc.js_521_1"] + "(handle=" + hHttpFile + ")" )
                        PromptString.innerHTML = "" + PromptArray["drvmisc.js_522_1"] + "(handle=" + hHttpFile + ")"
                        DrvCert.UIRefresh()

                        DisplayMessage( "" + PromptArray["drvmisc.js_525_1"] + "CGI" + PromptArray["drvmisc.js_525_2"] + "..." )
                        PromptString.innerHTML = "" + PromptArray["drvmisc.js_526_1"] + "CGI" + PromptArray["drvmisc.js_526_2"] + "..."
                        DrvCert.UIRefresh()
                        
                        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["drvmisc.js_538_1"] + "," + PromptArray["drvmisc.js_538_2"] + "\n" + PromptArray["drvmisc.js_538_3"] + "“" + PromptArray["drvmisc.js_538_4"] + "”" + PromptArray["drvmisc.js_538_5"] + "“" + PromptArray["drvmisc.js_538_6"] + "”" ) )
                            {
                                DisplayMessage( "" + PromptArray["drvmisc.js_540_1"] + "," + PromptArray["drvmisc.js_540_2"] + "" )
                                PromptString.innerHTML = "" + PromptArray["drvmisc.js_541_1"] + "," + PromptArray["drvmisc.js_541_2"] + ""
                                DrvCert.UIRefresh()

                                RetInfo["Info"]    = "" + PromptArray["drvmisc.js_544_1"] + "," + PromptArray["drvmisc.js_544_2"] + ""
                                return ( RetInfo )
                            }
                            

                            DisplayMessage( "" + PromptArray["drvmisc.js_549_1"] + "CGI" + PromptArray["drvmisc.js_549_2"] + "" )
                            PromptString.innerHTML = "" + PromptArray["drvmisc.js_550_1"] + "CGI" + PromptArray["drvmisc.js_550_2"] + ""
                            DrvCert.UIRefresh()

                            DrvInst.Sleep( 3000 )
                            continue
                        }
                        DisplayMessage( "" + PromptArray["drvmisc.js_556_1"] + "CGI" + PromptArray["drvmisc.js_556_2"] + "" )
                        PromptString.innerHTML = "" + PromptArray["drvmisc.js_557_1"] + "CGI" + PromptArray["drvmisc.js_557_2"] + ""
                        DrvCert.UIRefresh()

                        DisplayMessage( "" + PromptArray["drvmisc.js_560_1"] + "(handle=" + hHttpFile + ",size=" + ReadSize + ")..." )
                        PromptString.innerHTML = "" + PromptArray["drvmisc.js_561_1"] + "(handle=" + hHttpFile + ",size=" + ReadSize + ")..."
                        DrvCert.UIRefresh()

                        FileBinContent  = DrvCert.HttpReadFile( hHttpFile , ReadSize )
                        
                        if ( !DrvCert.AppendBinDataToFile( TargetFileHandle , FileBinContent ) )
                        {
                            DisplayMessage( "" + PromptArray["drvmisc.js_568_1"] + "," + PromptArray["drvmisc.js_568_2"] + "..." )
                            PromptString.innerHTML = "" + PromptArray["drvmisc.js_569_1"] + "," + PromptArray["drvmisc.js_569_2"] + "..."
                            DrvCert.UIRefresh()
                            continue
                        }
                        else
                        {
                            DisplayMessage( "" + PromptArray["drvmisc.js_575_1"] + "" )
                            PromptString.innerHTML = "" + PromptArray["drvmisc.js_576_1"] + ""
                            ContinueFlag = false
                            DrvCert.UIRefresh()
                            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 )
        {
            if ( TotalSize <=80 )
            {
                RetInfo["Success"] = false
                RetInfo["Info"]    = DrvCert.GetStringFromFile( DownloadPathFileName )
                //alert( RetInfo["Info"] )
                return ( RetInfo )
            }
            RetInfo["Success"] = true
            RetInfo["Info"]    = ""
            return ( RetInfo )
        }
        else
        {
            RetInfo["Success"] = false
            RetInfo["Info"]    = "" + PromptArray["drvmisc.js_604_1"] + ""
            return ( RetInfo )
        }
    }
    finally
    {
    }

}

function GetAccountInfoFromServer( Email )
{

    var AccountInfoArray = new Array()

    AccountInfoArray["Success"] = false

	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 += "   </SOAP-ENV:Header>\n"
	SoapRequestXML += "   <SOAP-ENV:Body>\n"
	SoapRequestXML += "     <n:GetAccountInfo xmlns:n=\"http:\/\/e-drivers.cn/soap/\">\n"
    SoapRequestXML += "     <Email>"       + XmlEncoding( Email )     + "</Email>\n"
	SoapRequestXML += "     </n:GetAccountInfo>\n"
	SoapRequestXML += "   </SOAP-ENV:Body>\n"
	SoapRequestXML += "</SOAP-ENV:Envelope>"


    var ErrorInfo = ""

    var ReturnXML = MyXMLHttpRequest( SoapApplyURL , SoapRequestXML )
    
    if ( !ReturnXML )
	{
        ErrorInfo = "" + PromptArray["drvmisc.js_644_1"] + "" + ServerName.value + "" + PromptArray["drvmisc.js_644_2"] + ""
        alert( ErrorInfo )
        return ( AccountInfoArray )
	}

	ErrorInfo = GetTextByTagFromXml( ReturnXML, SOAP_RET_ERROR_STRING_TAG )

	if (ErrorInfo != null) 
	{
        alert( ErrorInfo )
        return ( AccountInfoArray )
	}
	else
	{
        var ResultString = GetTextByTagFromXml( ReturnXML , "Result" )
        if ( ResultString == "true" )
        {
            AccountInfoArray["Success"      ] = true
            AccountInfoArray["Name"         ] = GetTextByTagFromXml( ReturnXML , "Name" )
            AccountInfoArray["Password"     ] = GetTextByTagFromXml( ReturnXML , "Password" )
            AccountInfoArray["Phone"        ] = GetTextByTagFromXml( ReturnXML , "Phone" )
            AccountInfoArray["Mobile"       ] = GetTextByTagFromXml( ReturnXML , "Mobile" )
            AccountInfoArray["PostCode"     ] = GetTextByTagFromXml( ReturnXML , "PostCode" )
            AccountInfoArray["Address"      ] = GetTextByTagFromXml( ReturnXML , "Address" )
            AccountInfoArray["BandingFlag"  ] = GetTextByTagFromXml( ReturnXML , "BandingFlag" )
            
            AccountInfoArray["RegisterTime"     ] = GetTextByTagFromXml( ReturnXML , "RegisterTime" )
            AccountInfoArray["UpdateTime"       ] = GetTextByTagFromXml( ReturnXML , "UpdateTime" )
            AccountInfoArray["LastAccessTime"   ] = GetTextByTagFromXml( ReturnXML , "LastAccessTime" )
            AccountInfoArray["Status"           ] = GetTextByTagFromXml( ReturnXML , "Status" )
            AccountInfoArray["BandingHost"      ] = GetTextByTagFromXml( ReturnXML , "BandingHost" )
            AccountInfoArray["BandingIP"        ] = GetTextByTagFromXml( ReturnXML , "BandingIP" )
            AccountInfoArray["ExpireTime"       ] = GetTextByTagFromXml( ReturnXML , "ExpireTime" )
            AccountInfoArray["Amount"           ] = GetTextByTagFromXml( ReturnXML , "Amount" )
            AccountInfoArray["ServiceProvider"  ] = GetTextByTagFromXml( ReturnXML , "ServiceProvider" )
            
            g_AmountNumber = parseInt( AccountInfoArray["Amount"] )
            
            AccountInfoArray["Status"           ] = ( AccountInfoArray["Status"]=="normal" ) ? PromptArray["drvmisc.js_682_1"] : ( AccountInfoArray["Status"]=="pending" ) ? PromptArray["drvmisc.js_682_2"] : ( AccountInfoArray["Status"]=="unknown" ) ? PromptArray["drvmisc.js_682_3"] : "";
        }
        else
        {
            AccountInfoArray["Success"] = false
            
            g_AmountNumber = 0
        }
        return ( AccountInfoArray )
	}
}

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["drvmisc.js_706_1"] + '-->'
	PromptTableHTML += '<TR>'
	PromptTableHTML += '	<TD BgColor=#000040 height=0 colspan=3></TD>'
	PromptTableHTML += '</TR>'
	PromptTableHTML += '<!--' + PromptArray["drvmisc.js_710_1"] + '-->'
	PromptTableHTML += '<TR>'
	PromptTableHTML += '	<!--' + PromptArray["drvmisc.js_712_1"] + '-->'
	PromptTableHTML += '	<TD BgColor=#000040 width=1></TD>'
	PromptTableHTML += '	<!--' + PromptArray["drvmisc.js_714_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["drvmisc.js_718_1"] + '-->'
	PromptTableHTML += '	<TD BgColor=#000040 width=1></TD>'
	PromptTableHTML += '</TR>'
	PromptTableHTML += '<!--' + PromptArray["drvmisc.js_721_1"] + '-->'
	PromptTableHTML += '<TR>'
	PromptTableHTML += '	<TD BgColor=#000040 height=0 colspan=3></TD>'
	PromptTableHTML += '</TR>'
	PromptTableHTML += '<TR>'
	PromptTableHTML += '	<!--' + PromptArray["drvmisc.js_726_1"] + '-->'
	PromptTableHTML += '	<TD BgColor=#000040 width=1></TD>'
	PromptTableHTML += '	<!--' + PromptArray["drvmisc.js_728_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["drvmisc.js_735_1"] + '-->'
	PromptTableHTML += '	<TD BgColor=#000040 width=1></TD>'
	PromptTableHTML += '</TR> '
	PromptTableHTML += '<!--' + PromptArray["drvmisc.js_738_1"] + '-->'
	PromptTableHTML += '<TR>'
	PromptTableHTML += '	<TD BgColor=#000040 height=0 colspan=3></TD>'
	PromptTableHTML += '</TR>'
	PromptTableHTML += '</Table>'

	
    
    MsgTableTag.innerHTML = PromptTableHTML
}

function myDispMessageInfo( sMessage )
{
	
	MsgTag.innerHTML = '' + sMessage + ''
	MsgTable.style.display='block';

    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    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 GetGivenDriverInfoFromServerByDriverID( UserID , DriverID )
{
    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:GetDriverInfoByDriverID xmlns:n=\"http:\/\/e-drivers.cn/soap/\">\n"
    SoapRequestXML += "         <DriverID>"                 + DriverID                      + "</DriverID>\n"
    SoapRequestXML += "         <Requester>"                + UserID                      + "</Requester>\n"
    SoapRequestXML += "     </n:GetDriverInfoByDriverID>\n"
	SoapRequestXML += "   </SOAP-ENV:Body>\n"
	SoapRequestXML += "</SOAP-ENV:Envelope>"

	
    
    var ReturnXML = MyXMLHttpRequest( SoapApplyURL , SoapRequestXML )

	if (ReturnXML == null || ReturnXML == "")
	{
        DisplayMessage( "" + PromptArray["drvmisc.js_835_1"] + "," + PromptArray["drvmisc.js_835_2"] + ":\n" + SoapRequestXML )
        RetInfo["Success"] = false
        RetInfo["Info"]    = "" + PromptArray["drvmisc.js_837_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["DriverSize"]    = GetInfoByTagFromXml( ReturnXML, "DriverSize" )
        RetInfo["DriverName"]    = GetInfoByTagFromXml( ReturnXML, "DriverName" )
        RetInfo["ClassName" ]    = GetInfoByTagFromXml( ReturnXML, "ClassName"  )
        RetInfo["Provider"  ]    = GetInfoByTagFromXml( ReturnXML, "Provider"   )
        RetInfo["DriverDecKey"]  = GetInfoByTagFromXml( ReturnXML, "DriverDecKey"   )
        
        
        
        RetInfo["DeviceDesc" ]  = GetInfoByTagFromXml( ReturnXML, "DeviceDesc"   )
        RetInfo["DeviceID"   ]  = GetInfoByTagFromXml( ReturnXML, "DeviceID"     )
        RetInfo["InfName"    ]  = GetInfoByTagFromXml( ReturnXML, "InfName"      )
        RetInfo["Section"    ]  = GetInfoByTagFromXml( ReturnXML, "Section"      )
        RetInfo["DriverHash" ]  = GetInfoByTagFromXml( ReturnXML, "DriverHash"   )
        RetInfo["UserID"     ]  = GetInfoByTagFromXml( ReturnXML, "UserID"       )
        RetInfo["DriverDate" ]  = GetInfoByTagFromXml( ReturnXML, "DriverDate"   )
        RetInfo["DriverVer"  ]  = GetInfoByTagFromXml( ReturnXML, "DriverVer"    )
        RetInfo["OSMajorVer" ]  = GetInfoByTagFromXml( ReturnXML, "OSMajorVer"   )
        RetInfo["OSMinorVer" ]  = GetInfoByTagFromXml( ReturnXML, "OSMinorVer"   )
        RetInfo["OSPlatform" ]  = GetInfoByTagFromXml( ReturnXML, "OSPlatform"   )
        RetInfo["Description"]  = GetInfoByTagFromXml( ReturnXML, "Description"  )
        RetInfo["Host"       ]  = GetInfoByTagFromXml( ReturnXML, "Host"         )
        
		return ( RetInfo )
	}
}

function SubmitCustomDownloadDriverLogToServer( DriverID , SuccessFlag , ErrorInfo )
{
    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:SubmitCustomDownloadDriverLog xmlns:n=\"http:\/\/e-drivers.cn/soap/\">\n"
    SoapRequestXML += "         <DriverID>"     + DriverID                    + "</DriverID>\n"
    SoapRequestXML += "         <Result>"       + SuccessFlag                 + "</Result>\n"
    SoapRequestXML += "         <ErrorInfo>"    + XmlEncoding( ErrorInfo   )  + "</ErrorInfo>\n"
    SoapRequestXML += "     </n:SubmitCustomDownloadDriverLog>\n"
	SoapRequestXML += "   </SOAP-ENV:Body>\n"
	SoapRequestXML += "</SOAP-ENV:Envelope>"

    var ReturnXML = MyXMLHttpRequest( SoapApplyURL , SoapRequestXML )

	if (ReturnXML == null || ReturnXML == "")
	{
        DisplayMessage( "" + PromptArray["drvmisc.js_931_1"] + "," + PromptArray["drvmisc.js_931_2"] + ":\n" + SoapRequestXML )
        RetInfo["Success"] = false
        RetInfo["Info"]    = "" + PromptArray["drvmisc.js_933_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 IfEmailSignUp( Email )
{

	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 += "   </SOAP-ENV:Header>\n"
	SoapRequestXML += "   <SOAP-ENV:Body>\n"
	SoapRequestXML += "     <n:IfEmailSignUp xmlns:n=\"http:\/\/e-drivers.cn/soap/\">\n"
    SoapRequestXML += "     <Email>"       + XmlEncoding( Email )     + "</Email>\n"
	SoapRequestXML += "     </n:IfEmailSignUp>\n"
	SoapRequestXML += "   </SOAP-ENV:Body>\n"
	SoapRequestXML += "</SOAP-ENV:Envelope>"


    var ErrorInfo = ""

    var ReturnXML = MyXMLHttpRequest( SoapApplyURL , SoapRequestXML )
    
    if ( !ReturnXML )
	{
        ErrorInfo = "" + PromptArray["drvmisc.js_981_1"] + "" + ServerName.value + "" + PromptArray["drvmisc.js_981_2"] + ""
        alert( ErrorInfo )
        return false
	}

	ErrorInfo = GetTextByTagFromXml( ReturnXML, SOAP_RET_ERROR_STRING_TAG )

	if (ErrorInfo != null) 
	{
        alert( ErrorInfo )
        return false
	}
	else
	{
        var ResultString = GetTextByTagFromXml( ReturnXML, "Result" )
        return ( ResultString == "true" ) ? true : false
	}
}

function GetHostBandingServiceForOneYearInfo()
{
    var RetInfo         = new Array()
    RetInfo["Success"]  = false

	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 += "   </SOAP-ENV:Header>\n"
	SoapRequestXML += "   <SOAP-ENV:Body>\n"
	SoapRequestXML += "     <n:GetHostBandingServiceForOneYearInfo xmlns:n=\"http:\/\/e-drivers.cn/soap/\">\n"
	SoapRequestXML += "     </n:GetHostBandingServiceForOneYearInfo>\n"
	SoapRequestXML += "   </SOAP-ENV:Body>\n"
	SoapRequestXML += "</SOAP-ENV:Envelope>"


    var ErrorInfo = ""

    var ReturnXML = MyXMLHttpRequest( SoapApplyURL , SoapRequestXML )
    
    if ( !ReturnXML )
	{
        ErrorInfo = "" + PromptArray["drvmisc.js_1027_1"] + "" + ServerName.value + "" + PromptArray["drvmisc.js_1027_2"] + ""
        alert( ErrorInfo )
        return ( RetInfo )
	}

	ErrorInfo = GetTextByTagFromXml( ReturnXML, SOAP_RET_ERROR_STRING_TAG )

	if (ErrorInfo != null) 
	{
        alert( ErrorInfo )
        return ( RetInfo )
	}
	else
	{
        
        
        
        
        
        
        
        
        
        var ResultString = GetTextByTagFromXml( ReturnXML, "Result" )
        RetInfo["Success"       ]  = ( ResultString == "true" ) ? true : false

        RetInfo["InfoID"        ]  = GetTextByTagFromXml( ReturnXML, "InfoID"       )
        RetInfo["Account"       ]  = GetTextByTagFromXml( ReturnXML, "Account"      )
        RetInfo["Host"          ]  = GetTextByTagFromXml( ReturnXML, "Host"         )
        RetInfo["CreateTime"    ]  = GetTextByTagFromXml( ReturnXML, "CreateTime"   )
        RetInfo["BandingTime"   ]  = GetTextByTagFromXml( ReturnXML, "BandingTime"  )
        RetInfo["ExpireTime"    ]  = GetTextByTagFromXml( ReturnXML, "ExpireTime"   )
        RetInfo["Status"        ]  = GetTextByTagFromXml( ReturnXML, "Status"       )
        RetInfo["CurServerTime" ]  = GetTextByTagFromXml( ReturnXML, "CurServerTime")

        return ( RetInfo )
	}
}

function UserBindingServiceForYearToHostPrompt()
{
    if ( g_AmountNumber >= SERVICE_FOR_YEAR_SUB_AMOUNT_POINT )
    {
        var Flag = GetCookie( "IfPromptUserAgainCookie" )
        if ( Flag == "1" )
        {
            DoBandingServiceToHost()
        }
        else
        {
            var ConfirmHTML  = "<span id=DownloadDrvTag><center>&nbsp;&nbsp;" + PromptArray["drvmisc.js_1077_1"] + "" + SERVICE_FOR_YEAR_SUB_AMOUNT_POINT + "" + PromptArray["drvmisc.js_1077_2"] + "&nbsp;&nbsp;<br><br>"
                             + "<input type=button value='" + PromptArray["drvmisc.js_1078_1"] + "' onclick='HideMessageInfo();'>&nbsp;&nbsp;"
                             + "<input type=button value='" + PromptArray["drvmisc.js_1079_1"] + "' onclick='DoBandingServiceToHost(\"Year\");HideMessageInfo();'>"
                             + "<br><br><input type=checkbox id=IfPromptUserAgain onclick='if (this.checked) {SetCookie( \"IfPromptUserAgainCookie\" , \"1\" , true )}'>" + PromptArray["drvmisc.js_1080_1"] + "&nbsp;&nbsp;"
                             + "<br></center></span>"
            myDispMessageInfo( ConfirmHTML )
        }
    }
    else
    {
        var ConfirmHTML  = "<span id=DownloadDrvTag><center>&nbsp;&nbsp;" + PromptArray["drvmisc.js_1087_1"] + "&nbsp;&nbsp;<br><br>"
                         + "<input type=button value='" + PromptArray["drvmisc.js_1088_1"] + "' onclick='HideMessageInfo();'>"
                         + "<br></center></span>"
        myDispMessageInfo( ConfirmHTML )
    }
}


function UserBindingServiceForMonthToHostPrompt()
{
    if ( g_AmountNumber >= SERVICE_FOR_MONTH_SUB_AMOUNT_POINT )
    {
        var Flag = GetCookie( "IfPromptUserAgainCookie" )
        if ( Flag == "1" )
        {
            DoBandingServiceToHost()
        }
        else
        {
            var ConfirmHTML  = "<span id=DownloadDrvTag><center>&nbsp;&nbsp;" + PromptArray["drvmisc.js_1106_1"] + "" + SERVICE_FOR_MONTH_SUB_AMOUNT_POINT + "" + PromptArray["drvmisc.js_1106_2"] + "&nbsp;&nbsp;<br><br>"
                             + "<input type=button value='" + PromptArray["drvmisc.js_1107_1"] + "' onclick='HideMessageInfo();'>&nbsp;&nbsp;"
                             + "<input type=button value='" + PromptArray["drvmisc.js_1108_1"] + "' onclick='DoBandingServiceToHost(\"Month\");HideMessageInfo();'>"
                             + "<br><br><input type=checkbox id=IfPromptUserAgain onclick='if (this.checked) {SetCookie( \"IfPromptUserAgainCookie\" , \"1\" , true )}'>" + PromptArray["drvmisc.js_1109_1"] + "&nbsp;&nbsp;"
                             + "<br></center></span>"
            myDispMessageInfo( ConfirmHTML )
        }
    }
    else
    {
        var ConfirmHTML  = "<span id=DownloadDrvTag><center>&nbsp;&nbsp;" + PromptArray["drvmisc.js_1116_1"] + "&nbsp;&nbsp;<br><br>"
                         + "<input type=button value='" + PromptArray["drvmisc.js_1117_1"] + "' onclick='HideMessageInfo();'>"
                         + "<br></center></span>"
        myDispMessageInfo( ConfirmHTML )
    }
}
