var dateobj		= new Date();
var this_year	= dateobj.getFullYear();
var days		= ["01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31"];
var months		= ["Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь"];
var monthdays	= [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
var years		= new Array();

var day_sel		= 0;
var month_sel	= 0;
var year_sel	= 0;
var hours_pos	= 0;

function isLeapYear(year){
	if((year % 4 == 0) && ((year % 100 != 0) || (year % 400 == 0))){
		return 1;
	}
	return 0;
}

function fillYears(id, selected){
	if(id.options){
		var selector = id;
	}else{
		var selector = document.getElementById(id);
	}
	selector.options.length	= 0;
	for(var i = 0, j = this_year; j >= 2000; i++, j--){
		selector.options[i] = new Option(j, j);
		if(selected === j) selector.options[i].selected = true;
	}
}

function fillYearsToNow(id, selected){
	if(id.options){
		var selector = id;
	}else{
		var selector = document.getElementById(id);
	}
	selector.options.length	= 0;
	for(var i = 0; i < 10; i++){
		year = this_year - i;
		selector.options[i] = new Option(year, year);
		if(selected === year) selector.options[i].selected = true;
	}
}

function fillYearsFromNow(id, selected){
	if(id.options){
		var selector = id;
	}else{
		var selector = document.getElementById(id);
	}
	
	selector.options.length	= 0;
	for(var i = 0; i < 10; i++){
		year = this_year + i - 1;
		selector.options[i] = new Option(year, year);
		if(selected === year) selector.options[i].selected = true;
	}
}

function fillMonths(id, selected){
	if(id.options){
		var selector = id;
	}else{
		var selector = document.getElementById(id);
	}
	selector.options.length	= 0;
	for(var i = 0; i < 12; i++){
		selector.options[i] = new Option(months[i], i + 1);
		if(selected === i + 1) selector.options[i].selected = true;
	}
}

function fillDays(did, mid, yid, selected){
	if(did.options){
		var selector = did;
	}else{
		var selector = document.getElementById(did);
	}
	if(mid.options){
		var month_sel	= mid.value;
	}else{
		var month_sel	= document.getElementById(mid).value;
	}
	if(yid.options){
		var year_sel	= yid.value;
	}else{
		var year_sel	= document.getElementById(yid).value;
	}
	var dayscount	= ((month_sel == 2) && isLeapYear(year_sel)) ? 29 : monthdays[month_sel];
	selector.options.length	= 0;
	for(var i = 0; i < dayscount; i++){
		selector.options[i] = new Option(days[i], i + 1);
		if(selected === i + 1) selector.options[i].selected = true;
	}
}

function replaceColon($0, $1, $2, $3){
	return $1 + ":" + $3;
}

function selectHours(id, from, to){
	if(from == 0) hours_pos = 0;
	var hours = document.getElementById(id);
	if(hours.setSelectionRange){
		hours.setSelectionRange(from, to);
	}else{
		var range = hours.createTextRange();
		range.collapse(true);
		range.moveEnd('character', to);
		range.moveStart('character', from);
		range.select();
	}
}

function verifyHours(id){
	field = document.getElementById(id);
	field_value = new String(field.value);
	while(field_value.length < 5){
		field_value = field_value + "0";
	}
	field_value = field_value.replace(/\D/g, "0");
	field_value = field_value.replace(/(\d\d)(.)(\d\d)/, replaceColon);
	field.value = field_value.toString();
	hours_pos++;
	if(hours_pos == 2) hours_pos++;
	if(hours_pos > 4){
		field.blur();
	}else{
		selectHours(id, hours_pos, hours_pos + 1);
	}
}