Тема: HTA: записная книжка
Программа для хранения текстов, мелких записей, статеек, ссылок и прочей плохо поддающейся структурированию информации.
Своеобразный аналог http://www.amlpages.com/about.shtml или ScrapBook.
<HTML><HEAD>
<TITLE>DataMix(null created)</TITLE>
<meta content="HTML 4.0" name=vs_targetSchema>
<META content=JavaScript name=vs_defaultClientScript>
<META http-equiv=Content-Type content="text/html; charset=windows-1251"><hta:application id=DataMix
applicationname="DataMix" border="thick" borderstyle="normal" caption="yes"
contextmenu="yes" innerborder="yes" maximizebutton="yes" minimizebutton="yes"
navigable="no" scroll="auto" scrollflat="no" showintaskbar="yes"
singleinstance="no" sysmenu="yes" version="1.0" windowstate="normal" />
<!-- body * { font:9pt/11pt Verdana; color:#005 } -->
<style type=text/css>
body { margin:0; background:#eee; font-family: verdana; font-size:10px; }
td { background:#eee; padding:0.1em; text-indent:0.1em;font-family: verdana; }
select { width: 270px;}
a.help { text-decoration:none;}
a.help span { display:none;}
a.help:hover { position:relative; }
a.help:hover span { position:absolute; display:block; left:10px; top:-15px;
</style>
<SCRIPT event=onunload for=window>
if (RemoteDataOnlyName!= "Data.xml")
{
SaveBase=window.confirm("Используемая вами база, загружена из интернета и имеет имя отличное от Data.xml, Сохранить использумую базу в текущую папку под именем Data.xml?\nЕсли в текущей папке имеется файл с именем Data.xml, то он будет перезаписан.\nТекущая используемая база - "+ RemoteData);
if (SaveBase==true)
{
xmldoc.save("Data.xml");
}
}
</SCRIPT>
<SCRIPT language=javascript>
<!-- скрыть скрипт от браузеров не поддерживающих их
var WshShell = new ActiveXObject("WScript.Shell");
var xmldoc = new ActiveXObject("MSXML.DomDocument");
var RemoteXML = new ActiveXObject("Microsoft.XMLHTTP");
var fso = new ActiveXObject("Scripting.FileSystemObject");
var objIE = new ActiveXObject ("InternetExplorer.Application");
var UrlPath=window.location.pathname;
var FileNamePath=UrlPath.replace(/%20/g," ");
var FolderPath = fso.GetParentFolderName(FileNamePath);
var XmlPath = FolderPath+"\\Data.xml";
var RemoteData=XmlPath;
var RemoteDataOnlyName="Data.xml";
function resize() // изменение размера окна к приемлемому виду
{
window.resizeTo(screen.width-(screen.width/5),screen.height-(screen.height/6));
}
function LoadForm()
{
window.ListThemes.setAttribute("size",23);
window.filedialog.style.display="none";
window.AddForm.style.display="none";
window.xmltools.style.display="none";
function CreateData_xml()
{
try
{
var File = fso.CreateTextFile(XmlPath, true);
File.WriteLine('<?xml version="1.0" encoding="windows-1251"?>');
BaseName=window.prompt("Введите имя базы","DataMix");
File.WriteLine('<root name="'+BaseName+'">');
GroupName=window.prompt("Введите имя первой создаваемой вами группы","group");
NodeName=window.prompt("Введите имя темы","node");
File.WriteLine('<group name="'+GroupName+'">');
File.WriteLine('<node name="'+NodeName+'">');
File.WriteLine("<![CDATA[");
File.WriteLine("]]>");
File.WriteLine("<![CDATA[");
File.WriteLine("]]>");
File.WriteLine("</node></group></root>");
File.close();
xmldoc.load("Data.xml");
RemoteDataOnlyName="Data.xml";
}
catch (err)
{
alert ("Ошибка создания файла Data.xml - "+err.description);
window.close();
}
}
if (fso.FileExists(XmlPath))
{
if (!xmldoc.load("Data.xml"))
{
alert("ОШИБКА ПАРСИНГА: " + xmldoc.parseError.reason);
NewBase=window.confirm("Переписать Data.xml?");
if (NewBase==true)
{
CreateData_xml();
}
else
{
window.close();
}
}
}
else
{
NewBase=window.confirm("Файл Data.xml не найден в текущей папке.\n\nOK-Создать новый файл\nОТМЕНА-Выбрать файл базы");
if (NewBase==true)
{
CreateData_xml();
alert ("Создана новая пустая база");
}
else
{
//диалог выбора файла
window.filedialog.click();
if (window.filedialog.value == "")
{
alert ("Вы ничего не выбрали");
window.close();
}
if (!xmldoc.load(window.filedialog.value))
{
alert("ОШИБКА ПАРСИНГА: " + xmldoc.parseError.reason);
window.close();
}
RemoteData=window.filedialog.value;
alert("Выбрана база -"+ RemoteData);
}
}
RemoteDataXml.innerHTML="<small>Используемая база - "+RemoteData+"</small>";
try
{
document.title=xmldoc.documentElement.attributes(0).text;
}
catch(err)
{
document.title="DATAMIX - "+RemoteData;
}
}
function loadxml()
{
URL=window.prompt("Введите адрес (или путь к файлу) с которого вы хотите загрузить базу","http://x-r-w.narod.ru/Data.xml");
if (URL!=null)
{
RemoteBase=window.confirm("Переписать локальный файл Data.xml?\n\nOK-Переписать\nОТМЕНА-Использовать другое имя");
BaseName=window.prompt("Введите имя базы","OtherData.xml");
if (RemoteBase==true)
{
RemoteData=FolderPath+"\\Data.xml";
RemoteDataOnlyName="Data.xml";
}
else
{
RemoteData=FolderPath+"\\"+BaseName;
RemoteDataOnlyName=BaseName;
}
try
{
RemoteXML.open("GET", URL, false);
RemoteXML.send();
var XmlData = RemoteXML.responseText;
var oStream = new ActiveXObject("ADODB.Stream")
adTypeText = 2
adSaveCreateOverWrite = 2
oStream.type = 2
oStream.open ()
oStream.WriteText(XmlData)
oStream.savetofile (RemoteData,adSaveCreateOverWrite);
oStream.close();
xmldoc.load(RemoteData);
alert("База загружена из интернета, и сохранена под именем:\n"+RemoteData);
FillListGroup(ListGroup);
FillListThemes(ListThemes,ListGroup);
RemoteDataXml.innerHTML="<small>Используемая база - "+RemoteData+"</small>";
}
catch (err) {alert ("Ошибка загрузки - "+err.description+"");}
}
}
function loadxmlfromfile()
{
window.filedialog.click();
if (window.filedialog.value == "")
{
alert ("Вы ничего не выбрали");
}
else
{
if (!xmldoc.load(window.filedialog.value))
{
alert("ОШИБКА ПАРСИНГА: " + xmldoc.parseError.reason);
window.close();
}
RemoteData=window.filedialog.value;
RemoteDataXml.innerHTML="<small>Используемая база - "+RemoteData+"</small>";
try
{
document.title=xmldoc.documentElement.attributes(0).text+" - "+RemoteData;
}
catch (err)
{
document.title="DATAMIX - "+RemoteData;
}
window.AddForm.style.display="none";
window.xmltools.style.display="none";
window.resultat.style.display="";
FillListGroup(ListGroup);
FillListThemes(ListThemes,ListGroup)
}
}
function Run(CommandString) // запуск программ
{
WshShell.Run(CommandString,1);
}
function keyDown()
{
var code=event.keyCode;
switch(code)
{
case 112:
alert("DataMix (null created)");
break;
case 116:
alert ("Внимание нажата клавиша F5, сейчас будет перегружен документ, и будет использоваться стандартная база Data.xml");
}
}
function ClearChilds(Element, begin)
{
while(Element.length > begin)
{
child = Element.item(begin);
Element.removeChild(child);
}
}
function FillListGroup(ElementNameForFill)
{
ClearChilds(ElementNameForFill,0);
try
{
for(i=0; i<xmldoc.documentElement.childNodes.length; i++)
{
node = xmldoc.documentElement.childNodes(i);
var oNewNode = document.createElement("option"); // создаем элемент для списка селект
ElementNameForFill.appendChild(oNewNode); // добавляем новый узел в dbsource
oNewNode.innerText=node.attributes(0).text; //добавляем очередной элемент
oNewNode.value=i;
}
}
catch (err)
{
alert("Кривая база. Проверьте базу или создайте новую!");
window.close();
}
}
function FillListThemes(ElementNameForFill, ParentNode) // parentnode - елемент селект на форме из которого берется имя элемента группы темы которой мы хотим отобразить в текущем селекте
{
ClearChilds(ElementNameForFill,0);
ElementNameForFill.clearAttributes();
if (ElementNameForFill==ListThemes)
{
ElementNameForFill.setAttribute("multiple",true);
window.ListThemes.setAttribute("size",23);
}
try
{
ListGroupName=xmldoc.documentElement.childNodes(ParentNode.value).childNodes;
for(i=0;i<ListGroupName.length;i++)
{
node = ListGroupName(i);
switch(node.nodeType) // PDATA и CDATA
{
case 1:
var oNewNode = document.createElement("option"); // создаем элемент для списка селект
ElementNameForFill.appendChild(oNewNode); // добавляем новый узел в dbsource
oNewNode.innerText=node.attributes(0).text; //добавляем очередной элемент
oNewNode.value=i;
break;
}
}
}
catch (err)
{
alert("У группы не существует тем, или у темы нет необходимых аттрибутов.\nПоправьте базу или создайте новую.");
}
}
function FillAreas()
{
try
{
ListValuesOfTheme=xmldoc.documentElement.childNodes(window.ListGroup.value).childNodes(window.ListThemes.value).childNodes;
switch (ListValuesOfTheme(1).text)
{
case "text":
resultat.innerText= ListValuesOfTheme(0).text;
break;
case "html":
resultat.innerHTML= ListValuesOfTheme(0).text;
break;
default:
resultat.innerText= ListValuesOfTheme(0).text;
break;
}
}
catch (err)
{
alert("Ошибка отображения текста. Проверьте вашу базу");
window.close();
}
}
function ShowAddTheme()
{
AddThemeGroupAdd.value="";
NewThemesForAddTheme.value="";
try
{
Theme = xmldoc.documentElement.childNodes(window.ListGroup.value).childNodes(window.ListThemes.value);
NewThemeName.value=Theme.attributes(0).text ;
}
catch (err) {}
NewThemesForAddTheme.value="";
window.resultat.style.display="none";
window.AddForm.style.display="";
window.xmltools.style.display="none";
FillListGroup(ListGroupForAddTheme);
window.ListGroupForAddTheme.focus();
window.ListGroupForAddTheme.selectedIndex =window.ListGroup.value;
window.ListGroupForAddTheme.focus();
FillListThemes(ListThemesForAddTheme,ListGroupForAddTheme);
window.ListThemesForAddTheme.focus();
window.ListThemesForAddTheme.selectedIndex=window.ListThemes.value;
NodeTextAndNotes();
window.ListThemesForAddTheme.focus();
try
{
Theme=Theme.childNodes;
AddThemeTypeText.value=Theme(1).text;
}
catch(err){}
AddThemeTypeText.focus();
window.AddThemeText.focus();
}
function ShowText() // показываем ячейку в которой отбражается текст
{
window.resultat.style.display="";
window.AddForm.style.display="none";
window.xmltools.style.display="none";
}
function showXmlTools()
{
window.resultat.style.display="none";
window.AddForm.style.display="none";
window.xmltools.style.display="";
}
function AddTheme(Pre) // добавление темы в xml документ
{
try
{
var Element;
if (NewThemesForAddTheme.value=="")
{
Element = xmldoc.documentElement.childNodes(ListGroupForAddTheme.value).childNodes(ListThemesForAddTheme.value);
OldNodeText=Element.childNodes(0);
NewNodeText=Element.childNodes(0);
if (Pre == "Pre")
{
NewNodeText.text="<pre>"+AddThemeText.value+"</pre>";
}
else
{
NewNodeText.text=AddThemeText.value;
}
Element.replaceChild(NewNodeText,OldNodeText);
OldNodeNote=Element.childNodes(1);
NewNodeNote=Element.childNodes(1);
NewNodeNote.text=AddThemeTypeText.value;
Element.replaceChild(NewNodeNote,OldNodeNote);
xmldoc.save(RemoteData);
alert("Тема изменена ");
}
else
{
Element=xmldoc.documentElement.childNodes(ListGroupForAddTheme.value).appendChild(xmldoc.createElement("Node"));
attribute=xmldoc.createAttribute("Name");
attribute.value=NewThemesForAddTheme.value;
Element.setAttributeNode(attribute);
Element.appendChild(xmldoc.createCDATASection(" "));
Element.appendChild(xmldoc.createCDATASection(" "));
OldNodeText=Element.childNodes(0);
NewNodeText=Element.childNodes(0);
if (Pre == "Pre")
{
NewNodeText.text="<pre>"+AddThemeText.value+"</pre>";
}
else
{
NewNodeText.text=AddThemeText.value;
}
Element.replaceChild(NewNodeText,OldNodeText);
OldNodeNote=Element.childNodes(1);
NewNodeNote=Element.childNodes(1);
NewNodeNote.text=AddThemeTypeText.value;
Element.replaceChild(NewNodeNote,OldNodeNote);
xmldoc.save(RemoteData);
alert("Тема добавлена!");
}
}
catch (err)
{
alert ("В группе нет тем. Введите имя новой создаваемой темы.");
window.NewThemesForAddTheme.focus();
}
}
function AddGroup()
{
if(AddThemeGroupAdd.value != "")
{
group=xmldoc.documentElement.appendChild(xmldoc.createElement("group"));
attribute=xmldoc.createAttribute("Name")
attribute.value=AddThemeGroupAdd.value;
group.setAttributeNode(attribute);
xmldoc.save(RemoteData);
FillListGroup(ListGroup);
FillListGroup(ListGroupForAddTheme);
alert("Группа добавлена");
}
else
{
alert("Введите имя группы");
}
}
function NodeTextAndNotes()
{
try
{
Element = xmldoc.documentElement.childNodes(ListGroupForAddTheme.value).childNodes(ListThemesForAddTheme.value);
AddThemeText.value=Element.childNodes(0).text;
window.ListThemesForAddTheme.selectedIndex=window.ListThemes.value;
//AddThemeTypeText.value=Element.childNodes(1).text;
}
catch(err)
{
AddThemeText.value=" ";
//AddThemeTypeText.value=" ";
}
}
function RemoveTheme()
{
var Remove=false;
try
{
Element=xmldoc.documentElement.childNodes(ListGroup.value).childNodes(ListThemes.value);
Remove=window.confirm("Удалить тему - "+Element.attributes(0).text+" ?");
}
catch(err)
{
alert ("Ошибка! Выберите тему для удаления");
}
if (Remove==true)
{
xmldoc.documentElement.childNodes(ListGroup.value).removeChild(Element);
xmldoc.save(RemoteData);
FillListGroup(ListGroup);
FillListThemes(ListThemes,ListGroup)
RemoteDataXml.innerHTML="<small>Используемая база - "+RemoteData+"</small>";
}
}
function RemoveGroup()
{
var Remove=false;
try
{
Element=xmldoc.documentElement.childNodes(ListGroup.value);
Remove=window.confirm("Удалить группу - "+Element.attributes(0).text+" ?");
}
catch(err)
{
alert ("Ошибка! Выберите группу для удаления");
}
if (Remove==true)
{
if (ListGroupName.length >0)
{
RemoveNotEmpty=window.confirm("Группа - "+Element.attributes(0).text+" не пустая. Удалить группу со всеми темами?");
if(RemoveNotEmpty == true)
{
xmldoc.documentElement.removeChild(Element);
xmldoc.save(RemoteData);
FillListGroup(ListGroup);
FillListThemes(ListThemes,ListGroup);
RemoteDataXml.innerHTML="<small>Используемая база - "+RemoteData+"</small>";
}
}
else
{
xmldoc.documentElement.removeChild(Element);
xmldoc.save(RemoteData);
FillListGroup(ListGroup);
FillListThemes(ListThemes,ListGroup);
RemoteDataXml.innerHTML="<small>Используемая база - "+RemoteData+"</small>";
}
}
}
function InsertURL()
{
if (AddThemeTypeText.value == "URL")
{
address=window.prompt("Введите URL","http://www.ya.ru");
opisanie=window.prompt("Введите описание для URL","яндекс");
AddThemeText.value +=' <br><hr width=90% align=center><a href='+address+'>'+opisanie+'</a><br>';
AddThemeTypeText.selectedIndex=0;
window.AddThemeText.focus();
}
}
function backupxml()
{
xmldoc.save(RemoteData+".backup");
alert ("BackUP сделан");
}
function RenameTheme()
{
if (NewThemeName.value != "")
{
try
{
Theme = xmldoc.documentElement.childNodes(window.ListGroup.value).childNodes(window.ListThemes.value).attributes(0);
Theme.text = NewThemeName.value;
alert ("Тема переименована");
xmldoc.save(RemoteData);
FillListGroup(ListGroup);
FillListThemes(ListThemes,ListGroup);
}
catch(err)
{
alert ("Выберите тему для переименования из главного списка");
}
}
else
{
alert ("Введите имя темы");
NewThemeName.focus();
xmldoc.save(RemoteData);
FillListGroup(ListGroup);
FillListThemes(ListThemes,ListGroup);
}
}
function Upload()
{
window.uploadprocess.innerHTML="";
window.clipboardData.setData("Text", RemoteData);
objIE.Navigate ("http://passport.yandex.ru/passport?mode=auth&retpath=http://narod.yandex.ru/"); //переходим на страницу ввода пароля
while(objIE.Busy) { }
login = UserInput("Для того чтобы загрузить базу на www.narod.ru, введите\nЛОГИН:", "login");
if (login != 0)
{
passwd=UserInput("ПАРОЛЬ:", "passwd");
if ( passwd !=0 )
{
try
{
window.uploadprocess.innerHTML="<small>Авторизуемся на narod.ru ...</small>";
//заполняем форму ввода логина, и посылаем данные
objForm = objIE.Document.forms("MainLogin");
objForm.elements("login").value = login;
objForm.elements("passwd").value = passwd;
objForm.elements("In").click();
window.uploadprocess.innerHTML="Переходим в мастерскую ...";
while(objIE.Busy) { }
objIE.document.getElementsByTagName("b").item(3).click(); //нажимаем на кнопку - Мастреская
window.uploadprocess.innerHTML="Переходим к странице - загрузка файлов на сайт ...";
while(objIE.Busy) { }
objIE.document.getElementsByTagName("a").item(34).click(); //переходим по ссылке - Загрузка файлов на сайт
while(objIE.Busy) { }
window.uploadprocess.innerHTML="Устанавливаем фокус на кнопке выбора файла для загрузки ...";
localfile = objIE.Document.forms("upload").elements("userfile0"); //получаем диалог указания пути к загружаемому файлу
localfile.focus();
objIE.document.parentWindow.resizeTo(0,0);
window.uploadprocess.innerHTML="Уменьшаем окно IE до миниума, и делаем видимым";
objIE.Visible=1;
WshShell.AppActivate("Народ");
setTimeout('WshShell.SendKeys("^v"); window.uploadprocess.innerHTML="<small>Загружаем базу на сайт</small>"', 10*300);
setTimeout('objIE.Visible=0', 10*400);
setTimeout('objIE.Document.forms("upload").submit();', 10*500);
setTimeout('while(objIE.Busy) { }; window.uploadprocess.innerText="";alert("База успешно загружена на narod.ru!");', 10*500);
}
catch (err)
{
alert ("Ошибка загрузки - "+err.decription+"\nОшибка произошла на этапе: "+window.uploadprocess.innerText);
}
}
}
}
function UserInput(text, value)
{
userText=window.prompt(text,value);
switch(userText)
{
case null:
return 0;
break;
case "":
alert ("Вы ничего не ввели");
return 0;
default:
return userText;
break;
}
}
-->
</SCRIPT>
</HEAD>
<BODY onkeydown=keyDown() bgColor=silver
onload=resize();LoadForm();FillListGroup(ListGroup);FillListThemes(ListThemes,ListGroup)>
<TABLE height="95%" width="100%" align=center border=0> <!-- главная таблица -->
<TR>
<TD vAlign=top>
<table class=border height="95%" width="100%" align=center border=1
>
<TBODY>
<tr>
<td vAlign=top align=middle>
<table align=center border=0 width="95%">
<tr>
<td align=middle colSpan=2>
<select id=ListGroup onclick=FillListThemes(ListThemes,ListGroup)>
<option value=GroupS selected >- - - - - - - - - - - GroupS - - - - - - - - - - -</option></select> </td></tr>
<tr>
<td align=middle colSpan=2><select
id=ListThemes onchange=ShowText();FillAreas() multiple size=30
> <option value=ThemeS
>- - - - - - - - - - - ThemeS - - - - -
- - - - - -</option></select> </td></tr>
<tr>
<td id=RemoteDataXml align=middle colSpan=2
></td></tr>
<tr>
<td align=middle>
<hr>
<button style="WIDTH: 180px; HEIGHT: 25px"
onclick=FillListGroup(ListGroupForAddTheme);FillListThemes(ListThemesForAddTheme,ListGroupForAddTheme);ShowAddTheme();NodeTextAndNotes()
type=button>
<center>Добавить/Изменить
тему</center></button> </td></tr>
<tr>
<td align=middle><br
><button
style="WIDTH: 180px; HEIGHT: 25px" onclick=RemoveTheme()
type=button>
<center>Удалить тему</center></button>
</td></tr>
<tr>
<td align=middle><br
><button
style="WIDTH: 180px; HEIGHT: 25px" onclick=RemoveGroup()
type=button>
<center>Удалить группу</center></button>
<hr>
</td></tr>
<tr>
<td align=middle><button id=Button1
style="WIDTH: 180px; HEIGHT: 25px" onclick=showXmlTools()
type=button>
<center>Xml инструменты</center></button> </td></tr>
</table></td>
<TD id=resultat vAlign=top align=left width="80%" rowSpan=1 ><br></TD>
<td id=AddForm vAlign=top align=left width="80%" rowSpan=1>
<!-- сюда вставляется код для добавления темы в xml файл -->
<table>
<tr>
<td>Создать новую группу </td>
<td align=left><input id=AddThemeGroupAdd type=text size=38> </td>
<td align=left><input id=AddGroupButton onclick=AddGroup() type=button value=выполнить>
</td></tr>
<tr>
<td>
Переименовать Тему
</td>
<td align=left><input id=NewThemeName type=text size=38> </td>
<td align=left>
<input id=RenameThemeButton onclick=RenameTheme() type=button value=выполнить>
</td>
</tr>
</table>
<hr>
<table align=left>
<tr>
<td></td>
<td colSpan=2><u
>Создать/Изменить тему</u> </td></tr>
<tr align=left>
<td noWrap align=left width="20%"
>Выберите группу </td>
<td align=left width="80%"><select
id=ListGroupForAddTheme
onclick=FillListThemes(ListThemesForAddTheme,ListGroupForAddTheme)
onchange=FillListThemes(ListThemesForAddTheme,ListGroupForAddTheme);NodeTextAndNotes()
> <option value=GroupS selected >GroupS</option></select> </td></tr>
<tr>
<td noWrap>Выберите тему</td>
<td align=left><select
id=ListThemesForAddTheme onclick=NodeTextAndNotes()
> <option value=ThemeS selected >ThemeS</option></select> </td>
<tr>
<td noWrap>или создайте новую </td>
<td><input id=NewThemesForAddTheme
type=text maxLength=40 size=41></td></tr></tr>
<tr>
<td colSpan=3 rowSpan=1><textarea id=AddThemeText rows=25 cols=85></textarea>
<center>Тип содержимого <br
><select id=AddThemeTypeText onchange=InsertURL()>
<option value=html selected>html</option>
<option value=text>text</option>
<option value=URL>URL</option>
</select> </center></td></tr>
<tr>
<td align=middle colSpan=3><input id=AddThemeButton onclick='AddTheme("");javascript:ListGroup.onclick()' type=button value=Выполнить>
<input id=Button2 onclick='AddTheme("Pre");javascript:ListGroup.onclick()' type=button value="Выполнить PRE">
</td>
</tr></table>
<td id=xmltools valign=top width="80%">
<table align=center>
<tr>
<td>
<button id=BUTTON4 style="WIDTH: 180px; HEIGHT: 25px" onclick=loadxml() type=button>
<center>Загрузить Xml с сайта </center></button>
</td>
</tr>
<tr>
<td>
<button id=Button5 style="WIDTH: 180px; HEIGHT: 25px" onclick=loadxmlfromfile() type=button>
<center>Загрузить Xml из файла </center></button>
</td>
</tr>
<tr>
<td>
<br>
<button id=Button3 style="WIDTH: 180px; HEIGHT: 25px" onclick=backupxml() type=button>
<center>Backup xml</center></button>
</td>
</tr>
<tr>
<td>
<br>
<button id=UpLoadButton style="WIDTH: 180px; HEIGHT: 25px" onclick=Upload() type=button>
<center>UpLoad (narod.ru)</center></button>
</td>
</tr>
<tr>
<td id=uploadprocess align=middle>
</td>
</tr>
</table>
</td>
</td></TD></TR></TABLE></TD></TR></TBODY></TABLE><input
id=filedialog type=file>
</BODY></HTML>Автор программы - null.
В названии ветки всегда должен быть указан язык программирования или среда исполнения скрипта, если это возможно.

