<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<OBJECT ID=pchealth classid=CLSID:FC7D9E02-3F9E-11d3-93C0-00C04F72DAF7></OBJECT>

<TITLE>Start Application in Compatibility Mode</TITLE>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=windows-1252">
<META HTTP-EQUIV=PICS-Label CONTENT='(PICS-1.1 "http://www.rsac.org/ratingsv01.html" l comment "RSACi North America Server" by "inet@microsoft.com" r (n 0 s 0 v 0 l 0))'>
<META HTTP-EQUIV="MSThemeCompatible" CONTENT="Yes">
<META content=en-us http-equiv=Content-Language>


<LINK ID=Stylesheet_Ref0 href="hcp://system/css/shared.css"    rel=STYLESHEET type=text/css>
<LINK ID=Stylesheet_Ref1 href="hcp://system/css/Behaviors.css" rel=STYLESHEET type=text/css>
<LINK ID=Stylesheet_Ref2 href="hcp://system/css/Layout.css"    rel=STYLESHEET type=text/css>

<SCRIPT language="javascript">
<!--

var g_sApplicationLocation;    // folder where the app is to be found
var g_sApplicationDisplayName; // display (friendly) name for an application
var g_sApplication;  // application to run(full path)
var g_sPersistPath;  // persist path for this item
var g_sCompatLayer;  // layer to run (string)
var g_sCompatLayerMachine; // layer to run for the whole machine
var g_sLayerDescription;
var g_sCmdLine;
var g_nPage  = 0;         // current page
var g_nPages = 11;
var g_nStartPage = 0;
var g_rgPages = new Array(g_nPages);
var g_shell   = new ActiveXObject("Wscript.Shell");
var g_fso     = new ActiveXObject("Scripting.FileSystemObject");
var g_bProgramsPopulated = false;
var g_bAppBrowseProgsInitialized = false;
var g_bProgListSelect = false;
var g_util    = new ActiveXObject("CompatUI.Util");
var g_ProgramSelectMethod; // will be
var g_upload = null; // global upload object
var g_UnknownLayers; // unknown layers for the item
var g_bSendReport; // controls whether we send the report or not
var g_bUpdateLayers; // controls whether we set the layers permanently

g_rgPages[0] = 'Intro';
g_rgPages[1] = 'AppSelectMethod';
g_rgPages[2] = 'AppProgramList';
g_rgPages[3] = 'AppBrowseProgs';
g_rgPages[4] = 'FixesLayers';
g_rgPages[5] = 'FixesOther';
g_rgPages[6] = 'FixesLUA';
g_rgPages[7] = 'Run';
g_rgPages[8] = 'Update';
g_rgPages[9] = 'CompatibilityData';
g_rgPages[10]= 'CompleteWizard';
g_rgPages[11]= 'CompatWizardDisabled';

var g_cIntroPage              = 0;
var g_cAppPage                = 1;
var g_cAppProgramListPage     = 2;
var g_cAppBrowseProgsPage     = 3;
var g_cFixesLayersPage        = 4;
var g_cFixesOtherPage         = 5;
var g_cFixesLUAPage           = 6;
var g_cRunPage                = 7;
var g_cUpdatePage             = 8;
var g_cCompatibilityDataPage  = 9;
var g_cCompleteWizardPage     = 10;
var g_cDisabledPage           = 11;
var g_cSelectFromList  = 0;
var g_cSelectRunFromCD = 1;
var g_cSelectBrowse    = 2;

//////////////////////////////////////////////////////////////////////////////////////
//
// Localization
//
var L_strBtnBackCaption_Button           = '&nbsp;&lt;&nbsp;<u>B</u>ack&nbsp;'; // this is the caption for Back button : ' < Back '
var L_strBtnNextCaption_Button           = '&nbsp;N<u>e</u>xt&nbsp;&gt;&nbsp;'; // this is the caption for Next button : ' Next > '
var L_strBtnFinish_Button                = '&nbsp;<u>F</u>inish&nbsp;';         // this is the caption for Finish button
var L_strStopBtnCaption_Button           = '&nbsp;Sto<u>p</u>&nbsp;';
var L_strRefreshBtnCaption_Button        = '&nbsp;<u>R</u>efresh&nbsp;';
var L_strCancelBtnCaption_Button         = '&nbsp;Cancel&nbsp;';
var L_strAltCancelCaption_Button         = '&nbsp;Cancel&nbsp;'; // text for the Cancel button
var L_strBrowseBtnCaption_Button         = 'Bro<u>w</u>se';
var L_strPage2Accelerators_Text          = 'RSPEB';     //  Attention, localizers: this parameter should be localized and match accelerators on this page
                                                        //  R = Refresh S = Select P - stoP E - nExt B - Back -->
                                                        //  see page 2 below for Select, all the others have to match the buttons above

var L_strPage3Accelerators_Text          = 'YEB';       //  Attention localizers: this parameter should be localized and match accelerators on this page
                                                        //  Y = tYpe E - nExt B - Back
                                                        //  except for the browse button


var L_strCompatSettingsAdjusted_Text   = 'You have successfully adjusted the compatibility settings for this program.';
var L_strCompatSettingsNotAdjusted_Text= 'Compatibility settings were not changed for any programs.';
var L_strBrowseFilter_Text             = 'Program files (*.exe;*.com;*.pif;*.cmd;*.bat;*.lnk)|*.exe;*.com;*.pif;*.cmd;*.bat;*.lnk|All files (*.*)|*.*';
var L_strBrowseCaption_DialogTitle     = 'Please Select Application';

var L_strBrowseProgsLabel_Text         = 'T<U>y</U>pe the path to the program shortcut or executable file:';


var L_rgExcludeFiles_FileName         = new Array('%ProgramFiles%\\Windows NT\\hypertrm.exe',
                                                  '%programfiles%\\msn\\msncorefiles\\msn6.exe',
                                                  '%programfiles%\\messenger\\msmsgs.exe',
                                                  '%SystemRoot%\\system32\\notepad.exe');

var L_strCompatModeRemovableMedia_Text = '<b>Warning:</b> &nbsp;&nbsp; Compatibility mode cannot be set on this program. &nbsp; The selected program is on the network or a removable media device.';
var L_strCompatModePartOfOS_Text       = '<b>Warning:</b> &nbsp;&nbsp; Compatibility Mode cannot be set on this program. &nbsp; Selected program is part of the Operating System.';
var L_strCompatModeNotExe_Text         = '<b>Warning:</b> &nbsp;&nbsp; Compatibility Mode cannot be set on this object.  &nbsp; Selected object is not a program executable file.';
var L_strFileOnTheNet_Text             = '<br>Warning: &nbsp;&nbsp; this file is on removable media or on the network';
var L_strProgramWorked_Text            = '<u>Y</u>es, this program worked correctly';
var L_strProgramWorkedTitle_Text       = 'Yes, this program worked correctly';
var L_strSetPermanentLayers_Text       = '<u>Y</u>es, set this program to always use these compatibility settings';
var L_strSetPermanentLayersTitle_Text  = 'Yes, set this program to always use these compatibility settings';
var L_strNoCompatSettings_Text         = 'No compatibility settings were selected.';
var L_strRetryCD_Message               = 'Wizard could not locate programs on your CD\nClick OK to retry, Cancel to try and locate the program manually';
var L_strSpecifyValidApp_Message       = 'Please specify a valid program';
var L_strChooseProgram_Message         = 'Please choose a program from the list';

var L_strErrorUpdatingShortcut_ErrorMessage    = 'Error Updating application shortcut for ';

var L_strAppNotFound_ErrorMessage              = 'Target Application Not Found!\n\nThe file path is invalid:  ';
var L_strEnsureExist_ErrorMessage              = '\n\nEnsure that you have entered the full and correct path to the target application.\n';
var L_strMustValid_ErrorMessage                = 'The application path must point to a valid Program or Shortcut file.';

var L_strErrorStartingApp_ErrorMessage         = 'Error starting program:\n\n';

var L_rgSetupPrograms_FileName = new Array(4); // this array contains the names of setup programs
L_rgSetupPrograms_FileName[0] = 'setup.cmd';   // this array should not be touched but some more
L_rgSetupPrograms_FileName[1] = 'setup.bat';   // (localized) entries may be added
L_rgSetupPrograms_FileName[2] = 'setup.exe';
L_rgSetupPrograms_FileName[3] = 'install.exe';


//
// these idcs correspond to ids of internal controls in appcompat\compatui.dll
//
var g_cIDC_EDITFILENAME = 207;
var g_cIDC_BROWSE       = 208;

///////////////////////////////////////////////////////////////////////////////////
//
// Initialize global objects (compatUI)
//
function InitCompatUIObjects() {
    var BrowseProgs = document.all['BrowseProgs'];
    var ProgList    = document.all['SelectProgs'];
    var lblBrowse   = document.all['lblBrowseProgs'];

    var sExclude = '';
    var i;

    for (i = 0; i < L_rgExcludeFiles_FileName.length; ++i) {
        if (i > 0) {
            sExclude += ';';
        }
        sExclude += L_rgExcludeFiles_FileName[i];
    }

    ProgList.ExcludeFiles        = sExclude;
    ProgList.ExternAccel         = L_strPage2Accelerators_Text;
    lblBrowse.innerHTML          = L_strBrowseProgsLabel_Text;
    lblBrowse.accessKey          = GetAccessKeyFromCaption(L_strBrowseProgsLabel_Text);
    BrowseProgs.AccelCmd(g_cIDC_EDITFILENAME) = GetAccessKeyFromCaption(L_strBrowseProgsLabel_Text);
    BrowseProgs.ExternAccel      = L_strPage3Accelerators_Text;
    BrowseProgs.BrowseBtnCaption = L_strBrowseBtnCaption_Button;
    BrowseProgs.accessKey        = GetAccessKeyFromCaption(L_strBrowseBtnCaption_Button);

}

