
function getScrolling() {
    var x = 0; var y = 0;
    if (self.pageXOffset) {
        x = self.pageXOffset;
        y = self.pageYOffset;
    } else if (document.documentElement && document.documentElement.scrollLeft) {
        x = document.documentElement.scrollLeft;
        y = document.documentElement.scrollTop;
    } else if (document.body) {
        x = document.body.scrollLeft;
        y = document.body.scrollTop;
    }
    return x + "," + y;
}

function popupNoLoc(winName, w, h) {
    newWindow = window.open('#', winName, "scrollbars=yes,resizable=yes,height="+h+",width="+w);
    newWindow.focus();
}

function popup(winName, location, w, h) {
    newWindow = window.open(location, winName, "scrollbars=yes,resizable=yes,height="+h+",width="+w);
    newWindow.focus();
}

function refreshParent() {
	window.opener.parent.location.reload();
	window.close();
}

function checkDelete(form) {
	agree = confirm("Are you sure you want to delete?");
	if (agree){
		form.submit();
	}
} 




var iWinX = 100;
var iWinY = 100;

//global variables
var month; var day; var year;
var monthArray = new Array(0,31,29,31,30,31,30,31,31,30,31,30,31);


// **************************
//Calculates the current year, month and date
function getToday(){
	 today = new Date();
	 day = today.getDate();
	 month = today.getMonth();
	 month++;
	 year = today.getYear();
	 year = (year < 100) ? 1900 + year : year;
	 if (year.toString().length < 4) {
	 	year = 1900 + year;
	}
 }


// **************************
//Get the current date value in parameter field
//If no date is given or date format is not YYYY-MM-DD gets today
function getMonth_and_Date(form,fieldName){
	dtString1 = eval("form['" + fieldName + "'].value");

	// trim date string: Remove spaces
	dtString = "";
	for (var i=0; i < dtString1.length; i++)
		if (dtString1.charAt(i) != " ")
			dtString = dtString + dtString1.charAt(i);

	//get date components
	startPos = 0; pos = 0;

	//get year
	pos = dtString.indexOf("-", startPos);
	if (pos == -1){      //there's no date delimiter
		getToday(); 
		return;
	}
	year = parseInt(dtString.substring(startPos,pos),10);
	startPos = pos + 1;

	// get month
	pos = dtString.indexOf("-", startPos);
	if (pos == -1){
		getToday();
		return;
	}
	month = parseInt(dtString.substring(startPos,pos),10);	
	startPos = pos + 1;

	//get day
	day = parseInt(dtString.substring(startPos,dtString.length),10)

	//check month
	if ((month < 1) || (month > 12)){ //no valid month
		getToday();
		return;
	}

	//check day
	if ((day < 1) || (day > monthArray[month])){
		getToday();
		return;
	}
	
	year = (year < 100) ? 1900 + year : year;

}


// **************************
//Open the new date picking window
function putcal(form, dateFieldName) {
	if (navigator.appName == "Microsoft Internet Explorer") {
		calwin = open("","calwin", "alwaysRaised=yes,width=230,height=190,resizable=yes,left=" + (iWinX-100) + ",top=" + (iWinY+18));
	} else {
		calwin = open("","calwin","width=230,height=200,left=100,top=100,resizable=no");
	}
	calccal(calwin,form,dateFieldName);
}


