 function str2date(dateStr) {
	if (!dateStr) { return ""; }
	dateStr	= dateStr.toString();
	if (dateStr.match("/")) {
		return dateStr;
	}
	var y   = dateStr.substring(0,4);
	var m   = dateStr.substring(4,6);
	var d   = dateStr.substring(6,8);
	var slashdate   = m + "/" + d + "/" + y;
	return slashdate;
 }

 function date2str(slashdate) {
	if (!slashdate) { return ""; }
	if (slashdate.match(/^\d+$/)) { return slashdate; }
	var dparts	= slashdate.split("/");
	if (dparts.length == 0) {
		return slashdate;
	}
	var m		= dparts[0];
	var d		= dparts[1];
	var y		= dparts[2];
	var dateStr	= (y*10000) + (m*100) + (d*1);
	return dateStr;
 }

 function Date2str(Date) {
	var m	= Date.getMonth() + 1;
	var d	= Date.getDate();
	var y	= Date.getFullYear();
	var datestr	= (y*10000) + (m*100) + (d*1);
	return datestr;
 }

 function Date2date(Date) {
	var datestr	= Date2str(Date);
	var date	= str2date(datestr);
	return date;
 }

 function str2Date(dateStr) {
	if (!dateStr) { return ""; }
	dateStr	= dateStr.toString();
	if (dateStr.match("/")) {
		return date2Date(dateStr);
	}
	var y   = dateStr.substring(0,4);
	var m   = dateStr.substring(4,6);
	var d   = dateStr.substring(6,8);
	var slashdate   = m + "/" + d + "/" + y;
	var date	= new Date(slashdate);
	return date;
 }

 function time2int(time) {
	time	= time.toString();
	if (time.match(/^[\.\d]+$/)) {
		return time;
	}
	var tParts	= time.split(/\:/);
	var h	= parseInt(tParts[0]) || 0;
	var m	= parseInt(tParts[1]) || 0;
	var s	= parseInt(tParts[2]) || 0;
/*
if (time.match(/^9:00am/)) {
	DEBUGPANE.innerHTML	+= time + " == " + parseInt(tParts[0]) + "::" + tParts[1] + "::" + tParts[2] + "\n";
}
*/
	if ((h == 12) && (time.match(/am/i))) { h = 0; }
	if (time.match(/pm/i)) { 
		h	+= 12;
	}
	if (h == 24) { h = 12; }
	var timeint	= (h*10000) + (m*100) + s;
	return timeint;
 }

 Date.monthdata	= [
		{
		 name:"January",
		 days:31
		},
		{
		 name:"February",
		 days:28
		},
		{
		 name:"March",
		 days:31
		},
		{
		 name:"April",
		 days:30
		},
		{
		 name:"May",
		 days:31
		},
		{
		 name:"June",
		 days:30
		},
		{
		 name:"July",
		 days:31
		},
		{
		 name:"August",
		 days:31
		},
		{
		 name:"September",
		 days:30
		},
		{
		 name:"October",
		 days:31
		},
		{
		 name:"November",
		 days:30
		},
		{
		 name:"December",
		 days:31
		}
 ];

 Date.getMonthNameArray	= function() {
	var retarr	= [];
	for (var m = 0; m < Date.monthdata.length; m++) {
		retarr.push(Date.monthdata[m].name);
	}
	return retarr;
 };

 Date.getDayNameArray	= function() {
	return [
		"Sunday",
		"Monday",
		"Tuesday",
		"Wednesday",
		"Thursday",
		"Friday",
		"Saturday"
	];
 };

 Date.getMonthDays	= function(m,y) {
	m=parseInt(m);
	var days = Date.monthdata[m-1].days;
	if ((m==2) && (y/4 == parseInt(y/4))) {
		days++;
	}
	return days;
 };

 Date.prototype.getMonthName	= function(monthnum) {
	var months	= Date.getMonthNameArray();
	return months[this.getMonth()];
 };

 Date.prototype.getDayName	= function(daynum) {
	var days	= Date.getDayNameArray();
	return days[this.getDay()];
 };
