if(typeof(nhcmsOnLoadStatements) != "object") nhcmsOnLoadStatements=Array();
function nhcmsAddOnLoadHandler(statement)
{
  nhcmsOnLoadStatements[nhcmsOnLoadStatements.length]=statement;
  nhcmsSetBodyLoadHandler();
}

function nhcmsOnBodyLoad()
{
  for(var i=0;i<nhcmsOnLoadStatements.length;i++)
  {
    eval(nhcmsOnLoadStatements[i]);
  }
}

var nhcmsLoadhandlerset=false;
function nhcmsSetBodyLoadHandler()
{
  if(!nhcmsLoadhandlerset)
  {
    window.onload=nhcmsOnBodyLoad;
  }
  nhcmsLoadhandlerset=true;
}

function fillDays(frm)
{
  var weekdayoffset=-1;
  var numdays=31;
  if( (frm.datmn.selectedIndex >= 0) && (frm.datyr.selectedIndex >= 0) )
  {
    var month=frm.datmn.selectedIndex+1;
    var year=frm.datyr.options[frm.datyr.selectedIndex].value-0;
    numdays=getMonthLength(month,year);
    var firstday=new Date(year,month-1,1);
    weekdayoffset=firstday.getDay();
  }
  var sel=frm.datday.selectedIndex;
  var oldnum=frm.datday.options.length;
  for(var i=0;i<numdays;i++)
  {
    var dayname=""+(i+1);
    if(weekdayoffset >= 0)
    {
      dayname=daynames[(weekdayoffset+i+6)%7]+" "+dayname;
    }
    if(i < oldnum)
    {
      frm.datday.options[i].text=dayname;
    }
    else
    {
      frm.datday.options[i]=new Option(dayname,i+1,false,false);
    }
  }
  while(frm.datday.options.length > numdays)
  {
    frm.datday.options[numdays]=null;
  }
  if(sel >= numdays)
  {
    sel=numdays-1;
  }
  frm.datday.selectedIndex=sel;
}

function getMonthLength(mon,yr)
{
  var d1=new Date(yr,mon-1,1);
  var d2;
  if(mon >= 11)
  {
    d2=new Date(yr+1,mon-12,1);
  }
  else
  {
    d2=new Date(yr,mon,1);
  }
  return Math.round((d2-d1)/1000/60/60/24);
}

function countryChange(frm)
{
  var countrylistbox=frm.country;
  var provlistbox=frm.prov;
  if(provlistbox)
  {
    var countrycode=countrylistbox.options[countrylistbox.selectedIndex].value;
    var provarray=prov[frm.id];
    var countryarray=prov_landcode[frm.id];
    var num=provarray.length;
    var texts=new Array();
    var values=new Array();
    texts[0]="";
    values[0]="";
    for(var i=0; i < num; i++)
    {
      if( (countrycode == "") || (countryarray[i] == countrycode) )
      {
        texts[texts.length]=provarray[i];
        values[values.length]=provarray[i];
      }
    }
    fillListbox(provlistbox,values,texts);
    provlistbox.selectedIndex=0;
  }
  provChange(frm);
}

function provChange(frm)
{
  var countrylistbox=frm.country;
  var provlistbox=frm.prov;
  var citylistbox=frm.city;
  if(citylistbox)
  {
    var countrycode="";
    var provname="";
    if(countrylistbox)
    {
      countrycode=countrylistbox.options[countrylistbox.selectedIndex].value;
    }
    if(provlistbox)
    {
      provname=provlistbox.options[provlistbox.selectedIndex].value;
    }
    var plaatsarray=plaats[frm.id];
    var countryarray=plaats_landcode[frm.id];
    var provarray=plaats_prov[frm.id];
    var num=plaatsarray.length;
    var texts=new Array();
    var values=new Array();
    texts[0]="";
    values[0]="";
    for(var i=0; i < num; i++)
    {
      if( ((countrycode == "") || (countryarray[i] == countrycode))
       && ((provname == "") || (provarray[i] == provname)) )
      {
        texts[texts.length]=plaatsarray[i];
        values[values.length]=plaatsarray[i];
      }
    }
    fillListbox(citylistbox,values,texts);
    citylistbox.selectedIndex=0;
  }
}

function fillListbox(lb,values,texts)
{
  var oldnum=lb.options.length;
  var newnum=values.length;
  for(var i=0;i<newnum;i++)
  {
    if(i < oldnum)
    {
      lb.options[i].text=texts[i];
      lb.options[i].value=values[i];
    }
    else
    {
      lb.options[i]=new Option(texts[i],values[i],false,false);
    }
  }
  while(lb.options.length > newnum)
  {
    lb.options.length=newnum;
//    lb.options[newnum]=null;
  }

}

var _calform=null;
function doHRCCalendar(formid,linkid)
{
  var frm=document.getElementById(formid);
  if(frm)
  {
    if(frm.datyr && (!frm.datyr.disabled) )
    {
      var cal = new CalendarPopup();
      _calform=frm;
      cal.setReturnFunction("HRCCalendarReturnFunc");
      var now=new Date();
      var yesterday=dateAddDays(now,-1);
      var yesterday_str=date2MysqlDate(yesterday);
      var nextyear=dateAddDays(now,366);
      var nextyear_str=date2MysqlDate(nextyear);
      cal.addDisabledDates(null, yesterday_str);
      cal.addDisabledDates(nextyear_str, null);
      cal.setDayHeaders(dayletters.charAt(0),dayletters.charAt(1),dayletters.charAt(2),dayletters.charAt(3),dayletters.charAt(4),dayletters.charAt(5),dayletters.charAt(6));
      cal.setTodayText(today);
      cal.setMonthNames(monthnames[0],monthnames[1],monthnames[2],monthnames[3],monthnames[4],monthnames[5],monthnames[6],monthnames[7],monthnames[8],monthnames[9],monthnames[10],monthnames[11]);
      var y=frm.datyr.options[frm.datyr.selectedIndex].value;
      var m=frm.datmn.selectedIndex+1;
      var d=frm.datday.selectedIndex+1;
      var datestring=y+'-'+m+'-'+d;
      cal.showCalendar(linkid,datestring);
    }
  }
}

function formatDigits(value,digits)
{
  var negative=(value < 0);
  if(negative) value=-value;
  var str=value+"";
  var numzeros=(digits-str.length);
  while(numzeros-- > 0)
  {
    str="0"+str;
  }
  if(negative) str="-"+str;
  return str;
}

function dateAddDays(date,days)
{
  return new Date((date-0)+days*24*60*60*1000);
}

function date2MysqlDate(date)
{
  return date.getFullYear()+"-"+formatDigits((date.getMonth()+1),2)+"-"+formatDigits(date.getDate(),2);
}

function HRCCalendarReturnFunc(y,m,d)
{
  if(_calform)
  {
    setListboxValue(_calform.datyr,y);
    _calform.datyr.onchange();
    _calform.datmn.selectedIndex=m-1;
    _calform.datmn.onchange();
//    _calform.datmn.fireEvent('onchange');
    _calform.datday.selectedIndex=d-1;
  }
}
function setListboxValue(lb,v)
{
  for (var i=0; i<lb.options.length; i++)
  {
    if (lb.options[i].value==v)
    {
      lb.selectedIndex=i;
    }
  }
}

