<?xml version="1.0"?>

<!-- This Source Code Form is subject to the terms of the Mozilla Public
   - License, v. 2.0. If a copy of the MPL was not distributed with this
   - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->

<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<?xml-stylesheet href="chrome://mozapps/content/update/updates.css"?>
<?xml-stylesheet href="chrome://mozapps/skin/update/updates.css"?>

<!DOCTYPE wizard [
<!ENTITY % updateDTD SYSTEM "chrome://mozapps/locale/update/updates.dtd">
<!ENTITY % brandDTD SYSTEM "chrome://branding/locale/brand.dtd">
%updateDTD;
%brandDTD;
]>

<wizard id="updates"
        xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
        title="&updateWizard.title;"
        windowtype="Update:Wizard"
        style="width: auto; height: auto"
        onwizardfinish="gUpdates.onWizardFinish();"
        onwizardcancel="gUpdates.onWizardCancel();"
        onwizardnext="gUpdates.onWizardNext();"
        onload="gUpdates.onLoad();"
        onunload="gUpdates.onUnload();">

  <script type="application/javascript" src="chrome://global/content/contentAreaUtils.js"/>
  <script type="application/javascript" src="chrome://mozapps/content/update/updates.js"/>

  <stringbundleset id="updateSet">
    <stringbundle id="brandStrings" src="chrome://branding/locale/brand.properties"/>
    <stringbundle id="updateStrings" src="chrome://mozapps/locale/update/updates.properties"/>
  </stringbundleset>

  <wizardpage id="dummy" pageid="dummy" firstpage="true"/>

  <wizardpage id="checking" pageid="checking" next="pluginupdatesfound"
              object="gCheckingPage" onpageshow="gCheckingPage.onPageShow();">
    <updateheader label="&checking.title;"/>
    <vbox class="update-content" flex="1">
      <label>&updateCheck.label;</label>
      <separator class="thin"/>
      <progressmeter id="checkingProgress" mode="undetermined"/>
    </vbox>
  </wizardpage>

  <wizardpage id="pluginupdatesfound" pageid="pluginupdatesfound"
              object="gPluginsPage" onpageshow="gPluginsPage.onPageShow();">
    <updateheader label="&pluginupdatesfound.title;"/>
    <vbox class="update-content" flex="1">
      <label>&pluginupdatesfound.label;</label>
      <separator class="thin"/>
      <label id="pluginupdateslink" class="text-link"
             onclick="openUpdateURL(event);">&pluginupdateslink.label;</label>
    </vbox>
  </wizardpage>

  <wizardpage id="noupdatesfound" pageid="noupdatesfound"
              object="gNoUpdatesPage" onpageshow="gNoUpdatesPage.onPageShow();">
    <updateheader label="&noupdatesfound.title;"/>
    <vbox class="update-content" flex="1">
      <label id="noUpdatesAutoEnabled" hidden="true">&noupdatesautoenabled.intro;</label>
      <label id="noUpdatesAutoDisabled" hidden="true">&noupdatesautodisabled.intro;</label>
    </vbox>
  </wizardpage>

  <wizardpage id="manualUpdate" pageid="manualUpdate" object="gManualUpdatePage"
              onpageshow="gManualUpdatePage.onPageShow();">
    <updateheader label="&manualUpdate.title;"/>
    <vbox class="update-content" flex="1">
      <label id="manualUpdateDesc">&manualUpdate.desc;</label>
      <label id="manualUpdateSpaceDesc"
             hidden="true">&manualUpdate.space.desc;</label>
      <separator class="thin"/>
      <label>&manualUpdateGetMsg.label;</label>
      <hbox>
        <label class="text-link" id="manualUpdateLinkLabel" value=""
               onclick="openUpdateURL(event);"/>
      </hbox>
    </vbox>
  </wizardpage>

  <wizardpage id="unsupported" pageid="unsupported"
              object="gUnsupportedPage"
              onpageshow="gUnsupportedPage.onPageShow();">
    <updateheader label="&unsupported.title;"/>
    <vbox class="update-content" flex="1">
      <description flex="1">&unsupported.label;
        <label id="unsupportedLinkLabel" class="text-link inline-link" onclick="openUpdateURL(event);">
          &unsupportedLink.label;
        </label>
      </description>
    </vbox>
  </wizardpage>

  <wizardpage id="incompatibleCheck" pageid="incompatibleCheck"
              next="updatesfoundbasic" object="gIncompatibleCheckPage"
              onpageshow="gIncompatibleCheckPage.onPageShow();">
    <updateheader label="&incompatibleCheck.title;"/>
    <vbox class="update-content" flex="1">
      <label>&incompatibleCheck.label;</label>
      <separator class="thin"/>
      <progressmeter id="incompatibleCheckProgress" mode="undetermined"/>
    </vbox>
  </wizardpage>

  <wizardpage id="updatesfoundbasic" pageid="updatesfoundbasic"
              object="gUpdatesFoundBasicPage" next="downloading"
              onpageshow="gUpdatesFoundBasicPage.onPageShow();"
              onextra1="gUpdatesFoundBasicPage.onExtra1();"
              onextra2="gUpdatesFoundBasicPage.onExtra2();">
    <updateheader id="updatesFoundBasicHeader" label=""/>
    <vbox class="update-content" flex="1">
      <label id="updatesFoundInto"/>
      <separator class="thin"/>
      <label id="updateName" crop="right" value=""/>
      <separator id="updateNameSep" class="thin"/>
      <label id="upgradeEvangelism">&evangelism.desc;</label>
      <separator id="upgradeEvangelismSep" flex="1"/>
      <vbox flex="1">
        <hbox id="moreInfoURL">
          <label class="text-link" id="updateMoreInfoURL"
                 value="&clickHere.label;" onclick="openUpdateURL(event);"/>
        </hbox>
      </vbox>
    </vbox>
  </wizardpage>

  <wizardpage id="updatesfoundbillboard" pageid="updatesfoundbillboard"
              object="gUpdatesFoundBillboardPage" next="downloading"
              onpageshow="gUpdatesFoundBillboardPage.onPageShow();"
              onextra1="gUpdatesFoundBillboardPage.onExtra1();"
              onextra2="gUpdatesFoundBillboardPage.onExtra2();">
    <!-- note: the localized strings used by remotecontent are prefixed by the
               id for the remotecontent (e.g. updateMoreInfoContentNotFound,
               updateMoreInfoContentDownloading, etc.) -->
    <remotecontent id="updateMoreInfoContent" flex="1" remotetype="billboard"/>
  </wizardpage>

  <wizardpage id="license" pageid="license" next="downloading"
              object="gLicensePage" onpageshow="gLicensePage.onPageShow();"
              onextra1="gLicensePage.onExtra1();">
    <updateheader label="&license.titleText;"/>
    <vbox class="update-content" flex="1">
      <label>&license.instructionText;</label>
      <!-- note: the localized strings used by remotecontent are prefixed by
                 the id for the remotecontent (e.g. licenseContentNotFound,
                 licenseContentDownloading, etc.) -->
      <remotecontent id="licenseContent" flex="1" remotetype="license"/>
      <separator class="thin"/>
      <radiogroup id="acceptDeclineLicense" align="start"
                  onselect="gLicensePage.onAcceptDeclineRadio();">
        <radio id="accept" label="&license.accept;"
               accesskey="&license.accept.accesskey;"/>
        <radio id="decline" label="&license.decline;"
               accesskey="&license.decline.accesskey;"
               selected="true"/>
      </radiogroup>
    </vbox>
  </wizardpage>

  <wizardpage id="incompatibleList" pageid="incompatibleList"
              next="downloading" object="gIncompatibleListPage"
              onpageshow="gIncompatibleListPage.onPageShow();"
              onextra1="gIncompatibleListPage.onExtra1();">
    <updateheader label="&incompatibleList.title;"/>
    <vbox class="update-content" flex="1">
      <label id="incompatibleListDesc"/>
      <listbox id="incompatibleListbox" flex="1"/>
    </vbox>
  </wizardpage>

  <wizardpage id="downloading" pageid="downloading"
              object="gDownloadingPage" onextra1="gDownloadingPage.onHide();"
              onpageshow="gDownloadingPage.onPageShow();">
    <updateheader label="&downloadPage.title;"/>
    <vbox class="update-content" flex="1">
      <hbox id="downloadStatusProgress">
        <progressmeter id="downloadProgress" mode="undetermined" flex="1"/>
        <button id="pauseButton" oncommand="gDownloadingPage.onPause();"
                paused="false"/>
      </hbox>
      <separator class="thin"/>
      <hbox id="downloadStatusLine">
        <label id="downloadStatus" flex="1">&connecting.label;</label>
      </hbox>
      <separator/>
      <hbox id="verificationFailed" align="start" hidden="true">
        <image id="verificationFailedIcon"/>
        <label flex="1">&verificationFailedText.label;</label>
      </hbox>
    </vbox>
  </wizardpage>

  <wizardpage id="errors" pageid="errors" object="gErrorsPage"
              onpageshow="gErrorsPage.onPageShow();">
    <updateheader label="&error.title;"/>
    <vbox class="update-content" flex="1">
      <label id="errorIntro">&error.label;</label>
      <separator/>
      <textbox class="plain" readonly="true" id="errorReason" multiline="true"
               rows="3"/>
      <separator/>
      <label id="errorManual">&errorManual.label;</label>
      <hbox>
        <label class="text-link" id="errorLinkLabel" value=""
               onclick="openUpdateURL(event);"/>
      </hbox>
    </vbox>
  </wizardpage>

  <wizardpage id="errorextra" pageid="errorextra"
              object="gErrorExtraPage"
              onpageshow="gErrorExtraPage.onPageShow();">
    <updateheader label="&error.title;"/>
    <vbox class="update-content" flex="1">
      <label id="errorCertAttrHasUpdateLabel"
             hidden="true">&errorCertAttrHasUpdate.label;</label>
      <label id="errorCertCheckNoUpdateLabel"
             hidden="true">&errorCertAttrNoUpdate2.label;</label>
      <label id="genericBackgroundErrorLabel"
             hidden="true">&genericBackgroundError.label;</label>
      <hbox>
        <label id="errorExtraLinkLabel" class="text-link" hidden="true"
               value="" onclick="openUpdateURL(event);"/>
      </hbox>
    </vbox>
  </wizardpage>

  <wizardpage id="errorpatching" pageid="errorpatching" next="downloading"
              object="gErrorPatchingPage"
              onpageshow="gErrorPatchingPage.onPageShow();">
    <updateheader label="&error.title;"/>
    <vbox class="update-content" flex="1">
      <label>&errorpatching.intro;</label>
    </vbox>
  </wizardpage>

  <wizardpage id="finished" pageid="finished" object="gFinishedPage"
              onpageshow="gFinishedPage.onPageShow();"
              onextra1="gFinishedPage.onExtra1()">
    <updateheader label="&finishedPage.title;"/>
    <vbox class="update-content" flex="1">
      <label>&finishedPage.text;</label>
    </vbox>
  </wizardpage>

  <wizardpage id="finishedBackground" pageid="finishedBackground"
              object="gFinishedPage" onextra1="gFinishedPage.onExtra1()"
              onpageshow="gFinishedPage.onPageShowBackground();">
    <updateheader label="&finishedPage.title;"/>
    <vbox class="update-content" flex="1">
      <label>&finishedBackgroundPage.text;</label>
      <separator/>
      <hbox align="center">
        <label>&finishedBackground.name;</label>
        <label id="updateFinishedName" flex="1" crop="right" value=""/>
        <label id="finishedBackgroundLink" class="text-link" disabled="true"
               value="&details.link;" onclick="openUpdateURL(event);"/>
      </hbox>
      <spacer flex="1"/>
      <label id="finishedBackgroundMore">&finishedBackground.more;</label>
    </vbox>
  </wizardpage>

  <wizardpage id="installed" pageid="installed" object="gInstalledPage"
              onpageshow="gInstalledPage.onPageShow();">
    <updateheader label="&installed.title;"/>
    <vbox class="update-content" flex="1">
      <label>&installed.intro;</label>
      <separator/>
      <hbox>
        <label id="whatsnewLink" class="text-link" hidden="true"
               value="&whatsnew.label;" onclick="openUpdateURL(event);"/>
      </hbox>
    </vbox>
  </wizardpage>

</wizard>