function checkRadio(ctlName, choiceValue) {
    var collection;
    var i;

    collection = document.all[ctlName];

    for (i = 0; i < collection.length; i++) {
        if (collection[i].value.toUpperCase() == choiceValue.toUpperCase()) {
            collection[i].checked = true;
            return;
        }
    }
}

function getRadioText(ctlName, selValue) {
    var collection;
    var i;
    var lblName;
    var vLabel;

    collection = document.all[ctlName];

    for (i = 0; i < collection.length; i++) {
        if (collection[i].value.toUpperCase() == selValue.toUpperCase()) {
            lblName = 'lbl' + collection[i].value;
            vLabel = document.all[lblName];
            return(vLabel.innerText);
        }
    }
}

function getRadioValue(ctlName) {
    var collection;
    var i;

    collection = document.all[ctlName];

    for (i = 0; i < collection.length; i++) {
        if (collection[i].checked) {
            return(collection[i].value);
        }
    }
}

function checkCheckbox(ctlName, bCheck) {
    var ctl = document.all[ctlName];
    ctl.checked = bCheck;
}

function getCheckValue(ctlName) {
    var ctl = document.all[ctlName];
    if (ctl.checked == true) {
        return ctl.value;
    }
    return null;
}

function getCheckText(selValue) {

    var lblName = 'lbl' + selValue;
    var vLabel = document.all[lblName];
    if (vLabel != null) {
        return vLabel.innerText;
    }
    //
    // this means we have no text -- "unknown" value
    //
    return '(' + selValue + ')';
}


function ShowDiv(divName, bShow) {
    var div = document.all[divName];
    if (bShow) {
        // alert('Show ' + divName);
        div.style.display = '';
    } else {
        // alert('Hide ' + divName);
        div.style.display = 'none';
    }
}
function InitPage() {
    var bDisabled;

    //
    // before we do anything else, check policy setting
    //
    bDisabled = g_util.IsCompatWizardDisabled();

    if (bDisabled) {
        //
        // we are disabled
        //
        var btnCancel = document.all('btnCancel');
        btnCancel.innerHTML = L_strAltCancelCaption_Button;
        var btnNext = document.all('btnNext');
        var btnBack = document.all('btnBack');
        btnNext.style.display = 'none';
        btnBack.style.display = 'none';
        g_nStartPage = g_cDisabledPage;
    }

    for (i = 0; i < g_rgPages.length; ++i) {
        ShowDiv(g_rgPages[i], g_nStartPage == i);
    }

    if (bDisabled) {
        return;
    }

    // init common buttons (cancel)
    var btnCancel = document.all('btnCancel');
    btnCancel.innerHTML = L_strCancelBtnCaption_Button;

    InitCompatUIObjects();

    Intro_InitPage();
    // init global vars - no further init
}


function GetAccessKeyFromCaption(sCaption) {
    var sUTag  = '<u>';
    var sUCTag = '</u>';
    var sAccessKey = '';
    var sCaplc = sCaption.toLowerCase();
    var ixU = sCaplc.indexOf(sUTag);
    if (ixU < 0) {
        return sAccessKey;
    }
    var ixCU = sCaplc.indexOf(sUCTag, ixU);
    if (ixCU < 0) {
        return sAccessKey;
    }

    // get the string between the tags
    sAccessKey = sCaplc.substring(ixU + sUTag.length, ixCU);
    sAccessKey.toUpperCase();
    return sAccessKey;
}

function InitNavButtons(bBackEnabled, sNextButtonValue) {
    var frmNav = document.forms('frmNav');

    var btnBack = frmNav('btnBack');
    btnBack.innerHTML = L_strBtnBackCaption_Button;
    btnBack.accessKey = GetAccessKeyFromCaption(L_strBtnBackCaption_Button);
    btnBack.disabled = !bBackEnabled;

    var btnNext = frmNav('btnNext');
    btnNext.disabled = false;
    if (null != sNextButtonValue) {
        btnNext.innerHTML = sNextButtonValue;
    } else {
        btnNext.innerHTML = L_strBtnNextCaption_Button;
    }
    btnNext.accessKey = GetAccessKeyFromCaption(btnNext.innerHTML);
    btnNext.focus();
}

//
// selected flags
//

var OFN_HIDEREADONLY       = 0x00000004;
var OFN_PATHMUSTEXIST      = 0x00000800;
var OFN_FILEMUSTEXIST      = 0x00001000;
var OFN_EXPLORER           = 0x00080000;   // new look commdlg
var OFN_NODEREFERENCELINKS = 0x00100000;   // prevents a link from being cracked
var OFN_ENABLESIZING       = 0x00800000;
var OFN_FORCESHOWHIDDEN    = 0x10000000;    // Show All files including System and hidden files

var g_ofnFlags = OFN_HIDEREADONLY|
                 OFN_PATHMUSTEXIST|
                 OFN_FILEMUSTEXIST|
                 OFN_NODEREFERENCELINKS;

//
// ====================== Page Init Code ====================================
//
//


function Intro_InitPage(nPageFrom) {
    InitNavButtons(false, null);
}

function ProgListAction() {
    var btnAction = document.all['btnProgListAction'];
    switch(btnAction.name) {
    case 'Cancel':
        CancelProgScan();
        break;

    case 'Scan':
        RefreshProgs();
        break;
    }

}

function SetProglistAction(proglistAction) {
    var btnAction = document.all['btnProgListAction'];

    btnAction.name = proglistAction;

    switch(proglistAction) {
    case 'Cancel':
        btnAction.innerHTML = L_strStopBtnCaption_Button;
        break;
    case 'Scan':
        btnAction.innerHTML = L_strRefreshBtnCaption_Button;
        break;
    }
    btnAction.accessKey = GetAccessKeyFromCaption(btnAction.innerHTML);
}

function BlockNextButton(bBlock) {
    var frmNav = document.forms('frmNav');
    var btnNext = frmNav('btnNext');
    var btnBack = frmNav('btnBack');
    if (bBlock) {
        btnBack.focus();
    }
    btnNext.disabled = bBlock; // bummer, next is disabled
    if (!bBlock) {
        btnNext.focus();
    }
}

function AppProgramList_InitPage(nPageFrom) {

    var SelectProgs = document.all['SelectProgs'];
    var BrowseProgs = document.all['BrowseProgs'];

    BrowseProgs.Enabled = false;
    BrowseProgs.Valid   = false;

    SelectProgs.Enabled = true;
    SelectProgs.Valid   = true;

    InitNavButtons(true, null);

    if (!g_bProgramsPopulated) {
        BlockNextButton(true);
        SetProglistAction('Cancel');
    } else {
        SetProglistAction('Scan');
    }

}

function CancelProgScan() {
    var SelectProgs = document.all['SelectProgs'];
    SelectProgs.CancelPopulateList();
}

function RefreshProgs() {
    var SelectProgs = document.all['SelectProgs'];
    var btnNext = document.all['btnNext'];

    BlockNextButton(true);
    SetProglistAction('Cancel');
    SelectProgs.PopulateList();
}

function AppBrowseProgs_InitPage(nPageFrom) {

    var BrowseProgs = document.all['BrowseProgs'];
    var oShell = new ActiveXObject('Shell.Application');

// DEBUGDEBUG
    var SelectProgs = document.all['SelectProgs'];
    SelectProgs.Enabled = false;
    SelectProgs.Valid   = false;

    BrowseProgs.Enabled = true;
    BrowseProgs.Valid   = true;

// localization
    BrowseProgs.BrowseFilter = L_strBrowseFilter_Text;
    BrowseProgs.BrowseFlags  = g_ofnFlags;
    BrowseProgs.BrowseTitle  = L_strBrowseCaption_DialogTitle;

    var shFolder = oShell.Namespace(0x2); // ssPrograms, Folder2 object
    BrowseProgs.BrowseInitialDirectory = shFolder.Self.Path; // convert to folder item and get path

    InitNavButtons(true, null);

}

function Page_NavigateComplete(nPageTo) {
    if (nPageTo == g_cAppBrowseProgsPage) {
        if (g_bAppBrowseProgsInitialized) {
            OnBrowseProgsReady();
        }
    }
}

function SetFocusBrowseProgs() {
    var BrowseProgs = document.all['BrowseProgs'];
    BrowseProgs.focus();
}

function OnBrowseProgsReady() {
    setTimeout(SetFocusBrowseProgs, 0, 'javascript');
}

function AppSelectMethod_InitPage(nPageFrom) {
    InitNavButtons(true, null);
}

function FixesLayers_InitPage(nPageFrom) {
    var sCompatLayer;

    if (nPageFrom < g_cFixesLayersPage) {  // we want to find whether it is a motion forward or backwards
        sCompatLayer = GetApplicationLayer();
        ParseLayers(sCompatLayer);
    }

    InitNavButtons(true, null);
}

function CompatibilityData_InitPage(nPageFrom) {

    ClearUploadInformation();

    g_upload = new ActiveXObject("CompatUI.Upload");

    //
    // prepare for an upload
    //
    PrepareUploadInformation(g_upload);
    InitNavButtons(true, null);

    //
    // make sure yes and no -- neither is checked
    //
    document.all['chkUploadInfo'  ].checked = false;
    document.all['chkNoUploadInfo'].checked = false;

    //
    // disable next button for now please
    //
    BlockNextButton(true);

}

function ClearUploadInformation() {
    if (g_upload != null) {
        g_upload.DeleteTempFiles();
        delete g_upload;
        g_upload = null;
    }
}

function SendCompatibilityReport(bSend) {
    if (g_upload == null) {
        return;
    }
    if (bSend) {
        g_upload.SendReport();
    }
    ClearUploadInformation();
}

