<html>

<head>
<meta http-equiv="Content-Language" content="ru-ru">
<meta http-equiv="Content-Type" content="text/html; charset=unicode">
<title>Резервное копирование информационной базы...</title>

<HTA:APPLICATION ID="oHTA"
     BORDER="none"
     CAPTION="no"
     CONTEXTMENU="no"
     Icon="splash.ico"
     INNERBORDER="no"
     NAVIGABLE="yes"
     SHOWINTASKBAR="yes"
     SCROLL="no"
     VERSION="1.0.0.0"/>

<script language="javascript" src="helpers.js"></script>
<script language="javascript" src="main.js"></script>
<script language="javascript">

	// Размер и положение окна по умолчанию.
	var splashWindowWidth  = 490;
	var splashWindowHeight = 350;
	var splashWindowLeft   = 200;
	var splashWindowTop    = 100;
	
	// Инициализация окна
	if (window.screen)
	{
		splashWindowLeft = (window.screen.availWidth - splashWindowWidth) / 2;
		splashWindowTop  = (window.screen.availHeight - splashWindowHeight) / 2;
	}
	window.moveTo(splashWindowLeft, splashWindowTop);
	window.resizeTo(splashWindowWidth, splashWindowHeight);

	// Переменные состояния
    var step = 0;   // Текущий шаг процедуры резервного копирования.
	var ret = 0;    // Код возврата предыдущего шага.
    var finish = false;
    var errStep = 0;
    
  		// Вывести сообщение о ходе резервного копирования
	function setProgress(statusText)
	{
	    statusText += "...";
        progressText.innerHTML = statusText;
	    log(statusText);
	}

	// Конечный автомат для выполнения шагов процедуры резервного копирования.
	function doStep(step)
	{
	    switch(step)
	    {
	        case 0:
    	        setProgress("Инициализация");
	            break;
	        case 1:
                ret = initialize();
	            break;
	        case 2:
        	    setProgress("Завершение работы пользователей");
	            break;
	        case 3:
	            //ret = disconnectAndBlockUsersHTA(); 
	            ret  = 0;
	            break;
	        case 4:
                setProgress("Cоздание резервной копии информационной базы");
	            break;
	        case 5:
	            ret = backupDB(); 
	            break;
	        case 6:
	            setProgress("Ожидание завершения резервного копирования");
	            break;
	        case 7:
	            ret = WaitUntilFinish();
	            break;
	        case 8:
	            setProgress("Разрешение подключений новых соединений");
	            break;
	        case 9:
	            ret = allowConnections(); 
	            break;
	        case 10:
        	    setProgress("Завершение");
	            break;
	        case 11: 
                // Все готово.
                finalize(true);
                runEnterprise();
                self.close();
                ClearTempFiles();
                finish = true;
	            break;
	        default: 
	      	    }
	    return ret;
	}
	
	// Выпонить процедуру резервного копирования
	function main()
	{
        if (finish) 
            return;

        if (ret > 0)   // Если предыдущий шаг завершился неудачно...
        { 
            if (errStep == 0)
            {   
            	
    	        log(format("Завершение с ошибкой. Код ошибки: {0}. Подробности см. в предыдущей записи.", ret), true);
    	        finalize();
    	        runEnterprise();
    	        self.close();
                return;
            }
            finalize(); 
            runEnterprise();
            self.close();
            ClearTempFiles();
            finish = true;
            return; 
        }
        
	    // Последовательное выполнение шагов процедуры резервного копирования.
        if (ret != -1)
            step++;
        doStep(step);
        if (!finish)
            setTimeout("main()", ret != -1 ? 1000 : 18*1000);   // Передача управления IE и повторный вызов main.
	}

function checkClose()
{
    if (!finish)
        event.returnValue = format('Внимание: процесс резервного копирования был прерван, и информационная база осталась заблокированной!\n'+
            'Для разблокирования информационной базы воспользуйтесь консолью кластера серверов или запустите "1С:Предприятие".');
}

function ClearTempFiles()
{
    // Удаляем временные файлы
	try
	{
		oFileSystemObject.DeleteFile(thisFileDir + '\\main.js');
		oFileSystemObject.DeleteFile(thisFileDir + '\\helpers.js');
		oFileSystemObject.DeleteFile(thisFileDir + '\\splash.bmp');
		oFileSystemObject.DeleteFile(thisFileDir + '\\splash.ico');
		oFileSystemObject.DeleteFile(thisFileDir + '\\progress.gif');
	}
	catch(e) {}
}

</script>
</head>

<body  onLoad="window.setTimeout('main()',10);"  background="splash.bmp" style="border: 0px;">

<div id="progressIcon" style="position: absolute; left: 150px; top: 90px;">
  <img src="progress.gif" border=0/>
</div>

<div id="captionText" style="font-size: 10pt; font-family: verdana,arial; font-weight: bold; color: #606060; position: absolute; left: 220px; top: 90px;">
  Пожалуйста, подождите. Выполняется резервное копирование базы.
</div>

<div id="progressText" style="font-size: 8pt; font-family: verdana,arial; color: #000000; position: absolute; left: 180px; top: 270px;">
  &nbsp;
</div>

</body>

</html>