//Copyright 2005-2008 e-Software , All Rights Reserved.
//Written by Gengjian. Email:gengs@163.com
//**Start Encode**
var g_DeviceInfo	= new Array;	
var g_CurRows		= 0;			

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_TableItems = 0;				

var g_ifDisplayInternalErrorInfo = false;


var	g_BackupDrvPrompt				
var	g_OnlyBackupINFPrompt			


var g_DrvInstLogFilePath	= ""    
var g_AppLaunchPath			= ""	
var g_ClientStartPath		= ""	
var g_DrvInstLogFileName	= "drvinst.log"



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 ApplyOnLoad()
{
	
	g_AppLaunchPath = GetHtmlLaunchPath()

	
    var CookieFlag = GetCookie( "OpenRunLogWinFlag" )
	if ( ( CookieFlag == "true") || ( !CookieFlag ) ) restoreTransientMessage()

    
    
    var CancelActiveXFlag = GetCookie( "CancelActiveXFlag" )
    if ( CancelActiveXFlag == "true" )
    {
        oTableContainer.innerHTML = "<center>" + PromptArray["drvinst.js_91_1"] + "<br>" + PromptArray["drvinst.js_91_2"] + "</center>"
        return -2
    }

	

	var hostname;
	var nRet;
	ResetInitVal();

	
	
	
	
	
	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["drvinst.js_140_1"] + "·" + PromptArray["drvinst.js_140_2"] + "..." )



	
	if (DrvInst.DrvInstInit() == 0)
	{
		return -2;
	}
	g_ifDisplayInternalErrorInfo = false;


	EnumButton.outerHTML = '<input type="button" OnClick="OnClickEnumDevice()" value="' + PromptArray["drvinst.js_152_1"] + '">';
    
	
    ShowHidden.outerHTML = '' + PromptArray["drvinst.js_155_1"] + '<INPUT TYPE=CHECKBOX OnClick=ChangeFlag() name="ShowHiddenFlag" value="OFF" >'
                         + '<input type="button" OnClick="OnClickExportDeviceInfo()" value="' + PromptArray["drvinst.js_156_1"] + '">';

	hostname = ServerName.value;
	DrvInst.DownloadHostname = hostname;
	nRet = DrvInst.ConnectAddressLocal(hostname);
	if (nRet)
	{
		DisplayMessage(	"" + PromptArray["drvinst.js_163_1"] + "http:\/\/" + hostname + "" + PromptArray["drvinst.js_163_2"] + "");
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		

	}
	else
	{
		DisplayMessage("" + PromptArray["drvinst.js_183_1"] + "http:\/\/" + hostname + "" + PromptArray["drvinst.js_183_2"] + "");

	}

	
	
	
	
	
	
	
	
	
	
	
	

    
	oTableContainer.innerHTML = "" + PromptArray["drvinst.js_201_1"] + "<br><br>"

	EnumDevice(0);
	return 0;
}





function ResetInitVal()
{
    
    oTableContainer.innerHTML = "" + PromptArray["drvinst.js_214_1"] + "...";
    DrvCert.UIRefresh()

	
	

	DrvInst.DrvInstFinish();

	
	g_ifDisplayInternalErrorInfo = true;

	DrvInst.FinishedPercent	= 0 ;

	

	
	
	

	var UrlPathname = location.pathname;	
	var UrlHostname = location.hostname;	
	
	
	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["drvinst.js_265_1"] + "NULL")
		:DisplayMessage("" + PromptArray["drvinst.js_266_1"] + "" + DrvInst.CurrentWorkDirectory);

	DeleteDeviceTable();
	return 0;
}



function ChangeFlag()
{
	if 	(ShowHiddenFlag.value == "OFF")
	{
		ShowHiddenFlag.value		= "ON" ;
		DrvInst.ShowHiddenDevice	= 1;
	}
	else
	{
		ShowHiddenFlag.value		= "OFF" ;
		DrvInst.ShowHiddenDevice	= 0;
	}		
}



function DisplayBackupIcon(DevIndex,row,innerHTML)
{
	
	if ( (g_DeviceInfo[row + ",5"] == 0x00000000 ) && (!g_DeviceInfo[row + ",3"]) &&
			((g_DeviceInfo[row + ",7"] & 0x00000010) || (g_DeviceInfo[row + ",7"] & 0x00100000))
	   )
	{
		innerHTML += 
			"<img border='0' src='img/backupdrv.gif'"
			+ " alt='" + PromptArray["drvinst.js_299_1"] + "' "
			+ " onMouseMove='this.style.cursor=\"hand\"' "
			+ " width='16' height='16' "
			+ " onClick=DriverBackupProcess(" + row + "," + DevIndex + ")"
			+ " >&nbsp;&nbsp;";
	}
}



function DisplayRestoreIcon(DevIndex,row,innerHTML)
{
	
	if ( (!g_DeviceInfo[row + ",3"]) && (!(g_DeviceInfo[row + ",7"] & 0x00000010)) &&
			( (g_DeviceInfo[row + ",5"] ) || (g_DeviceInfo[row + ",7"] & 0x00100000) )
	   )
	{
		innerHTML += 
			"<img border='0' src='img/restoredrv.gif'"
			+ " alt='" + PromptArray["drvinst.js_318_1"] + "' "
			+ " onMouseMove='this.style.cursor=\"hand\"' "
			+ " width='16' height='16' "
			+ " onClick=DriverRestoreProcess(" + row + "," + DevIndex + ")"
			+ " >&nbsp;&nbsp;";
	}
}



function EnumDevice(EnumMode)
{
	DisplayMessage("" + PromptArray["drvinst.js_330_1"] + "...");

	g_CurRows=0;		
	g_TableItems=0;
	
	
	if (( EnumMode != 0) && DrvInst.GetSysInstallDrvStatus())
	{
		DisplayMessage("Windows" + PromptArray["drvinst.js_338_1"] + "")
		DisplayMessage("" + PromptArray["drvinst.js_339_1"] + "...");
		DrvInst.EnumDevice(1);
		return 1;
	}
	if (g_oTable) DeleteDeviceTable();
	CreateDeviceTable();
	DrvInst.EnumDevice(0);

	
	var oRow, oCell;
	var i,j;
	var stock	= new Array;
	for (i=0;i<g_CurNewDevice;i++)
	{
		
		g_NewDeviceInfo[i+",0"] = g_TableItems;

		TranslateDeviceInfoToArray(stock , g_NewDeviceInfo , i , g_TableItems);
		
		oRow = document.createElement("TR");
		g_oTBody0.appendChild(oRow);

		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);
		}

		
		g_oTBody0.bgColor = "lemonchiffon";

		g_TableItems++;
	}
	DisplayMessage("" + PromptArray["drvinst.js_381_1"] + "");
}



