// 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, lang) 
	{
	if (lang == "en") var arr_months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
	else if (lang == "pl") var arr_months = ["Styczeń", "Luty", "Marzec", "Kwiecień", "Maj", "Czerwiec", "Lipiec", "Sierpień", "Wrzesień", "Październik", "Listopad", "Grudzień"];
	else var arr_months = ["Január", "Február", "Marec", "Apríl", "Máj", "Jún", "Júl", "August", "September", "Október", "November", "December"];
	
	var week_days_eng = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
	if (lang == "en") var week_days = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
	else if (lang == "pl") var week_days = ["N", "P", "W", "Ś", "C", "P", "S"];
  else var week_days = ["Ne", "Po", "Ut", "St", "Št", "Pi", "So"];
  
  if (lang == "en") var week_days_full = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
  else if (lang == "pl") var week_days_full = ["Niedziela", "Poniedziałek", "Wtorek", "Środa", "Czwartek", "Piątek", "Sobota"];
	else var week_days_full = ["Nedeľa", "Pondelok", "Utorok", "Streda", "Štvrtok", "Piatok", "Sobota"];

	var n_weekstart = 1;		// day week starts from (normally 0 or 1)

	// PREPARE DATETIME FROM PARSED STRING
	if (str_datetime == null || str_datetime =="") var dt_datetime = new Date();
	else
		{
		// var dateConvert = Date.parse(str_datetime);
		var datePart = str_datetime.split(".");
		var dt_datetime = new Date(datePart[2], datePart[1] - 1, datePart[0]);
		}

	// PREVIOUS MONTH
	var dt_prev_month = new Date(dt_datetime);
	dt_prev_month.setMonth(dt_datetime.getMonth()-1);

	var prevMonth = dt_prev_month.getMonth() + 1;
	var prevDay = dt_prev_month.getDate();
	var prevYear = dt_prev_month.getFullYear();
	var prevDate = prevDay+"."+prevMonth+"."+prevYear;

	// NEXT MONTH
	var dt_next_month = new Date(dt_datetime);
	dt_next_month.setMonth(dt_datetime.getMonth()+1);

	var nextMonth = dt_next_month.getMonth() + 1;
	var nextDay = dt_next_month.getDate();
	var nextYear = dt_next_month.getFullYear();
	var nextDate = nextDay+"."+nextMonth+"."+nextYear;

	// FIRST (CURRENT) DAY
	var dt_firstday = new Date(dt_datetime);
	dt_firstday.setDate(1);
	dt_firstday.setDate(1-(7+dt_firstday.getDay()-n_weekstart)%7);

	// LAST DAY
	var dt_lastday = new Date(dt_next_month);
	dt_lastday.setDate(0);
	
	// HTML GENERATION (PRINT CALENDAR HEADER)
	var str_buffer = new String (
		"<html>\n"+
		"<head>\n"+
		"<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n"+
		"<title>calendar</title>\n"+
		"<link rel=\"stylesheet\" type=\"text/css\" href=\"/css/calendar.css\">\n"+
		"</head>\n"+
		"<body>\n"+
		"<table cellspacing=\"1\" cellpadding=\"3\" border=\"1\" id=\"calendarTable\" align=\"center\">\n"+
		"<tr>\n"+	
		"<td class=\"titleMonthYear\"><a href=\"javascript:window.opener.show_calendar('"+str_target+"', '"+ prevDate+"');\">"+
		// "<IMG SRC=\"/images/icons/cal_previous.gif\" WIDTH=\"16\" HEIGHT=\"16\" BORDER=\"0\" ALT=\"Previous month\"></a></TD>\n"+
		"&lt;&lt;</a></td>\n"+
		"<td colspan=\"5\" class=\"titleMonthYear\" align=\"center\">"+arr_months[dt_datetime.getMonth()]+"&nbsp;"+dt_datetime.getFullYear()+"</TD>\n"+
		"<td class=\"titleMonthYear\"><a href=\"javascript:window.opener.show_calendar('"+str_target+"', '"+nextDate+"');\">"+
		// "<IMG SRC=\"/images/icons/cal_next.gif\" WIDTH=\"16\" HEIGHT=\"16\" BORDER=\"0\" ALT=\"next month\"></a></TD>\n </TR>\n"
		"&gt;&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 class=\"titleDay\">"+week_days[(n_weekstart+n)%7]+"</td>\n";
	str_buffer += "</tr>\n";

	// PRINT CALENDAR TABLE
	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++) 
			{
			var currentMonth = dt_current_day.getMonth() + 1;
			var currentDay = dt_current_day.getDate();
			var currentYear = dt_current_day.getFullYear();
			var myDate = currentDay+"."+currentMonth+"."+currentYear;
			/*
			if (dt_current_day.getDate() == dt_datetime.getDate() && dt_current_day.getMonth() == dt_datetime.getMonth())
				// str_buffer += "	<TD CLASS=\"current\">";		// PRINT CURRENT DATE
			else*/ if (dt_current_day.getMonth() == dt_datetime.getMonth() && (dt_current_day.getDay() == 0 || dt_current_day.getDay() == 6))
				str_buffer += "	<td>";		// WEEKEND DAYS  CLASS=\"weekend
			else if (dt_current_day.getMonth() == dt_datetime.getMonth())
				str_buffer += "	<td>";	// PRINT WORKING DAYS OF CURRENT MONTH
			else str_buffer += "	<td class=\"otherMonth\">";	// PRINT WORKING DAYS OF OTHER MONTH
	
			if (dt_current_day.getMonth() == dt_datetime.getMonth())	 	// PRINT DAYS OF CURRENT MONTH
				str_buffer += "<a href=\"javascript:window.opener."+str_target+".value='"+myDate+"'; window.close();\">";
			else		// PRINT DAYS OF OTHER MONTHS
				str_buffer += "<a href=\"javascript:window.opener."+str_target+".value='"+myDate+"'; window.close();\">";

			str_buffer += dt_current_day.getDate()+"</a></td>\n";
			dt_current_day.setDate(dt_current_day.getDate()+1);
			}
		// PRINT ROW FOOTER
		str_buffer += "</tr>\n";
		}

	// PRINT TODAYS DATE
	var todayDate = new Date();
	var todayDateFriendly = todayDate.toDateString();

	// TO SLOVAK
	for (var k=0; k < 7 ; k++)
		{
		if (todayDateFriendly.match(week_days_eng[k])) 
			{
			todayDateFriendly = todayDateFriendly.replace(week_days_eng[k], week_days_full[k]);
			}
		}

	// PRINT CALENDAR FOOTER
	str_buffer +=
		"</table>\n" +
		"<div class=\"todayDate\"><b>\n";
    if (lang == "en") str_buffer += "Today:";
    else if (lang == "pl") str_buffer += "Dzisiaj:";
    else str_buffer += "Dnes je:";
  str_buffer +=
    "</b> "+todayDateFriendly+"</div>\n" +
		"</body>\n" +
		"</html>\n";

	var vWinCal = window.open("", "Calendar", "width=227,height=210,status=no,resizable=yes,top=200,left=200");
	vWinCal.opener = self;
	var calc_doc = vWinCal.document;
	calc_doc.write (str_buffer);
	calc_doc.close();
	}
