diff --git a/application/classes/Controller/Handler/Map.php b/application/classes/Controller/Handler/Map.php
index e0880342f4826965426c22d1cdad3357875d0eb2..ac6fc62f6373e257f1de8147e08c8e29952dcec5 100644
--- a/application/classes/Controller/Handler/Map.php
+++ b/application/classes/Controller/Handler/Map.php
@@ -209,8 +209,11 @@ class Controller_Handler_Map extends Controller_Handler {
 			$data['success'] = false;
             $this->post -> rule('ModuleID', 'not_empty')
                         -> rule('ModuleID', 'digit')
-						-> rule('SubmodulesID', 'not_empty');
+						-> rule('SubmodulesID', 'not_empty')
+						-> rule('CurrentModuleOrder', 'not_empty')
+                        -> rule('CurrentModuleOrder', 'digit');
             if($this->post->check()) {
+				$ChangeOrderModulesID = json_decode($this->post->offsetGet('ChangeOrderModulesID'));
 				$Submodules = json_decode($this->post->offsetGet('SubmodulesID'));
 				foreach ($Submodules as &$SubmoduleID) {
 					$this->privateDeleteSubmodule($SubmoduleID);
@@ -219,8 +222,20 @@ class Controller_Handler_Map extends Controller_Handler {
 					$this->user['TeacherID'],
 					$this->post->offsetGet('ModuleID')
 				);
-				if ($result[0]['Num'] == 0)
+				if ($result[0]['Num'] == 0) {
+					if (count($ChangeOrderModulesID) > 0) {
+						$NewOrder = $this->post->offsetGet('CurrentModuleOrder');
+						foreach($ChangeOrderModulesID as $ModuleID) {
+							$this->model->ChangeModuleOrder(
+								$this->user['TeacherID'],
+								$ModuleID,
+								$NewOrder
+							);
+							$NewOrder++;
+						}
+					}
 					$data['success'] = true;
+				}
             }
             $this->response->body(json_encode($data));
         }
@@ -229,12 +244,27 @@ class Controller_Handler_Map extends Controller_Handler {
 		public function action_DeleteSubmodule() {
 			$data['success'] = false;
             $this->post -> rule('SubmoduleID', 'not_empty')
-                        -> rule('SubmoduleID', 'digit');
+                        -> rule('SubmoduleID', 'digit')
+						-> rule('CurrentSubmoduleOrder', 'not_empty')
+                        -> rule('CurrentSubmoduleOrder', 'digit');
             if($this->post->check()) {
+				$ChangeOrderSubmodulesID = json_decode($this->post->offsetGet('ChangeOrderSubmodulesID'));
                 $result = $this->privateDeleteSubmodule($this->post->offsetGet('SubmoduleID'));
-				if ($result == 0)
+				if ($result == 0) {
+					if (count($ChangeOrderSubmodulesID) > 0) {
+						$NewOrder = $this->post->offsetGet('CurrentSubmoduleOrder');
+						foreach($ChangeOrderSubmodulesID as $SubmoduleID) {
+							$this->model->ChangeSubmoduleOrder(
+								$this->user['TeacherID'],
+								$SubmoduleID,
+								$NewOrder
+							);
+							$NewOrder++;
+						}
+					}
 					$data['success'] = true;
-            }
+				}
+			}
 			$this->response->body(json_encode($data));
         }
 		
diff --git a/application/classes/Model/Teacher/Map.php b/application/classes/Model/Teacher/Map.php
index 76b707594182cdb825da3ec5643d1db50227251b..ca0b6f89c0b72976cb7e6d8b0bbb3956dcd0b81f 100644
--- a/application/classes/Model/Teacher/Map.php
+++ b/application/classes/Model/Teacher/Map.php
@@ -109,4 +109,16 @@ class Model_Teacher_Map extends Model
         $sql = "CALL `GetSubjectList`(); ";
         return DB::query(Database::SELECT, $sql)->execute();
     }