function DetectNewDevice()
{

	var j;

	DisplayMessage("" + PromptArray["drvinst.js_391_1"] + "...");

	
	for (j = g_CurNewDevice-1; j>=0; j--)
	{
		
		g_oTBody0.deleteRow(g_NewDeviceInfo[j+",0"]);
		g_TableItems--;
	}

	
	g_CurNewDevice = 0;

	DrvInst.DetectNewDevice();

	DisplayMessage("" + PromptArray["drvinst.js_406_1"] + "");

}




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] = "" + PromptArray["drvinst.js_438_1"] + "";
	heading[1] = "" + PromptArray["drvinst.js_439_1"] + "";
	heading[2] = "" + PromptArray["drvinst.js_440_1"] + "";
	heading[3] = "" + PromptArray["drvinst.js_441_1"] + "";
	heading[4] = "" + PromptArray["drvinst.js_442_1"] + "";
	heading[5] = "" + PromptArray["drvinst.js_443_1"] + "";
	heading[6] = "" + PromptArray["drvinst.js_444_1"] + "";
	heading[7] = "&nbsp;&nbsp;" + PromptArray["drvinst.js_445_1"] + "</a>";

	
	g_oTable		= document.createElement("TABLE");
	g_oTBody0		= document.createElement("TBODY");
	
	var oTHead	= document.createElement("THEAD");
	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("TH");
	  oCell.innerHTML = heading[i];
	  if (i==7) oCell.align		= "left";
	  oRow.appendChild(oCell);
	}

	
	oRow = document.createElement("TR");
	oTFoot.appendChild(oRow);

	oCell = document.createElement("TD");
	oRow.appendChild(oCell);

	oCell.innerHTML = "<br><br>";
	oCell.align		= "center";
	oCell.colSpan = g_maxcols;
	
	

	
	oCaption.innerHTML = ""
	
	oCaption.align = "bottom";

	
	oTableContainer.appendChild(g_oTable);
}




function DeleteDeviceTable()
{
	if (g_oTable)	g_oTable.removeNode(true);
}

function ApplyEnumDeviceEvent()
{
	var oRow, oCell;
	var j;
	var stock = new Array;

	
	GetDeviceInfoToArray(stock);
	
	SaveDeviceInfoToArray(stock,g_DeviceInfo,g_CurRows);
	
	
	TranslateDeviceInfoToArray(stock,g_DeviceInfo,g_CurRows,g_TableItems);
	
	
	oRow = document.createElement("TR");
	g_oTBody0.appendChild(oRow);

	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);
	}

	
	

	
	g_CurRows++;
	g_TableItems++;
}

function ApplyDetectNewDeviceEvent()
{
	var oRow, oCell;
	var j;
	var stock	= new Array;

	
	GetDeviceInfoToArray(stock);
	
	SaveDeviceInfoToArray(stock, g_NewDeviceInfo, g_CurNewDevice);
	
	
	TranslateDeviceInfoToArray(stock , g_NewDeviceInfo , g_CurNewDevice , g_TableItems);

	DisplayMessage("" + PromptArray["drvinst.js_574_1"] + "[" + g_NewDeviceInfo[g_CurNewDevice + ",6"] + "]");

	
	
	oRow = document.createElement("TR");
	g_oTBody0.appendChild(oRow);

	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);
	}
	
	

	
	g_CurNewDevice++;
	g_TableItems++;
}
function SaveDeviceInfoToArray(DeviceInfo,SavetoArray,row)
{
	SavetoArray[row + ",0"  ] = g_TableItems;
	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];
}
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" ] ;
}
function GetDeviceInfoToArray(DeviceInfo)
{
	
	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;
}
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["drvinst.js_792_1"] + "";
	DrvBackupStatusFlags[ 2] = 0x00000002 ;  DrvBackupStatusString[ 2] = "" + PromptArray["drvinst.js_793_1"] + "";
	DrvBackupStatusFlags[ 3] = 0x00000004 ;  DrvBackupStatusString[ 3] = "" + PromptArray["drvinst.js_794_1"] + "";
	DrvBackupStatusFlags[ 4] = 0x00000008 ;  DrvBackupStatusString[ 4] = "" + PromptArray["drvinst.js_795_1"] + "";
	DrvBackupStatusFlags[ 5] = 0x00000010 ;  DrvBackupStatusString[ 5] = "" + PromptArray["drvinst.js_796_1"] + "";
	g_BackupDrvPrompt        =  "" + PromptArray["drvinst.js_797_1"] + "," 
	DrvBackupStatusFlags[ 6] = 0x00000020 ;  DrvBackupStatusString[ 6] = "" + PromptArray["drvinst.js_798_1"] + "";			
	DrvBackupStatusFlags[ 7] = 0x00000040 ;  DrvBackupStatusString[ 7] = "" + PromptArray["drvinst.js_799_1"] + "";	
	DrvBackupStatusFlags[ 8] = 0x00000080 ;  DrvBackupStatusString[ 8] = "" + PromptArray["drvinst.js_800_1"] + "";
	DrvBackupStatusFlags[ 9] = 0x00000100 ;  DrvBackupStatusString[ 9] = "" + PromptArray["drvinst.js_801_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["drvinst.js_808_1"] + "";	
	g_OnlyBackupINFPrompt    = "" + PromptArray["drvinst.js_809_1"] + "," 
	DrvBackupStatusFlags[17] = 0x00010000 ;  DrvBackupStatusString[17] = "" + PromptArray["drvinst.js_810_1"] + "";
	DrvBackupStatusFlags[18] = 0x00020000 ;  DrvBackupStatusString[18] = "" + PromptArray["drvinst.js_811_1"] + "";
	DrvBackupStatusFlags[19] = 0x00040000 ;  DrvBackupStatusString[19] = "" + PromptArray["drvinst.js_812_1"] + "";
	DrvBackupStatusFlags[20] = 0x00008000 ;  DrvBackupStatusString[20] = "";
	DrvBackupStatusFlags[21] = 0x00100000 ;  DrvBackupStatusString[21] = "" + PromptArray["drvinst.js_814_1"] + "";
	DrvBackupStatusFlags[22] = 0x00200000 ;  DrvBackupStatusString[22] = "" + PromptArray["drvinst.js_815_1"] + "";
	DrvBackupStatusFlags[23] = 0x00400000 ;  DrvBackupStatusString[23] = "" + PromptArray["drvinst.js_816_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["drvinst.js_862_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["drvinst.js_880_1"] + "'>";
	}
	else if (resu2)
	{
		DeviceInfo["3"]			= "<img border='0' src='img/4.gif'" 
							+ " onMouseMove='this.style.cursor=\"help\"' "
							+ "alt='" + PromptArray["drvinst.js_886_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] + "," ;
		}
	}
	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 
							+ "'>";
	}

	
	
	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"]			= " ";
		}
	}
	
	
	(deviceClass[OrgDeviceInfo[CurrentRow + ",2"]]) 
		? DeviceInfo["6"] = " &nbsp;&nbsp;"
					+ "<a style='color: green;font-style: normal;font-family: " + PromptArray["drvinst.js_963_1"] + ";'"
					+ " VALIGN='top'"
					+ " onMouseMove='this.style.color=\"red\";this.style.cursor=\"hand\"'"
					+ " onMouseOut='this.style.color=\"green\";this.style.fontStyle=\"normal\";'"
					+ " onClick=OpenDeviceProcess(" + ItemNumber + "," + DeviceInfo["1"] + ")"
					+ " >"
					+ OrgDeviceInfo[CurrentRow + ",6"] 
					+ "</a>&nbsp;&nbsp;"
		: DeviceInfo["6"] =" &nbsp;&nbsp;"
					+ "<SPAN style='color: green;font-style: normal;font-family: " + PromptArray["drvinst.js_972_1"] + ";'"
					+ " VALIGN='top'"
					+ " onMouseMove='this.style.color=\"red\";this.style.cursor=\"hand\"'"
					+ " onMouseOut='this.style.color=\"green\";this.style.fontStyle=\"normal\";'"
					+ " onClick=OpenDeviceProcess(" + ItemNumber + "," + DeviceInfo["1"] + ")"
					+ " >" 
					+ OrgDeviceInfo[CurrentRow + ",6"] 
					+ "</SPAN>&nbsp;&nbsp;"


	
	
	
	var str = "";
	var Stat = OrgDeviceInfo[CurrentRow + ",7"];

	
	if 	(!(Stat & 0x00000010))
	{
		
		
		if (Stat &  0x00000080)
		{
		}
		
		else
		{
			str += g_BackupDrvPrompt	
		}
		
	}
	
	
	if 	(!(Stat & 0x00080000))   
	{
		str += g_OnlyBackupINFPrompt	
	}
	
	
	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] + "," ;
		}
	}
	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 
							+ "'>";
	}
}

