JQuery UI DatePicker

<%@ Register TagPrefix="WpNs0" Namespace="PAC.Holidays.AddHoliday" Assembly="PAC.Holidays, Version=1.0.0.0, Culture=neutral, PublicKeyToken=07821a8e1ea7c82c"%>
<%@ Page language="C#" MasterPageFile="~masterurl/default.master"    Inherits="Microsoft.SharePoint.WebPartPages.WebPartPage,Microsoft.SharePoint,Version=14.0.0.0,Culture=neutral,PublicKeyToken=71e9bce111e9429c" meta:progid="SharePoint.WebPartPage.Document" meta:webpartpageexpansion="full"  %>
<%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> <%@ Register Tagprefix="Utilities" Namespace="Microsoft.SharePoint.Utilities" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> <%@ Import Namespace="Microsoft.SharePoint" %> <%@ Assembly Name="Microsoft.Web.CommandUI, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> <%@ Register Tagprefix="WebPartPages" Namespace="Microsoft.SharePoint.WebPartPages" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<asp:Content ContentPlaceHolderId="PlaceHolderPageTitle" runat="server">
	<SharePoint:EncodedLiteral runat="server" text="<%$Resources:wss,multipages_homelink_text%>" EncodeMethod="HtmlEncode"/> 
	- <SharePoint:ProjectProperty Property="Title" runat="server"/>
</asp:Content>
<asp:Content ContentPlaceHolderId="PlaceHolderPageImage" runat="server"><img src="/_layouts/images/blank.gif" width='1' height='1' alt="" /></asp:Content>
<asp:Content ContentPlaceHolderId="PlaceHolderPageTitleInTitleArea" runat="server">
			<label class="ms-hidden">
			<SharePoint:ProjectProperty Property="Title" runat="server"/></label>
</asp:Content>
<asp:Content ContentPlaceHolderId="PlaceHolderTitleAreaClass" runat="server">
<SharePoint:UIVersionedContent runat="server" UIVersion="<=3">
	<ContentTemplate>
		<style type="text/css">
		td.ms-titleareaframe, .ms-pagetitleareaframe {
			height: 10px;
		}
		div.ms-titleareaframe {
			height: 100%;
		}
		.ms-pagetitleareaframe table {
			background: none;
			height: 10px;
		}
		</style> </ContentTemplate>
</SharePoint:UIVersionedContent>
</asp:Content>
<asp:Content ContentPlaceHolderId="PlaceHolderAdditionalPageHead" runat="server">
	<meta name="CollaborationServer" content="SharePoint Team Web Site" />
<style type="text/css">
.s4-nothome {
	display:none;
}
</style>
	<script type="text/javascript">
// <![CDATA[
	var navBarHelpOverrideKey = "WSSEndUser";
// ]]>
	</script>
</asp:Content>
<asp:Content ContentPlaceHolderId="PlaceHolderSearchArea" runat="server">
	<SharePoint:DelegateControl runat="server"
		ControlId="SmallSearchInputBox"/>
