// Date functions
//
function date2string(d,f) {
	var dd  = d.getDate(); dd = (dd < 10) ? '0' + dd : dd;
	var mm = d.getMonth() + 1; mm = (mm < 10) ? '0' + mm : mm;
	var yy = d.getYear(); yy = (yy < 1000) ? yy+1900 : yy;
	if (f=="DD/MM/YYYY") return dd+"/"+mm+"/"+yy;
	else if (f=="YYYY-MM-DD") return yy+"-"+mm+"-"+dd;
	else if (f=="YYYYMMDD") return yy+""+mm+""+dd;
	else alert("unknown date format : "+f);
}

function string2date(d,f) {
	if (f=="DD/MM/YYYY") return new Date(parseInt(d.substr(6,4),10),parseInt(d.substr(3,2),10)-1,parseInt(d.substr(0,2),10));
	else if (f=="YYYY-MM-DD") return new Date(parseInt(d.substr(0,4),10),parseInt(d.substr(5,2),10)-1,parseInt(d.substr(8,2),10));
	else if (f=="YYYYMMDD") return new Date(parseInt(d.substr(0,4),10),parseInt(d.substr(4,2),10)-1,parseInt(d.substr(6,2),10));
	else alert("unknown date format : "+f);
}

function convertDate(a,f1,f2) {
	return date2string(string2date(a,f1),f2);
}

// a<b > -1  // a=b > 0  // a>b > 1
function compareDate(a,b,f) {
	var s = string2date(a,f);
	var e = string2date(b,f);
	var d = s.getTime()-e.getTime();
	return (d==0?d:d/Math.abs(d));
}

function addDays(a,d,f) {
	var b = string2date(a,f);
	var c = new Date(b.getTime() + d*24*60*60*1000);
	return date2string(c,f);
}