function OpenDeviceProcess(row,DevIndex)
{
	
	if (row>=g_CurRows)
	{
		DisplayMessage("" + PromptArray["drvinst.js_1084_1"] + "[" + g_NewDeviceInfo[ (row - g_CurRows) + ",6"] + "]");
		DeviceProcess(row,DevIndex);
	}
	else
	{
		DisplayMessage("" + PromptArray["drvinst.js_1089_1"] + "[" + g_DeviceInfo[row + ",6"] + "](#" + DevIndex + ")");
		DeviceProcess(row,DevIndex);
	}
}
function DeviceProcess(row,DevIndex)
{
	
	var DeviceInfo = new Array;
	var OrgDeviceInfo = new Array;

	var DeviceNumber,TableItem;
	var DeviceName;
	
	if (row>=g_CurRows)
	{
		DeviceNumber = row - g_CurRows;
		TableItem	 = row;
		DeviceName = g_NewDeviceInfo[DeviceNumber + ",6"];
		TranslateDeviceInfoToArray(DeviceInfo,g_NewDeviceInfo,DeviceNumber,TableItem);
		ReadArrayToDeviceInfo(OrgDeviceInfo,g_NewDeviceInfo,DeviceNumber);
	}
	else
	{
		DeviceNumber = row ;
		TableItem	 = row;
		DeviceName = g_DeviceInfo[row + ",6"];
		TranslateDeviceInfoToArray(DeviceInfo,g_DeviceInfo,DeviceNumber,TableItem);
		ReadArrayToDeviceInfo(OrgDeviceInfo,g_DeviceInfo,DeviceNumber);
	}

	
	
	g_oTBody0.deleteRow(row);

	
	oRow = g_oTBody0.insertRow(TableItem);

	oCell = document.createElement("TD");
	oCell.innerHTML	= DeviceInfo[7];
	oCell.vAlign	="top"; 
	oCell.align		="center";
	oRow.appendChild(oCell);

	oCell = document.createElement("TD");
	oCell.innerHTML	= DeviceInfo[3];
	oCell.vAlign	="top"; 
	oCell.align		="center";
	oRow.appendChild(oCell);

	oCell = document.createElement("TD");
	oCell.innerHTML	= DeviceInfo[4];
	oCell.vAlign	="top"; 
	oCell.align		="center";
	oRow.appendChild(oCell);

	oCell = document.createElement("TD");
	oCell.innerHTML	= DeviceInfo[5];
	oCell.vAlign	="top"; 
	oCell.align		="center";
	oRow.appendChild(oCell);
	
	oCell = document.createElement("TD");
	oCell.innerHTML	= DeviceInfo[2];
	oCell.vAlign	="top"; 
	oCell.align		="center";
	oRow.appendChild(oCell);

	oCell = document.createElement("TD");
    
	oCell.align		="left";
    
	var innerHTML = "&nbsp;&nbsp;"
					+ "<SPAN style='color: red;font-style: normal;font-family: " + PromptArray["drvinst.js_1161_1"] + ";' "
					
					+ " onMouseMove='this.style.color=\"red\";this.style.cursor=\"hand\"'"
					+ " onMouseOut='this.style.color=\"green\";this.style.fontStyle=\"normal\";'"
					+ " onClick=OpenDeviceUnProcess(" + TableItem + "," + DeviceInfo["1"] + ")"
					+ ">" + DeviceName
					+ "</SPAN>&nbsp;&nbsp;"
					+ "<br>&nbsp;&nbsp&nbsp;&nbsp&nbsp;&nbsp&nbsp;&nbsp;";
	if (DevIndex>=0)
	{
		innerHTML   +="<img border='0' src='img/deletedev.gif'"
					+ "alt='" + PromptArray["drvinst.js_1172_1"] + "' "
					+ " onMouseMove='this.style.cursor=\"hand\"' "
					+ " width='16' height='16' "
					+ " onClick=DeviceDeleteProcess(" + TableItem + "," + DevIndex + ")"
					+ " >&nbsp;&nbsp;";
	}
	
	if ( OrgDeviceInfo[4] & 0x00002000 )
	{
		
		if (OrgDeviceInfo[5] == 0x00000016 ) 
		{
			innerHTML += 
					  "&nbsp;<img border='0' src='img/enable.gif'"
					+ " alt='" + PromptArray["drvinst.js_1186_1"] + "' "
					+ " onMouseMove='this.style.cursor=\"hand\"' "
					+ " width='16' height='16' "
					+ " onClick=DeviceEnableProcess(" + TableItem + "," + DevIndex + ")"
					+ " >&nbsp;&nbsp;";
		}
		else
		{
			innerHTML += 
					  " <img border='0' src='img/disable.gif'"
					+ " alt='" + PromptArray["drvinst.js_1196_1"] + "' "
					+ " onMouseMove='this.style.cursor=\"hand\"' "
					+ " width='16' height='16' "
					+ " onClick=DeviceDisableProcess(" + TableItem + "," + DevIndex + ")"
					+ " >&nbsp;&nbsp;";
		}
	}

	
	if ( (OrgDeviceInfo[5] == 0x00000000 ) && (!OrgDeviceInfo[3]) &&
			((OrgDeviceInfo[7] & 0x00000010) || (OrgDeviceInfo[7] & 0x00200000))
	   )
	{
		innerHTML += 
			"<img border='0' src='img/backupdrv.gif'"
			+ " alt='" + PromptArray["drvinst.js_1211_1"] + "' "
			+ " onMouseMove='this.style.cursor=\"hand\"' "
			+ " width='16' height='16' "
			+ " onClick=DriverBackupProcess(" + TableItem + "," + DevIndex + ")"
			+ " >&nbsp;&nbsp;";
	}
	

	
	
	
	
	
	
	
	
	
	
	
	
	

	
	if ( (DevIndex>=0) && (!OrgDeviceInfo[3]) && (!(OrgDeviceInfo[7] & 0x00000010)) &&
			( (OrgDeviceInfo[5] ) || (OrgDeviceInfo[4] & ( 0x00000100 | 0x00000400 )) || (OrgDeviceInfo[7] & 0x00100000) )
	   )
	{
		innerHTML += 
			 "<img border='0' src='img/restoredrv.gif'"
			+ " alt='" + PromptArray["drvinst.js_1240_1"] + "' "
			+ " onMouseMove='this.style.cursor=\"hand\"' "
			+ " width='16' height='16' "
			+ " onClick=DriverRestoreProcess(" + TableItem + "," + DevIndex + ")"
			+ " >&nbsp;&nbsp;";
	}
	

    
	
	
	
	
	
	
	
	
	
	
	
	
	

	
	if (DevIndex<0) 
	{
		innerHTML += 
			"<img border='0' src='img/game.gif'"
			+ " alt='" + PromptArray["drvinst.js_1268_1"] + "' "
			+ " onMouseMove='this.style.cursor=\"hand\"' "
			+ " width='16' height='16' "
			+ " onClick=FindoutDeviceProcess(" + TableItem + "," + DevIndex + ")"
			+ " >&nbsp;&nbsp;";
	}
    
    
	
	
	
	
	
	
	
	
	
	
	

	
	if ( (DevIndex>=0) && (!OrgDeviceInfo[3]) && (OrgDeviceInfo[7] & 0x00080000 ) )
	{
		innerHTML += 
			"<img border='0' src='img/deletedrv.gif'"
			+ " alt='" + PromptArray["drvinst.js_1293_1"] + "' "
			+ " onMouseMove='this.style.cursor=\"hand\"' "
			+ " width='16' height='16' "
			+ " onClick=DriverDeleteProcess(" + TableItem + "," + DevIndex + ")"
			+ " >&nbsp;&nbsp;";
	}
    
	

	
	
	
	if  ( (DevIndex>=0) && (!OrgDeviceInfo[3]) && (OrgDeviceInfo[5]) )
	{
		innerHTML += 
			"<img border='0' src='img/instdrv.gif'"
			+ " alt='" + PromptArray["drvinst.js_1309_1"] + "' "
			+ " onMouseMove='this.style.cursor=\"hand\"' "
			+ " width='16' height='16' "
			+ " onClick=DriverInstallProcess(" + TableItem + "," + DevIndex + ")"
			+ " >&nbsp;&nbsp;";
	}

	
	
	
	if  ( (DevIndex>=0) && (!OrgDeviceInfo[3]) && (OrgDeviceInfo[5]) )
	{
		innerHTML += 
			"<img border='0' src='img/download.gif'"
			+ " alt='" + PromptArray["drvinst.js_1323_1"] + "' "
			+ " onMouseMove='this.style.cursor=\"hand\"' "
			+ " width='16' height='16' "
			+ " onClick=DownloadDriverProcess(" + TableItem + "," + DevIndex + ")"
			+ " >&nbsp;&nbsp;";
	}

	oCell.innerHTML	= innerHTML ;			
	oCell.vAlign	="top"; 
	oRow.appendChild(oCell);
}

