diff --git a/lesson1/JS/script.js b/lesson1/JS/script.js
new file mode 100644
index 0000000..1b03c57
--- /dev/null
+++ b/lesson1/JS/script.js
@@ -0,0 +1,68 @@
+function Container(){
+ this.id = "";
+ this.className = "";
+ this.htmlCode = "";
+
+};
+
+Container.prototype.render = function () {
+ return this.htmlCode;
+};
+
+Container.prototype.remove = function () {
+ delete this.htmlCode;
+};
+
+function Menu(my_id, my_class, my_items) {
+ Container.call(this);
+ this.id = my_id;
+ this.className = my_class;
+ this.items = my_items;
+};
+
+Menu.prototype.remove = function ( i = 0 ) {
+ var elem = document.getElementById(this.id);
+ elem.parentNode.removeChild(elem);
+};
+
+Menu.prototype = Object.create(Container.prototype);
+Menu.prototype.constructor = Menu;
+Menu.prototype.render = function () {
+ let result = '
';
+for (let item in this.items) {
+ if(this.items[item] instanceof MenuItem){
+ result += this.items[item].render();
+ };
+};
+
+result += '
'
+ return result;
+
+};
+
+function MenuItem(my_href, my_name, my_id) {
+ Container.call(this);
+ this.id = my_id;
+ this.className = "menu-item";
+ this.href = my_href;
+ this.name = my_name;
+};
+
+MenuItem.prototype = Object.create(Container.prototype);
+MenuItem.prototype.constructor = MenuItem;
+MenuItem.prototype.render = function () {
+return '' + this.name + '';
+};
+
+let m_item1 = new MenuItem("/", "Главная", 1);
+let m_item2 = new MenuItem("/catalog", "Каталог", 2);
+let m_item3 = new MenuItem("/gallery", "Галерея", 3);
+let m_items = {0: m_item1, 1: m_item2, 2: m_item3};
+
+let menu = new Menu("my_menu", "My_class", m_items);
+
+document.write(menu.render());
+
+
+
+
diff --git a/lesson1/index.html b/lesson1/index.html
new file mode 100644
index 0000000..c42f5f3
--- /dev/null
+++ b/lesson1/index.html
@@ -0,0 +1,4 @@
+Урок 1
+
+
+
\ No newline at end of file
diff --git a/lesson2/JS/script.js b/lesson2/JS/script.js
new file mode 100644
index 0000000..8a90d91
--- /dev/null
+++ b/lesson2/JS/script.js
@@ -0,0 +1,131 @@
+function Container(){
+ this.id = "";
+ this.className = "";
+ this.htmlCode = "";
+
+};
+
+Container.prototype.render = function () {
+ return this.htmlCode;
+};
+
+Container.prototype.remove = function () {
+ let elem = document.getElementById(this.id);
+ elem.parentNode.removeChild(elem);
+ console.log(elem);
+};
+
+function Menu(my_id, my_class, my_items) {
+ Container.call(this);
+ this.id = my_id;
+ this.className = my_class;
+ this.items = my_items;
+}
+Menu.prototype = Object.create(Container.prototype);
+Menu.prototype.constructor = Menu;
+Menu.prototype.render = function () {
+ let result = '';
+for (let item in this.items) {
+ if(this.items[item] instanceof MenuItem){
+ result += this.items[item].render();
+ };
+};
+
+result += '
'
+ return result;
+
+};
+
+function MenuItem(my_id, my_href, my_name) {
+ Container.call(this);
+ this.id = my_id;
+ this.className = "menu-item";
+ this.href = my_href;
+ this.name = my_name;
+}
+
+MenuItem.prototype = Object.create(Container.prototype);
+MenuItem.prototype.constructor = MenuItem;
+MenuItem.prototype.render = function () {
+return '' + this.name + '';
+};
+
+
+function SubMenu (my_id, my_class, my_items){
+ Container.call(this);
+ this.id = my_id;
+ this.className = my_class;
+ this.items = my_items;
+}
+SubMenu.prototype = Object.create(Container.prototype);
+SubMenu.prototype.constructor =SubMenu;
+SubMenu.prototype.render = function(){
+ let result = '';
+ for(let item in this.items){
+ if(this.items[item] instanceof Menu){
+ result +=this.items[item].render();
+ result +='
';
+ } else {
+ console.log(this.items[item]);
+ for (let subitem in this.items[item]){
+ console.log(this.items[item][subitem]);
+ result += this.items[item][subitem].render();
+ }
+ }
+ }
+ result += '';
+ return result;
+};
+
+/*
+let m_item1 = new MenuItem("1", "/", "Главная");
+let m_item2 = new MenuItem("2", "/catalog", "Каталог");
+let m_item3 = new MenuItem("3", "/gallery", "Галерея");
+let m_items = {0: m_item1, 1: m_item2, 2: m_item3};
+*/
+
+//let menu = new Menu("my_menu", "menu_class", m_items);
+//let submenu = new SubMenu("menu_main", "sub_menu", [m_items,menu]);
+//console.log(submenu);
+// document.write(submenu.render());
+
+function fillMenuContents(xhr) {
+ let m_items = {};
+
+ if (xhr.readyState ==4) {
+ if (xhr.status == 200) {
+ let items = JSON.parse(xhr.responseText);
+
+ for (let currentitem of items.menu_items){
+ m_items[currentitem.title] = new MenuItem(currentitem.id ,currentitem.href, currentitem.title);
+ }
+
+ let menu = new Menu("my_menu", "My_class", m_items);
+ let submenu = new SubMenu("menu_main", "sub_menu", [m_items,menu]);
+ document.write(submenu.render());
+ }
+ } else {
+ alert("ошибка выполнения запроса!");
+ }
+};
+
+
+let xhr;
+
+if (window.XMLHttpRequest) {
+ xhr = new XMLHttpRequest();
+ if (window.overrideMimeType) {
+ xhr.overrideMimeType('application/json');
+ }
+} else if (window.ActiveXObject) {
+ xhr = new ActiveXObject('Microsoft.XMLHTTP');
+}
+
+if (!xhr) {
+ console.log("Невозможно создать запрос!");
+}
+
+xhr.onreadystatechange = function() { fillMenuContents(xhr); };
+xhr.ontimeout = function() {console.log("Превышего время ожидание запроса!");};
+xhr.open('GET', 'menu.json', true);
+xhr.send(null);
\ No newline at end of file
diff --git a/lesson2/index.html b/lesson2/index.html
new file mode 100644
index 0000000..a715855
--- /dev/null
+++ b/lesson2/index.html
@@ -0,0 +1,12 @@
+
+
+
+
+ Урок 2.
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/lesson2/menu.json b/lesson2/menu.json
new file mode 100644
index 0000000..1a35010
--- /dev/null
+++ b/lesson2/menu.json
@@ -0,0 +1,19 @@
+{
+ "menu_items": [
+ {
+ "id": "1",
+ "href": "/",
+ "title": "Главная"
+ },
+ {
+ "id": "2",
+ "href": "/catalogue",
+ "title": "Каталог"
+ },
+ {
+ "id": "3",
+ "href": "/gallery",
+ "title": "Галлерея"
+ }
+ ]
+}
\ No newline at end of file