function ViewTempFileList() {
    g_upload.ShowTempFiles();
}
function CompleteWizard_InitPage(nPageFrom) {
    //
    // see if our app was system
    //
    var UpdateAction = getRadioValue('UpdateShortcut');
    var divCompatSettings = document.all['divCompatSettings'];
    var sSettings;

    if (UpdateAction == 'Yes') {
        sSettings = L_strCompatSettingsAdjusted_Text;
    } else {
        sSettings = L_strCompatSettingsNotAdjusted_Text;
    }

    divCompatSettings.innerHTML = sSettings;

    InitNavButtons(true, L_strBtnFinish_Button);

    var btnNext = document.all['btnNext'];
    btnNext.accessKey = 'F';
}


//
// Read autorun.inf and be happy
//
// returns dictionary object with all the relevant information
//
// autorunToken may be anything that comes with autorun.xxx


function ReadAutorunContent(ts, autorunToken) {
var line;
var re; // regexpression
var rr; // result of a match

var dictAutorun = null;
var ReadingContent = false;

    while (!ts.AtEndOfStream) {
        line = ts.ReadLine();

        //
        // look for 'open' token
        // parse the line we got from the autorun
        //
        re = /\[\s*autorun(\.\S+){0,}\s*\]/i
        rr = line.match(re);
        if (rr != null) {
            // see if this is autorun.architecture
            if (ReadingContent) {
                break;
            }

            if (rr.length > 1 && autorunToken != null) {
                autorunToken.toLowerCase();
                rr[1].toLowerCase();

                if (rr[1] != autorunToken) {
                    continue;
                }
            }

            dictAutorun = new ActiveXObject("Scripting.Dictionary");
            ReadingContent = true;

        } else if (dictAutorun != null) {
            re = /\s*(\w+)\s*=\s*(.+)/i
            rr = line.match(re);
            if (rr != null && rr.length >= 3 && !dictAutorun.Exists(rr[1])) {
                //
                // is this a 2 part match?
                //
                rr[1].toLowerCase();
                dictAutorun.Add(rr[1], rr[2]);
            }
        }
    }
    return dictAutorun;
}

function ReadAutorunInf(driveName) {
    var sAutorun = driveName + 'Autorun.inf';
    var f = null;
    var ts;
    var dictAutorun;
    var autorunToken;


    try {
         if (g_fso.FileExists(sAutorun)) {
            f = g_fso.GetFile(sAutorun);
         }
    } catch (e) {
        f = null;
    }

    if (f == null) {
       return null;
    }

    autorunToken = '.' + g_shell.Environment.Item('PROCESSOR_ARCHITECTURE');

    while(true) {

        ts = f.OpenAsTextStream(1); // open for reading
        if (ts == null) {
            return null;
        }

        dictAutorun = ReadAutorunContent(ts, autorunToken);
        ts.Close();

        if (dictAutorun != null) { // if we have the dictionary -- get out now
            return dictAutorun;
        }

        if (autorunToken != null) { // if we have tried architecture-specific item, try generic one now
            autorunToken = null;
        } else {
            // we have tried generic -- found nothing
            return null;
        }
    }


    return dictAutorun;
}

function removeParams(sPath) {
    var sPurePath;
    try {
        sPurePath = g_util.RemoveArgs(sPath);
    } catch(e) {
        sPurePath = sPath;
    }
    return sPurePath;
}


//
// reads and sets globals for apphelp's benefit
//
//
function GetAutorunInformation(driveName, dictAutorun, IsAutorun) {
    var sApplication = null;
    var sApplicationDisplayName = null;
    var sApplicationPath = null;
    var drive;

    if (dictAutorun.Exists('label')) {
        sApplicationDisplayName = dictAutorun.Item('label');
    }
    if (sApplicationDisplayName == null) {
        drive = g_fso.GetDrive(driveName);
        sApplicationDisplayName = drive.VolumeName + ' (' + driveName + ')';
    }


    if (dictAutorun.Exists('open')) {
        sApplication = dictAutorun.Item('open');
    } else {
        //
        // no open verb -- we will try this - but what do we do with this item?
        //
        if (dictAutorun.Exists('shellexecute')) {
            sApplication = dictAutorun.Item('shellexecute');
            if (sApplication != null && sApplication.length) {
                //
                // This case was never found in our testing
                //
            }
        }
    }

    // convert sApplication into a friendly name
    // see if sApplication has a friendly path

    if (sApplication == null || !sApplication.length) {
        return false;
    }

    //
    // sApplicationLocation
    //
    if (sApplication.substr(0, 2) == '\\\\')  {
        // this is UNC, do not touch
        ;
    } else if (sApplication.substr(1, 1) == ':') {
        // has a drive name, do not touch
        ;
    } else if (sApplication.substr(0, 1) == '%') {
        // has env var in it -- do not touch
        ;
    } else if (sApplication.substr(0, 1) == '\\') {
        // prepend
        sApplication = driveName.substr(0, 2) + sApplication;
    } else {
        sApplication = driveName + sApplication;
    }

    // sanitize parameters
    sApplicationPath = removeParams(sApplication);


    //
    // make sure that whatever chemistry we did here -- it worked
    //
    if (!validateFile(sApplicationPath)) {
        return false;
    }

    if (IsAutorun) {
        g_sApplicationLocation = 'AutoRun (' + driveName + ')';
    } else {
        g_sApplicationLocation = 'Setup Application (' + driveName + ')';
    }
    g_sApplication = sApplication;
    g_sApplicationDisplayName  = sApplicationDisplayName;
    g_sPersistPath = null;
    g_sCmdLine     = g_sApplication;
    return true;
}

function ScanForAutorun() {
    var driveLetter = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
    var drive = null;
    var dictAutorun = null;
    var sAutorun;
    var bRet = false;

    for (i = 0; i < 26; ++i) {
        driveName = driveLetter.charAt(i) + ':\\';
        if (!g_fso.DriveExists(driveName)) {
            continue;
        }

        drive = g_fso.GetDrive(driveName);
        if (drive == null || drive.DriveType != 4 || !drive.IsReady) {
            continue;
        }

        dictAutorun = ReadAutorunInf(driveName);
        if (dictAutorun != null) {
            break;
        }
    }

    if (dictAutorun == null) {
        return false;
    }

    //
    // see what we have learnt
    //

    bRet = GetAutorunInformation(driveName, dictAutorun, true);
    delete dictAutorun;
    return bRet;
}

function Update_InitPage(nPageFrom) {
    var frmUpdate = document.forms('frmUpdate');
    var divMedia  = document.all['MediaWarning'];
    var drive;
    var driveName;
    var sAppPath;
    var bUpdateDisabled = false;
    var optNoUpdate = document.all['chkNo'];
    var optUpdate   = document.all['chkYes'];
    var lblYes      = document.all['lblYes'];


    sAppPath  = ExpandSpecialFolders(g_sApplication);

    driveName = g_fso.GetDriveName(sAppPath);
    drive     = g_fso.GetDrive(driveName);

    g_bSendReport = true;
    g_bUpdateLayers = true;

    if (drive.DriveType == 1 || drive.DriveType == 3) {
        //
        // removable media or the network - disable both the check and the label
        //
        divMedia.innerHTML = L_strCompatModeRemovableMedia_Text;
        bUpdateDisabled = false;

        //
        // we shall send the report but will not update layers
        //
        g_bSendReport   = true;
        g_bUpdateLayers = false;

    } else if (g_util.IsSystemTarget(g_sApplication)){
        divMedia.innerHTML = L_strCompatModePartOfOS_Text;
        bUpdateDisabled = false;
        //
        // system target, no sending report, disable update
        //
        g_bSendReport   = false;
        g_bUpdateLayers = false;

    } else if (!g_util.IsExecutableFile(g_sApplication)) {
        divMedia.innerHTML = L_strCompatModeNotExe_Text;
        bUpdateDisabled = false;

        g_bSendReport   = true;
        g_bUpdateLayers = false;
    }


    if (g_bUpdateLayers) {
        lblYes.innerHTML = L_strSetPermanentLayers_Text;
        lblYes.accessKey = GetAccessKeyFromCaption(L_strSetPermanentLayers_Text);
        lblYes.title     = L_strSetPermanentLayersTitle_Text;
    } else {
        lblYes.innerHTML = L_strProgramWorked_Text;
        lblYes.accessKey = GetAccessKeyFromCaption(L_strProgramWorked_Text);
        lblYes.title     = L_strProgramWorkedTitle_Text;
    }

    if (bUpdateDisabled) {
        optNoUpdate.checked = true;
    }

    optUpdate.disabled     = bUpdateDisabled;
    lblYes.disabled        = bUpdateDisabled;
    divMedia.style.display = (g_bSendReport && g_bUpdateLayers) ? 'none' : '';

    InitNavButtons(true, null);
}


function Run_InitPage(nPageFrom) {
    var divLayer;
    var divApp;

    var shtml = '';
    var sAppName;

    divApp   = document.all['divTargetApp'];
    divLayer = document.all['divCompatLayer'];

    //
    // what goes as an app name?
    //
    if (g_sApplicationDisplayName != null) {
        shtml = '<label title=\"' + g_sApplication +'\">' + g_sApplicationDisplayName + '</label>';
    } else {
        shtml = g_sApplication;
    }


//    if (g_sApplicationDisplayName != null) {
//        sAppName = g_sApplicationDisplayName;
//    } else {
//        sAppName = g_sApplication;
//    }

//    shtml = sAppName;

//    if (g_sApplicationLocation != null) {
//        shtml += '<br>' + g_sApplicationLocation;
//    }

//    if (g_sApplicationDisplayName != null) {
//        shtml += '<br>' + g_sApplication;
//    }


    divApp.innerHTML = shtml;
    divApp.style.display = '';

    // also check drive type, do warning if net or cd-r

    var drive;
    var driveName;
    driveName = g_fso.GetDriveName(g_sApplication);
    drive     = g_fso.GetDrive(driveName);
    if (drive.DriveType == 1 || drive.DriveType == 3) {
        divApp.innerHTML += L_strFileOnTheNet_Text;
    }

    if (g_sLayerDescription == null || g_sLayerDescription.length == 0) {
        divLayer.innerHTML = L_strNoCompatSettings_Text;
    } else {
        divLayer.innerHTML = g_sLayerDescription;
    }

    InitNavButtons(true, null);
}