+	
+    public function ChangeModuleOrder($teacherID, $moduleID, $OrderNum)
+    {
+		$sql = "SELECT `ChangeModuleOrder`('$teacherID', '$moduleID', '$OrderNum') AS `Num`;";
+		return DB::query(Database::SELECT, $sql)->execute();
+    }
+	
+    public function ChangeSubmoduleOrder($teacherID, $SubmoduleID, $OrderNum)
+    {
+		$sql = "SELECT `ChangeSubmoduleOrder`('$teacherID', '$SubmoduleID', '$OrderNum') AS `Num`;";
+		return DB::query(Database::SELECT, $sql)->execute();
+    }
 }
diff --git a/media/js/construct/edit.js b/media/js/construct/edit.js
index 751245931092428a84c76651f348ddb6e57eacef..3ab1ad1d9d7b53fa256b72b9576256ef98392e6c 100644
--- a/media/js/construct/edit.js
+++ b/media/js/construct/edit.js
@@ -297,8 +297,8 @@ $(function() {
 	
 	// Подтверждение при удаление модуля
 	$('.moduleList').on('click', '.confirmDeleteModule', function(){
-		$(this).parent('div').parent('div').parent('div').remove();
 		var subModulesDIV = $(this).parent('div').parent('div').next('.subModules');
+		var CurrentModuleOrder = $(this).parent().parent().parent().index() + 1;
 		// Собираем в JSON строку ID мероприятий
 		var JSONSubmodules = '[';
 		$('.subModule', subModulesDIV).each(function(){
@@ -308,18 +308,18 @@ $(function() {
 		JSONSubmodules += ']';
 		//
 		// Собираем ID модулей, которые ниже для того, чтоб сменить их порадок на +1
-		var AttrID = $(this).parent().parent().nextAll().map(function(indx, element){
+		var AttrID = $(this).parent().parent().parent().nextAll().map(function(indx, element){
 			return $(element).attr("id");
 		});
-		var ModulesID = AttrID.get();
-		alert(ModulesID);
+		var ChangeOrderModulesID = '[' + AttrID.get() + ']';
 		//
-		/*
 		$.post(
 			'/~dev_rating/handler/map/DeleteModule',
 			{
 				'ModuleID': $(this).parent('div').parent('div').parent('div').attr('id'),
-				'SubmodulesID': JSONSubmodules
+				'SubmodulesID': JSONSubmodules,
+				'CurrentModuleOrder': CurrentModuleOrder,
+				'ChangeOrderModulesID': ChangeOrderModulesID
 			},
 			function(data){
 				data = $.parseJSON(data);
@@ -328,7 +328,7 @@ $(function() {
 				else alert('Error, DeleteModule');
 			}
 		);
-		*/
+		$(this).parent('div').parent('div').parent('div').remove();
 	});
 	
 	// Удалить мероприятие
@@ -340,13 +340,21 @@ $(function() {
 	// Подтверждение при удаление мероприятия
 	$('.moduleList').on('click', '.confirmDeleteSubModule ', function(){
 		var subModulesDiv = $(this).parent().parent().parent();
-		$(this).parent('div').parent('div').remove();
+		var CurrentSubmoduleOrder = $(this).parent().parent().index() + 1;
 		CountCurrentControl(subModulesDiv);
 		CountLandmarkControl(subModulesDiv);
+		// Собираем ID мероприятий, которые ниже для того, чтоб сменить их порадок на +1
+		var AttrID = $(this).parent().parent().nextAll().map(function(indx, element){
+			return $(element).attr("id");
+		});
+		var ChangeOrderSubmodulesID = '[' + AttrID.get() + ']';
+		//
 		$.post(
 			'/~dev_rating/handler/map/DeleteSubmodule',
 			{
-				'SubmoduleID': $(this).parent('div').parent('div').attr('id')
+				'SubmoduleID': $(this).parent('div').parent('div').attr('id'),
+				'CurrentSubmoduleOrder': CurrentSubmoduleOrder,
+				'ChangeOrderSubmodulesID': ChangeOrderSubmodulesID
 			},
 			function(data){
 				data = $.parseJSON(data);
@@ -355,9 +363,10 @@ $(function() {
 				else alert('Error, DeleteSubmodule');
 			}
 		);
+		$(this).parent('div').parent('div').remove();
 	});
 	
-	// Отмена удаления
+	// Отмена удаления модулей/мероприятий
 	$('.moduleList').on('click', '.cancel ', function(){
 		$(this).parent().parent().children('.actions').css('display', 'block');
 		$(this).parent().remove();