// **************************
//Create and show the date picker window
 function calccal(targetwin,form,dateFieldName) { 
	//Define the month names
	 var monthname = new Array(12);
	 monthname[0] = "Tammikuu";
	 monthname[1] = "Helmikuu";
	 monthname[2] = "Maaliskuu";
	 monthname[3] = "Huhtikuu";
	 monthname[4] = "Toukokuu";
	 monthname[5] = "Kesäkuu";
	 monthname[6] = "Heinäkuu";
	 monthname[7] = "Elokuu";
	 monthname[8] = "Syyskuu";
	 monthname[9] = "Lokakuu";
	 monthname[10] = "Marraskuu";
	 monthname[11] = "Joulukuu";
	 
	
	//Calculate the first and last day in the month
	 var endday = calclastday(eval(month),eval(year));
	 mydate = new Date(month + "/01/" + year);
	 firstday = mydate.getDay();
	
	//Define the day table: 6 rows * 7 columns
	 var cnt = 0;
	 var day = new Array(6);
	 for (var i=0; i<6; i++)
		 day[i] = new Array(7);

	//Fill the day table with right day numbers
	 for (var r=0; r<6; r++) {
		 for (var c=0; c<7; c++) {
			 if ((cnt==0) && (c!=firstday)) continue;
			 cnt++;
			 day[r][c] = cnt;
			 if (cnt==endday) break;
		 }
		 if (cnt==endday) break;
	 }

	//Create the date selection page in HTML format
	targetwin.document.open()
	targetwin.document.writeln("<HTML>\n<HEAD>\n<TITLE>Select Date</TITLE>\n<STYLE TYPE=\"text/css\">");
	targetwin.document.writeln("\tA {COLOR: black; TEXT-DECORATION: none}\n\tA:hover {COLOR: red; TEXT-DECORATION: underline}")
	targetwin.document.writeln("\tTH {font-family: arial, helv, times roman; font-size:10pt; color:#FFFFFF; text-align: center; BACKGROUND-COLOR: #01787E}");
	targetwin.document.writeln("\tTD {font-family: arial, helv, times roman; font-size:10pt; text-align: center}\n\t.weekend {BACKGROUND-COLOR: #B2CBC8}");
	targetwin.document.writeln("\t.today {BACKGROUND-COLOR: #FF9F9F}\n</STYLE>\n</HEAD>\n");
	targetwin.document.writeln("<BODY onBlur=\"setTimeout('self.focus()',1000);\">");
	targetwin.document.writeln("<FORM>\n<table width=\"100%\" border=0 cellspacing=0 cellpadding=0>\n<TR VALIGN=TOP>");

	var prevyear = eval(year) - 1;

	//Add previous year button
	targetwin.document.writeln("<TD><INPUT TYPE=BUTTON NAME=prevyearbutton VALUE='<<'"+
	" onclick='opener.month = " + month + "; opener.year = " + prevyear +
	";document.clear();opener.calccal(opener.calwin,opener.document." + form.name + ",\"" + dateFieldName + "\")'></TD>");

	var prevmonth = (month == 1) ? 12 : month - 1;
	var prevmonthyear = (month == 1) ? year - 1 : year;

	//Add previous month button
	targetwin.document.writeln("<TD><INPUT TYPE=BUTTON NAME=prevmonthbutton VALUE='&nbsp;<&nbsp;'"+
	" onclick='opener.month = " + prevmonth + "; opener.year = " + prevmonthyear +
	";document.clear();opener.calccal(opener.calwin,opener.document." + form.name + ",\"" + dateFieldName + "\")'></TD>");

	//Add month name
	targetwin.document.writeln("<TD COLSPAN=3 ALIGN=CENTER>");
	var index = eval(month) - 1;
	targetwin.document.writeln("<B><Font Face=Arial>" + monthname[index] + " " + year + "</B></TD>");

	var nextyear = eval(year) + 1; 
	var nextmonth = (month == 12) ? 1 : month + 1;
	var nextmonthyear = (month == 12) ? year + 1 : year;

	//Add next month button
	targetwin.document.writeln("<TD><INPUT TYPE=BUTTON NAME=nextmonthbutton VALUE='&nbsp;>&nbsp;'"+
	" onclick='opener.month = " + nextmonth + "; opener.year = " + nextmonthyear +
	";document.clear();opener.calccal(opener.calwin,opener.document." + form.name + ",\"" + dateFieldName + "\")'></TD>");

	//Add next year button
	targetwin.document.writeln("<TD><INPUT TYPE=BUTTON NAME=nextyearbutton VALUE='>>'"+
	" onclick='opener.month = " + month + "; opener.year = " + nextyear +
	";document.clear();opener.calccal(opener.calwin,opener.document." + form.name + ",\"" + dateFieldName + "\")'></TD><TR>");
	targetwin.document.writeln("<TR><TD COLSPAN=7>&nbsp;</TD></TR>");

	targetwin.document.writeln("<TR><TD COLSPAN=7>\n\n<table width=\"100%\" border=1 cellspacing=0 cellpadding=0>");

	//Add the day names
	targetwin.document.writeln("<TR>");
	targetwin.document.writeln("<TH>Su</TH>");
	targetwin.document.writeln("<TH>Ma</TH>");
	targetwin.document.writeln("<TH>Ti</TH>");
	targetwin.document.writeln("<TH>Ke</TH>");
	targetwin.document.writeln("<TH>To</TH>");
	targetwin.document.writeln("<TH>Pe</TH>");
	targetwin.document.writeln("<TH>La</TH>");
	targetwin.document.writeln("</TR>");

	//Initialize variables
	var selectedmonth = eval(month) - 1;
	var today = new Date();
	var thisyear = today.getYear();
	var thisday = today.getDate();
	var thismonth = today.getMonth() + 1;
	var selectedyear = eval(year) - thisyear + 4;
	var conditionalpadder = "";
	var ISODay = "";
	var ISOMonth = "";

	//Create the month string in 2 digits
	 if (month < 10) ISOMonth = "0" + month;
	 else ISOMonth = month;

	//Create the date table in HTML format and fill each cell in table
	 for(r=0; r<6; r++) {
		 targetwin.document.writeln("<TR>");
		 for(c=0; c<7; c++) {
			if (day[r][c] == thisday && thismonth == month && thisyear == year) {
				targetwin.document.writeln("<TD class=today>");
			} else {
				if (c == 0 || c == 6) targetwin.document.writeln("<TD class=weekend>");
				else targetwin.document.writeln("<TD>");
			}
			if(day[r][c] != null) {
				//Create the day string in 2 digits
				if (day[r][c] < 10) {
					conditionalpadder = "&nbsp;"
					ISODay = "0" + day[r][c];
				} else {
					conditionalpadder = "";
					ISODay = day[r][c];
				}
				//Add the HTML and JavaScript to each cell in date table that will close the window and return the date clicked
				targetwin.document.writeln("<a href=\"javascript:window.close();" + 
				"opener.document." + form.name + "['" + dateFieldName + "'].value = '" + ISODay + "." + ISOMonth + "." + year + "'" + 
				"\">" + conditionalpadder + day[r][c] + conditionalpadder + "</a>")
			 }
			 targetwin.document.writeln("</TD>");
		 }
		 targetwin.document.writeln("</TR>");
	 }

	 targetwin.document.writeln("</TABLE></TABLE></FORM></BODY></HTML>");
	 targetwin.document.close();
}

