/*методы работы с датой*/
var DateUtils = new Object();

/*1.функция перевода даты в строку-------------------------------------------------------------*/
	DateUtils.dateToString = function(date) {
		var day = date.getDate();//получение из даты дня
		if(day < 10){
			day = '0' + day;
		}
		var month = date.getMonth()+1;//получение из даты месяца
		if(month<10){
			month = '0' + month;
		}
		var year = date.getFullYear();//получение из даты года
		var fullDate = day + '.' + month + '.' + year;//дата в строковом виде
		return fullDate; 
	};

/*2.функция перевода даты из строки в формат даты----------------------------------------------*/
	DateUtils.stringToDate = function(date) {
		var s = date;
		var pattern1 = /\d\d\.\d\d\.\d\d\d\d/;
		var m = pattern1.test(s);
		//if(!m){alert('некорректно введена дата'); return false;}
		var a = s.split(".");
		var pattern2 = /[1-2]\d\d\d/;
		var string = a[2];
		var t = pattern2.test(string);
		if(a[0] > 31 || a[0] < 1){alert('некорректно введена дата'); return false;}
		if(a[1] > 12 || a[1] < 1){alert('некорректно введена дата'); return false;}
		if(!t){alert('некорректно введена дата'); return false;}
		var dateNew = new Date();//создание нового экземпляра даты
		dateNew.setDate(a[0]);//установка числа 
		dateNew.setMonth(a[1]-1);//установка месяца
		dateNew.setFullYear(a[2]);//установка года
		return dateNew;
	};

/*3.функция разбора текста, введенного в поле формы---------------------------------------------*/
	/* now - текущая дата
	* возвращает Date
	*/
	DateUtils.parseDate = function (poleId,now) {
		//alert('разбор текста введенного в поле формы');
		var divElementPole = document.getElementById(poleId);//получение поля по ID
		var dateString = divElementPole.value;//получение значения поля
         var shabl = 'дд.мм.гггг';
			if(dateString == shabl){dateString = "";}
            if(dateString=="") return null;//пустая строка
				var parsedDate = DateUtils.stringToDate(dateString);//перевод строки в дату
				if(!parsedDate){
					parsedDate = now;
				}else {
					var test = isNaN(parsedDate);
					if(test) {
					
						alert('Некорректно введена дата!');
						parsedDate = now;
					}
				}
				return parsedDate;
	};
	
/*4.функция сравнения дат*/
/* 0 - даты равны, 1 - дата1 больше даты2, -1 - дата1 меньше даты2*/
	DateUtils.compareDates = function(date1,date2){
		var dayDate1 = date1.getDate();
		var dayDate2 = date2.getDate();
		var monthDate1 = date1.getMonth();
		var monthDate2 = date2.getMonth();
		var yearDate1 = date1.getYear();
		var yearDate2 = date2.getYear();
			if(yearDate1 > yearDate2){
				return 1;
			} else {
				if(yearDate1 < yearDate2){
					return -1;
				} else {
					if(monthDate1 > monthDate2){
						return 1;
					} else {
						if(monthDate1 < monthDate2){
							return -1;
						} else {
							if(dayDate1 > dayDate2){
								return 1;
							} else {
								if(dayDate1 < dayDate2){
									return -1;
								} else {
									return 0;
								}
							}
						}
					}
				}
			}
};
	
/*5.количество дней в месяце*/
	DateUtils.getDaysFromMonth = function(currentMonth,currentYear){
		var date = new Date();
		date.setDate(1);//дата в первое число
		date.setMonth(currentMonth);
		date.setYear(currentYear);
		var aktivMonth = date.getMonth();//сохраняем значение текущего месяца
		var counter = 0;//счетчик в ноль
		do {
			date.setDate(date.getDate()+1);//иинкремент даты
			var currentMonth = date.getMonth();//сохраняем значение месяца
			counter+=1;
		} while(currentMonth==aktivMonth);//проверяем, чтобы месяц оставался текущим

		return (counter);//возвращаем счетчик дней
		
	};
/*6.увеличение даты*/
	DateUtils.datePlus = function(date, number) {
		var date = new Date(date.getTime());//
		date.setDate(date.getDate() + number);
		return date;
	};
/*-----------------------*/