var CHuisslider = {
  
	load: function() 
	{   
		this.items = $$('.huisslider');
		//this.obj = obj;
		//alert(this.items.length);
		this.pe = false;		
		if(this.items.length==0) return false;
		for(var i=0; i<this.items.length; i++)
		{
			this.set(this.items[i]);
		}
	},
	autoslide: function()
	{
		//if(!this.auto) return;
		if(this.pe)
			this.pe.stop();
//		alert('this.pe'+this.pe);
		this.pe = new PeriodicalExecuter(CHuisslider.autonext.bind(this),8);
		return true;			
	},
	
	autonext: function()
	{
		this.items = $$('.huisslider');
		//this.obj = obj;
		//alert(this.items.length);
		if(this.items.length==0) return false;
		for(var i=0; i<this.items.length; i++)
		{
			var obj = this.items[i];
			if(obj.hasClassName('noauto'))
			{
				continue;				
			}
			else
			{
				this.autoslide();			
			}			
			var huizen = obj.select('div.huiscontainer');
			if(huizen.length==0) continue;
			var next = obj.select('span.next')[0];
			//next.obj = obj;
			CHuisslider.clicknext(next);
//			next.simulate('click');
		}
	},
	
	set: function(obj)
	{

		var huizen = obj.select('div.huiscontainer');
		
		var tabs = obj.select('li.tab');				
		if(obj.select('span.next').length==0)
			var next = false;
		else
			var next = obj.select('span.next')[0];
		if(obj.select('span.prev').length==0)			
			var prev = false;
		else
			var prev = obj.select('span.prev')[0];		
		if(huizen.length==0) return false;
		var dim = huizen[0].getDimensions();

		var pos = huizen[0].positionedOffset();		
		huizen[0].setStyle({left: 0+'px'});
		tabs[0].addClassName('selected');		
		this.setSize(huizen[0]);
		if(tabs.length!=0)
		{
			tabs[0].observe('click',this.show.bind(this));		
		}
		for(var i=1; i<huizen.length; i++)
		{
			huizen[i].setStyle({left: -dim.width+'px'});
			huizen[i].show();
			if(tabs.length!=0)			
				tabs[i].observe('click',this.show.bind(this));
		}
		//huizen[0].show();
		if(next) next.hide();
		if(prev) prev.hide();		
		if(huizen.length>1)
		{		


			//next.obj = obj;
			//prev.obj = obj;
			if(next)next.observe('click',this.next.bind(this));
			if(prev)prev.observe('click',this.prev.bind(this));			
			if(next)next.show();
			if(prev)prev.show();	
//			obj.pe = new PeriodicalExecuter(this.autonext,10);
			if(obj.hasClassName('noauto'))
			{			
			}
			else
			{
				this.autoslide();			
			}
			//obj.writeAttribute('running',false);
		}
	},
	show: function(event)
	{

		var element = Event.findElement(event, 'li');
		var huizen = element.ancestors()[1].select('div.huiscontainer');		
		var tabs = element.ancestors()[1].select('li.tab');		
		if(tabs.length==0)
			return;
		var current = null;
		var show = null;
		for(var i=0; i<huizen.length; i++)
		{
			//alert(huizen[i].getStyle('left'));
			if(huizen[i].positionedOffset().left==0)
			{
				//alert(i+ ' ' +huizen[i].getStyle('left'));
				current = i;
			}
			if(tabs[i]==element)
			{
				show = i;
			}				
		}		
//		alert('show'+current+':'+show);	
		if(current==null || show==null || current==show) return;		
		tabs[current].removeClassName('selected');
		tabs[show].addClassName('selected');
		if(current>show)
			this.moveright(huizen[current],huizen[show]);
		else
			this.moveleft(huizen[current],huizen[show]);				
			
	},
	clicknext: function(element)
	{

		var huizen = element.ancestors()[1].select('div.huiscontainer');
		var tabs = element.ancestors()[2].select('li.tab');		
		var current = null;
		var next = null;

		for(var i=0; i<huizen.length; i++)
		{
			//alert(huizen[i].getStyle('left'));
			if(huizen[i].positionedOffset().left==0)
			{
				//alert(i+ ' ' +huizen[i].getStyle('left'));
				current = i;
				next = i+1;				
				if(next>=huizen.length)
					next = 0;		
			}
		}
//		alert('clicknext'+current+':'+next);		
		if(current==null || next==null) return;		
		if(tabs.length!=0)
		{

			tabs[current].removeClassName('selected');
			tabs[next].addClassName('selected');
		}
		this.moveleft(huizen[current],huizen[next]);		
	},
	next: function(event)
	{

		var element = Event.findElement(event, 'span').ancestors()[0];
		this.clicknext(element);	
	},
	
	clickprev: function(element)
	{
		var huizen = element.ancestors()[1].select('div.huiscontainer');
		var tabs = element.ancestors()[2].select('li.tab');			
		var current = null;
		var prev = null;		
		for(var i=0; i<huizen.length; i++)
		{
			//alert(huizen[i].getStyle('left'));
			if(huizen[i].positionedOffset().left==0)
			{
				current = i;
				prev = i-1;				
				if(prev<0)
					prev = huizen.length-1;
													
			}
		}

		if(current==null || prev==null) return;
		if(tabs.length!=0)
		{
			tabs[current].removeClassName('selected');
			tabs[prev].addClassName('selected');		
		}
		this.moveright(huizen[current],huizen[prev]);		
	},
	
	prev: function(event)
	{

		var element = Event.findElement(event, 'span').ancestors()[0];
		this.clickprev(element);	

	},
	
	moveright: function(current,obj)
	{
		if(this.pe)
			this.pe.stop();		
		var dim = $(obj).getDimensions();
		/*var pos = $(obj).positionedOffset();		
		$('log').update(
			'pos : ' + pos.left + ' ' + pos.top + '<br>' +
			'dim : ' + dim.width + ' ' + dim.height + '<br>'
			);*/
		$(obj).setStyle({left: -dim.width+'px'});
		//$(obj).show();
		this.setSize(obj);
new Effect.Parallel([
		
		new Effect.Move(current, {  sync: true,x: dim.width, mode: 'absolute', transition: Effect.Transitions.linear}),
		new Effect.Move(obj, {  sync: true,x: 0, mode: 'absolute', transition: Effect.Transitions.linear })

		],
		{afterFinish: this.autoslide.bind(this), queue: 'end' }
);					
		
	},
	
	moveleft: function(current,obj)
	{
		if(this.pe)
			this.pe.stop();
		var dim = $(obj).getDimensions();
		/*var pos = $(obj).positionedOffset();		
		$('log').update(
			'pos : ' + pos.left + ' ' + pos.top + '<br>' +
			'dim : ' + dim.width + ' ' + dim.height + '<br>'
			);*/
		$(obj).setStyle({left: dim.width+'px'});
		//$(obj).show();
		this.setSize(obj);
new Effect.Parallel([
		
		new Effect.Move(current, {  sync: true,x: -dim.width, mode: 'absolute', transition: Effect.Transitions.linear}),
		new Effect.Move(obj, {  sync: true,x: 0, mode: 'absolute', transition: Effect.Transitions.linear })

		],
		{afterFinish: this.autoslide.bind(this), queue: 'end' }
);					
		
	},
	setSize: function(obj)
	{	
		return;	
		var dimensions = $(obj).getDimensions();
		if($(obj).select('.tekst').length==0) return;
		var tekst = $(obj).select('.tekst')[0];
		var padding = tekst.getStyle('paddingBottom').replace('px','');
		var carouseltab = $(obj).ancestors()[2];
		var carouselblok = carouseltab.select('.huizenblok')[0];
		var carouselcontainer = carouseltab.select('.huizencontainer')[0];		
		
		var newHeight = parseInt(dimensions.height)+parseInt(padding);
		if(newHeight<340) newHeight=340;
		
		carouseltab.setStyle({'height':(newHeight+35)+'px'});
		carouselcontainer.setStyle({'height':(newHeight)+'px'});		
		carouselblok.setStyle({'height':(newHeight)+'px'});		
//		alertdump(dimensions);
	}
};

function loadCHuisslider()
{
	//var oLinkblokslide = new CLinkblokslide();		
	CHuisslider.load();
}