// **************************
//Calculates the last day in the month
function calclastday(month,year) {
	if ((month==2) && ((year%4)==0))
		return 29;

	if ((month==2) && ((year%4)!=0))
		return 28;
	
	if ((month==1) || (month == 3) || (month == 5) || (month == 7) || (month==8) || (month == 10) || (month ==12))
		return 31;

	return 30;
}

function enableForProgram(reservationInfo) {
	if(reservationInfo.reserveForProgram.checked) {
		reservationInfo.programOrganizationUnitId.disabled = 0;
		reservationInfo.workEffortId.disabled = 0;
		reservationInfo.reserveForOrganizationUnit.checked = 0;
		reservationInfo.organizationUnitId.disabled = 1;
	} else {
		reservationInfo.programOrganizationUnitId.disabled = 1;
		reservationInfo.workEffortId.disabled = 1;
	}
}

function enableForOrganizationUnit(reservationInfo) {
	if(reservationInfo.reserveForOrganizationUnit.checked) {
		reservationInfo.organizationUnitId.disabled = 0;
		reservationInfo.reserveForProgram.checked = 0;
		reservationInfo.programOrganizationUnitId.disabled = 1;
		reservationInfo.workEffortId.disabled = 1;
	} else {
		reservationInfo.organizationUnitId.disabled = 1;
	}
}

function reserve(reservationInfo) {
	reservationInfo.resAction.value='Reserve';
	reservationInfo.submit();
	window.opener.document.location='MyReservations.do';
	window.close();
	return true;
}
/*
function OpenDialog()
{
	tmp=document.all.infotxt.value;
	ReturnedValue=showModalDialog("$!config.get("vmDir")/dialog.html", tmp, "dialogWidth:400px; dialogHeight:225px; status:no; center:yes");
	document.all.infotxt.value = ReturnedValue;
}
*/