function validateFile(sFileName) {
    if (sFileName == null) {
        return false;
    }

    sPath = ExpandSpecialFolders(sFileName);

//    sPath = GetRealPathName(sPath);

    return g_fso.FileExists(sPath);
}

function NavigateToPage(nPage) {

    var frmNav = document.forms('frmNav');

    //
    // if we are moving beyond the last or before the first -- navigate to
    // the first page
    //
    if (nPage < 0 || nPage >= g_nPages) {
        nPage = 0;
    }

    if (eval('typeof(' + g_rgPages[nPage] + '_InitPage)') == 'function') {
        eval(g_rgPages[nPage] + '_InitPage(' + g_nPage + ')');
    }

    // show the divs
    ShowDiv(g_rgPages[g_nPage], false);
    g_nPage = nPage;
    ShowDiv(g_rgPages[g_nPage], true);

    if (eval('typeof(Page_NavigateComplete)') == 'function') {
        eval('Page_NavigateComplete(' + g_nPage + ')');
    }
}

function CheckForSetupProgsOnCD() {
    var driveLetter = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
    var drive = null;
    var dictAutorun = null;
    var sAutorun;
    var dictAutorun = null;
    var bRet;
    var i, j;
    var driveName;

    var sSetup;

    for (i = 0; i < 26; ++i) {
        driveName = driveLetter.charAt(i) + ':\\';
        if (!g_fso.DriveExists(driveName)) {
            continue;
        }

        drive = g_fso.GetDrive(driveName);
        if (drive == null || drive.DriveType != 4 || !drive.IsReady) {
            continue;
        }

        for (j = 0; j < L_rgSetupPrograms_FileName.length; j++) {
            sSetup = driveName + L_rgSetupPrograms_FileName[j];
             if (!g_fso.FileExists(sSetup)) {
                 continue;
             }
             //
             // we have an install program
             //

             var dictAutorun = new ActiveXObject("Scripting.Dictionary");
             dictAutorun.Add('open', sSetup);
             bRet = GetAutorunInformation(driveName, dictAutorun, false);
             delete dictAutorun;
             if (bRet) {
                 return true;
             }
        }
    }

    return false;
}

function getAppFromCD() {
var bret;

    g_bProgListSelect = false;

    bret = ScanForAutorun();
    if (!bret) {
        bret = CheckForSetupProgsOnCD();
    }

    return bret;
}

function getBrowseProgsSel() {

    var BrowseProgs = document.all['BrowseProgs'];

    g_bProgListSelect = false;

    g_sApplication = BrowseProgs.FileName;
    g_sPersistPath = null;
    g_sApplicationDisplayName = null;
    g_sApplicationLocation = null;
    g_sCmdLine     = g_sApplication;
    // now validate
    //
    return validateFile(g_sApplication);
}

function getProgListSel() {
    var SelectProgs = document.all['SelectProgs'];

    SelectProgs.GetSelectedItem();

    g_sApplicationDisplayName = SelectProgs.SelectionName;
    if (g_sApplicationDisplayName == null) {
       return false;
    }
    g_sApplicationLocation = SelectProgs.GetSelectionInformation(1); // folder
    g_sApplication         = SelectProgs.GetSelectionInformation(4); // we will run this
    g_sPersistPath         = SelectProgs.GetSelectionInformation(2); // path that we shall persist
    g_sCmdLine             = SelectProgs.GetSelectionInformation(3);

    g_bProgListSelect = true;

    // validate
    return validateFile(g_sPersistPath);
}

function addLayerInfo(sCompatLayer, bMachine) {

    var sLayers;

    if (bMachine) {
        sLayers = g_sCompatLayerMachine;
    } else {
        sLayers = g_sCompatLayer;
    }

    if (sLayers.length) {
        sLayers += ' ';
    }

    sLayers += sCompatLayer;

    if (bMachine) {
        g_sCompatLayerMachine = sLayers;
    } else {
        g_sCompatLayer = sLayers;
    }

    if (g_sLayerDescription.length) {
        g_sLayerDescription += '<br>';
    }

    g_sLayerDescription += getCheckText(sCompatLayer);
}

function getLayerSelection() {

    g_sCompatLayer = '';
    g_sCompatLayerMachine = '';
    g_sLayerDescription = '';

    var sRadioLayer = 'layer';
    var sCompatLayer;

    //
    // emulation mode
    //
    sCompatLayer  = getRadioValue(sRadioLayer);
    if (sCompatLayer != 'None') {
        g_sCompatLayer      = sCompatLayer;
        g_sLayerDescription = getRadioText(sRadioLayer, g_sCompatLayer);
    }

    sCompatLayer = getCheckValue('chk256color');
    if (sCompatLayer != null) {
        addLayerInfo(sCompatLayer, false);
    }

    sCompatLayer = getCheckValue('chk640x480');
    if (sCompatLayer != null) {
        addLayerInfo(sCompatLayer, false);
    }

    sCompatLayer = getCheckValue('chkNoThemes');
    if (sCompatLayer != null) {
        addLayerInfo(sCompatLayer, false);
    }

    sCompatLayer = getCheckValue('chkLUA');
    if (sCompatLayer != null) {
        addLayerInfo(sCompatLayer, true);
    }

    if (g_UnknownLayers.length) {
        addLayerInfo(g_UnknownLayers, false);
    }

    // alert(g_sCompatLayer + '\n' + g_sLayerDescription);
    return (g_sCompatLayer.length > 0 || g_sCompatLayerMachine.length > 0);
}


function onBtnNext() {
    var frmNav = document.forms('frmNav');
    var bSuccess;

    // cancel calling action
    if (event != null) {
        event.returnValue = false;
    }

    var nPage = g_nPage + 1;

    // do what we need to do for this page
    switch(g_nPage) {
    case g_cIntroPage:
        break; // nothing to do for the first page

    case g_cAppPage: // App page -- extract application choice

        var prog = getRadioValue('progClass');
        switch(prog) {
        case 'CDProg':
            //
            // run program from CDROM
            //
            var bFound;
            var bRetry;

            do {
                bRetry = false;
                bFound = getAppFromCD();

                if (!bFound) {
                    bRetry = confirm(L_strRetryCD_Message);
                }

            } while(bRetry);
            if (bFound) {
                nPage = g_cFixesLayersPage;
                g_ProgramSelectMethod = g_cSelectRunFromCD;
            } else {
                nPage = g_cAppBrowseProgsPage;
                g_ProgramSelectMethod = g_cSelectBrowse;
            }
            break;

        case 'ProgList':
            //
            // choose the program from the list
            //
            nPage = g_cAppProgramListPage;
            g_ProgramSelectMethod = g_cSelectFromList;
            break;

        case 'BrowseProg':
            nPage = g_cAppBrowseProgsPage;
            g_ProgramSelectMethod = g_cSelectBrowse;
            break;
        }

        break;

    case g_cAppProgramListPage:
        // have we chosen anything here?
        //
        if (!getProgListSel()) {
            alert(L_strChooseProgram_Message);
            return;
        }
        nPage = g_cFixesLayersPage;
        break;

    case g_cAppBrowseProgsPage:
        //
        // validate
        //
        if (!getBrowseProgsSel()) {
            alert(L_strSpecifyValidApp_Message);
            return;
        }
        nPage = g_cFixesLayersPage;
        break;

    case g_cFixesLayersPage: // nothing to do here
        break;

    case g_cFixesOtherPage: //
        //
        // check if we are admin, if not - skip to the page after LUA
        // get layer selection before that
        if (!g_util.CheckAdminPrivileges()) {
            getLayerSelection();
            nPage = g_cRunPage;
        }
        break;

    case g_cFixesLUAPage:
        getLayerSelection();
        break;

    case g_cRunPage: // run page (separate button for run, nothing to do here)
            // clicked "Next" on run page, run the app
        if (!RunApp()) {
            switch(g_ProgramSelectMethod) {
            case g_cSelectFromList:
                nPage = g_cAppProgramListPage;
                break;

            case g_cSelectBrowse:
                nPage = g_cAppBrowseProgsPage;
                break;

            case g_cSelectRunFromCD:
                nPage = g_cAppPage;
                break;
            }
        }
        break;

    case g_cUpdatePage:    // update page
        //
        // this is where the layers are being set
        //

        if (g_bUpdateLayers) { // should we even bother with layers ?
            var UpdateAction = getRadioValue('UpdateShortcut');
            switch(UpdateAction) {
            case 'Yes':
                bSuccess = UpdateAppShortcut(true, null);
                break;

            case 'No':
                break;

            default:
                nPage = g_cFixesLayersPage;
                break;
            }
        }

        //
        // we go to the compat report only if this is not a system target ??
        //
        if (!g_bSendReport && nPage == g_cCompatibilityDataPage) {
            nPage = g_cCompleteWizardPage;
        }
        break;

    case g_cCompatibilityDataPage:
        //
        // compat data page - send report now
        //
        var SendReport = getRadioValue("UploadInfo");
        SendCompatibilityReport(SendReport == 'Yes');
        break;

    case g_cCompleteWizardPage:
        //
        // on complete wizard
        //
        CompleteWizard();
        nPage = g_cCompleteWizardPage; // no way we're moving
        break;

    }

    //
    // this also sets the global g_nPage to the right page number
    //
    NavigateToPage(nPage);

}

