function checkDate(y,m,d){
	if(isNaN(y) || isNaN(m) || isNaN(d)) return false;
	y = parseInt(y);
	//m = parseInt(m);
	//d = parseInt(d);
	if(m > 12 || m < 1) return false;
	if(d > 31 || d < 1) return false;
	if(d > 28 && m == 2){
		if((y % 4) == 0 && d <= 29) return true;
		else return false;
	}
	if(d > 30){
		if(m == 4 || m == 6 || m == 9 || m == 11) return false;
	}
	return true;
}
function getDateDiff(y1,m1,d1,h1,min1,s1,y2,m2,d2,h2,min2,s2){
	dt1 = new Date(y1,m1,d1,h1,min1,s1,0);
	dt2 = new Date(y2,m2,d2,h2,min2,s2,0);
	dtsec1 = dt1.getTime();
	dtsec2 = dt2.getTime();
	dtdiff = dtsec2 - dtsec1;
	return dtdiff;
}
function setDateFieldsToNow(y,m,d,h){
	dt = new Date();
	y.value = dt.getFullYear();
	m.options[dt.getMonth()].selected = true;
	d.options[dt.getDate()-1].selected = true;
	h.value = dt.getHours();
}
function setDateFieldsToNow2(){
	argv =inc_datelist_setSelectedEntryToNow.arguments;
	args = inc_datelist_setSelectedEntryToNow.arguments.length;
	aktDate = new Date();
	(args > 0) ? argv[0].options[findListIndex(argv[0],aktDate.getFullYear())].selected = true : null;
	(args > 1) ? argv[1].options[findListIndex(argv[1],aktDate.getMonth()+1)].selected = true : null;
	(args > 2) ? argv[2].options[findListIndex(argv[2],aktDate.getDate())].selected = true : null;
	(args > 3) ? argv[3].options[findListIndex(argv[3],aktDate.getHours())].selected = true : null;
	(args > 4) ? argv[4].options[findListIndex(argv[4],aktDate.getMinutes())].selected = true : null;
	(args > 5) ? argv[5].options[findListIndex(argv[5],aktDate.getSeconds())].selected = true : null;
	return true;
}
function setDateToNextMonthBegin(y,m,d,h){
	dt = new Date();
	dt.setMonth(dt.getMonth()+1);
	y.value = dt.getFullYear();
	m.options[dt.getMonth()].selected = true;
	d.options[0].selected = true;
	h.options[0].selected = true;
}
function setDateToNextMonthEnd(y,m,d,h){
	dt = new Date();
	dt.setMonth(dt.getMonth()+1);
	y.value = dt.getFullYear();
	m.options[dt.getMonth()].selected = true;
	day = 32;
	while(!checkDate(y.value,m.value,day)) day--;
	d.options[day-1].selected = true;
	h.options[23].selected = true;
}
function getDateTimeValue(year,mon,day,hour,mi,sec){
	if(!year) return false;
	if(!mon) return year.value+"-01-01";
	if(!day) return year.value+"-"+mon.value+"-01";
	if(!hour) return year.value+"-"+mon.value+"-"+day.value;
	if(!mi) return year.value+"-"+mon.value+"-"+day.value+" "+hour.value+":00:00";
	if(!sec) return year.value+"-"+mon.value+"-"+day.value+" "+hour.value+":"+mi.value+":00";
	return year.value+"-"+mon.value+"-"+day.value+" "+hour.value+":"+mi.value+":"+sec.value;
}
function getDateValue(year,mon,day){
	if(!year) return false;
	if(!mon) return year.value+"-01-01";
	if(!day) return year.value+"-"+mon.value+"-01";
	return year.value+"-"+mon.value+"-"+day.value;
}
function getTimeValue(hour,mi,sec){
	if(!hour) return false;
	if(!mi) return hour.value+":00:00";
	if(!sec) return hour.value+":"+mi.value+":00";
	return hour.value+":"+mi.value+":"+sec.value;
}
function addDaysToDate(dateStr,days){	//	dateStr = "yyyy-mm-dd" || "yyyy,mm,dd" || Date object
	if(typeof(days) == "undefined") days = 0;
	days = parseInt(days);
	if(isNaN(days)) days = 0;
	dateObj = getDateObject(dateStr);
	if(typeof(dateObj) != "object") return false;
	dateObj.setTime(dateObj.getTime()+(days*24*3600*1000));
	return dateObj;
}
function getDateObject(dateStr){	//	dateStr = "yyyy-mm-dd"
	if(typeof(dateStr) == "undefined") dateStr = "";
	if(typeof(dateStr) == "object") return dateStr;
	if(typeof(dateStr) != "string") return null;
	dateA = getDateString(dateStr).split("-",3);
	if(dateA.length != 3) return null;
	return new Date(dateA[0],dateA[1]-1,dateA[2]);
}
function getDateString(date){	//	date is Date object
	argv = getDateString.arguments;
	args = getDateString.arguments.length;
	(args > 1) ? del = argv[1] : del = "-";

	if(typeof(date) == "undefined") date = "";
	if(typeof(date) == "string"){
		now = new Date();
		str = date.split(",",3); if(str.length != 3) str = date.split("-",3);
		if(str.length < 1) str[0] = now.getFullYear();
		if(str[0].length < 4) str[0] = now.getFullYear();
		if(str.length < 2) str[1] = now.getMonth()+1;
		if(str[1].length < 1) str[1] = now.getMonth()+1;
		if(str[1] < 10) str[1] = "0"+str[1];
		if(str.length < 3) str[2] = now.getDate();
		if(str[2].length < 1) str[2] = now.getDate();
		if(str[2] < 10) str[2] = "0"+str[2];
		date = new Date(str[0],str[1]-1,str[2]);
	}
	if(typeof(date) != "object") return false;
	d = date.getDate(); if(d < 10) d = "0"+d;
	m = date.getMonth()+1; if(m < 10) m = "0"+m;
	y = date.getFullYear();
	return y+del+m+del+d;
}