function OpenDeviceUnProcess(row,DevIndex)
{
	
	if (row>=g_CurRows)
	{
		DisplayMessage("" + PromptArray["drvinst.js_1340_1"] + "[" + g_NewDeviceInfo[ (row - g_CurRows) + ",6"] + "]");
		DeviceUnProcess(row,DevIndex);
	}
	else
	{
		DisplayMessage("" + PromptArray["drvinst.js_1345_1"] + "[" + g_DeviceInfo[row + ",6"] + "](#" + DevIndex + ")");
		DeviceUnProcess(row,DevIndex);
	}
}
function DeviceUnProcess(row,DevIndex)
{
	

	var DeviceInfo = new Array;
	var DeviceNumber;
	
	if (row>=g_CurRows)
	{
		DeviceNumber = row - g_CurRows;
		TranslateDeviceInfoToArray(DeviceInfo,g_NewDeviceInfo,DeviceNumber,row);
	}
	else
	{
		TranslateDeviceInfoToArray(DeviceInfo,g_DeviceInfo,row,row);
	}

	
	
	g_oTBody0.deleteRow(row);

	
	oRow = g_oTBody0.insertRow(row);

	oCell = document.createElement("TD");
	oCell.innerHTML	= DeviceInfo[7];
	oCell.vAlign	="top"; 
	oCell.align		="center";
	oRow.appendChild(oCell);

	oCell = document.createElement("TD");
	oCell.innerHTML	= DeviceInfo[3];
	oCell.vAlign	="top"; 
	oCell.align		="center";
	oRow.appendChild(oCell);

	oCell = document.createElement("TD");
	oCell.innerHTML	= DeviceInfo[4];
	oCell.vAlign	="top"; 
	oCell.align		="center";
	oRow.appendChild(oCell);

	oCell = document.createElement("TD");
	oCell.innerHTML	= DeviceInfo[5];
	oCell.vAlign	="top"; 
	oCell.align		="center";
	oRow.appendChild(oCell);
	
	oCell = document.createElement("TD");
	oCell.innerHTML	= DeviceInfo[2];
	oCell.vAlign	="top"; 
	oCell.align		="center";
	oRow.appendChild(oCell);

	oCell = document.createElement("TD");
	oCell.innerHTML	= DeviceInfo[6];
	oCell.vAlign	="top"; 
    
	oCell.align		="left";
    
	oRow.appendChild(oCell);
	
}
function DeviceDisableProcess(row,DevIndex)
{
	DisplayMessage("" + PromptArray["drvinst.js_1414_1"] + "[" + g_DeviceInfo[row + ",6"] + "](#" + DevIndex + ")...");

	var oRow,oCell;
	var flag = 0;
	var DeviceInfo = new Array;





	flag = DrvInst.DisableDevice(DevIndex);

	if (flag == 0)
	{
		
		
		flag = DrvInst.GetDeviceStatus(DevIndex);
		if (flag !=0) 
		{
			

			DisplayMessage("" + PromptArray["drvinst.js_1435_1"] + "[" + g_DeviceInfo[row + ",6"] + "](#" + DevIndex + ")" + PromptArray["drvinst.js_1435_2"] + "");
			return 2;
		}
		else
		{
			DisplayMessage("" + PromptArray["drvinst.js_1440_1"] + "[" + g_DeviceInfo[row + ",6"] + "](#" + DevIndex + ")" + PromptArray["drvinst.js_1440_2"] + "");
			
			GetDeviceInfoToArray(DeviceInfo);
			

			
			
			
				DeviceInfo[4] |= 0x00000400 ; 
				DeviceInfo[5]  = 0x00000016 ; 
			
			
			SaveDeviceInfoToArray(DeviceInfo,g_DeviceInfo,row);
			DeviceProcess(row,DevIndex);
			return 0;
			
			
		}
	}
	else
	{
		
		DisplayMessage("" + PromptArray["drvinst.js_1462_1"] + "[" + g_DeviceInfo[row + ",6"] + "](#" + DevIndex + ")" + PromptArray["drvinst.js_1462_2"] + "(error=" + flag.toString(16) + ")");
		return 1;
	}






}
function DeviceEnableProcess(row,DevIndex)
{
	DisplayMessage("" + PromptArray["drvinst.js_1474_1"] + "[" + g_DeviceInfo[row + ",6"] + "](#" + DevIndex + ")...");
	
	var oRow,oCell;
	var flag = 0;
	var DeviceInfo = new Array;


	

	flag = DrvInst.EnableDevice(DevIndex);

	if (flag == 0)
	{
		
		
		flag = DrvInst.GetDeviceStatus(DevIndex);
		if (flag !=0) 
		{
			
			DisplayMessage("" + PromptArray["drvinst.js_1493_1"] + "[" + g_DeviceInfo[row + ",6"] + "](#" + DevIndex + ")" + PromptArray["drvinst.js_1493_2"] + "");
			return 2;
		}
		else
		{

			DisplayMessage("" + PromptArray["drvinst.js_1499_1"] + "[" + g_DeviceInfo[row + ",6"] + "](#" + DevIndex + ")" + PromptArray["drvinst.js_1499_2"] + "");
			
			GetDeviceInfoToArray(DeviceInfo);
			
			
			
				DeviceInfo[4] &= 0xFFFFFBFF ; 
				if (DeviceInfo[5] == 0x00000016)
					DeviceInfo[5]  = 0;			
			
			
			SaveDeviceInfoToArray(DeviceInfo,g_DeviceInfo,row);

			DeviceProcess(row,DevIndex);
			return 0;
			
			
		}

	}
	else
	{
		
		DisplayMessage("" + PromptArray["drvinst.js_1522_1"] + "[" + g_DeviceInfo[row + ",6"] + "](#" + DevIndex + ")" + PromptArray["drvinst.js_1522_2"] + "");
		return 1;
	}



}
function DeviceDeleteProcess(row,DevIndex)
{
	DisplayMessage("" + PromptArray["drvinst.js_1531_1"] + "[" + g_DeviceInfo[row + ",6"] + "](#" + DevIndex + ")...");
	var oRow,oCell;
	var retVal = 0;
	var DeviceInfo = new Array;

	retVal = DrvInst.DelDevice(DevIndex);

	if (retVal != 0)
	{
		
		DisplayMessage("" + PromptArray["drvinst.js_1541_1"] + "[" + g_DeviceInfo[row + ",6"] + "](#" + DevIndex + ")" + PromptArray["drvinst.js_1541_2"] + "");
		return 0;
	}
	DisplayMessage("" + PromptArray["drvinst.js_1544_1"] + "[" + g_DeviceInfo[row + ",6"] + "](#" + DevIndex + ")" + PromptArray["drvinst.js_1544_2"] + "");


	
	TranslateDeviceInfoToArray(DeviceInfo,g_DeviceInfo,row,row);























	
	g_oTBody0.deleteRow(row);

	
	oRow = g_oTBody0.insertRow(row);

	oCell = document.createElement("TD");
	oCell.innerHTML	= "";
	oRow.appendChild(oCell);

	oCell = document.createElement("TD");
	oCell.innerHTML	= "";
	oRow.appendChild(oCell);

	oCell = document.createElement("TD");
	oCell.innerHTML	= "";
	oRow.appendChild(oCell);

	oCell = document.createElement("TD");
	oCell.innerHTML	= "<img src='img/error2.gif'"
					+ " onMouseMove='this.style.cursor=\"help\"' "
					+ " width='16' height='16' "
					+ " alt='" + PromptArray["drvinst.js_1594_1"] + "'>";
	oRow.appendChild(oCell);
	
	oCell = document.createElement("TD");
	oCell.innerHTML	= "";
	oRow.appendChild(oCell);

	oCell = document.createElement("TD");
	oCell.innerHTML	= "&nbsp;&nbsp;"
					+ "<SPAN style='color: red;font-style: normal;font-family: " + PromptArray["drvinst.js_1603_1"] + ";'"
					
					+ ">"
					+ "<strike>" + g_DeviceInfo[row + ",6"] + "</strike></SPAN>&nbsp;&nbsp;";

	oCell.vAlign	="top"; 
	oRow.appendChild(oCell);
	
	


}
function DriverBackupProcess(row,DevIndex)
{
	DisplayMessage("" + PromptArray["drvinst.js_1617_1"] + "[" + g_DeviceInfo[row + ",6"] + "](#" + DevIndex + ")" + PromptArray["drvinst.js_1617_2"] + "...");

	var oRow,oCell;
	var flag = 0;
	var DeviceInfo = new Array;

	flag = DrvInst.BackupDriver(DevIndex);

	if (flag != 0)
	{
		
		DisplayMessage("" + PromptArray["drvinst.js_1628_1"] + "[" + g_DeviceInfo[row + ",6"] + "](#" + DevIndex + ")" + PromptArray["drvinst.js_1628_2"] + "");
		return 1;
	}

	flag = DrvInst.GetDeviceStatus(DevIndex);
	if (flag !=0) 
	{
		
		DisplayMessage("" + PromptArray["drvinst.js_1636_1"] + "[" + g_DeviceInfo[row + ",6"] + "](#" + DevIndex + ")" + PromptArray["drvinst.js_1636_2"] + "");
		return 2;
	}
	DisplayMessage("" + PromptArray["drvinst.js_1639_1"] + "[" + g_DeviceInfo[row + ",6"] + "](#" + DevIndex + ")" + PromptArray["drvinst.js_1639_2"] + "");

	
	GetDeviceInfoToArray(DeviceInfo);
	
	SaveDeviceInfoToArray(DeviceInfo,g_DeviceInfo,row);
	
	DeviceProcess(row,DevIndex);

	return 0;

}

function DriverRestoreProcess(row,DevIndex)
{
	DisplayMessage("" + PromptArray["drvinst.js_1654_1"] + "[" + g_DeviceInfo[row + ",6"] + "](#" + DevIndex + ")" + PromptArray["drvinst.js_1654_2"] + "...");

	var oRow,oCell;
	var flag = 0;
	var DeviceInfo = new Array;

	
	if ( (g_DeviceInfo[row + ",7"] & 0x00080000) && ( (!(g_DeviceInfo[row + ",7"] & 0x00040000)) || (g_DeviceInfo[row + ",7"] & 0x00000001) ) )
	{
		var Prompt = "" + PromptArray["drvinst.js_1663_1"] + "\n" + PromptArray["drvinst.js_1663_2"] + "";
		
		if (!confirm(Prompt))
		{
			return 3;
		}
	}

	
	 if ( !((g_DeviceInfo[row + ",7"]) & 0x00080000) ) DriverDistributeProcess(row , DevIndex);

	


	flag = DrvInst.RestoreDriver(DevIndex);

	if (flag != 0)
	{
		
		DisplayMessage("" + PromptArray["drvinst.js_1682_1"] + "[" + g_DeviceInfo[row + ",6"] + "](#" + DevIndex + ")" + PromptArray["drvinst.js_1682_2"] + "");
		return 1;
	}

	flag = DrvInst.GetDeviceStatus(DevIndex);
	if (flag !=0) 
	{
		
		DisplayMessage("" + PromptArray["drvinst.js_1690_1"] + "[" + g_DeviceInfo[row + ",6"] + "](#" + DevIndex + ")" + PromptArray["drvinst.js_1690_2"] + "");
		return 2;
	}
	DisplayMessage("" + PromptArray["drvinst.js_1693_1"] + "[" + g_DeviceInfo[row + ",6"] + "](#" + DevIndex + ")" + PromptArray["drvinst.js_1693_2"] + "");

	
	GetDeviceInfoToArray(DeviceInfo);
	
	SaveDeviceInfoToArray(DeviceInfo,g_DeviceInfo,row);

	DeviceProcess(row,DevIndex);

	return 0;

}