function PrepareUploadInformation(oUpload) {
    var UpdateAction = getRadioValue('UpdateShortcut');
    var bCompatSuccess = (UpdateAction == 'Yes');
    var sAppDisplayName;
    var sCmd;
    var lMediaType = 0; // unknown


    sAppDisplayName = g_sApplicationDisplayName;
    if (g_sApplicationDisplayName == null || !g_sApplicationDisplayName.length) {
        sAppDisplayName = g_sApplication;
    }

    //
    // check whether we have a command line (this should be cracked)
    //
    sCmd = g_util.GetExePathFromObject(g_sApplication);
    if (sCmd == null) {
        sCmd = g_sApplication;
    }

    //
    // obtain drive type
    //
    var driveName = g_fso.GetDriveName(sCmd);
    if (driveName != null) {
        var oDrive = g_fso.GetDrive(driveName);
        if (oDrive != null) {
            lMediaType = oDrive.DriveType;
        }
    }

//
// ===== Upload UI =====
//

    var sErrorText;
//    var sErrorDetail;
//    var sPlea;

// localization for this is not needed (no ui)
//
    sErrorText = 'This report contains information about the compatibility settings ' +
                 'you tried and whether these settings resolved the problem.'

//    sErrorDetail = sErrorText;

//    sPlea  = 'If you send this report to Microsoft, it will help improve future program compatibility. ';
//    sPlea += 'The report will be anonymous and confidential.'

    oUpload.SetKey ('Server',         'watson.microsoft.com');

    oUpload.SetKey ('Stage1URL',      '/StageOne/AppCompat/x.htm');
    oUpload.SetKey ('Stage2URL',      '/dw/AppCompatTwo.asp');
    oUpload.SetKey ('TitleName',      'Program Compatibility Report');
    oUpload.SetKey ('Brand',          'SYSTEMRESTORE');
    oUpload.SetKey ('ErrorText',      sErrorText);
    oUpload.SetKey ('HeaderText',     'A Program Compatibility Report has been created');
    oUpload.SetKey ('UI LCID',        '1033');
    oUpload.SetKey ('ErrorSubPath',   'Compat');
    oUpload.SetKey ('RegSubPath',     'Microsoft\\PCHealth\\ErrorReporting\\DW');


//    oUpload.SetKey ('ErrorDetail',    sErrorDetail);

    oUpload.SetKey ('ErrorSig',       'Program Compatibility Wizard: ' + (bCompatSuccess ? 'Success' : 'Failure'));

//    oUpload.SetKey ('Caption',        'Program Compatibility Report');
//    oUpload.SetKey ('Plea',           sPlea);
//
// ===== Text on buttons =====
//
//    oUpload.SetKey ('ReportButton',   '&Send Report');
//    oUpload.SetKey ('NoReportButton', '&Don\'t Send');

//    oUpload.SetKey ('Reportee',       'Microsoft');
    // use the flags below to go headless
    // fDwHeadless = 0x80
    // fDwUseHKLM  = 0x100
    // fDwNoDefaultCabLimit = 0x4000
    var fDwFlags = 0x80 | 0x100 | 0x4000;
    // var fdwFlags = 0x40;

    oUpload.SetKey ('Flags',       fDwFlags);
//   alert('Display name:' + sAppDisplayName + ' cmd: ' + sCmd + ' media: ' + lMediaType + ' success : ' + bCompatSuccess + ' Layer: ' + g_sCompatLayer);
    var bSuccessGeneralInfo  = oUpload.AddDescriptionFile(sAppDisplayName,
                                                          sCmd, // actual command that we ran
                                                          lMediaType,
                                                          bCompatSuccess,
                                                          g_sCompatLayer);

    var bSuccessMatchingInfo = oUpload.AddMatchingInfo(g_sApplication);
    var bSuccessManifest     = oUpload.CreateManifestFile();

    return (bSuccessMatchingInfo && bSuccessManifest && bSuccessGeneralInfo);

}

function CompleteWizard() {
    pchealth.close();
}

function onBtnBack() {
    var nPage  = g_nPage - 1;

    //
    // check the page we're going back from
    //
    if (event != null) {
        event.returnValue = false;
    }

    switch(g_nPage) {
    case g_cFixesLayersPage:
        switch(g_ProgramSelectMethod) {
        case g_cSelectFromList:
            nPage = g_cAppProgramListPage;
            break;

        case g_cSelectRunFromCD:
            nPage = g_cAppPage;
            break;

        case g_cSelectBrowse:
            nPage = g_cAppBrowseProgsPage;
            break;
        }
        break;

    case g_cRunPage:
        //
        // in case of non-admin user, skip LUA page
        //
        if (!g_util.CheckAdminPrivileges()) {
            nPage = g_cFixesOtherPage;
        }
        break;

    case g_cAppBrowseProgsPage:
        nPage = g_cAppPage;
        break;

    case g_cCompatibilityDataPage:
        // if we are on a data page -- we have gathered some info
        // clear it if so
        ClearUploadInformation();
        break;

    case g_cCompleteWizardPage:
        nPage = g_cUpdatePage;
        break;

    }

    NavigateToPage(nPage);
}

function onBtnCancel() {

    if (event != null) {
        event.returnValue = false;
    }

    ClearUploadInformation();

    if (window.history.length <= 1) {
        pchealth.close();
    } else {
        window.history.back();
    }
}

function ExpandSpecialFolders(sPath) {
    var Path = sPath;
    Path = Path.replace(/%WINDIR%/gi, g_fso.GetSpecialFolder(0));
    Path = Path.replace(/%SYSTEM%/gi, g_fso.GetSpecialFolder(1));
    Path = Path.replace(/%TEMP%/gi,   g_fso.GetSpecialFolder(2));
    return(Path);
}

function IsDriveReady(sAppPath) {

    var driveName;
    var drive;

    driveName = g_fso.GetDriveName(sAppPath);
    if (!g_fso.DriveExists(driveName)) {
        return false;
    }

    drive     = g_fso.GetDrive(driveName);
    if (drive == null || !drive.IsReady) {
        return false;
    }
    return true;
}

function RunApp() {
    var CompatLayer = g_sCompatLayer;
    var TargetApp   = g_sApplication;
    var AppPath    = ExpandSpecialFolders(TargetApp);
    var sLayerSave;
    var Result;
    var bSuccess   = false;
    var AppName    = removeParams(AppPath);

    //
    // Verify target file path
    //

    if (!IsDriveReady(AppName) || !g_fso.FileExists(AppName)) {
        alert(L_strAppNotFound_ErrorMessage + AppName + L_strEnsureExist_ErrorMessage + L_strMustValid_ErrorMessage);
        return false;
    }

    //
    // get the layers associated with this guy
    //
    sLayerSave = GetApplicationLayer();

    try {
        if (sLayerSave != null) {
            // alert(sLayerSave);
            UpdateAppShortcut(false, null);
        }
        //
        // run
        //
        Result = g_util.RunApplication(CompatLayer,
                                       AppPath,
                                       false);     // enable log
        bSuccess = (Result == 0);
    } catch(e) {

    }
    if (sLayerSave != null) {
        UpdateAppShortcut(true, sLayerSave);
    }

    if (!bSuccess) {
        alert(L_strErrorStartingApp_ErrorMessage + AppPath);
    }

    return bSuccess;
}

function GetRealPathName(lpszPath) {
    var AppPath;

    AppPath = g_util.GetExePathFromObject(lpszPath);
    if (AppPath == null) {
        AppPath = lpszPath;
    }

    return AppPath;
}

function GetApplicationLayer() {
    var CompatLayer = g_sCompatLayer;
    var TargetApp;
    var AppPath;

    if (g_sPersistPath != null) {
        TargetApp = g_sPersistPath;
    } else {
        AppPath = ExpandSpecialFolders(g_sApplication);
        TargetApp = GetRealPathName(AppPath);
    }

    try {
        CompatLayer = g_util.GetItemKeys(TargetApp);
    } catch(e) {
        CompatLayer = null;
    }

    return CompatLayer;
}

function ParseLayers(sCompatLayer) {
    //
    // parse the string we have obtained, tokenizing it in the process
    //
    // alert('parse');

    checkRadio   ('layer',            'None');
    checkCheckbox('chk256color',      false);
    checkCheckbox('chk640x480',       false);
    checkCheckbox('chkNoThemes',      false);
    checkCheckbox('chkLUA',           false);
    g_UnknownLayers = '';

    if (sCompatLayer == null) {
       return;
    }

    var re = /\s+/i
    var tokens = sCompatLayer.split(re);
    var i;

    for (i = 0; i < tokens.length; ++i) {

    tok = tokens[i].toUpperCase();

    switch(tok) {
    case 'WIN95':
    case 'NT4SP5':
    case 'WIN98':
    case 'WIN2000':
    case 'WINXP':
        // this item is a check-me shim
        checkRadio('layer', tok);
        break;
    case '256COLOR':
        checkCheckbox('chk256color', true);
        break;
    case '640X480':
        checkCheckbox('chk640x480',   true);
        break;

    case 'DISABLETHEMES':
        checkCheckbox('chkNoThemes',  true);
        break;

    case 'LUA':
        checkCheckbox('chkLUA', true);
        break;

    default:
        if (g_UnknownLayers.length > 0) {
            g_UnknownLayers += ' ';
        }
        g_UnknownLayers += tok;
        break;
    }

    }
}

function ParseCompatLayerForLUA(sCompatLayer) {

    if (sCompatLayer == null || !sCompatLayer.length) {
        return null;
    }

    var re     = /\s+/i
    var tokens = sCompatLayer.split(re);
    var i;
    var CompatLayer = '';
    var bLUA        = false;
    var rgResult    = new Array(2);

    for (i = 0; i < tokens.length; ++i) {

        tok = tokens[i].toUpperCase();
        if (tok == 'LUA') {
            bLUA = true;
            continue;
        }
        if (CompatLayer.length) {
            CompatLayer += ' ';
        }
        CompatLayer += tok;
    }

    //
    // now, this string here will not have a LUA
    //
    rgResult[0] = CompatLayer.length ? CompatLayer : null;
    rgResult[1] = bLUA ? 'LUA' : null;

    return rgResult;
}

