//event loader
function addLoadEvent(func)  {
 	var oldonload = window.onload;
	if (typeof window.onload != 'function')  {
		window.onload = func;
	} 
	else  {
		window.onload = function() {
	      		oldonload();
	      		func();
	    }
	}
}
//adapt the day according to date choosen in a pulldown list 
function populateDate(objForm,elmYear,elmMonth, elmDay) {
	var Day   = document.getElementById('day')  || document.getElementById(elmDay);
	var Month = document.getElementById('month')|| document.getElementById(elmMonth)
    var Year  = document.getElementById('year') || document.getElementById(elmYear);

	var timeA = new Date(Year.value, Month.value,1);
	var timeDifference = timeA - 86400000;

	var timeB = new Date(timeDifference);

	var daysInMonth = timeB.getDate();
	Day.options.length = daysInMonth+1;

	writeDays(daysInMonth,Day,Day.value);
}
function writeDays(daysInMonth,Day,val) {

	Day.options[0].text  = "Æü";
	Day.options[0].value = "";

	for (var i = 1; i < 10; i++) {
		Day.options[i].text   = "0" + i +"Æü";
		Day.options[i].value  = "0" + i;
	 }
	for (var n = 10; n <= daysInMonth; n++) { 
		Day.options[n].text  = n+"Æü"; 
		Day.options[n].value = n;
	}
	if(val < daysInMonth) {
		Day.value=val;
	}
}

/*
	Written by Jonathan Snook, http://www.snook.ca/jonathan
	Add-ons by Robert Nyman, http://www.robertnyman.com
*/
function getElementsByClassName(oElm, strTagName, strClassName){
	var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
	var arrReturnElements = new Array();
	strClassName = strClassName.replace(/-/g, "\-");
	var oRegExp = new RegExp("(^|\s)" + strClassName + "(\s|$)");
	var oElement;
	for(var i=0; i<arrElements.length; i++){
		oElement = arrElements[i];
		if(oRegExp.test(oElement.className)){
			arrReturnElements.push(oElement);
		}
	}
	return (arrReturnElements)
}

/* *************************** 
** provided by
** Andrew Clover (and at doxdesk dot com)
** http://and.doxdesk.com/ 
*/
function utf8(wide) {
  var c, s;
  var enc = "";
  var i = 0;
  while(i<wide.length) {
    c= wide.charCodeAt(i++);
    // handle UTF-16 surrogates
    if (c>=0xDC00 && c<0xE000) continue;
    if (c>=0xD800 && c<0xDC00) {
      if (i>=wide.length) continue;
      s= wide.charCodeAt(i++);
      if (s<0xDC00 || c>=0xDE00) continue;
      c= ((c-0xD800)<<10)+(s-0xDC00)+0x10000;
    }
    // output value
    if (c<0x80) enc += String.fromCharCode(c);
    else if (c<0x800) enc += String.fromCharCode(0xC0+(c>>6),0x80+(c&0x3F));
    else if (c<0x10000) enc += String.fromCharCode(0xE0+(c>>12),0x80+(c>>6&0x3F),0x80+(c&0x3F));
    else enc += String.fromCharCode(0xF0+(c>>18),0x80+(c>>12&0x3F),0x80+(c>>6&0x3F),0x80+(c&0x3F));
  }
  return enc;
}
var hexchars = "0123456789ABCDEF";
function toHex(n) {
  return hexchars.charAt(n>>4)+hexchars.charAt(n & 0xF);
}
var okURIchars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_-";
function encodeURIComponentNew(s) {
  var s = utf8(s);
  var c;
  var enc = "";
  for (var i= 0; i<s.length; i++) {
    if (okURIchars.indexOf(s.charAt(i))==-1)
      enc += "%"+toHex(s.charCodeAt(i));
    else
      enc += s.charAt(i);
  }
  return enc;
}
function _encodeURIComponent(fld) {
	var encodedField = "";
	var s = fld;
	if (typeof encodeURIComponent == "function") {
		encodedField = encodeURIComponent(s);
	}
	else {
		encodedField = encodeURIComponentNew(s);
	}
	return encodedField;
}

//change color on mouse over
var cellBgcolor='#eeeeee';
function switchColor (elem,status) {
	if(status=='off') { 
		return	elem.bgColor='';
	}
	return elem.bgColor=cellBgcolor;
}
