
var c_year      = 2000;
var c_month     = 12;
var start_year  = 0;
var start_month = 0;
var start_day   = 0;
var end_year    = 0;
var end_month   = 0;
var end_day     = 0
var state       = 0;
var date1 = new Date();
var last_year   = date1.getFullYear();

var month_days = new Array(
	31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31
);

// Startup stuff
function wolf_init()
{
	var date = new Date();
	wolf_set_weekdays("eng");
	// What a day, what a day
	c_year  = date.getFullYear();
	c_month = date.getMonth() + 1;

	// Set calendar choosers
	wolf_set_choosers(c_month, c_year);

	// Set calendars initial values
	wolf_set_cal(c_month, c_year);
}

// Click on a day

function wolf_set_weekdays(lang){
	if (lang=="fin"){
		document.Hakukriteerit.MA.value="M";
		document.Hakukriteerit.TI.value="T";
		document.Hakukriteerit.KE.value="K";
		document.Hakukriteerit.TO.value="T";
		document.Hakukriteerit.PE.value="P";
		document.Hakukriteerit.LA.value="L";
		document.Hakukriteerit.SU.value="S";	
	}else if (lang=="eng"){
		document.Hakukriteerit.MA.value="Mon";
		document.Hakukriteerit.TI.value="Tue";
		document.Hakukriteerit.KE.value="Wed";
		document.Hakukriteerit.TO.value="Thu";
		document.Hakukriteerit.PE.value="Fri";
		document.Hakukriteerit.LA.value="Sat";
		document.Hakukriteerit.SU.value="Sun";	
	}else if (lang=="swe"){
		document.Hakukriteerit.MA.value="Mån";
		document.Hakukriteerit.TI.value="Tis";
		document.Hakukriteerit.KE.value="Ons";
		document.Hakukriteerit.TO.value="Tor";
		document.Hakukriteerit.PE.value="Fre";
		document.Hakukriteerit.LA.value="Lör";
		document.Hakukriteerit.SU.value="Sön";	
	}else if (lang=="ita"){
		document.Hakukriteerit.MA.value="Lun";
		document.Hakukriteerit.TI.value="Mar";
		document.Hakukriteerit.KE.value="Mer";
		document.Hakukriteerit.TO.value="Gio";
		document.Hakukriteerit.PE.value="Ven";
		document.Hakukriteerit.LA.value="Sab";
		document.Hakukriteerit.SU.value="Dom";	
	}

}

function wolf_day_click(y, x)
{
	var day, d;

	d   = document.forms[0].elements["day_" + y + "_" + x];
	day = d.value;

	// Did someone click on a empty?
	if(day == "")
	{
		return;
	}

	// Set the starting day
	if(state == 0 || state == 2)
	{
		start_year  = c_year;
		start_month = c_month;
		start_day   = parseInt(day, 10);
		end_year    = 0;
		end_month   = 0;
		end_day     = 0;

		state = 1;
		document.forms[0].LAH.value = "";
		document.forms[0].TUL.value = start_day+"."+start_month+
						  "." + start_year;

		wolf_set_cal(c_month, c_year);

		//document.images["ohje"].src = "pics/wolf/alakalenteri1.gif";
	}

	// Set the ending day
	else if(state == 1)
	{
		// Check that endingday is after starting day
		if(c_year == start_year && c_month == start_month && 
		   day <= start_day)
		{
			return;
		}

		if(c_year == start_year && c_month < start_month)
		{
			return;
		}

		if(c_year < start_year)
		{
			return;
		}

		end_year  = c_year;
		end_month = c_month;
		end_day   = parseInt(day, 10);

		//alert("END: "+end_year + "." + end_month + "." + end_day);

		state = 2;
		wolf_set_cal(c_month, c_year);

		document.forms[0].LAH.value = end_day+"."+end_month+    
                                                   "." + end_year;   

		//document.images["ohje"].src = "pics/wolf/alakalenteri2.gif";
	}

	// Back to starting point
	else if(state == 2)
	{
		end_year    = 0;
                end_month   = 0;
                end_day     = 0;
		start_year  = 0;
		start_month = 0;
		start_day   = 0;

		document.forms[0].TUL.value  = "";
		document.forms[0].LAH.value = "";

		state = 0;
		wolf_set_cal(c_month, c_year);

		//document.images["ohje"].src = "pics/wolf/alakalenteri.gif";
	}
}

// Set month chooser
function wolf_chooser_month(i)
{
	var date = new Date();
	c_month = c_month + i;

	if(c_month > 12) {
		c_month = 1;
		c_year += 1;
	}

	if(c_month < 1) {
		c_month = 12;
		c_year -= 1;
	}

	//if(c_year > last_year) c_year = date.getFullYear();
	//if(c_year < date.getFullYear()) c_year = last_year;

	wolf_set_choosers(c_month, c_year);
	wolf_set_cal(c_month, c_year);
}

// Set year chooser
function wolf_chooser_year(i)
{
	var date = new Date();

	c_year = c_year + i;

	if(c_year > (last_year+2)) c_year = date.getFullYear()+2;
	if(c_year < date.getFullYear()) c_year = last_year;

	wolf_set_choosers(c_month, c_year);
	wolf_set_cal(c_month, c_year);
}

// Set calendar choosers
function wolf_set_choosers(month, year)
{
	//document.images["month"].src = "pics/wolf/" + months[month];
	document.Hakukriteerit.KUU.value=wolf_getMonthText(month,"eng");
	document.Hakukriteerit.V.value=year;
	//document.images["year"].src  = "pics/wolf/" + year + ".gif";
}