function UpdateAppShortcut(bStore, sCompatLayer) {

    var CompatLayer        = null;
    var CompatLayerMachine = null;
    var TargetApp;
    var AppPath;
    var bSuccess;

    if (bStore) {
        if (sCompatLayer == null) {
            if (g_sCompatLayer != null && g_sCompatLayer.length) {
                CompatLayer = g_sCompatLayer;
            }
            if (g_sCompatLayerMachine != null && g_sCompatLayerMachine.length) {
                CompatLayerMachine = g_sCompatLayerMachine;
            }

        } else {
            //
            // this might have been a compat layer set before
            // so we need to filter out the LUA and move it into the
            // separate category (CompatLayerMachine)
            var rgLayers;
            rgLayers = ParseCompatLayerForLUA(sCompatLayer);
            if (rgLayers != null) {
                CompatLayer        = rgLayers[0];
                CompatLayerMachine = rgLayers[1];
            }
        }
    }

    if (g_sPersistPath != null) {
        TargetApp = g_sPersistPath;
    } else {
        AppPath = ExpandSpecialFolders(g_sApplication);
        TargetApp = GetRealPathName(AppPath);
    }

    try {
        bSuccess = g_util.SetItemKeys(TargetApp, CompatLayer, CompatLayerMachine);
    } catch(e) {
        bSuccess = false;
    }
//
//    alert('setting ' + TargetApp + ' to ' + CompatLayer);
//
    var SelectProgs = document.all['SelectProgs'];
    // alert('line: ' + g_sCmdLine);
    if (g_sCmdLine != null && g_sCmdLine.length != 0) {
        SelectProgs.UpdateListItem(g_sCmdLine, CompatLayer);
    }

    if (!bSuccess) {
        alert(L_strErrorUpdatingShortcut_ErrorMessage + TargetApp);
    }

    return bSuccess;
}

function EnableNext() {
    BlockNextButton(false);
}

function onRadioDblClick() {
    onBtnNext();
}

function SelectProgs_DblClk(lFlags) {
   //
   // retrieve selection, move on to the next page
   //
   onBtnNext();
   return 0;
}

function BrowseProgs_SelectionComplete() {
   //
   // retrieve selection, move on to the next page
   //
   onBtnNext();
   return 0;
}

function SelectProgs_ProgramListReady() {
    var btnNext = document.all['btnNext'];
    var progList = document.all['SelectProgs'];

    if (g_nPage == g_cAppProgramListPage) {
        btnNext.disabled = (progList.ItemCount <= 0);
        progList.focus();
    }
    SetProglistAction('Scan');
    g_bProgramsPopulated = true;
}

//-->
</SCRIPT>

<SCRIPT LANGUAGE=javascript FOR=BrowseProgs EVENT="SelectionComplete()">
<!--
    BrowseProgs_SelectionComplete();
//-->
</SCRIPT>

<SCRIPT LANGUAGE=javascript FOR=BrowseProgs EVENT="StateChanged(lState)">
<!--
    // handle state changed for the control
    if (lState == -5) {
        OnBrowseProgsReady();
        g_bAppBrowseProgsInitialized = true;
    }

//-->
</SCRIPT>



<SCRIPT LANGUAGE=javascript FOR=SelectProgs EVENT="DblClk(lFlags)">
<!--
    SelectProgs_DblClk(lFlags);
//-->
</SCRIPT>

<SCRIPT LANGUAGE=javascript FOR=SelectProgs EVENT="ProgramListReady()">
<!--
    SelectProgs_ProgramListReady();
//-->
</SCRIPT>

</head>

<body onLoad="javascript:InitPage()" style="margin-top:2em; margin-left:22px; margin-right:22px">

<!-- header -->

<table border=0 cellpadding=0 cellspacing=0 height=100% width=100% style="margin-top:0; margin-bottom:0">
    <tr style="margin-bottom:0em; margin-top:0em">
        <td>
            <div id=loc00 class="sys-font-heading3 sys-rhp-color-title" style="margin-bottom:1em; margin-top:0em">
                Program Compatibility Wizard
            </div>
        </td>
    </tr>

    <tr valign=top height=100%>
        <td>

<!-- Page 0 - Intro -->
            <Div id=Intro style="height:100%; margin-top:0em; margin-bottom:0em">
            <form name=frmIntro onSubmit='javascript:onBtnNext()' method=post action="">
                <table border=0 cellspacing=0 cellpadding=0 height=100% style="margin-top:0; margin-bottom:0">
                    <tr valign=top>
                        <td>
                            <Div style="height:90%; overflow-y:auto">
                                <Div id=loc01 class="sys-font-body-bold sys-color-body" style="margin-bottom:1em; margin-top:0em">
                                    <b>Welcome to the Program Compatibility Wizard</b>
                                </Div>

                                <Div id=loc02 class="sys-font-body sys-color-body" style="margin-bottom:2em; margin-top:0em">
                                    If you are experiencing problems with a program that worked
                                    correctly on an earlier version of Windows, this wizard helps you
                                    select and test compatibility settings that may fix those problems.
                                </Div>

                                <Div id=loc03 class="sys-font-body sys-color-body" style="margin-top:0em">
                                    <b>Caution:</b> It is recommended that you do not use this wizard for older
                                    virus detection, backup, or system programs.
                                </Div>
                            </Div>

                        </td>
                    </tr>

                    <tr style="height:2.5em">
                        <td>
                            <Div id=loc04 class="sys-font-body sys-color-body" style="vertical-align:bottom; margin-bottom:1em">
                                To continue, click Next.
                            </Div>
                        </td>
                    </tr>
               </table>
            </form>
            </Div>

<!-- Page 1 - App -->

            <DIV id=AppSelectMethod style="height:100%; display:none; overflow-y:auto">
            <form name="frmApp" method="post" onsubmit='javascript:onBtnNext()' enctype="multipart/form-data" action="">
                <TABLE border=0 cellspacing=0 cellpadding=0 width=100%>
                    <TR>
                        <TD>
                            <Div id=loc11 class="sys-font-body-bold sys-color-body" style="margin-bottom:1em; margin-top:0em">
                                <b>How do you want to locate the program that you
                                would like to run with compatibility settings?</b>
                            </Div>
                            <Div class="sys-font-body sys-color-body" style="margin-left:0; margin-bottom:1em; margin-top:0em">
                                <INPUT CHECKED name=progClass type=radio value=ProgList id=chkProgList ondblclick="javascript:onRadioDblClick()">
                                <label id=lblProgList for=chkProgList title="Choose a program from the list" ondblclick="javascript:onRadioDblClick()"
                                    ACCESSKEY="h">
                                    I want to c<u>h</u>oose from a list of programs
                                </label>
                            </Div>
                            <Div class="sys-font-body sys-color-body" style="margin-bottom:1em; margin-top:0em">
                                <INPUT name=progClass type=radio value=CDProg id=chkCDProg ondblclick="javascript:onRadioDblClick()">
                                <label id=lblCDProg for=chkCDProg title="I want to use the program in the CD-ROM drive" ondblclick="javascript:onRadioDblClick()"
                                    ACCESSKEY="u">
                                    I want to <u>u</u>se the program in the CD-ROM drive
                                </label>
                            </Div>
                            <Div class="sys-font-body sys-color-body" style="margin-bottom:1em; margin-top:0em">
                                <INPUT name=progClass type=radio value=BrowseProg id=chkBrowseProg ondblclick="javascript:onRadioDblClick()">
                                <label id=lblBrowseProg for=chkBrowseProg title="Browse for the application" ondblclick="javascript:onRadioDblClick()"
                                    ACCESSKEY="a">
                                    I want to loc<u>a</u>te the program manually
                                </label>
                            </Div>
                        </TD>
                    </TR>
                </TABLE>
            </form>
            </DIV>

<!-- Page 2 - AppProgramList -->

            <DIV id=AppProgramList style="display:none; height:100%; margin-top:0em; margin-bottom:0em">
            <form name="frmAppProgramList" method="post" onsubmit='javascript:onBtnNext()' enctype="multipart/form-data" action="">
            <TABLE border=0 cellspacing=0 cellpadding=0 width=100% height=100% style="margin-top:0; margin-bottom:0">
                <TR valign=top>
                    <TD>
                        <Div style="height:90%; overflow-y:auto">
                            <Div id=loc21 class="sys-font-body-bold sys-color-body" style="margin-top:0; margin-bottom:1em">
                                <b>Which program do you want to run with compatibility settings?</b>
                            </Div>
                            <Div class="sys-font-body sys-color-body" style="margin-top:0; margin-bottom:0em">
                                <label id=lblSelectProgs for=SelectProgs title="Select a program"
                                    ACCESSKEY="S">
                                    <u>S</u>elect a program:
                                </label>
                                <div class="sys-font-body sys-color-body" style="margin-top:0.25em; margin-bottom:0em"></div>
                                <!-- No accesskey is needed for this object tag - it is complimentary (from the label) -->
                                <OBJECT ID=SelectProgs classid=CLSID:B9B7D40C-0C41-4EAF-B0B5-6B41378C7F48 width="100%" height="80%">
                                </OBJECT>
                            </Div>
                        </Div>
                    </TD>
                </TR>
                <tr style="height:3em">
                    <td>
                        <Div id=divProgListAction class="sys-font-body sys-color-body" style="margin-bottom:1em; margin-top:0em">
                            <BUTTON value="Action" onclick="javascript:ProgListAction()"
                                    id=btnProgListAction
                                    style="width:6em; margin-left:0em; margin-top:0em; margin-bottom:0.5em">
                            </BUTTON>
                        </Div>
                    </td>
                </tr>
            </TABLE>
            </form>
            </DIV>