function DriverRollbackProcess(row,DevIndex)
{
	DisplayMessage("" + PromptArray["drvinst.js_1708_1"] + "[" + g_DeviceInfo[row + ",6"] + "](#" + DevIndex + ")" + PromptArray["drvinst.js_1708_2"] + "...");

	var oRow,oCell;
	var flag = 0;
	var DeviceInfo = new Array;


	flag = DrvInst.RollbackDriver(DevIndex);

	if (flag != 0)
	{
		DisplayMessage("" + PromptArray["drvinst.js_1719_1"] + "[" + g_DeviceInfo[row + ",6"] + "](#" + DevIndex + ")" + PromptArray["drvinst.js_1719_2"] + "");
		return 1;
	}

	flag = DrvInst.GetDeviceStatus(DevIndex);
	if (flag !=0) 
	{
		DisplayMessage("" + PromptArray["drvinst.js_1726_1"] + "[" + g_DeviceInfo[row + ",6"] + "](#" + DevIndex + ")" + PromptArray["drvinst.js_1726_2"] + "");
		return 2;
	}
	DisplayMessage("" + PromptArray["drvinst.js_1729_1"] + "[" + g_DeviceInfo[row + ",6"] + "](#" + DevIndex + ")" + PromptArray["drvinst.js_1729_2"] + "");

	
	GetDeviceInfoToArray(DeviceInfo);
	
	SaveDeviceInfoToArray(DeviceInfo,g_DeviceInfo,row);

	DeviceProcess(row,DevIndex);

	return 0;

}

