<!--  dataMiner - data browser / editor --><!-- Jason Hines, jason@greenhell.com --><!-- $Id: dM.js,v 1.17 2002/01/31 16:48:36 www Exp $ -->self.name = 'dM';// delete confirmationfunction getconfirm() {	if (confirm('Are you sure?')) {		return true;	} else {		return false;	}}// popup windowvar notopen=true;function openwindow(url,width,height) {	if (notopen || (!notopen && dMwin.closed)) {		dMwin	= window.open(url,'dMwin','screenX='+width+',screenY='+height+',top=400,left=400,width='+width+',height='+height+',scrollbars=auto,alwaysRaised=yes');		notopen=false	} else {		dMwin.focus()	}}// Add a dropdown item (s) to the dropdown dd, and selected (1,0).function addItem(dd, s, selected, value) { 	var i = dd.length;	if (selected)		var t = new Option(s, s, 0, 1);	else		var t = new Option(s, s, 0, 0);	if (value != '')		t.value = value;	dd.options[i] = t;}// pad hackfunction fixTime(the_time) {  if (the_time <10) {    the_time = "0" + the_time;  }  return the_time;}// Timestamp picker// URL: http://www.geocities.com/tspicker/// 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//// Sun Jan 27 13:14:02 EST 2002// Reworked by Jason Hines <jason@greenhell.com> to allow both date and// datetime formats to work in one routine.function popup_calendar(str_target, str_datetime, dotime) {	var arr_months = ["January", "February", "March", "April", "May", "June",		"July", "August", "September", "October", "November", "December"];	var week_days = ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"];	var n_weekstart = 0; // day week starts from (normally 0 or 1)		var currentdate = new Date();	currentmonth = currentdate.getMonth();	currentyear = currentdate.getYear();	var useprevmonth = 0;		currentdate.setYear(currentyear+1);	lastmonth = currentdate.getMonth()-2;	nextyear = currentdate.getYear();	var usenextmonth = 1;		var dt_datetime = (str_datetime == null || str_datetime =="" ?  new Date() : str2dt(str_datetime,dotime));	var dt_prev_month = new Date(dt_datetime);	if ( dt_datetime.getMonth() > currentmonth && dt_datetime.getYear() == currentyear ) {		dt_prev_month.setMonth(dt_datetime.getMonth()-1);		useprevmonth = 1;	}	var dt_next_month = new Date(dt_datetime);		dt_next_month.setMonth(dt_datetime.getMonth()+1);	if ( dt_datetime.getMonth() > lastmonth && dt_datetime.getYear() == nextyear ) {		usenextmonth = 0;	}						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"+		"</head>\n"+		"<body bgcolor=\"White\">\n"+		"<table cellspacing=\"0\" border=\"0\" width=\"100%\">\n"+		"<tr><td bgcolor=\"#cccccc\">\n"+		"<table cellspacing=\"1\" cellpadding=\"3\" border=\"0\" width=\"100%\">\n"+		"<tr>\n	<td bgcolor=\"#cccccc\">"	);	if ( useprevmonth ) {		str_buffer +=				"<a href=\"javascript:window.opener.popup_calendar('"+				str_target+"', '"+ dt2dtstr(dt_prev_month)+"',"+dotime+");\">"+				"<img src=\"_tpl/images_nav/prev.gif\" border=\"0\""+				" alt=\"previous month\"></a>"		;	}	str_buffer +=		"&nbsp;</td>\n"+		"	<td bgcolor=\"#cccccc\" colspan=\"5\">"+		"<font color=\"#000000\" face=\"tahoma, verdana\" size=\"2\">"		+arr_months[dt_datetime.getMonth()]+" "+dt_datetime.getFullYear()+"</font></td>\n"+		"	<td bgcolor=\"#cccccc\" align=\"right\">"		;	if ( usenextmonth ) {		str_buffer +=			"<a href=\"javascript:window.opener.popup_calendar('"			+str_target+"', '"+dt2dtstr(dt_next_month)+"',"+dotime+");\">"+			"<img src=\"_tpl/images_nav/next.gif\" border=\"0\""+			" alt=\"next month\"></a>"		;	}	str_buffer +=		"&nbsp;</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 bgcolor=\"#eeeeee\">"+		"<font color=\"#000000\" face=\"tahoma, verdana\" size=\"2\">"+		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 heder		str_buffer += "<tr>\n";		for (var n_current_wday=0; n_current_wday<7; n_current_wday++) {				if (dt_current_day.getDate() == dt_datetime.getDate() &&					dt_current_day.getMonth() == dt_datetime.getMonth())					// print current date					str_buffer += "	<td bgcolor=\"#FFB6C1\" align=\"right\">";				else if (dt_current_day.getDay() == 0 || dt_current_day.getDay() == 6)					// weekend days					str_buffer += "	<td bgcolor=\"#DBEAF5\" align=\"right\">";				else					// print working days of current month					str_buffer += "	<td bgcolor=\"white\" align=\"right\">";				if (dt_current_day.getMonth() == dt_datetime.getMonth())					// print days of current month					str_buffer += "<a href=\"javascript:window.opener.adjustHiddenDate('"+str_target+					"','"+dt2dtstr(dt_current_day)+"');window.close();\">"+					"<font color=\"black\" face=\"tahoma, verdana\" size=\"2\">";				else 					// print days of other months					str_buffer += "<a href=\"javascript:window.opener.adjustHiddenDate('"+str_target+					"','"+dt2dtstr(dt_current_day)+"');window.close();\">"+					"<font color=\"gray\" face=\"tahoma, verdana\" size=\"2\">";				str_buffer += dt_current_day.getDate()+"</font></a></td>\n";				dt_current_day.setDate(dt_current_day.getDate()+1);		}		// print row footer		str_buffer += "</tr>\n";	}	// print calendar footer	if (dotime == true)	  str_buffer +=     "<form name=\"cal\">\n<tr><td colspan=\"7\" bgcolor=\"#eeeeee\">"+     "<font color=\"#000000\" face=\"tahoma, verdana\" size=\"2\">"+     "Time: <input type=\"text\" name=\"time\" value=\""+dt2tmstr(dt_datetime)+     "\" size=\"8\" maxlength=\"8\"></font></td></tr>\n</form>\n";	else		str_buffer +=     "<form name=\"cal\"><input type=\"hidden\" name=\"time\" value=\"\"></form>\n";		  str_buffer +=		"</table>\n" +		"</tr>\n</td>\n</table>\n" +		"</body>\n" +		"</html>\n";	var vWinCal = window.open("", "Calendar", 		"width=200,height=250,status=no,resizable=yes");	vWinCal.opener = self;	vWinCal.focus();	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,dotime) {  if (dotime == true)  	var re_date = /^(\d{4})\-(\d+)\-(\d+)\s+(\d+)\:(\d+)\:(\d+)$/;	else		var re_date = /^(\d{4})\-(\d+)\-(\d+)$/;	if (!re_date.exec(str_datetime) || str_datetime == "0000-00-00" || str_datetime == "0000-00-00 00:00:00") {		alert("Invalid format. Defaulting to present day.");		return (new Date());	}	if (dotime == true)		return (new Date (RegExp.$1, RegExp.$2-1, RegExp.$3, RegExp.$4, RegExp.$5, RegExp.$6));	else		return (new Date (RegExp.$1, RegExp.$2-1, RegExp.$3));}function dt2dtstr (dt_datetime) {	return (new String (//			dt_datetime.getDate()+"-"+(dt_datetime.getMonth()+1)+"-"+dt_datetime.getFullYear()));			dt_datetime.getFullYear()+"-"+fixTime((dt_datetime.getMonth()+1))+"-"+dt_datetime.getDate()));}function dt2tmstr (dt_datetime) {	return (new String (			" "+fixTime(dt_datetime.getHours())+":"+dt_datetime.getMinutes()+":"+dt_datetime.getSeconds()));}