<!-- Page 3 - AppBrowseProgs -->

            <DIV id=AppBrowseProgs  style="display:none; height=100%; overflow-y:auto">
            <form name="frmAppBrowseProgs" method="post" onsubmit='javascript:onBtnNext()' enctype="multipart/form-data" action="">
            <TABLE border=0 cellspacing=0 cellpadding=0 width=100%>
                <TR>
                    <TD valign="top">
                        <Div id=loc31 class="sys-font-body-bold sys-color-body" style="margin-top:0; margin-bottom:1em">
                            <b>Which program do you want to run with compatibility settings?</b>
                        </Div>
                        <Div class="sys-font-body sys-color-body" style="margin-top:0; margin-bottom:1em">
                            <label id=lblBrowseProgs for=BrowseProgs
                                titile="Type the path to the program shortcut or executable file">
                            </label>
                            <div class="sys-font-body sys-color-body" style="margin-top:0.25em; margin-bottom:0em"></div>
                            <!-- note that the accesskey for the control should match all the accelerators defined in that control
                                 parameter Accel should be set to match ACCESSKEY
                            -->
                            <OBJECT ID=BrowseProgs classid=CLSID:66CBC149-A49F-48F9-B17A-6A3EA9B42A87 width="100%" height="30">
                            </OBJECT>
                        </Div>

                    </TD>
                </TR>
                </TBODY>
            </TABLE>
            </form>
            </DIV>

<!-- Page 4 - FixesLayers -->

            <DIV id=FixesLayers  style="display:none; height:100%; overflow-y:auto">
            <form name="frmFixesLayers" method="post" onsubmit='javascript:onBtnNext()' enctype="multipart/form-data" action="">
            <TABLE border=0 cellspacing=0 cellpadding=0 width=100%>
                <TR>
                    <TD valign="top">
                        <Div id=loc41 class="sys-font-body-bold sys-color-body" style="margin-top:0; margin-bottom:1em">
                            <b>Select a compatibility mode for the program</b>
                        </Div>
                        <Div id=loc42 class="sys-font-body sys-color-body" style="margin-top:0; margin-bottom:1em">
                            Choose the operating system that is recommended for this program,
                            or that previously supported the program correctly:
                        </Div>
                        <Div class="sys-font-body sys-color-body" style="margin-top:0; margin-bottom:1em">
                            <INPUT CHECKED name=layer type=radio value=WIN95   id=chkWin95 ondblclick="javascript:onRadioDblClick()">
                                <label id=lblWIN95   for=chkWin95 ondblclick="javascript:onRadioDblClick()"
                                    title="Set to run under Windows 95 compatibility mode" ACCESSKEY="5">
                                    Microsoft Windows 9<u>5</u>
                                </label>
                        </Div>
                        <Div class="sys-font-body sys-color-body" style="margin-top:0; margin-bottom:1em">
                            <INPUT         name=layer type=radio value=NT4SP5  id=chkNT4SP5 ondblclick="javascript:onRadioDblClick()">
                                <label id=lblNT4SP5  for=chkNT4SP5 ondblclick="javascript:onRadioDblClick()"
                                    title="Set to run under NT4 Service pack 5 compatibility mode" ACCESSKEY="T">
                                    Microsoft Windows N<u>T</u> 4.0 (Service Pack 5)
                                </label>
                        </Div>
                        <Div class="sys-font-body sys-color-body" style="margin-top:0; margin-bottom:1em">
                            <INPUT         name=layer type=radio value=WIN98   id=chkWin98 ondblclick="javascript:onRadioDblClick()">
                                <label id=lblWIN98   for=chkWin98 ondblclick="javascript:onRadioDblClick()"
                                    title="Set to run under Windows 98/Windows Me compatibility mode" ACCESSKEY="8">
                                    Microsoft Windows 9<u>8</u> / Windows Me
                                </label>
                        </Div>
                        <Div class="sys-font-body sys-color-body" style="margin-top:0; margin-bottom:1em">
                            <INPUT         name=layer type=radio value=WIN2000 id=chkWin2000 ondblclick="javascript:onRadioDblClick()">
                                <label id=lblWIN2000 for=chkWin2000 ondblclick="javascript:onRadioDblClick()"
                                    title="Set to run under Windows 2000 compatibility mode" ACCESSKEY="2">
                                    Microsoft Windows <u>2</u>000
                                </label>
                        </Div>
                        <Div class="sys-font-body sys-color-body" style="margin-top:0; margin-bottom:1em">
                            <INPUT         name=layer type=radio value=WINXP id=chkWinXP ondblclick="javascript:onRadioDblClick()">
                                <label id=lblWINXP for=chkWinXP ondblclick="javascript:onRadioDblClick()"
                                    title="Set to run under Windows XP compatibility mode" ACCESSKEY="X">
                                    Microsoft Windows <u>X</u>P
                                </label>
                        </Div>
                        <Div class="sys-font-body sys-color-body" style="margin-top:0; margin-bottom:0em">
                            <INPUT         name=layer type=radio value=None    id=chkNoLayer ondblclick="javascript:onRadioDblClick()">
                                <label id=lblNone    for=chkNoLayer ondblclick="javascript:onRadioDblClick()"
                                    title="Do not apply a compatibility mode" ACCESSKEY="D">
                                    <u>D</u>o not apply a compatibility mode
                                </label>
                        </Div>
                    </TD>
                </TR>
            </TABLE>
            </form>
            </DIV>

<!-- Page 5 - FixesOther -->

            <DIV id=FixesOther  style="height:100%; display:none; overflow-y:auto">
            <form name="frmFixesOther" method="post" onsubmit='javascript:onBtnNext()' enctype="multipart/form-data" action="">
            <TABLE border=0 cellspacing=0 cellpadding=0 width=100%>
                <TR>
                    <TD valign="top">
                        <Div id=loc51 class="sys-font-body-bold sys-color-body" style="margin-top:0; margin-bottom:1em">
                            <b>Select display settings for the program</b>
                        </Div>
                        <Div id=loc52 class="sys-font-body sys-color-body" style="margin-top:0; margin-bottom:1em">
                            Choose the settings that are recommended for this program,
                            or that previously supported the program correctly:
                        </Div>
                        <Div class="sys-font-body sys-color-body" style="margin-top:0; margin-bottom:1em">
                            <INPUT type=checkbox name=chk256color  id=chk256color  value="256COLOR"      >
                                <label id=lbl256COLOR      for=chk256color  title="Run program in 256 colors mode"
                                    ACCESSKEY="R">
                                    256 colo<u>r</u>s
                                </LABEL>
                        </Div>
                        <Div class="sys-font-body sys-color-body" style="margin-top:0; margin-bottom:1em">
                            <INPUT type=checkbox name=chk640x480   id=chk640x480   value="640X480"       >
                                <label id=lbl640X480       for=chk640x480   title="Run program in 640 x 480 screen resolution"
                                    ACCESSKEY="s">
                                    640 x 480 <u>s</u>creen resolution
                                </LABEL>
                        </Div>
                        <Div class="sys-font-body sys-color-body" style="margin-top:0; margin-bottom:1em">
                            <INPUT type=checkbox name=chkNoThemes  id=chkNoThemes  value="DISABLETHEMES" >
                                <label id=lblDISABLETHEMES for=chkNoThemes  title="Disable visual themes"
                                    ACCESSKEY="D">
                                    <u>D</u>isable visual themes
                                </LABEL>
                            <div id=loc53 class="sys-font-body sys-color-body" style="margin-left:2em; margin-top:0em; margin-bottom:0em">
                                Try this option if you are experiencing problems with menus or buttons
                                on the title bar of the program.
                            </div>
                        </Div>

                    </TD>
                </TR>
            </TABLE>
            </form>
            </DIV>

<!-- Page 6 - FixesLUA -->

            <DIV id=FixesLUA  style="height:100%; display:none; overflow-y:auto">
            <form name="frmFixesOther" method="post" onsubmit='javascript:onBtnNext()' enctype="multipart/form-data" action="">
            <TABLE border=0 cellspacing=0 cellpadding=0 width=100%>
                <TR>
                    <TD valign="top">
                        <Div id=loc61 class="sys-font-body-bold sys-color-body" style="margin-top:0; margin-bottom:1em">
                            <b>Select user account privileges</b>
                        </Div>
                        <Div id=loc62 class="sys-font-body sys-color-body" style="margin-top:0; margin-bottom:1em">
                            If you are receiving access denied errors or cannot
                            start the program, select the check box.
                        </Div>
                        <Div class="sys-font-body sys-color-body" style="margin-top:0; margin-bottom:1em">
                            <INPUT type=checkbox name=chkLUA  id=chkLUA  value="LUA">
                                <label id=lblLUA for=chkLUA  title="Simulate administrative privileges"
                                    ACCESSKEY="A">
                                    <u>A</u>llow non-administrators to run this program
                                </label>
                            <div id=loc63 class="sys-font-body sys-color-body" style="margin-left:2em; margin-top:0em; margin-bottom:0em">
                                    Redirects program data to unrestricted locations so that users
                                    without administrator accounts can use the program.
                            </div>
                        </Div>
                    </TD>
                </TR>
            </TABLE>
            </form>
            </DIV>