function DriverDeleteProcess(row,DevIndex)
{
	DisplayMessage("" + PromptArray["drvinst.js_1744_1"] + "[" + g_DeviceInfo[row + ",6"] + "](#" + DevIndex + ")" + PromptArray["drvinst.js_1744_2"] + "...");
	var DeviceInfo = new Array;
	var OrgDeviceInfo = new Array;

	var DeviceNumber,TableItem;
	var DeviceName,flag;

	var err ;
	var Prompt = "" + PromptArray["drvinst.js_1752_1"] + "\n" + PromptArray["drvinst.js_1752_2"] + "";
	
	if (!confirm(Prompt))
	{
		return 0;
	}

	
	if (row>=g_CurRows)
	{
		DeviceNumber = row - g_CurRows;
		TableItem	 = row;
		DeviceName = g_NewDeviceInfo[DeviceNumber + ",6"];
		TranslateDeviceInfoToArray(DeviceInfo,g_NewDeviceInfo,DeviceNumber,TableItem);
		ReadArrayToDeviceInfo(OrgDeviceInfo,g_NewDeviceInfo,DeviceNumber);
	}
	else
	{
		DeviceNumber = row ;
		TableItem	 = row;
		DeviceName = g_DeviceInfo[row + ",6"];
		TranslateDeviceInfoToArray(DeviceInfo,g_DeviceInfo,DeviceNumber,TableItem);
		ReadArrayToDeviceInfo(OrgDeviceInfo,g_DeviceInfo,DeviceNumber);
	}

	
	
	if ( (OrgDeviceInfo[5] == 0x00000000 ) && (!OrgDeviceInfo[3]) &&
			((OrgDeviceInfo[7] & 0x00000010) || (OrgDeviceInfo[7] & 0x00200000))
	   )
	{
		if (confirm("" + PromptArray["drvinst.js_1783_1"] + "\n" + PromptArray["drvinst.js_1783_2"] + "")) 
		{
			flag = DrvInst.BackupDriver(DevIndex);
			flag = 0;
			if (flag != 0)
			{
				DisplayMessage("" + PromptArray["drvinst.js_1789_1"] + "[" + g_DeviceInfo[row + ",6"] + "](#" + DevIndex + ")" + PromptArray["drvinst.js_1789_2"] + "(error=" + flag.toString(16) + ")");
			}
		}
	}

	
	err = DrvInst.DelDriver(DevIndex);
    
	if (err !=0)
	{
		
		DisplayMessage("" + PromptArray["drvinst.js_1800_1"] + "[" + g_DeviceInfo[row + ",6"] + "](#" + DevIndex + ")" + PromptArray["drvinst.js_1800_2"] + "");
	}
    else
    {
	    DisplayMessage("" + PromptArray["drvinst.js_1804_1"] + "[" + g_DeviceInfo[row + ",6"] + "](#" + DevIndex + ")" + PromptArray["drvinst.js_1804_2"] + "");
    }

    
    
    
	

    
	DisplayMessage("" + PromptArray["drvinst.js_1813_1"] + "[" + g_DeviceInfo[row + ",6"] + "](#" + DevIndex + ")" + PromptArray["drvinst.js_1813_2"] + "...");
	
	DeviceDeleteProcess( row , DevIndex );

 return 0;
}
function DriverDistributeProcess(row,DevIndex)
{
	DisplayMessage("" + PromptArray["drvinst.js_1821_1"] + "[" + g_DeviceInfo[row + ",6"] + "](#" + DevIndex + ")" + PromptArray["drvinst.js_1821_2"] + "...");

	var flag = 0;

	flag = DrvInst.DistributeDriver(DevIndex);

	if (flag != 0)
	{
		
		DisplayMessage("" + PromptArray["drvinst.js_1830_1"] + "[" + g_DeviceInfo[row + ",6"] + "](#" + DevIndex + ")" + PromptArray["drvinst.js_1830_2"] + "");
		return 1;
	}
	DisplayMessage("" + PromptArray["drvinst.js_1833_1"] + "[" + g_DeviceInfo[row + ",6"] + "](#" + DevIndex + ")" + PromptArray["drvinst.js_1833_2"] + "");
}
function FindoutDeviceProcess(row,DevIndex)
{
	DisplayMessage("" + PromptArray["drvinst.js_1837_1"] + "[" + g_NewDeviceInfo[ (row - g_CurRows) + ",6"] + "]...");

	g_CurNewDevice	= 0;
	DrvInst.ReenumDevice();
	EnumDevice(1);
	return 0;
}
function ApplyReEnumDevicesEvent()
{
	EnumDevice(1);
	return 0;
}
function ApplyCheckUnknownDevStatusEvent()
{
	return 0;

	var row = 0;
	for (row = 0 ; row <= g_CurRows ; row++)
	{
		var DevIndex = g_DeviceInfo[row + ",1"];
		var DevClass = g_DeviceInfo[row + ",2"];
		var DevName  = g_DeviceInfo[row + ",6"];
		if ( DevClass == 0) 
		{
			alert("DevName : " + DevName + " Device index: " + DevIndex + "\nDevice Class: " + DevClass);
			flag = DrvInst.GetDeviceStatus(DevIndex);

			
			GetDeviceInfoToArray(DeviceInfo);
			
			SaveDeviceInfoToArray(DeviceInfo,g_DeviceInfo,row);

			DeviceProcess(row,DevIndex);
			return 0;

		}
	}
return 0;
}
function DeviceMouseMoveInEvent(row)
{

}
function DeviceMouseMoveOutEvent(row)
{

}
function DriverInstallProcess(row,DevIndex)
{

	DisplayMessage("" + PromptArray["drvinst.js_1887_1"] + "[" + g_DeviceInfo[row + ",6"] + "](#" + DevIndex + ")" + PromptArray["drvinst.js_1887_2"] + "...");

	var DeviceInfo = new Array;
























    var Folder = DrvCert.BrowseFolder( "" + PromptArray["drvinst.js_1914_1"] + "" )
	if (!Folder)
	{
		DisplayMessage("" + PromptArray["drvinst.js_1917_1"] + "[" + g_DeviceInfo[row + ",6"] + "](#" + DevIndex + ")" + PromptArray["drvinst.js_1917_2"] + "," + PromptArray["drvinst.js_1917_3"] + "");
		return 1;
	}
	else
	{
		var err = DrvInst.InstallDriver( Folder ,DevIndex );
		if (err) 
		{
			
			DisplayMessage("" + PromptArray["drvinst.js_1926_1"] + "[" + g_DeviceInfo[row + ",6"] + "](#" + DevIndex + ")" + PromptArray["drvinst.js_1926_2"] + "");
			return 3;
		}
	}

	var flag = DrvInst.GetDeviceStatus(DevIndex);
	if (flag !=0) 
	{
		
		DisplayMessage("" + PromptArray["drvinst.js_1935_1"] + "[" + g_DeviceInfo[row + ",6"] + "](#" + DevIndex + ")" + PromptArray["drvinst.js_1935_2"] + "");
		return 2;
	}
	DisplayMessage("" + PromptArray["drvinst.js_1938_1"] + "[" + g_DeviceInfo[row + ",6"] + "](#" + DevIndex + ")" + PromptArray["drvinst.js_1938_2"] + "");


	
	GetDeviceInfoToArray(DeviceInfo);
	
	
	SaveDeviceInfoToArray(DeviceInfo,g_DeviceInfo,row);

	DeviceProcess(row,DevIndex);

	return 0;

}
function SetupDrvinst()
{
	var SetupPath;

	DrvInst.CurrentWorkDirectory = "c:\\Temp";

	SetupPath = DrvInst.InstallDrvInst();
	if ( SetupPath == "") 
	{
		alert("Setup failed!");
	}
	else
	{
		alert("Install Drvinst to :\t" + SetupPath);
	}
}
function OnClickEnumDevice()
{
	DisplayMessage("" + PromptArray["drvinst.js_1970_1"] + "...");
	DrvInst.ReenumDevice();
	DisplayMessage("" + PromptArray["drvinst.js_1972_1"] + "");
	EnumDevice(1);
}
function DownloadDriverProcess( row , DevIndex )
{
	SetFullPercent( 0 , 5 )
	var CurDeviceInfo = new Array()
	ReadArrayToDeviceInfo( CurDeviceInfo , g_DeviceInfo , row )

	var DeviceInfo = new Array()
	DeviceInfo["DeviceRow"			]	= CurDeviceInfo[0]
	DeviceInfo["DeviceIndex"		]	= CurDeviceInfo[1]
	DeviceInfo["DeviceClassID"		]	= CurDeviceInfo[2]
	DeviceInfo["DeviceClassType"	]	= CurDeviceInfo[3]
	DeviceInfo["DeviceStatus"		]	= CurDeviceInfo[4]
	DeviceInfo["DeviceProblem"		]	= CurDeviceInfo[5]
	DeviceInfo["DeviceName"			]	= CurDeviceInfo[6]
	DeviceInfo["DriverBackupStatus" ]	= CurDeviceInfo[7]
	DeviceInfo["HardwareID"			]	= CurDeviceInfo[8]
	DeviceInfo["CompatibleID"		]	= CurDeviceInfo[9]
	DeviceInfo["MatchingDeviceId"	]	= CurDeviceInfo[10]
	DeviceInfo["DriverDate"			]	= CurDeviceInfo[11]
	DeviceInfo["DriverVer"			]	= CurDeviceInfo[12]
	DeviceInfo["DriverProvider"		]	= CurDeviceInfo[13]

	
	var IfPromptUserSendOutDeviceInfo = GetCookie( "SendOutDeviceInfo" )
	if ( !IfPromptUserSendOutDeviceInfo || IfPromptUserSendOutDeviceInfo == "false" )
	{
		
		
		
		var UserSelected = showModalDialog( HTML_URL_PROMPT_USER_WILL_SEND_OUT_DEVICE_INFO,
											null, 
											'dialogWidth:600px;dialogHeight:450px;center:yes;resizable:yes;');
		if ( !UserSelected )
		{
			DispMessageInfo( "" + PromptArray["drvinst.js_2009_1"] + "<br>" + PromptArray["drvinst.js_2009_2"] + "" )
			return 
		}
	}

	DisplayMessage("" + PromptArray["drvinst.js_2014_1"] + "[" + g_DeviceInfo[row + ",6"] + "](#" + DevIndex + ")" + PromptArray["drvinst.js_2014_2"] + "...");

	SetFullPercent( 5 , 20 )
	
	var DSPDrvInfo		 = SoapAcquireDSPAndDrvInfo( row )
	DSPDrvInfo["DevRow"] = row
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	

	if ( DSPDrvInfo["Success"] != true )
	{
		DisplayMessage("" + PromptArray["drvinst.js_2038_1"] + "[" + g_DeviceInfo[row + ",6"] + "](#" + DevIndex + ")" + PromptArray["drvinst.js_2038_2"] + "(" + PromptArray["drvinst.js_2038_3"] + ")");
		DispMessageInfo( "" + PromptArray["drvinst.js_2039_1"] + "<br>" + DSPDrvInfo["Error"] )
		return
	}

	
	
	
	
	
	
	
	
	SetFullPercent( 20 , 40 )
	
	
	if ( !CheckDSPUserCert( DSPDrvInfo ) )
	{
		
		
		
		DisplayMessage("" + PromptArray["drvinst.js_2059_1"] + "[" + g_DeviceInfo[row + ",6"] + "](#" + DevIndex + ")" + PromptArray["drvinst.js_2059_2"] + "(" + PromptArray["drvinst.js_2059_3"] + "");
		return
	}
	SetFullPercent( 40 , 70 )
	
	var SvcCertInfo = CheckDSPSvcCert( DSPDrvInfo )
    
	
	
	
	
	
	
	
	
	
	
	
	if (!SvcCertInfo["Success"]) 
	{
		
		
		
		DisplayMessage("" + PromptArray["drvinst.js_2082_1"] + "[" + g_DeviceInfo[row + ",6"] + "](#" + DevIndex + ")" + PromptArray["drvinst.js_2082_2"] + "(" + PromptArray["drvinst.js_2082_3"] + ")");
		return
	}

	SetFullPercent( 70 , 85 )
	
	
	var DownloadDrvInfo = SoapAcquireDSPDownloadDrv( SvcCertInfo , DSPDrvInfo , DeviceInfo )
	
	
	
	
	
	
	
	
	
	
	if (!DownloadDrvInfo["Success"])
	{
		
		
		
		DisplayMessage("" + PromptArray["drvinst.js_2105_1"] + "[" + g_DeviceInfo[row + ",6"] + "](#" + DevIndex + ")" + PromptArray["drvinst.js_2105_2"] + "(" + PromptArray["drvinst.js_2105_3"] + ")");
		return
	}
	
	SetFullPercent( 85 , 95 )
	var DeployDrvSuccessFlag = ClientDeployDriver( DownloadDrvInfo , DeviceInfo , SvcCertInfo )
	if ( !DeployDrvSuccessFlag )
	{
		DisplayMessage("" + PromptArray["drvinst.js_2113_1"] + "[" + g_DeviceInfo[row + ",6"] + "](#" + DevIndex + ")" + PromptArray["drvinst.js_2113_2"] + "(" + PromptArray["drvinst.js_2113_3"] + ")");
		return
	}

	var SvcCertContext = FindDSPSvcCertByCertInfo( SvcCertInfo )
	
	if ( SvcCertContext && SvcCertInfo["Class"] == "105" ) 
	{
		DrvCert.DeleteCert( SvcCertContext )
		DrvCert.CloseUserCert( SvcCertContext )
	}

	SetFullPercent( 95 , 100 )
	SetCurProcessBeginEndPercent( 0 , 100 )

	
	var flag = DrvInst.GetDeviceStatus( DevIndex );
	if (flag !=0) 
	{
		
		DisplayMessage("" + PromptArray["drvinst.js_2133_1"] + "[" + g_DeviceInfo[row + ",6"] + "](#" + DevIndex + ")" + PromptArray["drvinst.js_2133_2"] + "");
		return 2;
	}
	else
	{
		DisplayMessage("" + PromptArray["drvinst.js_2138_1"] + "[" + g_DeviceInfo[row + ",6"] + "](#" + DevIndex + ")" + PromptArray["drvinst.js_2138_2"] + "");
	}
	
	GetDeviceInfoToArray( DeviceInfo );
	
	SaveDeviceInfoToArray( DeviceInfo , g_DeviceInfo , row );
	DeviceProcess( row , DevIndex );

	var RestoreDrvHtml = "<img border='0' src='img/restoredrv.gif'"
							+ " alt='" + PromptArray["drvinst.js_2147_1"] + "' "
							+ " onMouseMove='this.style.cursor=\"hand\"' "
							+ " width='16' height='16' "
							+ " onClick=DriverRestoreProcess(" + row + "," + DevIndex + ")"
							+ " > "
	DispMessageInfo( "" + PromptArray["drvinst.js_2152_1"] + "<br>" + PromptArray["drvinst.js_2152_2"] + "" + RestoreDrvHtml + "" + PromptArray["drvinst.js_2152_3"] + "" )
	DrvCert.UIRefresh()

}

