// 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

var is_booked = 0;

function show_calendar(str_target, str_datetime,str_target_1,calendar_name,already_booked) {
	//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)

	//if(Date.parse(new Date()) > Date.parse(str2dt(str_datetime)))
	//	str_datetime = new Date();

	var dt_datetime = (str_datetime == null || str_datetime =="" ?  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 a = 1;
	var dt_current_day = new Date(dt_firstday);
	var dt_current_date = new Date();
//	var str_date_str = 
//		"<table class=\"clsOTable\" cellspacing=\"0\" border=\"0\" width=\"100%\">\n"+
//		"<tr><td bgcolor=\"#000080\">\n"+
	var str_date_str = 
		"<table cellspacing=\"1\" cellpadding=\"2\" border=\"0\" width=\"100%\" style='border:1px solid;border-color:#CC3333;background-color:#CC3333'>\n"+
		"<tr>\n	<td bgcolor=\"White\">";

		if(dt_current_date.getMonth() < dt_datetime.getMonth() && dt_current_date.getFullYear() == dt_datetime.getFullYear() ||
		  (dt_current_date.getFullYear() < dt_datetime.getFullYear()))
		{
			str_date_str += 
			"<a href=\"javascript:show_calendar('"+
			str_target+"', '"+ dt2dtstr(dt_prev_month)+"','"+str_target_1+"','"+calendar_name+"','"+already_booked+"');\">"+
			"<img src=\"images/prev1.gif\" width=\"12\" height=\"12\" border=\"0\""+
			" alt=\"previous month\" title=\"previous month\"></a>";
		}
		str_date_str +=
		"</td>\n"+
		"	<td bgcolor=\"White\" colspan=\"5\" align=\"center\">"+
		"<font color=\"#CC3333\" face=\"tahoma, verdana\" size=\"1\"><b>"
		+arr_months[dt_datetime.getMonth()]+" "+dt_datetime.getFullYear()+"</b></font></td>\n"+
		"	<td bgcolor=\"White\" align=\"right\"><a href=\"javascript:show_calendar('"
		+str_target+"', '"+dt2dtstr(dt_next_month)+"','"+str_target_1+"','"+calendar_name+"','"+already_booked+"');\">"+
		"<img src=\"images/next1.gif\" width=\"12\" height=\"12\" border=\"0\""+
		" alt=\"next month\" title=\"next month\"></a></td>\n</tr>\n";

	var str_buffer = new String (str_date_str);

	// print weekdays titles
	str_buffer += "<tr class='tabletitle'>\n";
	for (var n=0; n<7; n++)
		str_buffer += "	<td width='10' height='10'>"+
		"<font color=\"white\" face=\"tahoma, verdana\" size=\"1\"><b>"+
		week_short_array[(n_weekstart+n)%7]+"</b></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++) {
								
				Check_Date_Booked(dt_current_day);
				if(is_booked == 1)   // already booked
					str_buffer += "	<td bgcolor=\"#E1A6A6\" align=\"right\" width='10' height='10'>";
				else if (dt_current_day.getDate() == dt_datetime.getDate() &&
					dt_current_day.getMonth() == dt_datetime.getMonth())
					// print current date
					str_buffer += "	<td bgcolor=\"#D0D0D0\" align=\"right\" width='10' height='10'>";
				else
					// print working days of current month
					str_buffer += "	<td bgcolor=\"#D0D0D0\" align=\"right\" width='10' height='10'>";

				if (dt_current_day.getMonth() == dt_datetime.getMonth())
					// print days of current month
					if (dt_current_day.getDate() == dt_current_date.getDate() &&
						dt_current_day.getMonth() == dt_current_date.getMonth())
						// print current date
						if(is_booked == 1)   // already booked
							str_buffer += "<font color=\"#000080\" face=\"tahoma, verdana\" size=\"1\">";
						else
							str_buffer += "<a href=\"#\" onclick=\""+str_target+
									".value='"+FullFormat(dt_current_day)+"';" +
									""+str_target_1+".value='"+dt2dtstr(dt_current_day)+
									"';document.getElementById('"+calendar_name+"').style.display = 'none';"+
									"return false;\">"+
									"<font color=\"red\" face=\"tahoma, verdana\" size=\"1\">";
					else if(Date.parse(dt_current_date) > Date.parse(dt_current_day))
					{
						str_buffer += "<font color=\"gray\" face=\"tahoma, verdana\" size=\"1\">";
					}
					else
					{
						if(is_booked == 1)   // already booked
							str_buffer += "<font color=\"#000080\" face=\"tahoma, verdana\" size=\"1\">";
						else
							str_buffer += "<a href=\"#\" onclick=\""+str_target+
									".value='"+FullFormat(dt_current_day)+"';" +
									""+str_target_1+".value='"+dt2dtstr(dt_current_day)+
									"';document.getElementById('"+calendar_name+"').style.display = 'none';"+
									"return false;\">"+
									"<font color=\"red\" face=\"tahoma, verdana\" size=\"1\">";
					}
				else 
					// print days of other months
					if(dt_current_date.getMonth() > dt_current_day.getMonth())
						str_buffer += "<font color=\"gray\" face=\"tahoma, verdana\" size=\"1\">";
					else
						if(is_booked == 1)   // already booked
							str_buffer += "<font color=\"gray\" face=\"tahoma, verdana\" size=\"1\">";
						else
							str_buffer += "<a href=\"#\" onclick=\""+str_target+
							".value='"+FullFormat(dt_current_day)+"';" +
							""+str_target_1+".value='"+dt2dtstr(dt_current_day)+
							"';document.getElementById('"+calendar_name+"').style.display = 'none';"+
							"return false;\">"+
							"<font color=\"gray\" face=\"tahoma, verdana\" size=\"1\">";
	
				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(str_target == "document.advsearchform.start_date" || str_target == "document.advsearchform.end_date")
		str_buffer += "<tr><td colspan=\"6\" bgcolor=\"White\">";
	else
		str_buffer += "<tr><td bgcolor=\"White\" align='left'>"+
			"<table border=\"0\" cellpadding=\"2\" cellspacing=\"2\"><tr><td width='20' height='15' bgcolor=\"#E1A6A6\" align='center'>"+
			" </td></tr></table></td><td colspan=\"5\" bgcolor=\"White\">"+
			"<font color=\"#000080\" face=\"tahoma, verdana\" size=\"2\">"+already_booked+
			"</font>";

	str_buffer +=
		"</td><td bgcolor=\"white\" align='center'>"+
		"<a href=\"#\" onclick=\"document.getElementById('"+calendar_name+"').style.display='none';return false;\">"+
		"<img src=\"images/close.gif\" title=\"Close\" style=\"border:none\" width='12' height='12'/>"+
		"</a></td></tr>\n" +
		"</table>\n";
//		"</tr>\n</td>\n</table>\n";

/*
	str_buffer +=
		"<form name=\"cal\">\n<tr><td colspan=\"7\" bgcolor=\"#87CEFA\">"+
		"<font color=\"White\" 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" +
		"</table>\n" +
		"</tr>\n</td>\n</table>\n" +
		"</body>\n" +
		"</html>\n";
*/
	//var vWinCal = window.open("", "Calendar", 
	//	"width=200,height=230,status=0,toolbar=0,location=0,menubar=0,resizable=0,top=500,left=800");

	//vWinCal.opener = self;
	//var calc_doc = vWinCal.document;
	//calc_doc.write (str_buffer);
	//calc_doc.close();

	if(str_target == "document.contactform.contact_departure_value1")
		document.getElementById(calendar_name).style.top = "50px";
	else if(str_target == "document.specialdiscountform.discount_end_date")
		document.getElementById(calendar_name).style.top = "30px";
	else if(str_target == "document.advsearchform.start_date" || str_target == "document.advsearchform.end_date")
	{
//		document.getElementById(calendar_name).style.top = "250px";
//		document.getElementById(calendar_name).style.left = "450px";		
	}
	else
		document.getElementById(calendar_name).style.top = "5px";

	document.getElementById(calendar_name).style.display = 'block';
	document.getElementById(calendar_name).innerHTML = str_buffer;
	//return false;
}

function show_calendar3(str_target, str_datetime,str_target_1,calendar_name,already_booked,numBookings,numBreaks) {
	//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)

	//if(Date.parse(new Date()) > Date.parse(str2dt_dmY(str_datetime)))
	//	str_datetime = new Date();

	var dt_datetime = (str_datetime == null || str_datetime =="" ?  new Date() : str2dt_dmY(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 a = 1;
	var dt_current_day = new Date(dt_firstday);
	var dt_current_date = new Date();

//	var str_date_str = 
//		"<table class=\"clsOTable\" cellspacing=\"0\" border=\"0\" width=\"100%\">\n"+
//		"<tr><td bgcolor=\"#000080\">\n"+
	var str_date_str = 
		"<table cellspacing=\"1\" cellpadding=\"2\" border=\"0\" width=\"100%\" style='border:1px solid;border-color:#CC3333;background-color:#CC3333'>\n"+
		"<tr>\n	<td bgcolor=\"White\">";

		if(dt_current_date.getMonth() < dt_datetime.getMonth() && dt_current_date.getFullYear() == dt_datetime.getFullYear() ||
		  (dt_current_date.getFullYear() < dt_datetime.getFullYear()))
		{
			str_date_str += 
			"<a href=\"javascript:show_calendar3('"+
			str_target+"', '"+ dt2dtstr_dmY(dt_prev_month)+"','"+str_target_1+"','"+calendar_name+"','"+already_booked+"','"+numBookings+"','"+numBreaks+"');\">"+
			"<img src=\"images/prev1.gif\" width=\"12\" height=\"12\" border=\"0\""+
			" alt=\"previous month\" title=\"previous month\"></a>";
		}
		str_date_str +=
		"</td>\n"+
		"	<td bgcolor=\"White\" colspan=\"5\" align=\"center\">"+
		"<font color=\"#CC3333\" face=\"tahoma, verdana\" size=\"1\"><b>"
		+arr_months[dt_datetime.getMonth()]+" "+dt_datetime.getFullYear()+"</b></font></td>\n"+
		"	<td bgcolor=\"White\" align=\"right\"><a href=\"javascript:show_calendar3('"
		+str_target+"', '"+dt2dtstr_dmY(dt_next_month)+"','"+str_target_1+"','"+calendar_name+"','"+already_booked+"','"+numBookings+"','"+numBreaks+"');\">"+
		"<img src=\"images/next1.gif\" width=\"12\" height=\"12\" border=\"0\""+
		" alt=\"next month\" title=\"next month\"></a></td>\n</tr>\n";

	var str_buffer = new String (str_date_str);

	// print weekdays titles
	str_buffer += "<tr class='tabletitle'>\n";
	for (var n=0; n<7; n++)
		str_buffer += "	<td width='10' height='10'>"+
		"<font color=\"white\" face=\"tahoma, verdana\" size=\"1\"><b>"+
		week_short_array[(n_weekstart+n)%7]+"</b></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++) {
								
				Check_Date_Booked(dt_current_day);
				if(is_booked == 1)   // already booked
					str_buffer += "	<td bgcolor=\"#E1A6A6\" align=\"right\" width='10' height='10'>";
				else if (dt_current_day.getDate() == dt_datetime.getDate() &&
					dt_current_day.getMonth() == dt_datetime.getMonth())
					// print current date
					str_buffer += "	<td bgcolor=\"#D0D0D0\" align=\"right\" width='10' height='10'>";
				else
					// print working days of current month
					str_buffer += "	<td bgcolor=\"#D0D0D0\" align=\"right\" width='10' height='10'>";

				if (dt_current_day.getMonth() == dt_datetime.getMonth())
					// print days of current month
					if (dt_current_day.getDate() == dt_current_date.getDate() &&
						dt_current_day.getMonth() == dt_current_date.getMonth())
						// print current date
						if(is_booked == 1)   // already booked
							str_buffer += "<font color=\"#000080\" face=\"tahoma, verdana\" size=\"1\">";
						else
							str_buffer += "<a href=\"#\" onclick=\""+str_target+
									".value='"+dt2dtstr_dmY(dt_current_day)+"';" +
									"document.getElementById('"+str_target_1+"').value='"+dt2dtstr_dmY(dt_current_day)+
									"';document.getElementById('"+calendar_name+"').style.display = 'none';"+
									"return false;\">"+
									"<font color=\"red\" face=\"tahoma, verdana\" size=\"1\">";
					else if(Date.parse(dt_current_date) > Date.parse(dt_current_day))
					{
						str_buffer += "<font color=\"gray\" face=\"tahoma, verdana\" size=\"1\">";
					}
					else
					{
						if(is_booked == 1)   // already booked
							str_buffer += "<font color=\"#000080\" face=\"tahoma, verdana\" size=\"1\">";
						else
							str_buffer += "<a href=\"#\" onclick=\""+str_target+
									".value='"+dt2dtstr_dmY(dt_current_day)+"';" +
									"document.getElementById('"+str_target_1+"').value='"+dt2dtstr_dmY(dt_current_day)+
									"';document.getElementById('"+calendar_name+"').style.display = 'none';"+
									"return false;\">"+
									"<font color=\"red\" face=\"tahoma, verdana\" size=\"1\">";
					}
				else 
					// print days of other months
					if(dt_current_date.getMonth() > dt_current_day.getMonth())
						str_buffer += "<font color=\"gray\" face=\"tahoma, verdana\" size=\"1\">";
					else
						if(is_booked == 1)   // already booked
							str_buffer += "<font color=\"gray\" face=\"tahoma, verdana\" size=\"1\">";
						else
							str_buffer += "<a href=\"#\" onclick=\""+str_target+
							".value='"+dt2dtstr_dmY(dt_current_day)+"';" +
							"document.getElementById('"+str_target_1+"').value='"+dt2dtstr_dmY(dt_current_day)+
							"';document.getElementById('"+calendar_name+"').style.display = 'none';"+
							"return false;\">"+
							"<font color=\"gray\" face=\"tahoma, verdana\" size=\"1\">";
	
				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
	str_buffer += "<tr><td bgcolor=\"White\" align='left'>"+
		"<table border=\"0\" cellpadding=\"2\" cellspacing=\"2\"><tr><td width='20' height='15' bgcolor=\"#E1A6A6\" align='center'>"+
		" </td></tr></table></td><td colspan=\"5\" bgcolor=\"White\">"+
		"<font color=\"#000080\" face=\"tahoma, verdana\" size=\"2\">"+already_booked+
		"</font>";

	str_buffer +=
		"</td><td bgcolor=\"white\" align='center'>"+
		"<a href=\"#\" onclick=\"document.getElementById('"+calendar_name+"').style.display='none';return false;\">"+
		"<img src=\"images/close.gif\" title=\"Close\" style=\"border:none\" width='12' height='12'/>"+
		"</a></td></tr>\n" +
		"</table>\n";

	if(str_target == "document.bookingform.book_start_date" || str_target == "document.bookingform.book_end_date")
	{
		if(numBookings > 0)
		{
			document.getElementById(calendar_name).style.top = 440 + (numBookings*25) + (numBreaks*15) + "px";
		}
		else
		{
			document.getElementById(calendar_name).style.top = 420 + (numBreaks*15) + "px";
		}
		if (str_target == "document.bookingform.book_start_date")
		{
			document.getElementById(calendar_name).style.left = "500px";
		}
		else if (str_target == "document.bookingform.book_end_date")
		{
			document.getElementById(calendar_name).style.left = "600px";
		}
	
	}

	document.getElementById(calendar_name).style.display = 'block';
	document.getElementById(calendar_name).innerHTML = str_buffer;
	//return false;
}

// 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+)$/;
	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) {
	var date_str;
	date_str = dt_datetime.getDate()+"-"+(dt_datetime.getMonth()+1)+"-"+dt_datetime.getFullYear();
	return (new String (date_str));
}
function str2dt_dmY (str_datetime) {
	//var re_date = /^(\d+)\-(\d+)\-(\d+)\s+(\d+)\:(\d+)\:(\d+)$/;
	var re_date1 = /^(\d+)\-(\d+)\-(\d+)$/;
	var re_date2 = /^(\d+)\.(\d+)\.(\d+)$/;
	if (!re_date1.exec(str_datetime) && !re_date2.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));
}
//for dd.mm.yyyy format
function dt2dtstr_dmY (dt_datetime) {  
	var date_str;
	var date_dd, date_mm;
	date_dd = dt_datetime.getDate();
	if(date_dd < 10)
		date_dd = "0" + date_dd;
	date_mm = dt_datetime.getMonth() + 1;
	if(date_mm < 10)
		date_mm = "0" + date_mm;
	date_str = date_dd+"."+date_mm+"."+dt_datetime.getFullYear();
	return (new String (date_str));
}
function FullFormat (dt_datetime)
{
	//var arr_months = ["January", "February", "March", "April", "May", "June",
	//	"July", "August", "September", "October", "November", "December"];
	//var week_days = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
	return (new String (
			week_full_array[dt_datetime.getDay()] + ", " + dt_datetime.getDate() + " " + arr_months[dt_datetime.getMonth()] 
				+ " " + dt_datetime.getFullYear() ));
}

function dt2tmstr (dt_datetime) {
	return (new String (
			dt_datetime.getHours()+":"+dt_datetime.getMinutes()+":"+dt_datetime.getSeconds()));
}
function Check_Date_Booked(date1)
{
	var chk_date = new Date();
	var start_date = new Date();
	var end_date = new Date();
	chk_date.setFullYear(date1.getFullYear(), date1.getMonth(), date1.getDate());
	for(var j=0; j<js_start_array.length ; j++)
	{
		start_date_arr = js_start_array[j].split("-");
		end_date_arr = js_end_array[j].split("-");

		start_date.setFullYear(start_date_arr[2], (start_date_arr[1]-1), start_date_arr[0]);
		end_date.setFullYear(end_date_arr[2], (end_date_arr[1]-1), end_date_arr[0]);
		//alert(chk_date + " " + start_date + " " + end_date);
		if(chk_date >= start_date && chk_date <= end_date)
		{
			is_booked = 1;
			//alert("yes" + is_booked);
			return;
		}
	}
	is_booked = 0;
	//alert ("no" + is_booked);
	return;
}

function show_calendar1(str_target, str_datetime,str_target_1,calendar_name,numPrices,numBreaks) {
	//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)

	//if(Date.parse(new Date()) > Date.parse(str2dt_dmY(str_datetime)))
	//	str_datetime = new Date();

	var dt_datetime = (str_datetime == null || str_datetime =="" ?  new Date() : str2dt_dmY(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 a = 1;
	var dt_current_day = new Date(dt_firstday);
	var dt_current_date = new Date();
//	var str_date_str = 
//		"<table class=\"clsOTable\" cellspacing=\"0\" border=\"0\" width=\"100%\">\n"+
//		"<tr><td bgcolor=\"#000080\">\n"+
	var str_date_str = 
		"<table cellspacing=\"1\" cellpadding=\"2\" border=\"0\" width=\"100%\" style='border:1px solid;border-color:#CC3333;background-color:#CC3333'>\n"+
		"<tr>\n	<td bgcolor=\"White\">";

		if(dt_current_date.getMonth() < dt_datetime.getMonth() && dt_current_date.getFullYear() == dt_datetime.getFullYear() ||
		  (dt_current_date.getFullYear() < dt_datetime.getFullYear()))
		{
			str_date_str += 
			"<a href=\"javascript:show_calendar1('"+
			str_target+"', '"+ dt2dtstr_dmY(dt_prev_month)+"','"+str_target_1+"','"+calendar_name+"','"+numPrices+"','"+numBreaks+"');\">"+
			"<img src=\"images/prev1.gif\" width=\"12\" height=\"12\" border=\"0\""+
			" alt=\"previous month\" title=\"previous month\"></a>";
		}
		str_date_str +=
		"</td>\n"+
		"	<td bgcolor=\"White\" colspan=\"5\" align=\"center\">"+
		"<font color=\"#CC3333\" face=\"tahoma, verdana\" size=\"1\"><b>"
		+arr_months[dt_datetime.getMonth()]+" "+dt_datetime.getFullYear()+"</b></font></td>\n"+
		"	<td bgcolor=\"White\" align=\"right\"><a href=\"javascript:show_calendar1('"
		+str_target+"', '"+dt2dtstr_dmY(dt_next_month)+"','"+str_target_1+"','"+calendar_name+"','"+numPrices+"','"+numBreaks+"');\">"+
		"<img src=\"images/next1.gif\" width=\"12\" height=\"12\" border=\"0\""+
		" alt=\"next month\" title=\"next month\"></a></td>\n</tr>\n";

	var str_buffer = new String (str_date_str);

	// print weekdays titles
	str_buffer += "<tr class='tabletitle'>\n";
	for (var n=0; n<7; n++)
		str_buffer += "	<td width='10' height='10'>"+
		"<font color=\"white\" face=\"tahoma, verdana\" size=\"1\"><b>"+
		week_short_array[(n_weekstart+n)%7]+"</b></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++) {
								
				Check_Date_Booked(dt_current_day);
				if(is_booked == 1)   // already booked
					str_buffer += "	<td bgcolor=\"#E1A6A6\" align=\"right\" width='10' height='10'>";
				else if (dt_current_day.getDate() == dt_datetime.getDate() &&
					dt_current_day.getMonth() == dt_datetime.getMonth())
					// print current date
					str_buffer += "	<td bgcolor=\"#D0D0D0\" align=\"right\" width='10' height='10'>";
				else
					// print working days of current month
					str_buffer += "	<td bgcolor=\"#D0D0D0\" align=\"right\" width='10' height='10'>";

				if (dt_current_day.getMonth() == dt_datetime.getMonth())
					// print days of current month
					if (dt_current_day.getDate() == dt_current_date.getDate() &&
						dt_current_day.getMonth() == dt_current_date.getMonth())
						// print current date
						if(is_booked == 1)   // already booked
							str_buffer += "<font color=\"#000080\" face=\"tahoma, verdana\" size=\"1\">";
						else
							str_buffer += "<a href=\"#\" onclick=\"document.getElementById('"+str_target_1+"').value='"+dt2dtstr_dmY(dt_current_day)+
									"';document.getElementById('"+calendar_name+"').style.display = 'none';"+
									"return false;\">"+
									"<font color=\"black\" face=\"tahoma, verdana\" size=\"1\">";
					else if(Date.parse(dt_current_date) > Date.parse(dt_current_day))
					{
						str_buffer += "<font color=\"gray\" face=\"tahoma, verdana\" size=\"1\">";
					}
					else
					{
						if(is_booked == 1)   // already booked
							str_buffer += "<font color=\"#000080\" face=\"tahoma, verdana\" size=\"1\">";
						else
							str_buffer += "<a href=\"#\" onclick=\"document.getElementById('"+str_target_1+
									"').value='"+dt2dtstr_dmY(dt_current_day)+ "';document.getElementById('" + calendar_name+"').style.display = 'none';"+
									"return false;\">"+
									"<font color=\"black\" face=\"tahoma, verdana\" size=\"1\">";
					}
				else 
					// print days of other months
					if(dt_current_date.getMonth() > dt_current_day.getMonth())
						str_buffer += "<font color=\"gray\" face=\"tahoma, verdana\" size=\"1\">";
					else
						if(is_booked == 1)   // already booked
							str_buffer += "<font color=\"gray\" face=\"tahoma, verdana\" size=\"1\">";
						else
							str_buffer += "<a href=\"#\" onclick=\"document.getElementById('"+str_target_1+"').value='"+dt2dtstr_dmY(dt_current_day)+
							"';document.getElementById('"+calendar_name+"').style.display = 'none';"+
							"return false;\">"+
							"<font color=\"gray\" face=\"tahoma, verdana\" size=\"1\">";
	
				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
	str_buffer +=
		"<tr><td colspan=\"6\" bgcolor=\"White\">"+
		"</td><td bgcolor=\"white\" align='center'>"+
		"<a href=\"#\" onclick=\"document.getElementById('"+calendar_name+"').style.display='none';return false;\">"+
		"<img src=\"images/close.gif\" title=\"Close\" style=\"border:none\" width='12' height='12'/>"+
		"</a></td></tr>\n" +
		"</table>\n";
//		"</tr>\n</td>\n</table>\n";

/*
	str_buffer +=
		"<form name=\"cal\">\n<tr><td colspan=\"7\" bgcolor=\"#87CEFA\">"+
		"<font color=\"White\" 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" +
		"</table>\n" +
		"</tr>\n</td>\n</table>\n" +
		"</body>\n" +
		"</html>\n";
*/
	//var vWinCal = window.open("", "Calendar", 
	//	"width=200,height=230,status=0,toolbar=0,location=0,menubar=0,resizable=0,top=500,left=800");

	//vWinCal.opener = self;
	//var calc_doc = vWinCal.document;
	//calc_doc.write (str_buffer);
	//calc_doc.close();

	if(str_target == "document.contactform.contact_departure_value1")
		document.getElementById(calendar_name).style.top = "50px";
	else if(str_target == "document.specialdiscountform.discount_end_date")
		document.getElementById(calendar_name).style.top = "30px";
	else if(str_target == "document.advsearchform.start_date" || str_target == "document.advsearchform.end_date")
	{
//		document.getElementById(calendar_name).style.top = "250px";
//		document.getElementById(calendar_name).style.left = "450px";		
	}
	else if(str_target == "document.pricesform.price_start_date" || str_target == "document.pricesform.price_end_date")
	{
		//adjust the calendar position according to the already stored prices
		if(numPrices >= 1)
			document.getElementById(calendar_name).style.top = 600 + (numPrices * 50) + (numBreaks*25) + "px";
		else
			document.getElementById(calendar_name).style.top = 630 + (numBreaks*25) + "px";
		if(str_target == "document.pricesform.price_end_date")
		{  
			document.getElementById(calendar_name).style.left = "550px";
		}
		else if(str_target == "document.pricesform.price_start_date")
		{
			document.getElementById(calendar_name).style.left = "400px";
		}
	}
	else
		document.getElementById(calendar_name).style.top = "5px";

	document.getElementById(calendar_name).style.display = 'block';
	document.getElementById(calendar_name).innerHTML = str_buffer;
	//return false;
}
