function AccoList(id, startoffset) {
var accolist=this;
this.timerId=null;
this.activePanel=null;
this.panels=[];

var prevMonth = false;
var nextMonth = false;
var win = ( navigator.appVersion.indexOf( 'Win' ) != -1 );
var dom = ( document.getElementById );
//if (win && dom) alert('platform OK!');

	function Panel(i) {
		var panel=this;
		this.offset=i;
		this.buttons=[];
		
		this.moveIntoView=function() {
			list.style.left=(panel.offset * -container.offsetWidth)+"px";
		};
		
		this.scrollIntoView=function(e,sp) {
			var sp = sp;
			if(accolist.timerId==null){ 
				accolist.scrollStep(e,sp);
			}
		};
	}
   
	this.scrollStep=function(i,sp) {
		var speed = sp;

	//do a jump voor alles dat niet dom/win is 
	if (!win || !dom){ speed = Math.abs(i-list.offsetLeft);	}
	
	list.style.left=((i<list.offsetLeft) ? Math.max(i, list.offsetLeft - speed) : Math.min(i, list.offsetLeft + speed))+"px";
	if(i<(-(items-3)*52)) {i = -(items-3)*52;}
	if(i>0) {i = 0;}

	if(list.offsetLeft != i){
		accolist.timerId=setTimeout("AccoList.lists[\""+id+"\"].scrollStep("+i+", "+speed+");", 20);
	} else { clearTimeout(accolist.timerId); 
			accolist.timerId = null;
			if(list.offsetLeft==0) {prevMonth=true;fetchShowHide(false);}
			else {prevMonth=false;document.getElementById("prev").style.visibility = 'visible';}
		
			if(-list.offsetLeft>((items-4)*52)) {nextMonth=true;fetchShowHide(true)}
			else {nextMonth=false; document.getElementById("next").style.visibility = 'visible';}
		}
	};

	var container=null;
	var list=null;
	var divs=document.getElementById(id).getElementsByTagName("div");
	
	for(var i=0; i<divs.length; i++) {
	if(divs[i].className != "PanelsContainer") continue;
	container=divs[i];
	list=divs[i].getElementsByTagName("div")[0]; //actually the first child element
		if(list) {
			var itemdivs=document.getElementById(id).getElementsByTagName("div");
			items = 0;
			for(var k=0; k<itemdivs.length; k++) {
				if(itemdivs[k].className == "item") items++;
			}
			container.style.height=list.offsetHeight+"px";
			if(navigator.userAgent.toLowerCase().indexOf("safari")>-1) {
			setTimeout(function() {
			container.style.height=list.offsetHeight+"px";
			}, 500);
		}
	}
}

var spans=document.getElementById(id).getElementsByTagName("span");
	for(var i=0; i<spans.length; i++) {
		if(spans[i].className.indexOf("Numbers")==-1) continue;
		var as=spans[i].getElementsByTagName("a");
		var newpanels=(this.panels.length==0) ? true : false;
		for(var j=0; j<as.length; j++) { 
			var a=as[j];
			if(newpanels) {
				this.panels[j]=new Panel(j);
				if(j==0) accolist.activePanel=this.panels[j];
			}
			this.panels[j].buttons[this.panels[j].buttons.length]=a;
			if(j==0){
				a.panel=this.panels[j];
				a.onclick=function() { 
				//prev klikked, move 2x52 (was 2x45)
				//alert("clicked a prev, "+list.offsetLeft);
					if (prevMonth)
						xmlfetch(false);
					else
						this.panel.scrollIntoView(list.offsetLeft+104, 10);
					return false;
				};
			}
			if(j==1){
				a.panel=this.panels[j];
				a.onclick=function() { 
				// next klikked
				//alert("clicked a next, "+this.panel+", "+list.offsetLeft);
					if (nextMonth)
						xmlfetch(true);
					else
						this.panel.scrollIntoView(list.offsetLeft-104, 10);
					return false;
				};
			}
		}
	}

	if(this.panels[startoffset]) {
		this.panels[startoffset].moveIntoView();
		setTimeout("AccoList.lists[\""+id+"\"].panels["+startoffset+"].moveIntoView();", 0);
	}
}
AccoList.lists=[];