function GetDeviceListInfoToXml()
{









	var DeviceListInfo = g_DeviceInfo
	var DeviceNumber   = g_TableItems
	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"
		Xml += "\t</DeviceItem>\n"
	}
	Xml += "</DeviceList>"
return (Xml)
}

function GetDeviceDownloadDriverInfoToXml( row )
{









	var DeviceListInfo = g_DeviceInfo
	var DeviceNumber   = g_TableItems
	var DeviceName , HardwareID , CompatibleID, MatchingDeviceId
	var DriverDate , DriverVer , DriverProvider


	var Xml = "<" + SOAP_REQ_BODY_PROBLEM_DEVICE_TAG + ">\n"
	var CurDeviceInfo = new Array()
	{
		ReadArrayToDeviceInfo( CurDeviceInfo , DeviceListInfo , row )

		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</DeviceItem>\n"
	}
	Xml += "</" + SOAP_REQ_BODY_PROBLEM_DEVICE_TAG + ">"
return (Xml)
}
function GetHtmlLaunchPath()
{
	var UrlPathname = location.pathname;	
	var UrlHostname = location.hostname;	
	
	
	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 OnClickExportDeviceInfo()
{
    
    
    
    
    




    
    var PathFileName = prompt( "" + PromptArray["drvinst.js_2456_1"] + "" , "" )

    if ( !PathFileName ) return

	var SoapApplyURL = ServerName.value + SoapAspURL.value		

    var DeviceListInfo		= GetAllDeviceInfoToXml()
    var MACIDs				= GetNetCardInfo()
	var CPUInfo				= GetCPUInfo()

    DisplayMessage( "" + PromptArray["drvinst.js_2466_1"] + "..." )
	var MainBoardInfo		= GetMainBoardInfo()
    DisplayMessage( "" + PromptArray["drvinst.js_2468_1"] + ":"  + MainBoardInfo )

    DisplayMessage( "" + PromptArray["drvinst.js_2470_1"] + "..." )
	var DiskInfo			= GetDiskInfo()
    DisplayMessage( "" + PromptArray["drvinst.js_2472_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:RegUserHardwareInfoAgent xmlns:n=\"http:\/\/e-drivers.cn/soap/\">\n"
    
    SoapRequestXML += DeviceListInfo    + "\n"
	
    SoapRequestXML += CPUInfo			+ "\n"
	SoapRequestXML += MACIDs			+ "\n"
	SoapRequestXML += MainBoardInfo		+ "\n"
	SoapRequestXML += DiskInfo			+ "\n"
	SoapRequestXML += "     </n:RegUserHardwareInfoAgent>\n"
	SoapRequestXML += "   </SOAP-ENV:Body>\n"
	SoapRequestXML += "</SOAP-ENV:Envelope>"
    
    DrvCert.SaveStringToFile( DrvCert.StringBASE64Encoding( SoapRequestXML ) , PathFileName )
    
    

}

function GetAllDeviceInfoToXml()
{

	var DeviceListInfo = g_DeviceInfo
	var DeviceNumber   = g_CurRows

	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 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 GetClientInfo()
{
    var ClientVersion   =""
    var OEMVendor       =""
    var Provider        =""
    var Language        =""
    
    
    
    
    
    var AccessMode      = "DrvInst.htm"

    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 )
}