function wolf_getMonthText(month,lang)
{
	if (lang=="fin")
	{
		switch(month)
		{
		case 1:
			return "Tammikuu";
			break;
		case 2:
			return "Helmikuu";
			break;
		case 3:
			return "Maaliskuu";
			break;
		case 4:
			return "Huhtikuu";
			break;
		case 5:
			return "Toukokuu";
			break;
		case 6:
			return "Kesäkuu";
			break;
		case 7:
			return "Heinäkuu";
			break;
		case 8:
			return "Elokuu";
			break;
		case 9:
			return "Syyskuu";
			break;
		case 10:
			return "Lokakuu";
			break;
		case 11:
			return "Marraskuu";
			break;
		case 12:
			return "Joulukuu";
			break;
		}
	
	}else if (lang=="eng"){
		switch(month)
		{
		case 1:
			return "January";
			break;
		case 2:
			return "February";
			break;
		case 3:
			return "March";
			break;
		case 4:
			return "April";
			break;
		case 5:
			return "May";
			break;
		case 6:
			return "June";
			break;
		case 7:
			return "July";
			break;
		case 8:
			return "August";
			break;
		case 9:
			return "September";
			break;
		case 10:
			return "October";
			break;
		case 11:
			return "November";
			break;
		case 12:
			return "December";
			break;
		}
	}else if (lang=="swe"){
		switch(month)
		{
		case 1:
			return "Januari";
			break;
		case 2:
			return "Februari";
			break;
		case 3:
			return "Mars";
			break;
		case 4:
			return "April";
			break;
		case 5:
			return "Maj";
			break;
		case 6:
			return "Juni";
			break;
		case 7:
			return "Juli";
			break;
		case 8:
			return "Augusti";
			break;
		case 9:
			return "September";
			break;
		case 10:
			return "Oktober";
			break;
		case 11:
			return "November";
			break;
		case 12:
			return "December";
			break;
		}	
	}else if (lang=="ita"){
		switch(month)
		{
		case 1:
			return "Gennaio";
			break;
		case 2:
			return "Febbraio";
			break;
		case 3:
			return "Marzo";
			break;
		case 4:
			return "Aprile";
			break;
		case 5:
			return "Maggio";
			break;
		case 6:
			return "Giugno";
			break;
		case 7:
			return "Luglio";
			break;
		case 8:
			return "Agosto";
			break;
		case 9:
			return "Settembre";
			break;
		case 10:
			return "Ottobre";
			break;
		case 11:
			return "Novembre";
			break;
		case 12:
			return "Dicembre";
			break;
		}	
	}
  
}

// Set calendar according to parameters
function wolf_set_cal(month, year)
{
	var i, row, col, day;
	var date = new Date();

	// Date object values
	month--;
	date.setDate(1);
	date.setFullYear(year);
	date.setMonth(month);

	// Reset
	for(i=0 ; i <= 6 ; i++)
	{
		wolf_set_day(0, i, 0);
		wolf_set_day(1, i, 0);
		wolf_set_day(2, i, 0);
		wolf_set_day(3, i, 0);
		wolf_set_day(4, i, 0);
		wolf_set_day(5, i, 0);
	}

	// Calendar is a nice thing, isn't it?
	if(year % 4 == 0) {
		month_days[1] = 29;
	} else {
		month_days[1] = 28;
	}

	for(i=1, row=0 ; i <= month_days[month] ; i++)
	{
		date.setDate(i);

		day = date.getDay();

		// Stupid American conventions
		if(day == 0) day = 6;
		else         day--;

		col = day;

		wolf_set_day(row, col, i);

		if(day == 6)
		{
			row++;
		}
	}

	// Arrow?
	if(((end_year == c_year && end_month > c_month) || end_year > c_year)
	   && ((start_year == c_year && start_month <= c_month) ||
	  start_year < c_year))
	{
		//document.images["day_5_6"].src = "pics/wolf/nuoli.gif";
	}
	else
	{
		//document.images["day_5_6"].src = "pics/wolf/00.gif";
	}
}

// Set day in the calendar grid
function wolf_set_day(y, x, day)
{
	var date = new Date();
	var dayid;
	var start;
	var end;
	var cur;
	var dayinput;
	var kalenteritaulu;

	dayid = "day_" + y + "_" + x;

	if(isNaN(y) || isNaN(x) || isNaN(day))
		return;

	//alert(img_name);

	start = wolf_date(start_year, start_month, start_day);
	end   = wolf_date(end_year, end_month, end_day);
	cur   = wolf_date(c_year, c_month, day);
	kalenteritaulu=document.getElementById("kalenteritaulu");
	dayinput=document.forms[0].elements[dayid];
	if(state == 2 && cur >= start && cur <= end)
	{
		if (day!=0)
		{
			dayinput.value=day;
			dayinput.style.backgroundColor="DDDDDD";
			kalenteritaulu.rows[y].cells[x].bgColor="DDDDDD";
		}else{
			dayinput.value="";
			dayinput.style.backgroundColor="FFFFFF";
		}
		
	}
	else
	{
		if (day!=0)
		{
			dayinput.value=day;
			dayinput.style.backgroundColor="FFFFFF";
			kalenteritaulu.rows[y].cells[x].bgColor="FFFFFF";
		}else{
			dayinput.value="";
			dayinput.style.backgroundColor="FFFFFF";
		}
		
		if ((x==5) & (day!=0)) // lisätty 26.1.2010
		{
			dayinput.value=day;
			dayinput.style.backgroundColor="E8E8E8";
			kalenteritaulu.rows[y].cells[x].bgColor="FFFFFF";
		}
	}

}

function wolf_date(year, month, day)
{
	var rtn;

	rtn = String(year);

	if(month < 10)
		rtn += "0" + String(month);
	else
		rtn += String(month);

	if(day < 10)
		rtn += "0" + String(day);
	else
		rtn += String(day);

	return(rtn);
}


