function n2str(nr)
{
	var str = nr.toString();
	while (str.length < 5) str = "0" + str;
	return(str);
}

function getParameter(url, name)
{
  var qm_idx = url.indexOf("?");
  if (qm_idx > -1 )
  {
    var parameterstrings = url.substr(qm_idx).split("&");
    for ( var i = 0; i < parameterstrings.length; i++ )
    {
       var str = parameterstrings[i];
      if (str.indexOf(name + "=") > -1 )
	{
        var paramSplit = str.split("=");
        return(paramSplit[1]);
      }
    }
  }
  return "";
}

function IsLeapYear(year)
{
 var leap = (((year % 4) == 0) && (((year % 100) != 0) || ((year % 400) ==0 )));
 if (leap) 
	return 1;
 else
    return 0;
}

var monthdays = new Array(31,28,31,30,31,30,31,31,30,31,30,31);

function DayOfYear(mydate)
{
 var year = mydate.getFullYear();
 monthdays[1] = IsLeapYear(year) + 28;
 var days = mydate.getDate();
 for (var i=0; i < mydate.getMonth(); i++)
 {
	days += monthdays[i];
 } 
 return(days); 
}

/**
* Returns the week number for this date. dowOffset is the day of week the week
* "starts" on for your locale - it can be from 0 to 6. If dowOffset is 1 (Monday),
* the week returned is the ISO 8601 week number.
* @param int dowOffset
* @return int
*/
Date.prototype.getWeek = function (dowOffset) {
/*getWeek() was developed by Nick Baicoianu at MeanFreePath: http://www.meanfreepath.com */

dowOffset = typeof(dowOffset) == 'int' ? dowOffset : 0; //default dowOffset to zero
var newYear = new Date(this.getFullYear(),0,1);
var day = newYear.getDay() - dowOffset; //the day of week the year begins on
day = (day >= 0 ? day : day + 7);
var daynum = Math.floor((this.getTime() - newYear.getTime() -
(this.getTimezoneOffset()-newYear.getTimezoneOffset())*60000)/86400000) + 1;
var weeknum;
//if the year starts before the middle of a week
if(day < 4) {
weeknum = Math.floor((daynum+day-1)/7) + 1;
if(weeknum > 52) {
nYear = new Date(this.getFullYear() + 1,0,1);
nday = nYear.getDay() - dowOffset;
nday = nday >= 0 ? nday : nday + 7;
/*if the next year starts before the middle of
the week, it is week #1 of that year*/
weeknum = nday < 4 ? 1 : 53;
}
}
else {
weeknum = Math.floor((daynum+day-1)/7);
}
return weeknum;
};

function WeekOfYear(mydate)
{
 var w = mydate.getWeek(1);
 return(w);
}

function doDisplayTimetable(Form, topDir)
{
 if (Form.element.selectedIndex < 0)
	return;
 var week = Form.week[Form.week.selectedIndex].value;
 var type = Form.type[Form.type.selectedIndex].value;
 var FileName = type + n2str(Form.element[Form.element.selectedIndex].value) + ".htm";
 var url;
 if (topDir == "w")
	url = "../" + week + "/" + type + "/" + FileName; 
 else	
	url = "../" + type + "/" + week + "/" + FileName; 
 parent.main.location = url; 
}

function doPrintviewTimetable(Form, topDir)
{
 if (Form.element.selectedIndex < 0)
	return;
 var week = Form.week[Form.week.selectedIndex].value;
 var type = Form.type[Form.type.selectedIndex].value;
 var FileName = type + n2str(Form.element[Form.element.selectedIndex].value) + ".htm";
 var url;
 if (topDir == "w")
	url = "../" + week + "/" + type + "/" + FileName; 
 else	
	url = "../" + type + "/" + week + "/" + FileName; 
 var win = open(url, 'timetable','resizable=yes,menubar=yes,titlebar=yes');
 win.focus();
 return(false);
}

function doPrintTimetable()
{
	parent.main.focus();
    parent.main.print();
    return(false);
}

var selclassContent;
function setselclass(cmd)
{
	var el = document.getElementById("selclassid");
/*
	if (cmd == "save")
        selclassContent = el.innerHTML ;
	else if (cmd == "empty")
        el.innerHTML  = "";
	else if (cmd == "restore")
        el.innerHTML  = selclassContent;
*/
    if (el != null)
    {
	    if (cmd == "empty")
           el.disabled = true;        
	    else if (cmd == "restore")
           el.disabled = false;        
    }
} 