<!-- Page 7 - Run -->

            <DIV id=Run style="height:100%; display:none; margin-top:0em; margin-bottom:0em">
            <form name="frmRun" onSubmit="javascript:onBtnNext()" action="" method=post>
            <TABLE border=0 cellPadding=0 cellSpacing=0 width=100% height=100% style="margin-top=0; margin-bottom:0">
                <TR>
                    <TD valign="top">
                        <Div style="height:100%; overflow-y:auto">

                            <Div id=loc71 class="sys-font-body-bold sys-color-body" style="margin-top:0; margin-bottom:1em">
                                <b>Test your compatibility settings</b>
                            </Div>
                            <Div id=loc72 class="sys-font-body-bold sys-color-body" style="margin-top:0; margin-bottom:1em">
                                <b>Program name or path:</b>
                            </Div>

                            <Div id="divTargetApp" class="sys-font-body sys-color-body" style="margin-top:0; margin-bottom:1em; margin-left:1em"></Div>

                            <Div id=loc73 class="sys-font-body-bold sys-color-body" style="margin-top:0; margin-bottom:1em">
                                <b>Compatibility settings to apply:</b>
                            </Div>

                            <Div id="divCompatLayer" class="sys-font-body sys-color-body" style="margin-top:0; margin-bottom:2em; margin-left:1em"></div>

                        </Div>
                    </TD>
                </TR>
                <TR style="height=6em">
                    <TD>
                        <Div class="sys-font-body sys-color-body" style="vertical-align:bottom; margin-top:0; margin-bottom:1em">
                            <Div id=loc74 class="sys-font-body sys-color-body" style="margin-top:0; margin-bottom:1em">
                                To test the program with the new compatibility settings, click Next.
                            </Div>

                            <Div id=loc75 class="sys-font-body sys-color-body" style="margin-top:0; margin-bottom:0em">
                                 After verifying whether the program worked correctly, return to this wizard.
                            </Div>
                        </Div>
                    </TD>
                </TR>
            </TABLE>
            </form>
            </DIV>


<!-- Page 8 - Update -->

            <DIV id=Update style="height:100%; display:none; overflow-y:auto; margin-top:0em; margin-bottom:0em">
            <form name="frmUpdate" method="post" onSubmit='javascript:onBtnNext()' action="">
            <TABLE border=0 cellPadding=0 cellSpacing=0 width=100%>
                <TR>
                    <TD valign="top">
                        <Div id=loc81 class="sys-font-body-bold sys-color-body" style="margin-top:0; margin-bottom:1em">
                            <b>Did the program work correctly?</b>
                        </Div>
                        <Div class="sys-font-body sys-color-body" style="margin-top:0; margin-bottom:1em">
                            <input name="UpdateShortcut" type="radio" value="Yes" CHECKED id=chkYes ondblclick="javascript:onRadioDblClick()">
                            <label id=lblYes   for=chkYes   title="Yes, set this program to always use these compatibility settings" ondblclick="javascript:onRadioDblClick()"
                                ACCESSKEY="Y">
                                <u>Y</u>es, set this program to always use these compatibility settings
                            </label>
                        </Div>
                        <Div class="sys-font-body sys-color-body" style="margin-top:0; margin-bottom:1em">
                            <input name="UpdateShortcut" type="radio" value="TryOther" id=chkTryOther ondblclick="javascript:onRadioDblClick()">
                            <label id=lblTryOther for=chkTryOther title="No. Try different compatibility settings" ondblclick="javascript:onRadioDblClick()"
                                ACCESSKEY="D">
                                No, try <u>d</u>ifferent compatibility settings
                            </label>
                        </Div>
                        <Div class="sys-font-body sys-color-body" style="margin-top:0; margin-bottom:2em">
                            <input name="UpdateShortcut" type="radio" value="No" id=chkNo ondblclick="javascript:onRadioDblClick()">
                            <label id=lblNo for=chkNo title="No, go to the end of this wizard" ondblclick="javascript:onRadioDblClick()"
                                ACCESSKEY="F">
                                No, I am <u>f</u>inished trying compatibility settings
                            </label>
                        </Div>

                        <Div id=MediaWarning class="sys-font-body sys-color-body" style="margin-top:0; margin-bottom:1em"></div>
                     </TD>
                </TR>
            </TABLE>
            </form>
            </DIV>


<!-- Page 9 - Compatibility Data -->

            <DIV id=CompatibilityData style="height:100%; display:none; margin-top:0em; margin-bottom:0em">
            <form name="frmCompatData" method="post" onSubmit='javascript:onBtnNext()' action="">
            <TABLE border=0 cellPadding=0 cellSpacing=0 width=100% height=100%>
                <TR>
                    <TD valign="top">
                        <Div id=cwBody style="height:90%; overflow-y:auto">
                            <Div id=loc91 class="sys-font-body-bold sys-color-body" style="margin-top:0; margin-bottom:1em">
                                <b>Program Compatibility Data</b>
                            </Div>

                            <Div id=loc92 class="sys-font-body sys-color-body" style="margin-top:0em; margin-bottom:1em; margin-left:0">
                                Microsoft has created temporary files that contain information about the settings you selected
                                and whether the problems were fixed. Sending this information to Microsoft will help us improve
                                program compatibility.
                            </Div>

                            <Div id=loc93 class="sys-font-body sys-color-body" style="margin-top:0em; margin-bottom:1em; margin-left:0">
                                Would you like to send this information to Microsoft?
                            </Div>

                            <Div class="sys-font-body sys-color-body" style="margin-top:0; margin-bottom:1em">
                                <INPUT name=UploadInfo type=radio value=Yes   id=chkUploadInfo onclick="javascript:EnableNext()">
                                    <label id=lblUploadInfo   for=chkUploadInfo
                                        title="Yes, send this information to Microsoft"
                                        ACCESSKEY="Y">
                                        <U>Y</U>es
                                    </label>
                            </Div>
                            <Div class="sys-font-body sys-color-body" style="margin-top:0; margin-bottom:1em">
                                <INPUT name=UploadInfo type=radio value=No  id=chkNoUploadInfo onclick="javascript:EnableNext()">
                                    <label id=lblNoUploadInfo  for=chkNoUploadInfo
                                        title="No, Do not send this information to Microsoft"
                                        ACCESSKEY="o">
                                        N<U>o</U>
                                    </label>
                            </Div>

                            <Div id=loc94 class="sys-font-body sys-color-body" style="margin-top:0em; margin-bottom:1em; margin-left:0">
                                The information will be treated anonymously and confidentially per
                                    <a target="_new" href="http://go.microsoft.com/fwlink/?LinkId=825">our data collection policy</a> on the the Web.
                            </Div>

                            <Div id=loc95 class="sys-font-body sys-color-body" style="margin-top:0em; margin-bottom:1em; margin-left:0">
                                <a href="javascript:ViewTempFileList();">See the temporary files that would be sent</a>
                            </Div>
                        </Div>
                    </TD>
                </TR>
            </TABLE>
            </form>
            </DIV>




<!-- Page 10 - Finish -->

            <DIV id=CompleteWizard style="height:100%; display:none; margin-top:0em; margin-bottom:0em">
            <form name="frmCompleteWizard" method="post" onSubmit='javascript:onBtnNext()' action="">
            <TABLE border=0 cellPadding=0 cellSpacing=0 width=100% height=100%>
                <TR>
                    <TD valign="top">
                        <Div id=cwBody style="height:90%; overflow-y:auto">
                            <Div id=loc101 class="sys-font-body-bold sys-color-body" style="margin-top:0; margin-bottom:1em">
                                <b>Completing the Program Compatibility Wizard</b>
                            </Div>

                            <Div id="divCompatSettings" class="sys-font-body sys-color-body" style="margin-top:0; margin-bottom:2em"></Div>
                            <Div id=loc102 class="sys-font-body sys-color-body" style="margin-top:0; margin-bottom:1em">
                                To readjust or remove compatibility settings, run this wizard again.
                            </Div>

                        </Div>
                    </TD>
                </TR>
                <TR style="height:2.5em">
                    <TD>
                        <Div id=loc103 class="sys-font-body sys-color-body" style="vertical-align:bottom; margin-top:0; margin-bottom:1em">
                            To close this wizard, click Finish.
                        </Div>
                    </TD>
                </TR>
            </TABLE>
            </form>
            </DIV>

<!-- Page 11 - Compat Wizard Disabled -->

            <DIV id=CompatWizardDisabled style="height:100%; display:none; margin-top:0em; margin-bottom:0em">
            <form name="frmCompleteWizard" method="post" onSubmit='javascript:onBtnNext()' action="">
            <TABLE border=0 cellPadding=0 cellSpacing=0 width=100% height=100%>
                <TR>
                    <TD valign="top">
                        <Div id=cwBody style="height:90%; overflow-y:auto">
                            <Div id=loc111 class="sys-font-body-bold sys-color-body" style="margin-top:0; margin-bottom:1em">
                                <b>This wizard is not available</b>
                            </Div>

                            <Div id=loc112 class="sys-font-body sys-color-body" style="margin-top:0; margin-bottom:1em">
                                The Program Compatibility Wizard has been disabled.
                                For more information, contact your system administrator.
                            </Div>

                        </Div>
                    </TD>
                </TR>
                <TR style="height:2.5em">
                    <TD>
                        <Div id=loc113 class="sys-font-body sys-color-body" style="vertical-align:bottom; margin-top:0; margin-bottom:1em">
                            To close this wizard, click Cancel.
                        </Div>
                    </TD>
                </TR>
            </TABLE>
            </form>
            </DIV>



        </td>
    </tr>

    <tr style="height:3em" valign=top>
    <td>
            <hr>

            <form name="frmNav" method="post" onsubmit='javascript:onBtnNext()'>
                <p align="right">
                <BUTTON id=btnBack   value="Back" onclick="javascript:onBtnBack()" name="btnBack" style="width:6em; margin-left:0em; margin-right:0.5em; margin-top:0em"></BUTTON>
                <BUTTON id=btnNext   type="Submit" value="Next" onclick="javascript:onBtnNext()" name="btnNext" style="width:6em; margin-left:0.5em; margin-right:0.5em; margin-top:0em"></BUTTON>
                <BUTTON id=btnCancel value="Cancel" onclick="javascript:onBtnCancel()" name="btnCancel" style="width:6em; margin-left:0.5em; margin-right:0em; margin-top:0em"></BUTTON>
                </p>
            </form>
    </TD>
    </TR>

</TABLE>


</body>
</HTML>