function show_calendar_with_Functions(unde, sus, stg, str_datetime) {
	//alert('test');
	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 = 1; // day week starts from (normally 0 or 1)
	var aaa = str2dt(str_datetime);
	//window.alert(sus+'|'+stg+'|'+str_datetime+'|'+aaa);
//return;
	var dt_datetime = (str_datetime == null || str_datetime =="" || str_datetime=="11-30-1899" ?  new Date() : str2dt(str_datetime));
	var dt_prev_month = new Date(dt_datetime);
	dt_prev_month.setMonth(dt_datetime.getMonth()-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"+
				
		"<script type='text/javascript'>function close_win(){document.getElementById('de_inlocuit').innerHTML = '<img src=\"images/gears.gif\" alt=\"Loading...\" /><br /><font style=\"COLOR: #0079BD;	FONT-FAMILY: Verdana, Tahoma, Arial, Helvetica; FONT-SIZE: 9px; FONT-WEIGHT: bold; TEXT-DECORATION: none;\" >Please wait while we process your request...</font>';}</script>"+
		"</head>\n"+
		"<body bgcolor=\"#fff7f7\" bottommargin=\"0\" leftmargin=\"0\" topmargin=\"0\" rightmargin=\"0\" marginheight=\"0\" marginwidth=\"0\">\n"
		);
	
	str_buffer +=
		"<div id='de_inlocuit' style='text-align:center'><table border='0' id='ascunde_tabelul' cellspacing='0' cellpadding='0' align=\"center\" height=\"240\">\n<tr>"+
		"<td valign=\"center\">\n"+
		"<table class=\"clsOTable\" cellspacing=\"0\" border=\"0\">\n"+
		"<tr><td bgcolor=\"#4682B4\">\n"+
		"<table cellspacing=\"1\" cellpadding=\"3\" border=\"0\">\n"+
		"<tr>\n	<td bgcolor=\"#4682B4\" height=\"30\">";
		
		
		str_buffer += "<a href=\"javascript:window.opener.show_calendar('"+
		unde+"', '"+sus+"', '"+stg+"', '"+ dt2dtstr(dt_prev_month)+"')\">"+
		"<img src=\"files/prev.gif\" width=\"16\" height=\"16\" border=\"0\""+
		" alt=\"previous month\"></a>";
		
		str_buffer += "</td>\n"+
		"	<td bgcolor=\"#4682B4\" colspan=\"5\" align=\"center\">"+
		"<font color=\"white\" face=\"tahoma, verdana\" size=\"2\">"
		+arr_months[dt_datetime.getMonth()]+" "+dt_datetime.getFullYear()+"</font></td>\n"+
		"	<td bgcolor=\"#4682B4\" align=\"right\">&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=\"#87CEFA\">"+
		"<font color=\"white\" 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()) {
	for(j=0; j<6; j++){
	// 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\" height=\"20\">";
				else if (dt_current_day.getDay() == 0 || dt_current_day.getDay() == 6)
					// weekend days
					str_buffer += "	<td bgcolor=\"#DBEAF5\" align=\"right\" height=\"20\">";
				else
					// print working days of current month
					str_buffer += "	<td bgcolor=\"white\" align=\"right\" height=\"20\">";

				if (dt_current_day.getMonth() == dt_datetime.getMonth())
				{
					var azi_data= new Date();
					var azi=azi_data.getDate();
					if( azi_data > dt_current_day ) str_buffer += "<font color=\"gray\" face=\"tahoma, verdana\" size=\"2\">";	
					else
					{	str_buffer += "<a href=\"javascript:"+
					//window.opener.writeln("mamamamamamamamamamama");
					"window.opener."+unde+"date1.value='"+dt2dtstr(dt_current_day, 1)+"';"+
					//unde+"date1.value='"+dt2dtstr(dt_current_day, 1)+"';"+
					"window.opener."+unde+"date2.value='"+dt2dtstr(dt_current_day, 2)+"';"+
					//unde+"date2.value='"+dt2dtstr(dt_current_day, 2)+"';"+
					"window.opener."+unde+"date3.value='"+dt2dtstr(dt_current_day, 3)+"';"+
					//unde+"date3.value='"+dt2dtstr(dt_current_day, 3)+"';"+
					" close_win(); window.opener.getStartingHours();	 \">"+"<font color=\"black\" face=\"tahoma, verdana\" size=\"2\">";
				/*else // se completeaza cu zilele din celelate luni
					// print days of other months
					//str_buffer += "<a href=\"javascript:window.opener."+unde+
					//".value='"+dt2dtstr(dt_current_day)+"';"+"window.close();\">"+
					str_buffer += "<font color=\"gray\" face=\"tahoma, verdana\" size=\"2\">";*/
					}
					str_buffer += dt_current_day.getDate()+"</font>"+ ((dt_current_day.getMonth() == dt_datetime.getMonth()&&  azi_data <= dt_current_day) ? "</a>" : "")+
				"</td>\n";
				}
				else
					str_buffer += "&nbsp;</td>";
				
				dt_current_day.setDate(dt_current_day.getDate()+1);
		}
		// print row footer
		str_buffer += "</tr>\n";
	}
	// print calendar footer
	str_buffer +=
		"</table>\n" +
		"</tr>\n</td>\n</table>\n</td>";
		
// AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
	dt_datetime = new Date(dt_datetime);
	dt_datetime.setMonth(dt_datetime.getMonth()+1);
	dt_prev_month = new Date(dt_datetime);
	dt_prev_month.setMonth(dt_datetime.getMonth()-1);	
	dt_next_month = new Date(dt_datetime);
	dt_next_month.setMonth(dt_datetime.getMonth());
	dt_firstday = new Date(dt_datetime);
	dt_firstday.setDate(1);
	dt_firstday.setDate(1-(7+dt_firstday.getDay()-n_weekstart)%7);
	dt_lastday = new Date(dt_next_month);
	dt_lastday.setDate(0);

	
	str_buffer +=
		"<td width='30' height=\"240\" valign=\"top\">&nbsp;</td><td valign=\"center\"><table class=\"clsOTable\" cellspacing=\"0\" border=\"0\">\n"+
		"<tr><td bgcolor=\"#4682B4\">\n"+
		"<table cellspacing=\"1\" cellpadding=\"3\" border=\"0\" >\n"+
		"<tr>\n	<td bgcolor=\"#4682B4\" height=\"30\">";
		
		str_buffer += "</td>\n"+
		"	<td bgcolor=\"#4682B4\" colspan=\"5\" align=\"center\">"+
		"<font color=\"white\" face=\"tahoma, verdana\" size=\"2\">"
		+arr_months[dt_datetime.getMonth()]+" "+dt_datetime.getFullYear()+"</font></td>\n"+
		"	<td bgcolor=\"#4682B4\" align=\"right\"><a href=\"javascript:window.opener.show_calendar('"
		+unde+"', '"+sus+"', '"+stg+"', '"+ dt2dtstr(dt_next_month)+"')\">"+
		"<img src=\"files/next.gif\" width=\"16\" height=\"16\" border=\"0\""+
		" alt=\"next month\"></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 bgcolor=\"#87CEFA\">"+
		"<font color=\"white\" 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
	for(j=0; j<6; j++){
		str_buffer += "<tr>\n";		
		for (var n_current_wday=0; n_current_wday<7; n_current_wday++) {
				if (dt_current_day.getDay() == 0 || dt_current_day.getDay() == 6)
					// weekend days
					str_buffer += "	<td bgcolor=\"#DBEAF5\" align=\"right\" height=\"20\">";
				else
					// print working days of current month
					str_buffer += "	<td bgcolor=\"white\" align=\"right\" height=\"20\">";

				if (dt_current_day.getMonth() == dt_datetime.getMonth())				{
					
					var azi_data= new Date();
					var azi=azi_data.getDate();
					//alert(azi_data,dt_current_day);
					if( azi_data > dt_current_day ) str_buffer += "<font color=\"gray\" face=\"tahoma, verdana\" size=\"2\">";	
					else
					{	str_buffer += "<a href=\"javascript:"+
					//window.opener.writeln("mamamamamamamamamamama");
					"window.opener."+unde+"date1.value='"+dt2dtstr(dt_current_day, 1)+"';"+
					//unde+"date1.value='"+dt2dtstr(dt_current_day, 1)+"';"+
					"window.opener."+unde+"date2.value='"+dt2dtstr(dt_current_day, 2)+"';"+
					//unde+"date2.value='"+dt2dtstr(dt_current_day, 2)+"';"+
					"window.opener."+unde+"date3.value='"+dt2dtstr(dt_current_day, 3)+"';"+
					//unde+"date3.value='"+dt2dtstr(dt_current_day, 3)+"';"+
					"  close_win(); window.opener.getStartingHours(); \">"+"<font color=\"black\" face=\"tahoma, verdana\" size=\"2\">";
				/*else // se completeaza cu zilele din celelate luni
					// print days of other months
					//str_buffer += "<a href=\"javascript:window.opener."+unde+
					//".value='"+dt2dtstr(dt_current_day)+"';"+"window.close();\">"+
					str_buffer += "<font color=\"gray\" face=\"tahoma, verdana\" size=\"2\">";*/
					}
					str_buffer += dt_current_day.getDate()+"</font>"+ ((dt_current_day.getMonth() == dt_datetime.getMonth()&&  azi_data <= dt_current_day) ? "</a>" : "")+
				"</td>\n";
				}
				else
					str_buffer += "&nbsp;</td>";
				dt_current_day.setDate(dt_current_day.getDate()+1);
		}
		// print row footer
		str_buffer += "</tr>\n";
	}
	// print calendar footer
	str_buffer +=
		"</table>\n" +
		"</tr>\n</td>\n</table>\n";
			
// AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
		
	str_buffer +=	
		"</td></tr></table></div></body>\n" +
		"</html>\n";

	var vWinCal = window.open("", "Calendar", "width=410,height=240,status=no,resizable=no,top="+sus+",left="+stg);
	vWinCal.opener = self;
	var calc_doc = vWinCal.document;
	calc_doc.write (str_buffer);
	calc_doc.close();
	//prosport();
}




function show_calendar(unde, sus, stg, str_datetime) 
{	
	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 = 1; // day week starts from (normally 0 or 1)
	var aaa = str2dt(str_datetime);
	
	var dt_datetime = (str_datetime == null || str_datetime =="" || str_datetime=="11-30-1899" ?  new Date() : str2dt(str_datetime));
	var dt_prev_month = new Date(dt_datetime);
	dt_prev_month.setMonth(dt_datetime.getMonth()-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"+
		"</head>\n"+
		"<body bgcolor=\"#fff7f7\" bottommargin=\"0\" leftmargin=\"0\" topmargin=\"0\" rightmargin=\"0\" marginheight=\"0\" marginwidth=\"0\">\n"
		);
	
	str_buffer +=
		"<table border='0' cellspacing='0' cellpadding='0' align=\"center\" height=\"240\">\n<tr>"+
		"<td valign=\"center\">\n"+
		"<table class=\"clsOTable\" cellspacing=\"0\" border=\"0\">\n"+
		"<tr><td bgcolor=\"#4682B4\">\n"+
		"<table cellspacing=\"1\" cellpadding=\"3\" border=\"0\">\n"+
		"<tr>\n	<td bgcolor=\"#4682B4\" height=\"30\">";
		
		
		str_buffer += "<a href=\"javascript:window.opener.show_calendar('"+
		unde+"', '"+sus+"', '"+stg+"', '"+ dt2dtstr(dt_prev_month)+"')\">"+
		"<img src=\"files/prev.gif\" width=\"16\" height=\"16\" border=\"0\""+
		" alt=\"previous month\"></a>";
		
		str_buffer += "</td>\n"+
		"	<td bgcolor=\"#4682B4\" colspan=\"5\" align=\"center\">"+
		"<font color=\"white\" face=\"tahoma, verdana\" size=\"2\">"
		+arr_months[dt_datetime.getMonth()]+" "+dt_datetime.getFullYear()+"</font></td>\n"+
		"	<td bgcolor=\"#4682B4\" align=\"right\">&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=\"#87CEFA\">"+
		"<font color=\"white\" 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()) {


	
	for(j=0; j<6; j++){
	// 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\" height=\"20\">";
				else if (dt_current_day.getDay() == 0 || dt_current_day.getDay() == 6)
					// weekend days
					str_buffer += "	<td bgcolor=\"#DBEAF5\" align=\"right\" height=\"20\">";
				else
					// print working days of current month
					str_buffer += "	<td bgcolor=\"white\" align=\"right\" height=\"20\">";

				if (dt_current_day.getMonth() == dt_datetime.getMonth())
				{
					var azi_data= new Date();
					var azi=azi_data.getDate();					
					if( azi_data > dt_current_day ) str_buffer += "<font color=\"gray\" face=\"tahoma, verdana\" size=\"2\">";	
					else
					{						
						str_buffer += "<a href=\"javascript:"+
					"window.opener."+unde+"date1.value='"+dt2dtstr(dt_current_day, 1)+"';"+
					//unde+"date1.value='"+dt2dtstr(dt_current_day, 1)+"';"+
					"window.opener."+unde+"date2.value='"+dt2dtstr(dt_current_day, 2)+"';"+
					//unde+"date2.value='"+dt2dtstr(dt_current_day, 2)+"';"+
					"window.opener."+unde+"date3.value='"+dt2dtstr(dt_current_day, 3)+"';"+
					//unde+"date3.value='"+dt2dtstr(dt_current_day, 3)+"';"+
					"if(window.opener.customCalendarFunction) window.opener.customCalendarFunction(); else window.close();"+
					"\">"+"<font color=\"black\" face=\"tahoma, verdana\" size=\"2\">";
				/*else // se completeaza cu zilele din celelate luni
					// print days of other months
					//str_buffer += "<a href=\"javascript:window.opener."+unde+
					//".value='"+dt2dtstr(dt_current_day)+"';"+"window.close();\">"+
					str_buffer += "<font color=\"gray\" face=\"tahoma, verdana\" size=\"2\">";*/
					}
					str_buffer += dt_current_day.getDate()+"</font>"+ ((dt_current_day.getMonth() == dt_datetime.getMonth()&&  azi_data <= dt_current_day) ? "</a>" : "")+
				"</td>\n";
				}
				else
					str_buffer += "&nbsp;</td>";
				
				dt_current_day.setDate(dt_current_day.getDate()+1);
		}
		// print row footer
		str_buffer += "</tr>\n";
	}
	// print calendar footer
	str_buffer +=
		"</table>\n" +
		"</tr>\n</td>\n</table>\n</td>";
		
// AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
	dt_datetime = new Date(dt_datetime);
	dt_datetime.setMonth(dt_datetime.getMonth()+1);
	dt_prev_month = new Date(dt_datetime);
	dt_prev_month.setMonth(dt_datetime.getMonth()-1);	
	dt_next_month = new Date(dt_datetime);
	dt_next_month.setMonth(dt_datetime.getMonth());
	dt_firstday = new Date(dt_datetime);
	dt_firstday.setDate(1);
	dt_firstday.setDate(1-(7+dt_firstday.getDay()-n_weekstart)%7);
	dt_lastday = new Date(dt_next_month);
	dt_lastday.setDate(0);

	
	str_buffer +=
		"<td width='30' height=\"240\" valign=\"top\">&nbsp;</td><td valign=\"center\"><table class=\"clsOTable\" cellspacing=\"0\" border=\"0\">\n"+
		"<tr><td bgcolor=\"#4682B4\">\n"+
		"<table cellspacing=\"1\" cellpadding=\"3\" border=\"0\" >\n"+
		"<tr>\n	<td bgcolor=\"#4682B4\" height=\"30\">";
		
		str_buffer += "</td>\n"+
		"	<td bgcolor=\"#4682B4\" colspan=\"5\" align=\"center\">"+
		"<font color=\"white\" face=\"tahoma, verdana\" size=\"2\">"
		+arr_months[dt_datetime.getMonth()]+" "+dt_datetime.getFullYear()+"</font></td>\n"+
		"	<td bgcolor=\"#4682B4\" align=\"right\"><a href=\"javascript:window.opener.show_calendar('"
		+unde+"', '"+sus+"', '"+stg+"', '"+ dt2dtstr(dt_next_month)+"')\">"+
		"<img src=\"files/next.gif\" width=\"16\" height=\"16\" border=\"0\""+
		" alt=\"next month\"></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 bgcolor=\"#87CEFA\">"+
		"<font color=\"white\" 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
	for(j=0; j<6; j++){
		str_buffer += "<tr>\n";
		for (var n_current_wday=0; n_current_wday<7; n_current_wday++) {
				if (dt_current_day.getDay() == 0 || dt_current_day.getDay() == 6)
					// weekend days
					str_buffer += "	<td bgcolor=\"#DBEAF5\" align=\"right\" height=\"20\">";
				else
					// print working days of current month
					str_buffer += "	<td bgcolor=\"white\" align=\"right\" height=\"20\">";

				if (dt_current_day.getMonth() == dt_datetime.getMonth())
				{
					var azi_data= new Date();
					var azi=azi_data.getDate();
					//alert(azi_data,dt_current_day);
					if( azi_data > dt_current_day ) str_buffer += "<font color=\"gray\" face=\"tahoma, verdana\" size=\"2\">";	
					else
					{	str_buffer += "<a href=\"javascript:"+
					"window.opener."+unde+"date1.value='"+dt2dtstr(dt_current_day, 1)+"';"+
					//unde+"date1.value='"+dt2dtstr(dt_current_day, 1)+"';"+
					"window.opener."+unde+"date2.value='"+dt2dtstr(dt_current_day, 2)+"';"+
					//unde+"date2.value='"+dt2dtstr(dt_current_day, 2)+"';"+
					"window.opener."+unde+"date3.value='"+dt2dtstr(dt_current_day, 3)+"';"+
					//unde+"date3.value='"+dt2dtstr(dt_current_day, 3)+"';"+
					"if(window.opener.customCalendarFunction) window.opener.customCalendarFunction(); else window.close();"+
					"\">"+"<font color=\"black\" face=\"tahoma, verdana\" size=\"2\">";
				/*else // se completeaza cu zilele din celelate luni
					// print days of other months
					//str_buffer += "<a href=\"javascript:window.opener."+unde+
					//".value='"+dt2dtstr(dt_current_day)+"';"+"window.close();\">"+
					str_buffer += "<font color=\"gray\" face=\"tahoma, verdana\" size=\"2\">";*/
					}
					str_buffer += dt_current_day.getDate()+"</font>"+ ((dt_current_day.getMonth() == dt_datetime.getMonth()&&  azi_data <= dt_current_day) ? "</a>" : "")+
				"</td>\n";
				}
				else
					str_buffer += "&nbsp;</td>";
				dt_current_day.setDate(dt_current_day.getDate()+1);
		}
		// print row footer
		str_buffer += "</tr>\n";
	}
	// print calendar footer
	str_buffer +=
		"</table>\n" +
		"</tr>\n</td>\n</table>\n";
			
// AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
		
	str_buffer +=	
		"</td></tr></table></body>\n" +
		"</html>\n";

	var vWinCal = window.open("", "Calendar", "width=410,height=240,status=no,resizable=no,top="+sus+",left="+stg);
	vWinCal.opener = self;
	var calc_doc = vWinCal.document;
	if(typeof setPopupObject  == "function") 
	{
		setPopupObject(vWinCal);	
	}
	
	calc_doc.write (str_buffer);
	calc_doc.close();
}
// datetime parsing and formatting routimes. modify them if you wish other datetime format
function str2dt1 (str_datetime) {
	var re_date = /^(\d+)\-(\d+)\-(\d+)\s+(\d+)\:(\d+)\:(\d+)$/;
	//var re_date = /^(\d+)\-(\d+)\-(\d+)$/;
	//re_date.exec(str_datetime);
	//window.alert(str_datetime+'|'+re_date);
	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));
	return (new Date (RegExp.$3, RegExp.$2, RegExp.$1));
	//return (new Date (str_datetime));
}

// 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+)$/;
	var re_date = /^(\d+)\-(\d+)\-(\d+)$/;
	re_date.exec(str_datetime)
	//if (!re_date.exec(str_datetime))
	//	return alert("Invalid Datetime format: "+ str_datetime);
	//alert(RegExp.$3+ RegExp.$2+ RegExp.$1-1+ RegExp.$4+ RegExp.$5+ RegExp.$6+' | '+str_datetime);
	return (new Date (RegExp.$3, RegExp.$1-1, RegExp.$2,0,0,0));
}

function dt2tmstr (dt_datetime) {
	return (new String (
			dt_datetime.getHours()+":"+dt_datetime.getMinutes()+":"+dt_datetime.getSeconds()));
}


function dt2dtstr (dt_datetime, ce) {

	switch(ce)
	  {
	   case 1:
	      return (new String ((dt_datetime.getMonth()<9) ? "0"+(dt_datetime.getMonth()+1) : (dt_datetime.getMonth()+1)));
	      break;
	   case 2:
	      return (new String (dt_datetime.getDate()<10 ? "0"+dt_datetime.getDate() : dt_datetime.getDate()));
	      break;
	   case 3:
	      return (new String (dt_datetime.getFullYear()));
	      break;
	   default:
	      return (new String (((dt_datetime.getMonth()<9) ? "0"+(dt_datetime.getMonth()+1) : (dt_datetime.getMonth()+1))+"-"+(dt_datetime.getDate()<10 ? "0"+dt_datetime.getDate() : dt_datetime.getDate())+"-"+dt_datetime.getFullYear()));
	      break;
	  }
}
//function dt2tmstr (dt_datetime) {
//	return (new String (
//			dt_datetime.getHours()+":"+dt_datetime.getMinutes()+":"+dt_datetime.getSeconds()));
//}

