// Title: Timestamp picker// Description: See the demo at url// URL: http://us.geocities.com/tspicker/// Script featured on: http://javascriptkit.com/script/script2/timestamp.shtml// Version: 1.0// Date: 12-05-2001 (mm-dd-yyyy)// Author: Denis Gritcyuk <denis@softcomplex.com>; <tspicker@yahoo.com>// Notes: Permission given to use this script in any kind of applications if//    header lines are left unchanged. Feel free to contact the author//    for feature requests and/or donationsfunction show_calendar(str_target, str_datetime) {	var arr_months = ["Janvier", "F&eacute;vrier", "Mars", "Avril", "Mai", "Juin",		"Juillet", "A&ocirc;ut", "Septembre", "Octobre", "Novembre", "D&eacute;cembre"];	var week_days = ["D", "L", "M", "Me", "J", "V", "S"];	var n_weekstart = 1; // day week starts from (normally 0 or 1)	var TODAY=new Date();	var dt_datetime = (str_datetime == null || str_datetime =="" ?  new Date() : str2dt(str_datetime));	var dt_prev_month = new Date(dt_datetime);	if(dt_datetime.getMonth()>0){		dt_prev_month.setMonth(dt_datetime.getMonth()-1);	} else {		dt_prev_month.setMonth(11);		dt_prev_month.setYear(dt_datetime.getYear()-1);	}	var dt_next_month = new Date(dt_datetime);	dt_next_month.setMonth(dt_datetime.getMonth()+1);	var dt_firstday = new Date(dt_datetime);	dt_firstday.setDate(1);	dt_firstday.setDate(1-(7+dt_firstday.getDay()-n_weekstart)%7);	var dt_lastday = new Date(dt_next_month);	dt_lastday.setDate(0);		// html generation (feel free to tune it for your particular application)	// print calendar header	var str_buffer = new String (		"<html>\n"+		"<head>\n"+		"	<title>Calendar</title>\n"+"<link href=\"kronope.css\" rel=\"stylesheet\" type=\"text/css\">\n"+		"</head>\n"+		"<body>\n"+		"<table cellspacing=\"0\" border=\"0\" width=\"100%\" height=\"100%\">\n"+		"<tr><td>\n"+		"<table  cellpadding=\"2\" border=\"0\" width=\"100%\" height=\"100%\" class=\"lightBox\">\n"+		"<tr>\n	<td bgcolor=\"#FFFFFF\" align=\"left\"><a href=\"javascript:window.opener.show_calendar('"+		str_target+"', '"+ dt2dtstr(dt_prev_month)+"'+document.cal.time.value);\" class=\"k_menu\">"+		"&lt;</a></td>\n"+		"	<td bgcolor=\"#FFFFFF\" colspan=\"5\" align=\"center\">"+		"<font>"		+arr_months[dt_datetime.getMonth()]+" "+dt_datetime.getFullYear()+"</font></td>\n"+		"	<td bgcolor=\"#FFFFFF\" align=\"right\"><a href=\"javascript:window.opener.show_calendar('"		+str_target+"', '"+dt2dtstr(dt_next_month)+"'+document.cal.time.value);\" class=\"k_menu\">"+		"&gt;</a></td>\n</tr>\n"	);	var dt_current_day = new Date(dt_firstday);	// print weekdays titles	str_buffer += "<tr>\n";	for (var n=0; n<7; n++)		str_buffer += "	<td align=\"right\">"+		"<font size=\"2\" color=\"#CC0000\">"+		week_days[(n_weekstart+n)%7]+"</font></td>\n";	// print calendar table	str_buffer += "</tr>\n";	while (dt_current_day.getMonth() == dt_datetime.getMonth() ||		dt_current_day.getMonth() == dt_firstday.getMonth()) {		// print row header		str_buffer += "<tr>\n";		for (var n_current_wday=0; n_current_wday<7; n_current_wday++) {				if (TODAY.getDate() == dt_current_day.getDate() && TODAY.getMonth() == dt_current_day.getMonth() && TODAY.getYear() == dt_current_day.getYear()){					// print current date					str_buffer += "	<td align=\"right\" bgcolor=\"#CFCEB8\">";				}else if (dt_current_day.getDay() == 0 || dt_current_day.getDay() == 6){					// weekend days					str_buffer += "	<td align=\"right\">";				}else{					// print working days of current month					str_buffer += "	<td  align=\"right\">";				}				if (dt_current_day.getMonth() == dt_datetime.getMonth()){					// print days of current month					str_buffer += "<a href=\"javascript:window.opener."+str_target+					".value='"+dt2dtstr(dt_current_day)+"'+document.cal.time.value; window.close();\" class=\"k_menu\">";					str_buffer += dt_current_day.getDate()+"</a></td>\n";				}else{ 					// print days of other months					str_buffer += "</td>\n";				}				dt_current_day.setDate(dt_current_day.getDate()+1);		}		// print row footer		str_buffer += "</tr>\n";	}	// print calendar footer	str_buffer +=		"<form name=\"cal\">\n<tr><td colspan=\"7\" bgcolor=\"#A19D92\">"+		"<font color=\"White\"  size=\"2\">"+		"Heure: <input type=\"text\" name=\"time\" value=\""+dt2tmstr(dt_datetime)+		"\" size=\"8\" maxlength=\"8\"></font></td></tr>\n</form>\n" +		"</table>\n" +		"</tr>\n</td>\n</table>\n" +		"</body>\n" +		"</html>\n";	var vWinCal = openwindow('', 'Calendar',220,200,'no');	vWinCal.opener = self;	var calc_doc = vWinCal.document;	calc_doc.write (str_buffer);	calc_doc.close();}// datetime parsing and formatting routimes. modify them if you wish other datetime formatfunction str2dt (str_datetime) {	var re_date = /^(\d+)\-(\d+)\-(\d+)\s+(\d+)\:(\d+)\:(\d+)$/;	if (!re_date.exec(str_datetime))		return alert("Invalid Datetime format: "+ str_datetime);	return (new Date (RegExp.$3, RegExp.$2-1, RegExp.$1, RegExp.$4, RegExp.$5, RegExp.$6));}function dt2dtstr (dt_datetime) {	return (new String (			dt_datetime.getDate()+"-"+(dt_datetime.getMonth()+1)+"-"+dt_datetime.getFullYear()+" "));}function dt2tmstr (dt_datetime) {	return (new String (			dt_datetime.getHours()+":"+dt_datetime.getMinutes()+":"+dt_datetime.getSeconds()));}