</asp:Content>
<asp:Content ContentPlaceHolderId="PlaceHolderLeftActions" runat="server">
</asp:Content>
<asp:Content ContentPlaceHolderId="PlaceHolderPageDescription" runat="server">
</asp:Content>
<asp:Content ContentPlaceHolderId="PlaceHolderBodyAreaClass" runat="server">
<style type="text/css">
.ms-bodyareaframe {
	padding: 0px;
}
</style>
</asp:Content>
<asp:Content ContentPlaceHolderId="PlaceHolderMain" runat="server">
	<table cellspacing="0" border="0" width="100%">
	  <tr class="s4-die">
	   <td class="ms-pagebreadcrumb">
		  <asp:SiteMapPath SiteMapProvider="SPContentMapProvider" id="ContentMap" SkipLinkText="" NodeStyle-CssClass="ms-sitemapdirectional" runat="server"/>
	   </td>
	  </tr>
	  <tr>
	   <td class="ms-webpartpagedescription">
		<SharePoint:ProjectProperty Property="Description" runat="server"/></td>
	  </tr>
	  <tr>
		<td>
		 <table width="100%" cellpadding="0" cellspacing="0" style="padding: 5px 10px 10px 10px;">
		  <tr>
		  
		  <script type="text/javascript">
		  
		  //Переопределение indexOf, т.к. не работает в IE 8
		if (!Array.prototype.indexOf){
			Array.prototype.indexOf = function(obj){
				for(var i=0; i<this.length; i++){
					if(this[i]==obj){ 
						return i; 
					}
				} 
			   return -1; 
			}
		}

		  
	 	$(document).ready(function() 
		{				
			//Получаем параметры из урла по названию
			function getParameterByName(name) {
			    name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
			    var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"), 
			    results = regex.exec(location.search);
			    return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
			}
			
			
			//Текущий пользователь логин
			var UserCurrentLogin = $().SPServices.SPGetCurrentUser({
				fieldName: "UserName",
				debug: false
			});
			//Текущий пользователь 
			var UserCurrent = $().SPServices.SPGetCurrentUser({
				fieldName: "Title",
				debug: false
			});
			
			//Таблица периодов			
			var $periodTable = $("table[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb_PeriodTable']");
			
			//Таблица авансового периода			
			var $avanseTable = $("table[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb_AvanseTable']");
			$avanseTable.hide();
			var $avanseDescription = $("span[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb__avanseDesc']");
			$avanseDescription.hide();
			//Удаляем существующие строки в авансовом
	    	var $avanseExistRows = $avanseTable.find('tr');
	    	$avanseExistRows.each(function(i) 
	    	{
				$(this).closest('tr').remove();
			});

			
						
			//Ошибка
			var $error = $("span[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb__error']");			
			
			//Кнопка сохранить
			var $saveButton = $("<input>").attr("type", "button").val("Сохранить");
			$saveButton.insertBefore($error);
			
			//Кнопка отмена
			var $cancelButton = $("<input>").attr("type", "button").val("Отмена");
			$cancelButton.css("margin", "0 0 0 20px");
			$cancelButton.insertBefore($error);			
			
			//Можно заполнять динамический план
			var canAddDynamic = true;			
			
			$cancelButton.on("click", function() {
			
				//Получаем сотрудника
				var $fio = $("div[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb_FioPE_upLevelDiv']");
 				var $fioText = "";
 				if($fio.html().length > 100)
				{
					$fioText = $fio.find('span#content').html();
				}
				else
				{
					$fioText = $fio.html();
				}
 
				//Переходим в график								
				var _url = document.location.href;
				//отрезаем source=
				_url = _url.substring(_url.indexOf('source=') + 7);
				if (_url.indexOf("user") == -1)
				{
					_url += "&user=" + $fioText; 
				}				
				window.location.href = _url;
			});
			
			$saveButton.hide();
			
			//Один день в миллисекундах
			var oneDay = 24*60*60*1000;
			
			//Смотрим, есть ли в URL ID. Если есть, то это изменение и необходимо подтянуть данные сотрудника и несогласованный статический план
			var _id = getParameterByName('ID');
			
			if(_id != "")
			{				
				//удаляем существующие строки
            	var $existRows = $periodTable.find('tr');
            	$existRows.each(function(i) 
            	{
					$(this).closest('tr').remove();
				});
			}
			
			//Смотрим тип в URL
			var _type = getParameterByName('type');
			
			//Тип
			var $_type = $("select[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb__typeList']");
			
			//Вид
			var $_view = $("select[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb__viewList']");
			$_view.find("option[value='фактический']").remove();
			
			if(_type != "")
			{				
				$_type.val(_type);
				$_view.find("option[value='динамический план']").remove();
				$_view.val("фактический");
			}



			//Даты праздников
			var excludeDays = [];
				
			
			LoadUserData();

			
			
			
 			//Прячем поля
			$("span[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb__vacationDaysRemaining']").closest('tr').hide();
			$("span[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb__approvedStaticDaysCount']").closest('tr').hide();
			$("span[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb__compensatoryHoliday']").closest('tr').hide();
			$("span[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb__workStart']").closest('tr').hide();
			$("span[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb__twoWeaks']").closest('tr').hide();
			$("span[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb__isHR']").closest('tr').hide();
			$("span[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb__isAdmin']").closest('tr').hide();
			$("span[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb__isManager']").closest('tr').hide();
			$("select[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb__departmentList']").hide();
			$("span[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb__depID']").hide();
			
			
			
			var isHR = false;
			var isAdmin = false;
			var isManager = false;
			if($("span[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb__isHR']").html() == "true")
			{
				isHR = true;
			}
			if($("span[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb__isAdmin']").html() == "true")
			{
				isAdmin = true;
			}
			if($("span[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb__isManager']").html() == "true")
			{
				isManager = true;
			}
			
			//Новый сотрудник - вышел в этом году
			var newEmploye = false;

			//Для обычного сотрудника запрещаем выбор другого сотрудника
			if(!isHR && !isAdmin  && !isManager)
			{
				var $fio_ = $("div[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb_FioPE_upLevelDiv']");
				$fio_.attr("contentEditable",false);
				$("a[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb_FioPE_checkNames']").hide();
				$("a[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb_FioPE_browse']").hide();
			}
			
			
			//При изменении типа
			$_type.change(function() {
				var selType = $(this).val();
				
				//Сначала удаляем существующие строки, затем добавляем новые
            	var $existRows = $periodTable.find('tr');
            	$existRows.each(function(i) 
            	{
					$(this).closest('tr').remove();
				});
				$periodTable.find('tbody').append("<tr><td><input type='text' class='holiday-start-date'></td><td><input type='text' class='holiday-end-date'></td><td></td><td><span class='holidays-dayscount'></span></td></tr>");
				
				if(selType == "командировка")
				{
					var staticExist = $_view.find("option[value='статический план']").length;
					if(staticExist == 0)
					{
						$_view.append(new Option('статический план','статический план'));
					}
					$_view.find("option[value='динамический план']").remove();
					$_view.val("фактический");	
					
					//Показываем кнопку "Добавить"
					$("img[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb_Image1']").show();
					$("img[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb_Image1']").next("span").show();
					
					$avanseTable.hide();
					$avanseDescription.hide();
					
					//Удаляем существующие строки в авансовом
	            	var $existRows = $avanseTable.find('tr');
	            	$existRows.each(function(i) 
	            	{
						$(this).closest('tr').remove();
					});

				}
				else if(selType == "основной ежегодный")
				{
					if(isHR || isAdmin || isManager)
					{
						var dynamicExist = $_view.find("option[value='динамический план']").length;
						if(dynamicExist == 0)
						{
							$_view.append(new Option('динамический план','динамический план'));
						}
						var staticExist = $_view.find("option[value='статический план']").length;
						if(staticExist == 0)
						{
							$_view.append(new Option('статический план','статический план'));
						}
					}
					$_view.val("статический план");
					
					//Показываем кнопку "Добавить"
					$("img[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb_Image1']").show();
					$("img[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb_Image1']").next("span").show();

					$avanseTable.hide();
					$avanseDescription.hide();
					
					//Удаляем существующие строки в авансовом
	            	var $existRows = $avanseTable.find('tr');
	            	$existRows.each(function(i) 
	            	{
						$(this).closest('tr').remove();
					});
					
					LoadUserData();
				}
				else if(selType == "авансовый")
				{
					if(isHR || isAdmin || isManager)
					{
						$_view.find("option[value='статический план']").remove();
						var dynamicExist = $_view.find("option[value='динамический план']").length;
						if(dynamicExist == 0)
						{
							$_view.append(new Option('динамический план','динамический план'));
						}
				
					}
					$_view.val("динамический план");
					
					//Прячем кнопку "Добавить"
					$("img[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb_Image1']").hide();
					$("img[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb_Image1']").next("span").hide();
					
					LoadUserData();
					
					//Добавляем строку с датой начала и окончания в таблицу нового периода из следующего года
					$avanseTable.show();
					$avanseDescription.show();					

					$avanseTable.find('tbody').append("<tr><td><input type='text' class='holiday-start-date'></td><td><input type='text' class='holiday-end-date'></td><td></td><td><span class='holidays-dayscount'></span></td></tr>");

				}

				
				SetDatePicker(selType);
			});
			
			//При изменении вида
			$_view.change(function() {
				LoadUserData();
			});
			
			//Автор в поле ФИО
			//$("div[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb_FioPE_upLevelDiv']").html(UserCurrent + ";");
			
			//Кнопка загрузить данные
			var $btn = $("<input>").attr("type", "button").val("Загрузить данные");
			var $div = $("<div>");
			$div.append($btn);
			$div.appendTo($("div[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb_ButtonPanel']"));
			
			
			function parseDate(dateString) {
			    var dateTime = dateString.split(".");
			    var dd = dateTime[0];
			    var mm = dateTime[1];
			    var yyyy = dateTime[2];			
			    var temp = new Date(yyyy +"-"+ mm +"-"+ dd);
			    return new Date(temp);
			}

			
			//Загрузка данных
			function LoadUserData()
			{
				var $fio = $("div[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb_FioPE_upLevelDiv']");
 				var $fioText = "";
 				if($fio.html().length > 100)
				{
					$fioText = $fio.find('span#content').html();
				}
				else
				{
					$fioText = $fio.html();
				}
				
				//Период - берем параметр из URL
				var period = getParameterByName('period');
				
				//Вид
				var view = $("select[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb__viewList']").children("option:selected").text();
				
				//Тип
				var curType = $("select[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb__typeList']").children("option:selected").text();
				if(curType == "авансовый")
				{
					//Получаем статический план на следующий год
					var nextPeriod = parseInt(period);
					nextPeriod ++;
					period = nextPeriod;
					view = "статический план";					
					//console.log(_type);  
				}
 			
				$.ajax(
				{			
					//url: "/hr/holidays/LoadUserData.ashx",
					//type: "POST", data: {user: $fioText, period: period, view:view, id:_id, type:_type },
					url: "/hr/holidays/handlers.aspx",
					type: "POST", data: {action: "LoadUserData", user: $fioText, period: period, view:view, id:_id, type:_type}, 
					success: function (data) 
					{
						data = data.split('\n')[0];
						data = data.substring(0, data.length - 1);

						if(data != "")
						{
							var dts = data.split('~');
							
							//Табельный номер
							$("input[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb__personnelNumber']").val(dts[0]);	
							//Должность
							$("input[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb__position']").val(dts[1]);
							//Отдел
							$("select[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb__departmentList']").val(dts[2]);
							$("span[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb__depID").html(dts[2]);
							$("span[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb__depTitle").html(dts[13]);
							
							//Руководитель
							if(dts[3] != "")
							{
								var mng = dts[3] + ";";
								$("div[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb_ManagerPE_upLevelDiv']").text(mng);
							}
							//Кол-во дней отпуска
							$("span[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb__vacationDaysRemaining']").html(dts[4]);	
							//Кол-во дней отпуска с прошлых периодов
							$("span[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb__daysFromPreviousPeriods']").html(dts[5]);
							//Управленческий отпуск
							$("span[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb__compensatoryHoliday']").html(dts[6]);
							//Дата выхода на работу
							$("span[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb__workStart']").html(dts[7]);
							//Уже запланировано дней
							$("span[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb__usedDaysCount']").html(dts[8]);
							//Уже запланирован отпуск не менее 14 дней
							$("span[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb__twoWeaks']").html(dts[9]);
							
							//Если должность подтянулась
							if($("input[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb__position']").val() != "")
							{
								$saveButton.show();
								$("div[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb_ButtonPanel']").hide();
								//Блокируем редактирование пользователя
								$fio.attr("contentEditable",false);
								$("a[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb_FioPE_checkNames']").hide();
								$("a[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb_FioPE_browse']").hide();
							}
							else
							{
								alert("Создание заявки невозможно. Обратитесь в отдел персонала для заполнения табельного номера");
							}
							//Юр. лицо
							$("span[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb__company']").html(dts[10]);
							
							//Уже запланировано дней
							var _alreadyPlaned = 0;
							if($("span[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb__usedDaysCount']").html() != "")
							{
								_alreadyPlaned = parseInt($("span[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb__usedDaysCount']").html());
										
							}
							var _ostatki = 0;
							if($("span[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb__daysFromPreviousPeriods']").html() != "")
							{
								_ostatki = parseInt($("span[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb__daysFromPreviousPeriods']").html());
							}
							
							
							if(dts[7] != "")
							{
								//Дата выхода на работу
								var firstWorkDate = parseDate(dts[7]);
								//Год выхода на работу
								var firstWorkYear = firstWorkDate.getFullYear();								
								if(parseInt(period) > firstWorkYear)
								{
									newEmploye = false;
								}
								else if(parseInt(period) == firstWorkYear)
								{								
									newEmploye = true;
								}
							}
							else
							{
								newEmploye == true;
							}

							var possibleDaysCount = 0;
							//Если сотрудник принят на работу до 1 января текущего года, то доступно (28 - уже использовано)
							if(!newEmploye)
							{
								possibleDaysCount = 28;
							}
							else if(newEmploye)
							{
								//Если сотрудник принят на работу в текущем году, то применяется формула
								possibleDaysCount = parseInt(dts[4]);
								//console.log(possibleDaysCount);
							}
							//var possibleDaysCount = 28;// + _ostatki;
							var _possible = 0;
							if(possibleDaysCount - _alreadyPlaned < 0)
							{
								_possible = 0;
							}
							else
							{
								_possible = possibleDaysCount - _alreadyPlaned;
							}
							//Кол-во доступных дней
							$("span[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb__possibleDaysCount']").html(_possible);
							
							//Если изменение
							if(_id != "")
							{
								var _dates = null;
								//Если Тип отпуска основной ежегодный - берем dts[11]
								if(_type == "основной ежегодный")
								{
									_dates = dts[11];
								}
								//Если Тип отпуска командировка - берем dts[16]
								else if(_type == "командировка")
								{
									_dates = dts[16];
								}
								
								var dates = _dates.split('@');
								
								//Сначала удаляем существующие строки, затем добавляем новые
				            	var $existRows = $periodTable.find('tr');
				            	$existRows.each(function(i) 
				            	{
									$(this).closest('tr').remove();
								});
								
								$(dates).each(function(i) {
									var curValue = dates[i];
									var curID = curValue.substring(curValue.indexOf('!') + 1);
									curValue = curValue.split('!')[0];
									var start = curValue.split('-')[0];
									var end = curValue.substring(curValue.indexOf('-') + 1);
									 
									$periodTable.find('tbody').append("<tr><td><input type='text' class='holiday-start-date' value='"+start+"'></td><td><input type='text' class='holiday-end-date' value='"+end+"'></td><td><img curid='"+ curID +"' class='del-button' src='../../_layouts/img/delete.png' style='border-width:0px;width:18px;height:18px;'></td><td><span class='holidays-dayscount'></span></td></tr>");
								});
								
							}
							//Кол-во согласованных дней
							$("span[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb__approvedStaticDaysCount']").html(dts[12]);
							
							//Можно ли планировать динамический план
							var canAddDynamicText = dts[14];
							if(canAddDynamicText == "false")
							{
								canAddDynamic = false;
							}
							
							if(!canAddDynamic)
							{
								if(!isHR && !isAdmin && !isManager)
								{
									$_view.find("option[value='динамический план']").remove();
								}
							}
							
							//Заполняем массив праздничных дней
							var _exclDays = dts[15];
							var exclDates = _exclDays.split('!');
							
							$(exclDates).each(function(i) {
								excludeDays.push(exclDates[i])								 
							});

							
							var _selType = $("select[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb__typeList']").children("option:selected").text();
							SetDatePicker(_selType);
						}     
					},
					error: function (xhr, ajaxOptions, thrownError) 
					{ 
						alert("Ошибка загрузки. Попробуйте перезагрузить страницу и попробовать еще раз");
					},
				});
			}
 			
 			//Кнопка загрузить данные
 			$btn.on("click", function() {  				
 				LoadUserData();
				return false;
			});
			
			//Русификатор календаря
			jQuery(function ($) {
		        $.datepicker.regional['ru'] = {
		            closeText: 'Закрыть',
		            prevText: '<Пред',
		            nextText: 'След>',
		            currentText: 'Сегодня',
		            monthNames: ['Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь',
		            'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'],
		            monthNamesShort: ['Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь',
		            'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'],
		            dayNames: ['воскресенье', 'понедельник', 'вторник', 'среда', 'четверг', 'пятница', 'суббота'],
		            dayNamesShort: ['вск', 'пнд', 'втр', 'срд', 'чтв', 'птн', 'сбт'],
		            dayNamesMin: ['Вс', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб'],
		            weekHeader: 'Нед',
		            dateFormat: 'dd.mm.yy',
		            firstDay: 1,
		            isRTL: false,
		            showMonthAfterYear: false,
		            yearSuffix: ''
		        };
		        $.datepicker.setDefaults($.datepicker.regional['ru']);
		    });
			
			
			//Проверка на пересечение с праздниками
			function GetHolidaysDaysCount(_startDate, _endDate, days, callback)
			{
				var _period = getParameterByName('period');
				
				//Тип
				var curType = $("select[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb__typeList']").children("option:selected").text();
				if(curType == "авансовый")
				{
					//Получаем статический план на следующий год
					var nextPeriod = parseInt(_period);
					nextPeriod ++;
					_period = nextPeriod; 
				}
				
				
				var daysLeft = "";
				
				$.ajax(
				{			
					//url: "/hr/holidays/GetHolidaysDaysCount.ashx",
					//type: "POST", data: {startDate:_startDate, endDate:_endDate, period:_period},
					url: "/hr/holidays/handlers.aspx",
					type: "POST", data: {action: "GetHolidaysDaysCount", startDate:_startDate, endDate:_endDate, period:_period}, 
					success: function (data) 
					{
						data = data.split('\n')[0];
						data = data.substring(0, data.length - 1);

						if(data != null)
						{
							daysLeft = data; 
						}
						callback(days, daysLeft);    
					},
					error: function (xhr, ajaxOptions, thrownError) 
					{ 
						alert("Ошибка проверки пересечения с праздничными днями");
					},
				});
			}
			
			var existIsLoaded = false;
			
			function SetDatePicker(selType) 
			{	
				var period = getParameterByName('period');
				var nextPeriod = parseInt(period);
				nextPeriod ++;	
							
				//Контролы даты и времени начала и окончания				
				if(selType == "основной ежегодный" || selType == "авансовый")
				{
					$periodTable.find('.holiday-start-date').datepicker({
		                constrainInput: true,   // Запретить вводить буквы
		                //minDate: new Date(),    // Запретить выбор даты меньше чем сегодня
		                minDate: new Date(period, 0, 1),
		                maxDate: new Date(period, 11, 31),
		                showOn: 'button',       // Выбор даты через кнопку
		                autoSize: true,         // автоматически изменяемый размер поля 
		                altFormat: 'yy-mm-dd',  // Формат даты
		                dateFormat: 'dd.mm.yy',
		                //changeYear: true,
		                //beforeShowDay: $.datepicker.noWeekends,     // Запрещаем выбор выходных
		                firstDay: 1, // Первый день недели понедельник
		                onSelect: function(date) {		                			            
							//Отображаем кол-во дней
							var $_endDate = $(this).parent().parent().find('.holiday-end-date');
							var endDate = $_endDate.datepicker('getDate');
							var startDate = $(this).datepicker('getDate');
							var diff = endDate - startDate; // разница в миллисекундах
		            		var days = Math.ceil(diff / oneDay);
		            		days ++;
		            		if($_endDate.val()!= "")
		            		{
		            			//Проверяем пересечение с праздниками
		            			var startDate1 = $.datepicker.formatDate('dd-MM-yy', startDate);
								var endDate1 = $.datepicker.formatDate('dd-MM-yy', endDate);
								var $thisControl = $(this);
								GetHolidaysDaysCount(startDate1, endDate1, days, function(days1, daysLeft){
									var dts = daysLeft.split('~');
									var firstDayHoliday = dts[1];
        							var lastdayHoliday = dts[2];
									if(firstDayHoliday == "true" || lastdayHoliday == "true")
									{
										alert("Отпуск не может начинаться или заканчиваться праздничным днем");
										//$.datepicker._clearDate($thisControl);
										$.datepicker._clearDate($_endDate);
										$thisControl.parent().parent().find('.holidays-dayscount').html("");
									}
									else if(firstDayHoliday == "false" && lastdayHoliday == "false")
									{									
										var dl = parseInt(dts[0]);
										var dc = days1 - dl;
	
										if(dl > 0)
										{
											$thisControl.attr("days", dc);
											$thisControl.parent().parent().find('.holidays-dayscount').html(dc + " дней и "+ dl + " праздничных дней(я)");
										}
										else
										{
											$thisControl.attr("days", dc);
											$thisControl.parent().parent().find('.holidays-dayscount').html(dc + " дней");
										}
									}
								});		            			
		            		}
		            		//Если дата окончания еще не заполнена - заполняем ее (дата начала + 7 дней)
		            		if($_endDate.val() == "")
		            		{
		            			var newEnd = $(this).datepicker('getDate');
								if(newEnd != null)
								{
			            			newEnd.setDate(newEnd.getDate() + 6);
									$_endDate.datepicker('setDate', newEnd);
									endDate = $_endDate.datepicker('getDate');
									//console.log(startDate);
									
									diff = endDate - startDate;
									days = Math.ceil(diff / oneDay);
									days ++;
									//Проверяем пересечение с праздниками
									var startDate1 = $.datepicker.formatDate('dd-MM-yy', startDate);
									var endDate1 = $.datepicker.formatDate('dd-MM-yy', endDate);
									var $thisControl = $(this);
									GetHolidaysDaysCount(startDate1, endDate1, days, function(days1, daysLeft){
										var dts = daysLeft.split('~');
										var firstDayHoliday = dts[1];
	        							var lastdayHoliday = dts[2];
										if(firstDayHoliday == "true" || lastdayHoliday == "true")
										{
											alert("Отпуск не может начинаться или заканчиваться праздничным днем");
											//$.datepicker._clearDate($thisControl);
											$.datepicker._clearDate($_endDate);
											$thisControl.parent().parent().find('.holidays-dayscount').html("");
										}
										else if(firstDayHoliday == "false" && lastdayHoliday == "false")
										{									
											var dl = parseInt(dts[0]);
											var dc = days1 - dl;
		
											if(dl > 0)
											{
												$thisControl.attr("days", dc);
												$thisControl.parent().parent().find('.holidays-dayscount').html(dc + " дней и "+ dl + " праздничных дней(я)");
											}
											else
											{
												$thisControl.attr("days", dc);
												$thisControl.parent().parent().find('.holidays-dayscount').html(dc + " дней");
											}
										}
									});		            				
								}
		            		}
				        },
						//Исключаем праздники
						beforeShowDay: function(date){
					        var string = jQuery.datepicker.formatDate('yy-mm-dd', date);
					        return [ excludeDays.indexOf(string) == -1 ]
					    }
		            })
		            
		            //АВАНСОВЫЙ
		            $avanseTable.find('.holiday-start-date').datepicker({
		                constrainInput: true,   // Запретить вводить буквы
		                //minDate: new Date(),    // Запретить выбор даты меньше чем сегодня
		                minDate: new Date(nextPeriod, 0, 1),
		                maxDate: new Date(nextPeriod, 11, 31),
		                showOn: 'button',       // Выбор даты через кнопку
		                autoSize: true,         // автоматически изменяемый размер поля 
		                altFormat: 'yy-mm-dd',  // Формат даты
		                dateFormat: 'dd.mm.yy',
		                //changeYear: true,
		                //beforeShowDay: $.datepicker.noWeekends,     // Запрещаем выбор выходных
		                firstDay: 1, // Первый день недели понедельник		                		                
		                onSelect: function(date) {	
                			            
							//Отображаем кол-во дней
							var $_endDate = $(this).parent().parent().find('.holiday-end-date');
							var endDate = $_endDate.datepicker('getDate');
							var startDate = $(this).datepicker('getDate');
							var diff = endDate - startDate; // разница в миллисекундах
		            		var days = Math.ceil(diff / oneDay);
		            		days ++;
		            		if($_endDate.val()!= "")
		            		{
		            			//Проверяем пересечение с праздниками
		            			var startDate1 = $.datepicker.formatDate('dd-MM-yy', startDate);
								var endDate1 = $.datepicker.formatDate('dd-MM-yy', endDate);
								var $thisControl = $(this);
								GetHolidaysDaysCount(startDate1, endDate1, days, function(days1, daysLeft){
									var dts = daysLeft.split('~');
									var firstDayHoliday = dts[1];
        							var lastdayHoliday = dts[2];
									if(firstDayHoliday == "true" || lastdayHoliday == "true")
									{
										alert("Отпуск не может начинаться или заканчиваться праздничным днем");
										//$.datepicker._clearDate($thisControl);
										$.datepicker._clearDate($_endDate);
										$thisControl.parent().parent().find('.holidays-dayscount').html("");
									}
									else if(firstDayHoliday == "false" && lastdayHoliday == "false")
									{									
										var dl = parseInt(dts[0]);
										var dc = days1 - dl;
	
										if(dl > 0)
										{
											$thisControl.attr("days", dc);
											$thisControl.parent().parent().find('.holidays-dayscount').html(dc + " дней и "+ dl + " праздничных дней(я)");
										}
										else
										{
											$thisControl.attr("days", dc);
											$thisControl.parent().parent().find('.holidays-dayscount').html(dc + " дней");
										}
									}
								});		            			
		            		}
		            		//Если дата окончания еще не заполнена - заполняем ее (дата начала + 7 дней)
		            		if($_endDate.val() == "")
		            		{
		            			var newEnd = $(this).datepicker('getDate');
								if(newEnd != null)
								{
			            			newEnd.setDate(newEnd.getDate() + 6);
									$_endDate.datepicker('setDate', newEnd);
									endDate = $_endDate.datepicker('getDate');
									//console.log(startDate);
									
									diff = endDate - startDate;
									days = Math.ceil(diff / oneDay);
									days ++;
									//Проверяем пересечение с праздниками
									var startDate1 = $.datepicker.formatDate('dd-MM-yy', startDate);
									var endDate1 = $.datepicker.formatDate('dd-MM-yy', endDate);
									var $thisControl = $(this);
									GetHolidaysDaysCount(startDate1, endDate1, days, function(days1, daysLeft){
										var dts = daysLeft.split('~');
										var firstDayHoliday = dts[1];
	        							var lastdayHoliday = dts[2];
										if(firstDayHoliday == "true" || lastdayHoliday == "true")
										{
											alert("Отпуск не может начинаться или заканчиваться праздничным днем");
											//$.datepicker._clearDate($thisControl);
											$.datepicker._clearDate($_endDate);
											$thisControl.parent().parent().find('.holidays-dayscount').html("");
										}
										else if(firstDayHoliday == "false" && lastdayHoliday == "false")
										{									
											var dl = parseInt(dts[0]);
											var dc = days1 - dl;
		
											if(dl > 0)
											{
												$thisControl.attr("days", dc);
												$thisControl.parent().parent().find('.holidays-dayscount').html(dc + " дней и "+ dl + " праздничных дней(я)");
											}
											else
											{
												$thisControl.attr("days", dc);
												$thisControl.parent().parent().find('.holidays-dayscount').html(dc + " дней");
											}
										}
									});		            				
								}
		            		}
				        },
						//Исключаем праздники
						//beforeShowDay: $.datepicker.noWeekends, function(date){
						beforeShowDay:  function(date){							
					    	var string = jQuery.datepicker.formatDate('yy-mm-dd', date);
					        //return [ excludeDays.indexOf(string) == -1 ]
							for (var i = 0; i < excludeDays.length; i++) 
							{							 
								if (excludeDays.indexOf(string) != -1 ) 
								{
									return [ false ];	
								} 
							}							 
							//Выходные
							var weekenddate = $.datepicker.noWeekends(date);
							return weekenddate;
					    }
		            })
	            }
	            else if(selType == "командировка")
				{
					$('.holiday-start-date').datepicker({
		                constrainInput: true,   // Запретить вводить буквы
		                //minDate: new Date(),    // Запретить выбор даты меньше чем сегодня
		                minDate: new Date(period, 0, 1),
		                maxDate: new Date(period, 11, 31),
		                showOn: 'button',       // Выбор даты через кнопку
		                autoSize: true,         // автоматически изменяемый размер поля 
		                altFormat: 'yy-mm-dd',  // Формат даты
		                dateFormat: 'dd.mm.yy',
		                //changeYear: true,
		                //beforeShowDay: $.datepicker.noWeekends,     // Запрещаем выбор выходных
		                firstDay: 1, // Первый день недели понедельник
		                onSelect: function(date) {			            
							//Отображаем кол-во дней
							var $_endDate = $(this).parent().parent().find('.holiday-end-date');
							var endDate = $_endDate.datepicker('getDate');
							var startDate = $(this).datepicker('getDate');
							var diff = endDate - startDate; // разница в миллисекундах
		            		var days = Math.ceil(diff / oneDay);
		            		days ++;
		            		if($_endDate.val()!= "")
		            		{
		            			$(this).parent().parent().find('.holidays-dayscount').html(days + " дней");
		            		}
		            		var $thisControl = $(this);
		            		//Если дата окончания еще не заполнена - заполняем ее (дата начала + 7 дней)
		            		if($_endDate.val() == "")
		            		{
		            			var newEnd = $(this).datepicker('getDate');
								if(newEnd != null)
								{
			            			newEnd.setDate(newEnd.getDate() + 6);
									$_endDate.datepicker('setDate', newEnd);
									endDate = $_endDate.datepicker('getDate');
									
									diff = endDate - startDate;
									days = Math.ceil(diff / oneDay);
									days ++;
									
									$(this).parent().parent().find('.holidays-dayscount').html(days + " дней");
									$thisControl.attr("days", days);
								}
		            		}
		            		else if($_endDate.val() != "")
		            		{
								diff = endDate - startDate;
								days = Math.ceil(diff / oneDay);
								days ++;
								
								$(this).parent().parent().find('.holidays-dayscount').html(days + " дней");
								$thisControl.attr("days", days);
		            		}
				        }	
		            })
	            }
	            
	            //Отключаем автопозаполнение
	            $('.holiday-start-date').attr('autocomplete', 'off');
	            //Маска на поле
	            $('.holiday-start-date').mask("99.99.9999",{completed:function(){
	            	//Отображаем кол-во дней
					var $_endDate = $(this).parent().parent().find('.holiday-end-date');
					var endDate = $_endDate.datepicker('getDate');
					var startDate = $(this).datepicker('getDate');
					var diff = endDate - startDate; // разница в миллисекундах
            		var days = Math.ceil(diff / oneDay);
            		days ++;
            		
            		//Ограничиваем дату начала при ручном вводе
            		var mayStartDate = new Date(parseInt(period), 0, 1);
					if(startDate < mayStartDate)
					{
						startDate.setDate(mayStartDate);
		        		$(this).datepicker('setDate', mayStartDate);
					}
            		
            		
            		if($_endDate.val()!= "")
            		{
            			//Проверяем пересечение с праздниками            		
						var startDate1 = $.datepicker.formatDate('dd-MM-yy', startDate);
						var endDate1 = $.datepicker.formatDate('dd-MM-yy', endDate);
						var $thisControl = $(this);
						GetHolidaysDaysCount(startDate1, endDate1, days, function(days1, daysLeft){
							var dts = daysLeft.split('~');
							var firstDayHoliday = dts[1];
							var lastdayHoliday = dts[2];
							if(firstDayHoliday == "true" || lastdayHoliday == "true")
							{
								alert("Отпуск не может начинаться или заканчиваться праздничным днем");
								//$.datepicker._clearDate($thisControl);
								$.datepicker._clearDate($_endDate);
								$thisControl.parent().parent().find('.holidays-dayscount').html("");
							}
							else if(firstDayHoliday == "false" && lastdayHoliday == "false")
							{									
								var dl = parseInt(dts[0]);
								var dc = days1 - dl;

								if(dl > 0)
								{
									$thisControl.attr("days", dc);
									$thisControl.parent().parent().find('.holidays-dayscount').html(dc + " дней и "+ dl + " праздничных дней(я)");
								}
								else
								{
									$thisControl.attr("days", dc);
									$thisControl.parent().parent().find('.holidays-dayscount').html(dc + " дней");
								}
							}
						});
            		}
					
					else if($_endDate.val() == "")
					{
						var startDate = $(this).datepicker('getDate');
						
						var newEnd = $(this).datepicker('getDate');
						if(newEnd != null)
						{
	            			newEnd.setDate(newEnd.getDate() + 6);
							$_endDate.datepicker('setDate', newEnd);
							endDate = $_endDate.datepicker('getDate');
							//console.log(startDate);
							
							diff = endDate - startDate;
							days = Math.ceil(diff / oneDay);
							days ++;
							//Проверяем пересечение с праздниками
							var startDate1 = $.datepicker.formatDate('dd-MM-yy', startDate);
							var endDate1 = $.datepicker.formatDate('dd-MM-yy', endDate);
							var $thisControl = $(this);
							GetHolidaysDaysCount(startDate1, endDate1, days, function(days1, daysLeft){
								var dts = daysLeft.split('~');
								var firstDayHoliday = dts[1];
								var lastdayHoliday = dts[2];
								if(firstDayHoliday == "true" || lastdayHoliday == "true")
								{
									alert("Отпуск не может начинаться или заканчиваться праздничным днем");
									//$.datepicker._clearDate($thisControl);
									$.datepicker._clearDate($_endDate);
									$thisControl.parent().parent().find('.holidays-dayscount').html("");
								}
								else if(firstDayHoliday == "false" && lastdayHoliday == "false")
								{									
									var dl = parseInt(dts[0]);
									var dc = days1 - dl;
	
									if(dl > 0)
									{
										$thisControl.attr("days", dc);
										$thisControl.parent().parent().find('.holidays-dayscount').html(dc + " дней и "+ dl + " праздничных дней(я)");
									}
									else
									{
										$thisControl.attr("days", dc);
										$thisControl.parent().parent().find('.holidays-dayscount').html(dc + " дней");
									}
								}
							});
						}
					}

	            }});
				
	            if(selType == "основной ежегодный"  || selType == "авансовый")
				{
		            $periodTable.find('.holiday-end-date').datepicker({
		                constrainInput: true,   // Запретить вводить буквы
		                //minDate: new Date(),    // Запретить выбор даты меньше чем сегодня
		                minDate: new Date(period, 0, 1),
		                maxDate: new Date(period, 11, 31),	                
		                showOn: 'button',       // Выбор даты через кнопку
		                autoSize: true,         // автоматически изменяемый размер поля 
		                altFormat: 'yy-mm-dd',  // Формат даты
		                dateFormat: 'dd.mm.yy',
		                //changeYear: true,
		                //beforeShowDay: $.datepicker.noWeekends,     // Запрещаем выбор выходных
		                firstDay: 1, // Первый день недели понедельник
		                onSelect: function(date) {
				            //Получаем день недели
				            if($(this).val() != "")
				            {
					            /*
					            var seldate = $(this).datepicker('getDate');			            
		        				seldate = seldate.toDateString();
		        				seldate = seldate.split(' ');
						        var weekday=new Array();
						            weekday['Mon']="Monday";
						            weekday['Tue']="Tuesday";
						            weekday['Wed']="Wednesday";
						            weekday['Thu']="Thursday";
						            weekday['Fri']="Friday";
						            weekday['Sat']="Saturday";
						            weekday['Sun']="Sunday";
						        var dayOfWeek = weekday[seldate[0]];
		        				//Если пятница, ставим воскресенье
		        				if(dayOfWeek == "Friday")
		        				{
		        					var endDate = $(this).datepicker('getDate');
		        					endDate.setDate(endDate.getDate() + 2);
		        					$(this).datepicker('setDate', endDate);
		        					alert('Окончание отпуска не может быть в пятницу, новый срок окончания - воскресенье');
		        				}
		        				//Если суббота, ставим воскресенье
		        				if(dayOfWeek == "Saturday")
		        				{
		        					var endDate = $(this).datepicker('getDate');
		        					endDate.setDate(endDate.getDate() + 1);
		        					$(this).datepicker('setDate', endDate);
		        					alert('Окончание отпуска не может быть в субботу, новый срок окончания - воскресенье');
		        				}
		        				*/
								//Отображаем кол-во дней
								var $_startDate = $(this).parent().parent().find('.holiday-start-date');
								var startDate = $_startDate.datepicker('getDate');
								var endDate = $(this).datepicker('getDate');
								var diff = endDate - startDate; // разница в миллисекундах
			            		var days = Math.ceil(diff / oneDay);
			            		days ++;
			            		if($_startDate.val()!= "")
			            		{
			            			//Проверяем пересечение с праздниками
			            			var startDate1 = $.datepicker.formatDate('dd-MM-yy', startDate);
									var endDate1 = $.datepicker.formatDate('dd-MM-yy', endDate);
									var $thisControl = $_startDate;
									GetHolidaysDaysCount(startDate1, endDate1, days, function(days1, daysLeft){
										var dts = daysLeft.split('~');
										var firstDayHoliday = dts[1];
										var lastdayHoliday = dts[2];
										if(firstDayHoliday == "true" || lastdayHoliday == "true")
										{
											alert("Отпуск не может начинаться или заканчиваться праздничным днем");
											//$.datepicker._clearDate($thisControl);
											$.datepicker._clearDate($(this));
											$thisControl.parent().parent().find('.holidays-dayscount').html("");
										}
										else if(firstDayHoliday == "false" && lastdayHoliday == "false")
										{									
											var dl = parseInt(dts[0]);
											var dc = days1 - dl;
			
											if(dl > 0)
											{
												$thisControl.attr("days", dc);
												$thisControl.parent().parent().find('.holidays-dayscount').html(dc + " дней и "+ dl + " праздничных дней(я)");
											}
											else
											{
												$thisControl.attr("days", dc);
												$thisControl.parent().parent().find('.holidays-dayscount').html(dc + " дней");
											}
										}
									});
			            		}
							}
							else
							{
								$(this).parent().parent().find('.holidays-dayscount').html("");
							}
				        },
						//Исключаем праздники
						beforeShowDay: function(date){
					        var string = jQuery.datepicker.formatDate('yy-mm-dd', date);
					        return [ excludeDays.indexOf(string) == -1 ]
					    }

		            })
		            
		            //АВАНСОВЫЙ
		            $avanseTable.find('.holiday-end-date').datepicker({
		                constrainInput: true,   // Запретить вводить буквы
		                //minDate: new Date(),    // Запретить выбор даты меньше чем сегодня
		                minDate: new Date(nextPeriod, 0, 1),
		                maxDate: new Date(nextPeriod, 11, 31),	                
		                showOn: 'button',       // Выбор даты через кнопку
		                autoSize: true,         // автоматически изменяемый размер поля 
		                altFormat: 'yy-mm-dd',  // Формат даты
		                dateFormat: 'dd.mm.yy',
		                //changeYear: true,
		                //beforeShowDay: $.datepicker.noWeekends,     // Запрещаем выбор выходных
		                firstDay: 1, // Первый день недели понедельник
		                onSelect: function(date) {
				            //Получаем день недели
				            if($(this).val() != "")
				            {
					            /*
					            var seldate = $(this).datepicker('getDate');			            
		        				seldate = seldate.toDateString();
		        				seldate = seldate.split(' ');
						        var weekday=new Array();
						            weekday['Mon']="Monday";
						            weekday['Tue']="Tuesday";
						            weekday['Wed']="Wednesday";
						            weekday['Thu']="Thursday";
						            weekday['Fri']="Friday";
						            weekday['Sat']="Saturday";
						            weekday['Sun']="Sunday";
						        var dayOfWeek = weekday[seldate[0]];
		        				//Если пятница, ставим воскресенье
		        				if(dayOfWeek == "Friday")
		        				{
		        					var endDate = $(this).datepicker('getDate');
		        					endDate.setDate(endDate.getDate() + 2);
		        					$(this).datepicker('setDate', endDate);
		        					alert('Окончание отпуска не может быть в пятницу, новый срок окончания - воскресенье');
		        				}
		        				//Если суббота, ставим воскресенье
		        				if(dayOfWeek == "Saturday")
		        				{
		        					var endDate = $(this).datepicker('getDate');
		        					endDate.setDate(endDate.getDate() + 1);
		        					$(this).datepicker('setDate', endDate);
		        					alert('Окончание отпуска не может быть в субботу, новый срок окончания - воскресенье');
		        				}
		        				*/
								//Отображаем кол-во дней
								var $_startDate = $(this).parent().parent().find('.holiday-start-date');
								var startDate = $_startDate.datepicker('getDate');
								var endDate = $(this).datepicker('getDate');
								var diff = endDate - startDate; // разница в миллисекундах
			            		var days = Math.ceil(diff / oneDay);
			            		days ++;
			            		if($_startDate.val()!= "")
			            		{
			            			//Проверяем пересечение с праздниками
			            			var startDate1 = $.datepicker.formatDate('dd-MM-yy', startDate);
									var endDate1 = $.datepicker.formatDate('dd-MM-yy', endDate);
									var $thisControl = $_startDate;
									GetHolidaysDaysCount(startDate1, endDate1, days, function(days1, daysLeft){
										var dts = daysLeft.split('~');
										var firstDayHoliday = dts[1];
										var lastdayHoliday = dts[2];
										if(firstDayHoliday == "true" || lastdayHoliday == "true")
										{
											alert("Отпуск не может начинаться или заканчиваться праздничным днем");
											//$.datepicker._clearDate($thisControl);
											$.datepicker._clearDate($(this));
											$thisControl.parent().parent().find('.holidays-dayscount').html("");
										}
										else if(firstDayHoliday == "false" && lastdayHoliday == "false")
										{									
											var dl = parseInt(dts[0]);
											var dc = days1 - dl;
			
											if(dl > 0)
											{
												$thisControl.attr("days", dc);
												$thisControl.parent().parent().find('.holidays-dayscount').html(dc + " дней и "+ dl + " праздничных дней(я)");
											}
											else
											{
												$thisControl.attr("days", dc);
												$thisControl.parent().parent().find('.holidays-dayscount').html(dc + " дней");
											}
										}
									});
			            		}
							}
							else
							{
								$(this).parent().parent().find('.holidays-dayscount').html("");
							}
				        },
						//Исключаем праздники
						beforeShowDay: function(date){
					        var string = jQuery.datepicker.formatDate('yy-mm-dd', date);
					        return [ excludeDays.indexOf(string) == -1 ]
					    }

		            })
	            }
	            else if(selType == "командировка")
				{
					$('.holiday-end-date').datepicker({
		                constrainInput: true,   // Запретить вводить буквы
		                //minDate: new Date(),    // Запретить выбор даты меньше чем сегодня
		                minDate: new Date(period, 0, 1),
		                maxDate: new Date(period, 11, 31),	                
		                showOn: 'button',       // Выбор даты через кнопку
		                autoSize: true,         // автоматически изменяемый размер поля 
		                altFormat: 'yy-mm-dd',  // Формат даты
		                dateFormat: 'dd.mm.yy',
		                //changeYear: true,
		                //beforeShowDay: $.datepicker.noWeekends,     // Запрещаем выбор выходных
		                firstDay: 1, // Первый день недели понедельник
		                onSelect: function(date) {
		                	//var $thisControl = $(this);
				            //Получаем день недели
				            if($(this).val() != "")
				            {					            
								//Отображаем кол-во дней
								var $_startDate = $(this).parent().parent().find('.holiday-start-date');
								var startDate = $_startDate.datepicker('getDate');
								var endDate = $(this).datepicker('getDate');
								var diff = endDate - startDate; // разница в миллисекундах
			            		var days = Math.ceil(diff / oneDay);
			            		days ++;
			            		if($_startDate.val()!= "")
			            		{
			            			$(this).parent().parent().find('.holidays-dayscount').html(days + " дней");
			            			$_startDate.attr("days", days);
			            		}
							}
							else
							{
								$(this).parent().parent().find('.holidays-dayscount').html("");
							}
				        }
		            })
	            }
	            
	            //Отключаем автозаполнение
	            $('.holiday-end-date').attr('autocomplete', 'off');
	            //Маска на поле
	            $('.holiday-end-date').mask("99.99.9999",{completed:function(){
	            	//Отображаем кол-во дней и не давем выбирать пятницу и субботу
	            	
	            	if(selType == "основной ежегодный" || selType == "авансовый")
					{	            	
						/*
						var seldate = $(this).datepicker('getDate');			            
	    				seldate = seldate.toDateString();
	    				seldate = seldate.split(' ');
				        var weekday=new Array();
				            weekday['Mon']="Monday";
				            weekday['Tue']="Tuesday";
				            weekday['Wed']="Wednesday";
				            weekday['Thu']="Thursday";
				            weekday['Fri']="Friday";
				            weekday['Sat']="Saturday";
				            weekday['Sun']="Sunday";
				        var dayOfWeek = weekday[seldate[0]];
	    				//Если пятница, ставим воскресенье
	    				if(dayOfWeek == "Friday")
	    				{
	    					var endDate = $(this).datepicker('getDate');
	    					endDate.setDate(endDate.getDate() + 2);
	    					$(this).datepicker('setDate', endDate);
	    					alert('Окончание отпуска не может быть в пятницу, новый срок окончания - воскресенье');
	    				}
	    				//Если суббота, ставим воскресенье
	    				if(dayOfWeek == "Saturday")
	    				{
	    					var endDate = $(this).datepicker('getDate');
	    					endDate.setDate(endDate.getDate() + 1);
	    					$(this).datepicker('setDate', endDate);
	    					alert('Окончание отпуска не может быть в субботу, новый срок окончания - воскресенье');
	    				}
	    				*/
    				}
					//Отображаем кол-во дней
					var $_startDate = $(this).parent().parent().find('.holiday-start-date');
					var startDate = $_startDate.datepicker('getDate');
					var endDate = $(this).datepicker('getDate');
					var diff = endDate - startDate; // разница в миллисекундах
            		var days = Math.ceil(diff / oneDay);
            		days ++;
            		
            		
            		//Ограничиваем дату окончания при ручном вводе
            		var mayEndDate = new Date(parseInt(period), 11, 31);
            		//console.log(mayEndDate);
					if(endDate > mayEndDate)
					{
						endDate.setDate(mayEndDate);
		        		$(this).datepicker('setDate', mayEndDate);
					}

            		
            		if($_startDate.val()!= "")
            		{
            			//Проверяем пересечение с праздниками
            			var startDate1 = $.datepicker.formatDate('dd-MM-yy', startDate);
						var endDate1 = $.datepicker.formatDate('dd-MM-yy', endDate);
						var $thisControl = $_startDate;
						GetHolidaysDaysCount(startDate1, endDate1, days, function(days1, daysLeft){
							var dts = daysLeft.split('~');
							var firstDayHoliday = dts[1];
							var lastdayHoliday = dts[2];
							if(firstDayHoliday == "true" || lastdayHoliday == "true")
							{
								alert("Отпуск не может начинаться или заканчиваться праздничным днем");
								//$.datepicker._clearDate($thisControl);
								$.datepicker._clearDate($(this));
								$thisControl.parent().parent().find('.holidays-dayscount').html("");
							}
							else if(firstDayHoliday == "false" && lastdayHoliday == "false")
							{									
								var dl = parseInt(dts[0]);
								var dc = days1 - dl;

								if(dl > 0)
								{
									$thisControl.attr("days", dc);
									$thisControl.parent().parent().find('.holidays-dayscount').html(dc + " дней и "+ dl + " праздничных дней(я)");
								}
								else
								{
									$thisControl.attr("days", dc);
									$thisControl.parent().parent().find('.holidays-dayscount').html(dc + " дней");
								}
							}
						});
            		}
	            }});
				

	            
	            //Русифицируем календарь
	            $.datepicker.regional['ru'];
	            
	            //Если загружаем существующие, то сразу отображаем кол-во дней
	            if(_id != "" && existIsLoaded == false)
	            {
	            	var $startDates = $periodTable.find('.holiday-start-date');
	            	var $endDates = $periodTable.find('.holiday-end-date');
	            	var datesCount = $startDates.length;
	            	var curDatesIndex = 0;
	            	$startDates.each(function(i) {
						var startDate = $(this).datepicker('getDate');
						var endDate = $($endDates[i]).datepicker('getDate');
		            	diff = endDate - startDate;
						days = Math.ceil(diff / oneDay);
						days ++;
						//Проверяем пересечение с праздниками
						var startDate1 = $.datepicker.formatDate('dd-MM-yy', startDate);
						var endDate1 = $.datepicker.formatDate('dd-MM-yy', endDate);
						var $thisControl = $(this);
						GetHolidaysDaysCount(startDate1, endDate1, days, function(days1, daysLeft){
							var dts = daysLeft.split('~');
							var firstDayHoliday = dts[1];
							var lastdayHoliday = dts[2];
							if(firstDayHoliday == "true" || lastdayHoliday == "true")
							{
								alert("Отпуск не может начинаться или заканчиваться праздничным днем");
								//$.datepicker._clearDate($thisControl);
								$.datepicker._clearDate($($endDates[i]));
								$thisControl.parent().parent().find('.holidays-dayscount').html("");
							}
							else if(firstDayHoliday == "false" && lastdayHoliday == "false")
							{									
								var dl = parseInt(dts[0]);
								var dc = days1 - dl;

								if(dl > 0)
								{
									$thisControl.attr("days", dc);
									$thisControl.parent().parent().find('.holidays-dayscount').html(dc + " дней и "+ dl + " праздничных дней(я)");
								}
								else
								{
									$thisControl.attr("days", dc);
									$thisControl.parent().parent().find('.holidays-dayscount').html(dc + " дней");
								}
							}
						});
					});					
					
	            }
	            
	            
	            //Считаем кол-во дней при вводе
	            $('.holiday-start-date').on('keyup', function () {
					//var currentVal = $(this).val();
					//$.datepicker._clearDate(this);
					//$(this).parent().parent().find('.holidays-dayscount').html("");
					var $thisControl = $(this);
					if($(this).val().length > 7)
		            {
						//Отображаем кол-во дней
						var $_endDate = $(this).parent().parent().find('.holiday-end-date');
						var endDate = $_endDate.datepicker('getDate');
						var startDate = $(this).datepicker('getDate');
						var diff = endDate - startDate; // разница в миллисекундах
	            		var days = Math.ceil(diff / oneDay);
	            		days ++;
	            		if($_endDate.val()!= "")
	            		{
	            			if(selType == "основной ежегодный" || selType == "авансовый")
	            			{		            			
		            			//Проверяем пересечение с праздниками
		            			var startDate1 = $.datepicker.formatDate('dd-MM-yy', startDate);
								var endDate1 = $.datepicker.formatDate('dd-MM-yy', endDate);
								
								GetHolidaysDaysCount(startDate1, endDate1, days, function(days1, daysLeft){
									var dts = daysLeft.split('~');
									var firstDayHoliday = dts[1];
									var lastdayHoliday = dts[2];
									if(firstDayHoliday == "true" || lastdayHoliday == "true")
									{
										alert("Отпуск не может начинаться или заканчиваться праздничным днем");
										//$.datepicker._clearDate($thisControl);
										$.datepicker._clearDate($_endDate);
										$thisControl.parent().parent().find('.holidays-dayscount').html("");
									}
									else if(firstDayHoliday == "false" && lastdayHoliday == "false")
									{									
										var dl = parseInt(dts[0]);
										var dc = days1 - dl;
		
										if(dl > 0)
										{
											$thisControl.attr("days", dc);
											$thisControl.parent().parent().find('.holidays-dayscount').html(dc + " дней и "+ dl + " праздничных дней(я)");
										}
										else
										{
											$thisControl.attr("days", dc);
											$thisControl.parent().parent().find('.holidays-dayscount').html(dc + " дней");
										}
									}
								});
							}
							else if(selType == "командировка")
							{
								$thisControl.attr("days", days);
								$thisControl.parent().parent().find('.holidays-dayscount').html(days + " дней");
							}
	            		}
						
						//var $_endDate = $(this).parent().parent().find('.holiday-end-date');
						else if($_endDate.val() == "")
						{
							var startDate = $(this).datepicker('getDate');
							
							var newEnd = $(this).datepicker('getDate');
							if(newEnd != null)
							{
		            			if(selType == "основной ежегодный" || selType == "авансовый")
	            				{
			            			newEnd.setDate(newEnd.getDate() + 6);
									$_endDate.datepicker('setDate', newEnd);
									endDate = $_endDate.datepicker('getDate');
									//console.log(startDate);
									
									diff = endDate - startDate;
									days = Math.ceil(diff / oneDay);
									days ++;
									
									//Проверяем пересечение с праздниками
			            			var startDate1 = $.datepicker.formatDate('dd-MM-yy', startDate);
									var endDate1 = $.datepicker.formatDate('dd-MM-yy', endDate);
									var $thisControl = $(this);
									GetHolidaysDaysCount(startDate1, endDate1, days, function(days1, daysLeft){
										var dts = daysLeft.split('~');
										var firstDayHoliday = dts[1];
										var lastdayHoliday = dts[2];
										if(firstDayHoliday == "true" || lastdayHoliday == "true")
										{
											alert("Отпуск не может начинаться или заканчиваться праздничным днем");
											//$.datepicker._clearDate($thisControl);
											$.datepicker._clearDate($_endDate);
											$thisControl.parent().parent().find('.holidays-dayscount').html("");
										}
										else if(firstDayHoliday == "false" && lastdayHoliday == "false")
										{									
											var dl = parseInt(dts[0]);
											var dc = days1 - dl;
			
											if(dl > 0)
											{
												$thisControl.attr("days", dc);
												$thisControl.parent().parent().find('.holidays-dayscount').html(dc + " дней и "+ dl + " праздничных дней(я)");
											}
											else
											{
												$thisControl.attr("days", dc);
												$thisControl.parent().parent().find('.holidays-dayscount').html(dc + " дней");
											}
										}
									});	
								}
								else if(selType == "командировка")
								{
									$thisControl.attr("days", days);
									$thisControl.parent().parent().find('.holidays-dayscount').html(days + " дней");
								}
			
							}
						}
					}
				});
				

	            //При вводе считаем кол-во дней и не даем выбирать пятницу и субботу
	            $('.holiday-end-date').on('keyup', function () {
					//var currentVal = $(this).val();
					//$.datepicker._clearDate(this);
					//Получаем день недели
		            if($(this).val().length > 7)
		            {
			            /*
			            var seldate = $(this).datepicker('getDate');			            
        				seldate = seldate.toDateString();
        				seldate = seldate.split(' ');
				        var weekday=new Array();
				            weekday['Mon']="Monday";
				            weekday['Tue']="Tuesday";
				            weekday['Wed']="Wednesday";
				            weekday['Thu']="Thursday";
				            weekday['Fri']="Friday";
				            weekday['Sat']="Saturday";
				            weekday['Sun']="Sunday";
				        var dayOfWeek = weekday[seldate[0]];
        				//Если пятница, ставим воскресенье
        				if(dayOfWeek == "Friday")
        				{
        					var endDate = $(this).datepicker('getDate');
        					endDate.setDate(endDate.getDate() + 2);
        					$(this).datepicker('setDate', endDate);
        					alert('Окончание отпуска не может быть в пятницу, новый срок окончания - воскресенье');
        				}
        				//Если суббота, ставим воскресенье
        				if(dayOfWeek == "Saturday")
        				{
        					var endDate = $(this).datepicker('getDate');
        					endDate.setDate(endDate.getDate() + 1);
        					$(this).datepicker('setDate', endDate);
        					alert('Окончание отпуска не может быть в субботу, новый срок окончания - воскресенье');
        				}
        				*/
						//Отображаем кол-во дней
						var $_startDate = $(this).parent().parent().find('.holiday-start-date');
						var startDate = $_startDate.datepicker('getDate');
						var endDate = $(this).datepicker('getDate');
						var diff = endDate - startDate; // разница в миллисекундах
	            		var days = Math.ceil(diff / oneDay);
	            		days ++;
	            		if($_startDate.val()!= "")
	            		{
	            			if(selType == "основной ежегодный" || selType == "авансовый")
	            			{
		            			var startDate1 = $.datepicker.formatDate('dd-MM-yy', startDate);
								var endDate1 = $.datepicker.formatDate('dd-MM-yy', endDate);
								var $thisControl = $_startDate;
								GetHolidaysDaysCount(startDate1, endDate1, days, function(days1, daysLeft){
									var dts = daysLeft.split('~');
									var firstDayHoliday = dts[1];
									var lastdayHoliday = dts[2];
									if(firstDayHoliday == "true" || lastdayHoliday == "true")
									{
										alert("Отпуск не может начинаться или заканчиваться праздничным днем");
										//$.datepicker._clearDate($thisControl);
										$.datepicker._clearDate($(this));
										$thisControl.parent().parent().find('.holidays-dayscount').html("");
									}
									else if(firstDayHoliday == "false" && lastdayHoliday == "false")
									{									
										var dl = parseInt(dts[0]);
										var dc = days1 - dl;
		
										if(dl > 0)
										{
											$thisControl.attr("days", dc);
											$thisControl.parent().parent().find('.holidays-dayscount').html(dc + " дней и "+ dl + " праздничных дней(я)");
										}
										else
										{
											$thisControl.attr("days", dc);
											$thisControl.parent().parent().find('.holidays-dayscount').html(dc + " дней");
										}
									}
								});
							}
							else if(selType == "командировка")
							{
								$_startDate.attr("days", days);
								$_startDate.parent().parent().find('.holidays-dayscount').html(days + " дней");
							}

						}
					}
					else
					{
						$(this).parent().parent().find('.holidays-dayscount').html("");
					}

				});
				
				
				//Кнопка удалить для каждого периода
				$delButton = $(".del-button");
				$delButton.css('cursor', 'pointer');
				
				$delButton.on("click", function() { 
				
					$(this).hide();					
					var id_ = $(this).attr("curid");
					if(id_ != null)
					{
						$.ajax(
						{			
							//url: "/hr/holidays/Delete.ashx",
							//type: "POST", data: {id:id_}, success: function (data) 
							url: "/hr/holidays/handlers.aspx",
							type: "POST", data: {action: "Delete", id:id_}, success: function (data)							
							{
								data = data.split('\n')[0];
								data = data.substring(0, data.length - 1);
							
								if(data == "success")
								{
									$(this).parent().closest('tr').remove();
									$delButton.show();
									LoadUserData();							
								}
								else if(data != "success")
								{
									alert("Ошибка удаления. Попробуйте еще раз");	
									$delButton.show();						
								}     
							},
							error: function (xhr, ajaxOptions, thrownError) 
							{ 
								alert("Ошибка удаления. Попробуйте еще раз");
								$delButton.show();	
							},
						});
	 				}
	 				else if(id_ == null)
					{
						$(this).parent().closest('tr').remove();
					}
	
				});
				
				
			}
			
			//SetDatePicker("основной ежегодный");
			//SetDatePicker("командировка");
			
			
			
			
			//Кнопка добавить
			$addButton = $("img[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb_Image1']");
			$addButton.css('cursor', 'pointer');
			var $addSpan = $("<span style='margin: 0 0 0 10px;'>Добавить период</span>");
			$addSpan.insertAfter($addButton);

			$addButton.on("click", function() { 
 				$periodTable.find('tbody').append("<tr><td><input type='text' class='holiday-start-date'></td><td><input type='text' class='holiday-end-date'></td><td><img class='del-button' src='../../_layouts/img/delete.png' style='border-width:0px;width:18px;height:18px;'></td><td><span class='holidays-dayscount'></span></td></tr>");
 				var _selType = $("select[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb__typeList']").children("option:selected").text();
 				SetDatePicker(_selType);
			});
			
			
			//ID новых периодов
			var newPeriodsIndexes = [];
			//ID редактируемых периодов
			var editPeriodsIndexes = [];
			
			//Сохранение
			function Save(fioText, personnelNumber, department, position, managerText, deputyText, selectedType, selectedView)
			{
				$saveButton.hide();
				$cancelButton.hide();
				
				var $startDates = $periodTable.find('.holiday-start-date');
 				//var $endDates = $('.holiday-end-date');
 				
 				$startDates.each(function(i) {
	 					
 					var $del = $(this).parent().parent("tr").find(".del-button");
 					var curid = $del.attr("curid");
 					if(curid != null)
 					{
	 					editPeriodsIndexes.push(i);
 					}
 					else if(curid == null)
 					{
 						newPeriodsIndexes.push(i);
 					}
				});		
 				
 				/*
				console.log("всего новых периодов: " + newPeriodsIndexes.length);				
				if(newPeriodsIndexes.length > 0)
				{
					for(j=0; j<newPeriodsIndexes.length; j++)
					{
						console.log(newPeriodsIndexes[j]);
					} 
				}
				console.log("всего редактируемых периодов: " + editPeriodsIndexes.length);
				if(editPeriodsIndexes.length > 0)
				{
					for(k=0; k<editPeriodsIndexes.length; k++)
					{
						console.log(editPeriodsIndexes[k]);
					} 
				}				
				*/
				DoSave(0, fioText, personnelNumber, department, position, managerText, deputyText, selectedType, selectedView);				
			}
			
			
			function DoSave(i, fioText, personnelNumber, department, position, managerText, deputyText, selectedType, selectedView)
			{
				//Период
				var period = getParameterByName('period');
				var $startDates = $periodTable.find('.holiday-start-date');
 				var $endDates = $periodTable.find('.holiday-end-date');
 				
 				//Юр лицо
 				var company = $("span[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb__company']").html();
 				
 				var startDate = $($startDates[i]).datepicker('getDate');
				var endDate = $($endDates[i]).datepicker('getDate');				
							
				
				//Кол-во дней	
				//var diff = endDate - startDate; // разница в миллисекундах
        		//var days = Math.ceil(diff / oneDay);
        		//days ++;
        		var days = $($startDates[i]).attr("days");
        		
        		startDate = $.datepicker.formatDate('dd-MM-yy', startDate);
				endDate = $.datepicker.formatDate('dd-MM-yy', endDate);
				
        		//Авансовый
        		var avanseStartDate = "";
				var avanseEndDate = "";
				var avanseDays = "";

				if(selectedType == "авансовый")
				{
 					var $avanseStartDates = $avanseTable.find('.holiday-start-date');
 					var $avanseEndDates = $avanseTable.find('.holiday-end-date');
				
					var avanseStartDate = $($avanseStartDates[i]).datepicker('getDate');
					var avanseEndDate = $($avanseEndDates[i]).datepicker('getDate');
					
					avanseStartDate = $.datepicker.formatDate('dd-MM-yy', avanseStartDate);
					avanseEndDate = $.datepicker.formatDate('dd-MM-yy', avanseEndDate);

					avanseDays = $($avanseStartDates[i]).attr("days");
				}
        		
        		//Последний элемент (на нем создаем элемент согласования)
        		var lastItem = "false";
        		var cnt = $startDates.length - 1;
        		if(i == cnt)
        		{
        			lastItem = "true";
        		}
        		
        		var _curid = 0;
        		
        		if (newPeriodsIndexes.indexOf(i) != -1)
        		{
        			_curid = 0;
        			//console.log('new');
        			//var ind = i+1;
					//DoSave(ind, fioText, personnelNumber, department, position, managerText, deputyText, selectedType, selectedView); 
        		}
        		else if(editPeriodsIndexes.indexOf(i) != -1)
        		{
        			var $startDates = $periodTable.find('.holiday-start-date');	 					
 					var $del = $($startDates[i]).parent().parent("tr").find(".del-button");
 					var _curid = $del.attr("curid");
 					
 					//console.log('edit ' + curid);
        			//var ind = i+1;
					//DoSave(ind, fioText, personnelNumber, department, position, managerText, deputyText, selectedType, selectedView);
        		}

				
				$.ajax(
				{			
					//url: "/hr/holidays/Save.ashx",
					//type: "POST", data: {user:fioText, period:period, personnelNumber:personnelNumber, department:department, position:position, startDate:startDate, endDate:endDate, days:days, avanseStartDate:avanseStartDate, avanseEndDate:avanseEndDate, avanseDays:avanseDays, company:company, managerText:managerText, deputyText:deputyText, lastItem:lastItem, selectedType:selectedType, selectedView:selectedView, curid:_curid }, 
					url: "/hr/holidays/handlers.aspx",
					type: "POST", data: {action: "Save", user:fioText, period:period, personnelNumber:personnelNumber, department:department, position:position, startDate:startDate, endDate:endDate, days:days, avanseStartDate:avanseStartDate, avanseEndDate:avanseEndDate, avanseDays:avanseDays, company:company, managerText:managerText, deputyText:deputyText, lastItem:lastItem, selectedType:selectedType, selectedView:selectedView, curid:_curid},
					success: function (data) 
					{
						data = data.split('\n')[0];
						data = data.substring(0, data.length - 1);

						if(data == "success")
						{
							//Переходим в график								
							var _url = document.location.href;
							//отрезаем source=
							_url = _url.substring(_url.indexOf('source=') + 7);
							
							if(lastItem == "true")
							{
								//_url = _url.substring(_url.indexOf('source=') + 7);
								if (_url.indexOf("user") == -1)
								{
									_url += "&user=" + fioText; 
								}
								//window.location.replace(_url);
								window.location.href = _url;
							}
							else if(lastItem == "false")
							{
								var ind = i+1;
								DoSave(ind, fioText, personnelNumber, department, position, managerText, deputyText, selectedType, selectedView);
							}
						}
						else if(data != "success")
						{
							alert("Ошибка сохранения. Попробуйте еще раз");	
							$saveButton.show();
							$cancelButton.show();						
						}     
					},
					error: function (xhr, ajaxOptions, thrownError) 
					{ 
						alert("Ошибка сохранения. Попробуйте еще раз");
						$saveButton.show();
						$cancelButton.show();	
					},
				});
				
			}
			
			
			//Проверка пересечения новых периодов
			function IsOverlap(from1, to1, from2, to2) 
			{
			    return (((from1 <= from2) && (to1 >= from2)) ||
                ((from1 <= to2) && (to1 >= to2)) ||
                ((from1 >= from2) && (to1 <= to2)));
			}
			
			//Закрываем остатки
			function DoCloseRemaining(ostatki, selectedDaysCount, $fioText, $personnelNumber, $department, $position, $managerText, $deputyText, selectedType, selectedView)
			{
				//Сначала проверяем заместителя. Если у заместителя на этот период отпуск или командировка, то не сохраняем
				var $startDates = $periodTable.find('.holiday-start-date');
	            var $endDates = $periodTable.find('.holiday-end-date');
				
				var startDatesString = "";
				var endDatesString = "";  
				
				//Период
				var period = getParameterByName('period');
					
				 					
 				$startDates.each(function(i) {
					var startDate1 = $(this).datepicker('getDate');
					var endDate1 = $($endDates[i]).datepicker('getDate');						
					
					var _startDate = $.datepicker.formatDate('dd-MM-yy', startDate1);
					var _endDate = $.datepicker.formatDate('dd-MM-yy', endDate1);
					startDatesString += _startDate + ";";
					endDatesString += _endDate + ";";
				});	
				
				$.ajax(
				{			
					//url: "/hr/holidays/CheckDeputy.ashx",
					//type: "POST", data: {deputy:$deputyText, allStartDates:startDatesString, allEndDates:endDatesString, period:period},
					url: "/hr/holidays/handlers.aspx",
					type: "POST", data: {action: "CheckDeputy", deputy:$deputyText, allStartDates:startDatesString, allEndDates:endDatesString, period:period}, 
					success: function (data) 
					{
						data = data.split('\n')[0];
						data = data.substring(0, data.length - 1);
					
						//Замещающий получен и свободен на выбранные даты
						if(data == "free")
						{
							if(selectedType == "основной ежегодный" && selectedView == "динамический план")
							{
								//Если есть остатки - спарва закрываем их
								if(ostatki != 0)
								{
				 					//Параметры: остатки, выбранное кол-во дней (закрываем остатки в адресной книге), сотрудник
									$.ajax(
									{			
										//url: "/hr/holidays/CloseRemaining.ashx",
										//type: "POST", data: {ostatki: ostatki, daysCount: selectedDaysCount, user: $fioText}, 
										url: "/hr/holidays/handlers.aspx",
										type: "POST", data: {action: "CloseRemaining", ostatki: ostatki, daysCount: selectedDaysCount, user: $fioText},
										success: function (data1) 
										{
											data1 = data1.split('\n')[0];
											data1 = data1.substring(0, data1.length - 1);
											
											//Остатки успешно изменены
											if(data1 == "success")
											{
												//Запускаем сохранение
												//console.log('start save');
												Save($fioText, $personnelNumber, $department, $position, $managerText, $deputyText, selectedType, selectedView);
											}
											else if(data1 != "success")
											{
												alert('Не удалось сохранить остатки, попробуйте сохранить еще раз');
											}     
										},
										error: function (xhr, ajaxOptions, thrownError) 
										{ 
											alert("Не удалось сохранить остатки, попробуйте сохранить еще раз");
										},
									});
								}
								//Если остатков нет - сразу сохраняем
								else if(ostatki == 0)
								{
									Save($fioText, $personnelNumber, $department, $position, $managerText, $deputyText, selectedType, selectedView);
								}
							}
							//Командировку просто сохраняем
							else if(selectedType == "командировка" || selectedType == "авансовый" || (selectedType == "основной ежегодный" && selectedView == "статический план"))
							{
								Save($fioText, $personnelNumber, $department, $position, $managerText, $deputyText, selectedType, selectedView);
							}							

						}
						else if(data == "busy")
						{
							alert("Необходимо выбрать другого заместителя, т.к. " + $deputyText + " будет в отпуске или командировке в это один из выбранных вами периодов отпуска.");
						}     
					},
					error: function (xhr, ajaxOptions, thrownError) 
					{ 
						alert("Не удалось проверить занятость заместителя. Попробуйте еще раз.");
					},
				});
			}
			
			
			//Кнопка Сохранить
			$saveButton.on("click", function() { 
				$error.html("");
				
				//Проверяем поля
 				var goNext = true;
 				
 				//ФИО
 				var $fio = $("div[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb_FioPE_upLevelDiv']");
 				var $fioText = "";
 				if($fio.html().length > 100)
				{
					$fioText = $fio.find('span#content').html();
				}
				else
				{
					$fioText = $fio.html();
				}
 				if($fioText == "" || $fioText.length == 0)
 				{
 					$error.html($error.html()+"<br/>Не заполнено поле ФИО");
 					goNext = false;
 				}
 				//Табельный номер
 				var $personnelNumber = $("input[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb__personnelNumber']");
 				if($personnelNumber.val() == "")
 				{
 					$error.html($error.html() + "<br/>Не заполнено поле Табельный номер");
 					goNext = false;
 				}
 				//Отдел
				var $department = $("select[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb__departmentList']").val();
				if($department == "(выбрать)")
 				{
 					$error.html($error.html() + "<br/>Не заполнено поле Отдел");
 					goNext = false;
 				}
 				//Должность
 				var $position = $("input[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb__position']").val();
 				if($position == "")
 				{
 					$error.html($error.html() + "<br/>Не заполнено поле должность");
 					goNext = false;
 				}
				//Руководитель
 				var $manager = $("div[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb_ManagerPE_upLevelDiv']");
 				var $managerText = "";
 				if($manager.html().length > 100)
				{
					$managerText = $manager.find('span#content').html();
				}
				else
				{
					$managerText = $manager.html();
				}
				/*
 				if($managerText == "" || $managerText.length == 0)
 				{
 					$error.html($error.html()+"<br/>Не заполнено поле Руководитель");
 					goNext = false;
 				}
 				*/
				//Заместитель				
 				var $deputy = $("div[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb_DeputyPE_upLevelDiv']");
 				var $deputyText = "";
 				if($deputy.html().length > 100)
				{
					$deputyText = $deputy.find('span#content').html();
				}
				else
				{
					$deputyText = $deputy.html();
				}

				/*
 				if($deputyText == "" || $deputyText.length == 0)
 				{
 					$error.html($error.html()+"<br/>Не заполнено поле Заместитель");
 					goNext = false;
 				}
 				*/
 				
 				//Проверка заполнения дат
 				//ПЛАН
 				var $startDates = $periodTable.find('.holiday-start-date');
 				var $endDates = $periodTable.find('.holiday-end-date');
 				//АВАНС
 				var $avanseStartDates = $avanseTable.find('.holiday-start-date');
 				var $avanseEndDates = $avanseTable.find('.holiday-end-date');
 				
 				var allDatesFilled = true; 				
 				//План
 				$startDates.each(function(i) {
					var currentVal = $(this).val();
					if(currentVal == "" || currentVal.length < 8)
					{
						allDatesFilled = false;
					}
				});
				$endDates.each(function(i) {
					var currentVal = $(this).val();
					if(currentVal == ""|| currentVal.length < 8)
					{
						allDatesFilled = false;
					}
				});
				//Аванс
				$avanseStartDates.each(function(i) {
					var currentVal = $(this).val();
					if(currentVal == "" || currentVal.length < 8)
					{
						allDatesFilled = false;
					}
				});
				$avanseEndDates.each(function(i) {
					var currentVal = $(this).val();
					if(currentVal == ""|| currentVal.length < 8)
					{
						allDatesFilled = false;
					}
				});


 				if(allDatesFilled == false)
 				{
 					$error.html($error.html()+"<br/>Не все даты заполнены");
 					goNext = false;
 				}
 				
 				
 				//Проверка что дата окончания больше даты начала
 				var allDatesCorrect = true; 
 				//План
 				$startDates.each(function(i) {
					var startDate = $(this).datepicker('getDate');
					var endDate = $($endDates[i]).datepicker('getDate');
					if(startDate > endDate)
					{
						allDatesCorrect = false;
					}        			
				});
				//Аванс
				$avanseStartDates.each(function(i) {
					var startDate = $(this).datepicker('getDate');
					var endDate = $($avanseEndDates[i]).datepicker('getDate');
					if(startDate > endDate)
					{
						allDatesCorrect = false;
					}        			
				});
				
 				if(allDatesCorrect == false)
 				{
 					$error.html($error.html()+"<br/>Дата окончания не может быть меньше даты начала");
 					goNext = false;
 				}
 				
 				//Проверка что один из периодов не менее 14 дней
 				var twoWeak = false;
 				//Проверка что период не может быть в прошлом
 				var allDatesInFeature = true; 
 				
 				//Тип
				var selectedType = $("select[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb__typeList']").children("option:selected").text();
				if(selectedType == "командировка" || selectedType == "авансовый")
				{
					twoWeak = true;
				}
				else if(selectedType == "основной ежегодный")
				{
					//Проверка что один из периодов не менее 14 дней
					var view = $("select[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb__viewList']").children("option:selected").text();
					//Только для статический план
					if(view == "статический план")
					{
						//Ранее уже был запланирован - не проверяем
		 				if($("span[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb__twoWeaks']").html() == "false")
		 				{
			 				$startDates.each(function(i) {
								var startDate = $(this).datepicker('getDate');
								var endDate = $($endDates[i]).datepicker('getDate');
								var diff = endDate - startDate; // разница в миллисекундах
			            		var days = Math.ceil(diff / oneDay);
			            		days ++;
								if(days >= 14)
								{
									twoWeak = true;
								}        			
							});
			 				
			 				if(twoWeak == false)
			 				{
			 					$error.html($error.html()+"<br/>Одна часть отпуска должна быть не менее 14 календарных дней");
			 					goNext = false;
			 				}
						}
						else if($("span[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb__twoWeaks']").html() == "true")
		 				{
		 					twoWeak = true;
		 				}
	 				}
	 				else if(view == "динамический план")
					{
						twoWeak = true;
					}
	 				
	 				//Проверка что период не может быть в прошлом
	 				$startDates.each(function(i) {
						var today = new Date();
						var startDate = $(this).datepicker('getDate');
						//var endDate = $($endDates[i]).datepicker('getDate');
						if(today > startDate)// endDate)
						{
							allDatesInFeature = false;
						}        			
					});
	 				
	 				if(allDatesInFeature == false)
	 				{
	 					$error.html($error.html()+"<br/>Дата отпуска не может быть в прошлом");
	 					goNext = false;
	 				}
				}

 				//Если все даты заполнены и заполнены корректно - продолжаем считать
 				if(allDatesFilled && allDatesCorrect && twoWeak && allDatesInFeature)
 				{ 				
	 				if(selectedType == "основной ежегодный" || selectedType == "авансовый")
	 				{
		 				//Считаем сумму дней (не больше 28 + остатки с прошлых периодов, запланировано + уже использованные)
		 				var selectedDaysCount = 0;
		             				
		 				$startDates.each(function(i) {
							
							var days = parseInt($($startDates[i]).attr("days"));
							selectedDaysCount += days;

							/*
							var startDate = $(this).datepicker('getDate');
							var endDate = $($endDates[i]).datepicker('getDate');
							
							var diff = endDate - startDate; // разница в миллисекундах
		            		var days = Math.ceil(diff / oneDay);
		            		days ++;
							selectedDaysCount += days;
							*/ 
						});
						
						//Если авансовый, проверяем что кол-во дней авансового и из следующего периода совпадает
						var avanseDaysCountEqual = true;
						if(selectedType == "авансовый")
						{
							//План
			 				$startDates.each(function(i) {
								var days1 = $(this).attr("days");
								$avanseStartDates.each(function(i) {
									var days2 = $(this).attr("days");
									if(days1 != days2)
									{
										avanseDaysCountEqual = false;
									}        			
								});    			
							});					
						}
						
						if(avanseDaysCountEqual == false)
		 				{
		 					$error.html($error.html()+"<br/>Кол-во дней авансового отпуска и из следующего периода должно совпадать");
		 					goNext = false;
		 				}
				
				
						//Уже запланировано дней
		 				var alreadyPlaned = 0;
		 				
		 				//Если создание, то берем уже запланированное кол-во дней
		 				if(_id == "")
		 				{
							if($("span[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb__usedDaysCount']").html() != "")
							{
								alreadyPlaned = parseInt($("span[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb__usedDaysCount']").html());				
							}
						}
						//Если редактирование, то берем только согласованное кол-во дней
						else if(_id != "")
		 				{
							if($("span[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb__approvedStaticDaysCount']").html() != "")
							{
								alreadyPlaned = parseInt($("span[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb__approvedStaticDaysCount']").html());				
							}
						}
 				
		 
		 				//запланировано + уже использованные
		 				var allPeriodDays = alreadyPlaned + selectedDaysCount;
		 				//Если больше (28 дней + остатки с прошлых периодов), то не разрешаем
		 				
		 				var ostatki = 0;
		 				if($("span[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb__daysFromPreviousPeriods']").html() != "")
		 				{
		 					ostatki = parseInt($("span[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb__daysFromPreviousPeriods']").html());
		 				}
		 				
		 				
		 				var possibleDaysCount = 0; // + ostatki;
		 				
		 				//Вид
						var view = $("select[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb__viewList']").children("option:selected").text();
		 				if(view == "статический план")
		 				{
		 					if(!newEmploye)
							{
								possibleDaysCount = 28;
							}
							else if(newEmploye)
							{				
		 						//possibleDaysCount = 28;
		 						possibleDaysCount = parseInt($("span[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb__possibleDaysCount']").html());
		 					}
		 					if(allPeriodDays > possibleDaysCount)
			 				{
			 					var period = getParameterByName('period');
			 					$error.html($error.html()+"<br/>Общее кол-во дней за период " + period + " не должно превышать "+ possibleDaysCount +" дней. У Вас получается "+ allPeriodDays +" с учетом ранее запланированных");
			 					goNext = false;
			 				}
			 				else if(allPeriodDays < possibleDaysCount)
			 				{
			 					var period = getParameterByName('period');
			 					$error.html($error.html()+"<br/>Общее кол-во запланированных дней за период " + period + " должно быть не менее "+ possibleDaysCount +". У Вас получается "+ allPeriodDays +" с учетом ранее запланированных");
			 					goNext = false;
			 				}
		 				}
		 				else if(view == "динамический план")
		 				{
		 					allPeriodDays = selectedDaysCount;
		 					if(!newEmploye)
							{
								//possibleDaysCount = 28 + ostatki;
								possibleDaysCount = parseInt($("span[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb__possibleDaysCount']").html()) + ostatki;
							}
							else if(newEmploye)
							{	
		 						//possibleDaysCount = 28 + ostatki;
		 						possibleDaysCount = parseInt($("span[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb__possibleDaysCount']").html()) + ostatki;
		 					}
		 					if(allPeriodDays > possibleDaysCount)
			 				{
			 					var period = getParameterByName('period');
			 					$error.html($error.html()+"<br/>Общее кол-во дней за период " + period + " не должно превышать "+ possibleDaysCount +" дней. У Вас получается "+ allPeriodDays +" с учетом ранее запланированных");
			 					goNext = false;
			 				}
		 				}

		 				/*
		 				if(allPeriodDays > possibleDaysCount)
		 				{
		 					var period = getParameterByName('period');
		 					$error.html($error.html()+"<br/>Общее кол-во дней за период " + period + " не должно превышать "+ possibleDaysCount +" дней. У Вас получается "+ allPeriodDays +" с учетом ранее запланированных");
		 					goNext = false;
		 				}
		 				else if(allPeriodDays < possibleDaysCount)
		 				{
		 					var period = getParameterByName('period');
		 					$error.html($error.html()+"<br/>Общее кол-во запланированных дней за период " + period + " должно быть не менее "+ possibleDaysCount +". У Вас получается "+ allPeriodDays +" с учетом ранее запланированных");
		 					goNext = false;
		 				}
		 				*/
	 				}
	 				//Считаем остатки аванса
	 				if(selectedType == "авансовый")
	 				{
		 				//Считаем сумму дней (не больше 28 запланировано в следующем периоде + уже использованные)
		 				var selectedDaysCount = 0;
		             				
		 				$avanseStartDates.each(function(i) {							
							var days = parseInt($($avanseStartDates[i]).attr("days"));
							selectedDaysCount += days;
						});				
				
						//Уже запланировано дней
		 				var alreadyPlaned = 0;
		 				
		 				//Если создание, то берем уже запланированное кол-во дней
		 				if(_id == "")
		 				{
							if($("span[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb__usedDaysCount']").html() != "")
							{
								alreadyPlaned = parseInt($("span[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb__usedDaysCount']").html());				
							}
						}
						
 				
		 
		 				//запланировано + уже использованные
		 				var allPeriodDays = alreadyPlaned + selectedDaysCount;
		 				//Если больше (28 дней + остатки с прошлых периодов), то не разрешаем
		 				
		 				var ostatki = 0;
		 				//if($("span[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb__daysFromPreviousPeriods']").html() != "")
		 				//{
		 				//	ostatki = parseInt($("span[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb__daysFromPreviousPeriods']").html());
		 				//}
		 				if($("span[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb__usedDaysCount']").html() != "")
		 				{
		 					ostatki = parseInt($("span[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb__usedDaysCount']").html());
		 				}
		 				
		 				
		 				var possibleDaysCount = 0; // + ostatki;
		 				
		 				
	 					//allPeriodDays = selectedDaysCount;
	 					if(!newEmploye)
						{
							//possibleDaysCount = 28 + ostatki;
							possibleDaysCount = parseInt($("span[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb__possibleDaysCount']").html()) + ostatki;
						}
						else if(newEmploye)
						{	
	 						//possibleDaysCount = 28 + ostatki;
	 						possibleDaysCount = parseInt($("span[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb__possibleDaysCount']").html()) + ostatki;
	 					}
	 					if(allPeriodDays > possibleDaysCount)
		 				{
		 					var period = getParameterByName('period');
		 					$error.html($error.html()+"<br/>Общее кол-во дней за период " + period + " не должно превышать "+ possibleDaysCount +" дней. У Вас получается "+ allPeriodDays +" с учетом ранее запланированных");
		 					goNext = false;
		 				}
		 					 				
	 				}

	 				 				
	 				//Проверяем пересечение выбранных периодов
	 				var newDatesIsOverlap = false;
	 				
	 				//ID существующих элементов, которые исключаем из проверки на пересечение с существующими
	 				var existIDs = "";
	 				
					var startDatesString = "";
					var endDatesString = "";
					
					var avanseStartDatesString = "";
					var avanseEndDatesString = "";  					
 					 					
	 				$startDates.each(function(i) {
	 					
	 					var $del = $(this).parent().parent("tr").find(".del-button");
	 					var curid = $del.attr("curid");
	 					if(curid != null)
	 					{
		 					if(existIDs == "")
		 					{
		 						existIDs += curid;
		 					}
		 					else if(existIDs != "")
		 					{
		 						existIDs += ";" + curid;
		 					}
	 					}
	 				
						var startDate1 = $(this).datepicker('getDate');
						var endDate1 = $($endDates[i]).datepicker('getDate');						
						
						var _startDate = $.datepicker.formatDate('dd-MM-yy', startDate1);
						var _endDate = $.datepicker.formatDate('dd-MM-yy', endDate1);
						startDatesString += _startDate + ";";
						endDatesString += _endDate + ";";
												
						if($startDates.length > 1)
						{						
							$startDates.each(function(j) {
								
								if(j != i)
								{
									var startDate2 = $(this).datepicker('getDate');
									var endDate2 = $($endDates[j]).datepicker('getDate');
									var overlap = IsOverlap(startDate1, endDate1, startDate2, endDate2);
									if(overlap)
									{
										newDatesIsOverlap = true;									
									}								
								}
							});
						}
						
					});
					
					$avanseStartDates.each(function(i) {
	 					
	 					var $del = $(this).parent().parent("tr").find(".del-button");
	 					var curid = $del.attr("curid");
	 					if(curid != null)
	 					{
		 					if(existIDs == "")
		 					{
		 						existIDs += curid;
		 					}
		 					else if(existIDs != "")
		 					{
		 						existIDs += ";" + curid;
		 					}
	 					}
	 				
						var startDate1 = $(this).datepicker('getDate');
						var endDate1 = $($endDates[i]).datepicker('getDate');						
						
						var _startDate = $.datepicker.formatDate('dd-MM-yy', startDate1);
						var _endDate = $.datepicker.formatDate('dd-MM-yy', endDate1);
						avanseStartDatesString += _startDate + ";";
						avanseEndDatesString += _endDate + ";";
												
						if($avanseStartDates.length > 1)
						{						
							$avanseStartDates.each(function(j) {
								
								if(j != i)
								{
									var startDate2 = $(this).datepicker('getDate');
									var endDate2 = $($endDates[j]).datepicker('getDate');
									var overlap = IsOverlap(startDate1, endDate1, startDate2, endDate2);
									if(overlap)
									{
										newDatesIsOverlap = true;									
									}								
								}
							});
						}
						
					});

										
	 				if(newDatesIsOverlap == true)
	 				{
	 					$error.html($error.html()+"<br/>Периоды оптуска не должны пересекаться");
	 					goNext = false;
	 				}


	 				//Проверяем что выбранные периоды не пересекаются с существующими		
					var period = getParameterByName('period');
					//Вид
					var view = $("select[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb__viewList']").children("option:selected").text()
					
					var ids = 0;
					if(existIDs != "")
					{
						ids = existIDs;
					}
					
					//Заместитель				
	 				var $deputy1 = $("div[id$='_g_8d7a025b_ae34_4910_9075_75791a5a89eb_DeputyPE_upLevelDiv']");
	 				var $deputyText1 = "";
	 				if($deputy1.html().length > 100)
					{
						$deputyText1 = $deputy1.find('span#content').html();
					}
					else
					{
						$deputyText1 = $deputy1.html();
					}

					
					$.ajax(
					{			
						//url: "/hr/holidays/CheckOverlap.ashx",
						//type: "POST", data: {user:$fioText, period:period, startDates:startDatesString, endDates:endDatesString, view:view, id:ids}, 
						url: "/hr/holidays/handlers.aspx",
						type: "POST", data: {action: "CheckOverlap", user:$fioText, period:period, startDates:startDatesString, endDates:endDatesString, view:view, id:ids}, 
						success: function (data) 
						{
							data = data.split('\n')[0];
							data = data.substring(0, data.length - 1);

							if(data == "false" || data == "bt")
							{
								if(data == "bt")
								{
									alert("Периоды отпуска пересекаются с командировкой");
								}
								if(goNext)
								{									
									DoCloseRemaining(ostatki, selectedDaysCount, $fioText, $personnelNumber.val(), $department, $position, $managerText, $deputyText1, selectedType, view);
								}
							}							
							else if(data == "true")
							{
								$error.html($error.html()+"<br/>Периоды оптуска не должны пересекаться с существующими периодами");
	 							goNext = false;
							}							
							else 
							{
								alert("Ошибка проверки. Попробуйте еще раз");	
								goNext = false;
							}     
						},
						error: function (xhr, ajaxOptions, thrownError) 
						{ 
							alert("Ошибка проверки. Попробуйте еще раз");
							goNext = false;	
						},
					});    				
	 				
	 				/*
	 				//Если проверка полей пройдена, проверяем даты
	 				if(goNext)
	 				{
	 					
	 					//Если есть остатки - спарва закрываем их
	 					if(ostatki != 0)
	 					{
		 					//Параметры: остатки, выбранное кол-во дней (закрываем остатки в адресной книге), сотрудник
							$.ajax(
							{			
								url: "/hr/holidays/CloseRemaining.ashx",
								type: "POST", data: {ostatki: ostatki, daysCount: selectedDaysCount, user: $fioText}, success: function (data) 
								{
									//Остатки успешно изменены
									if(data == "success")
									{
										//Запускаем сохранение
										//console.log('start save');
										Save($fioText, $personnelNumber.val(), $department, $position, $managerText, $deputyText);
									}
									else if(data != "success")
									{
										alert('Не удалось сохранить остатки, попробуйте сохранить еще раз');
									}     
								},
								error: function (xhr, ajaxOptions, thrownError) 
								{ 
									alert("Не удалось сохранить остатки, попробуйте сохранить еще раз");
								},
							});
						}
						//Если остатков нет - сразу сохраняем
						else if(ostatki == 0)
						{
							Save($fioText, $personnelNumber.val(), $department, $position, $managerText, $deputyText);
						}
	 				}
	 				*/
				}
			});			

	  
		});
	</script>

		  
		   <td valign="top" width="100%">
			   <WebPartPages:WebPartZone runat="server" FrameType="TitleBarOnly" ID="Left" Title="loc:Left"><ZoneTemplate>
				<WpNs0:AddHoliday runat="server" ImportErrorMessage="Не удается импортировать эту веб-часть." Title="Добавить отпуск" ID="g_8d7a025b_ae34_4910_9075_75791a5a89eb" __MarkupType="vsattributemarkup" __WebPartId="{8D7A025B-AE34-4910-9075-75791A5A89EB}" WebPart="true" __designer:IsClosed="false" partorder="2"></WpNs0:AddHoliday>

				</ZoneTemplate></WebPartPages:WebPartZone>
			    
		   </td>
		   <td> </td>
		   
		   <td> </td>
		  </tr>
		 </table>
		</td>
	  </tr>
	</table>
</asp:Content>

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *