
function Submit(action,data) {
  var div = document.createElement('div');
  div.style.visibility = 'hidden';

  var form = document.createElement('form');
  form.setAttribute('method','post');
  form.setAttribute('action',action);

  if(data != null) {
    for(var j=0; j<data.length; j++)
    {
      var input = document.createElement('input');
      input.setAttribute('type','hidden');
      input.setAttribute('name', data[j]['name']);
      input.setAttribute('value',data[j]['val']);
      form.appendChild(input);
    }
  }

  div.appendChild(form);
  document.body.appendChild(div);

  form.submit();
}

function inArray(needle,haystack) {
  var bRet = false;
  for(var i=0; i<haystack.length; i++) {
    if(needle == haystack[i])
      bRet = true;
  }
  return bRet;
}

function getDaysInMonth(year,month) {
  var arr = [31,28,31,30,31,30,31,31,30,31,30,31];
  var ret = arr[month-1];
  if(ret == 28 && year % 4 == 0)
    ret = 29;
  return ret;
}

function cookieSet(cName,value,exp) {
  str = cName + "=" + escape(value);
  document.cookie = str;
}
function cookieGet(cName) {
  var ret = "";
  if(document.cookie.length > 0) {
    var idx = document.cookie.indexOf(cName + "=");
    if(idx != -1) {
      idx = idx + cName.length+1;
      idy = document.cookie.indexOf(";",idx);
      if(idy==-1) idy = document.cookie.length;
      ret = unescape(document.cookie.substring(idx,idy));
      if(!ret)
	ret = "";
    }
  }
  return ret;
}
var errorShown = false;
function calErr(num,dat,type) {
  if(errorShown == true)
    return;
  errorShown = true;
  var errtext = [
    "Onbekende fout",
    "cookieSet krijgt ongeldige data",
    "cookieGet geeft ongeldige data terug"
    ];
  var str = "Er is een fout opgetreden in de kalender.\n";
  str += "Fout #"+num+": "+errtext[num]+"\n"
    +"Fouttype: "+type+"\n";
  str += "Data: "+dat+"\n";
  str += "Browser: "+navigator.appName+" | "+navigator.appVersion+"\n\n";
  str += "Neem met bovenstaande data contact op met de systeembeheerder";
  cookieSet('calendar','');
  alert(str);
}
function calCheck(num,dat) {
  if(typeof(dat) != 'string') {
    calErr(num,dat,"nostring");
    return false;
  }
  if(dat.length == 0)
    return true;
  if( ((dat.length+1) % 11) != 0) {
    calErr(num,dat,"lengtherr");
    return false;
  }

  var values = [];
  var i=0;
  var d=dat;
  do {
    if(d.length > 10 && d.substr(10,1) != ",") {
      calErr(num,dat,'delimerr');
      return false;
    }
    values[i] = d.substr(0,10);
    d = d.substr(11,d.length-11);
    i++;
  } while(d.length > 0);

  for(i=0;i<values.length;i++) {
    var y = values[i].substr(0,4);
    var m = values[i].substr(4,2);
    var d = values[i].substr(6,2);
    var p = values[i].substr(8);
    if(!checkDate(y,m,d)) {
      calErr(num,dat,"dateerr");
      return false;
    }
    if(p!="AM" && p!="PM") {
      calErr(num,dat,"dayparterr");
      return false;
    }
  }
  return true;
}
function checkDate(d) {
  return true;
}

var slideshowCurrent = 0;
Event.observe(window,'load',function(){
  var obj = document.getElementById('slideshow');
  if(obj !== null) {
    obj = $(obj);
    obj.scrollTop = 0;
    slideshowScroller = new Scroller();
    slideshowScroller.target = obj;
    setInterval(slideshowNext.bind(slideshowScroller),10000);
  }
});
function slideshowNext() {
  var i = slideshowCurrent + 1;
  var a = $('slideshow').select('img');
  if(i == a.length)
    i=0;

  slideshowCurrent = i;
  this.endOffset = a[i].cumulativeOffset().top - $('slideshow').cumulativeOffset().top;
  this.run();
}

var Scroller = Class.create({
initialize: function() {
  this.beginOffset = 0;
  this.endOffset = 0;
  this.target = null;
  this.iterationcount = 0;
  this.stepcount = 40;
},
run: function() {
  this.beginOffset = this.target.scrollTop;
  this.iterationcount = 0;
  setTimeout(this.iter.bind(this),20);
},
iter: function() {
  if(this.iterationcount == this.stepcount) {
    this.target.scrollTop = this.endOffset;
  }
  else {
    var dOffset = this.endOffset - this.beginOffset;
    var newOffset = dOffset * (Math.sin((this.iterationcount / this.stepcount)*Math.PI-0.5*Math.PI)+1)/2;
    this.target.scrollTop = this.beginOffset + Math.ceil(newOffset);
    this.iterationcount++;
    setTimeout(this.iter.bind(this),20);
  }
}
});

