function silentErrorHandler() {return true;}
window.onerror=silentErrorHandler;

window.addEvent('domready', function() {
		
		if($('car_slide') != null)
		{	
			var i=1;
			var nwidth = 270;
			countImages = $$('.tumbnail');
			$each(countImages, 
			  function(index)
			  {
				  carWidth = i * nwidth;
				  i++;
			  });
			
			/* Automatisch de carousel scrollen */
			var testEm = "";
			var autoScroll = new Fx.Scroll($('carousel'), {
				  duration: 75000,
				  wait: true,
				  transition: 'linear',
				  onComplete: function(e) {
					carScroll(autoScroll, testEm, 200);
				  }
			 });
			function carScroll(autoScroll, autoDir, wacht) {
				if(autoDir == 'toRight') {
					autoScroll.toRight.delay(wacht, autoScroll);
					testEm = "toLeft";
				} else {
					autoScroll.toLeft.delay(wacht, autoScroll);
					testEm = "toRight";
				}
			}
			carScroll(autoScroll, "toRight", 2400);

			
			if (this.khtml) return this.innerWidth;
			if (this.opera || this.gecko || this.ie6) return document.body.clientWidth;
			stapGrote = Math.ceil(document.documentElement.clientWidth / 32);
				
			$('car_slide').setStyle('width', carWidth);
			var mySlider = new Slider('track', 'handle', {
				steps: stapGrote,
				offset: -20,
				wheel: false,
				snap: false,
				onChange: function(step)
				{
					if(autoScroll != null)
					{	
						autoScroll.pause();
					}
					myElements.addEvents(events);
					// Create error so scroll is smooth :-(
				},
				onComplete: function(step)
				{
					element = $('carousel');
					var scrollwaarde = Math.round(step/this.steps*($('carousel').scrollWidth-$('carousel').offsetWidth));
					var myFx = new Fx.Scroll(element).start(scrollwaarde);
					autoScroll = null;
				}
			});
		}

		if($('vert_track') != null)
		{
			if ($('vertContent').scrollHeight <= $('vertContent').offsetHeight) {
				$('vert_handle').setStyle('display', 'none');
			}
			var vertSlider = new Slider('vert_track', 'vert_handle', {
				steps: 30,
				offset: 0,
				wheel: true,
				snap: false,
				mode: 'vertical',
				onChange: function(pos)
				{
					element = $('vertContent');
					element.scrollTop = Math.round(pos/this.steps*(element.scrollHeight-element.offsetHeight));
				}
			});		
		}
		
		function knip(id)
		{
			return id.substr(8, id.length);
		}
		
		function activateButtons()
		{
			/* Light up */
			$$('.tumbnail').addEvent('mouseover', function(event) {
					$('proj_title_'+knip(this.id)).setStyle('background-color', '#eb008b');
			});
			$$('.tumbnail').addEvent('mouseleave', function(event) {
					activeHoverId = this.id.substr(8, this.id.length);
					$('proj_title_'+knip(this.id)).setStyle('background-color', '#000');
			});
			
			/* Show Proj detail info */
			$$('.tumbnail').addEvent('mouseover', function(event) {
					activeHoverId = this.id.substr(8, this.id.length);
					$('proj_hover_'+knip(this.id)).setStyle('display', 'block');
					if(autoScroll != null)
					{	
						autoScroll.cancel();
					}
			});
			$$('.tumbnail').addEvent('mouseleave', function(event) {
					activeHoverId = this.id.substr(8, this.id.length);
					$('proj_hover_'+knip(this.id)).setStyle('display', 'none');
					if(autoScroll != null)
					{
						autoScroll.resume();
					}
			});
		}
		activateButtons();
		
		function createProjects(cat, sorteer, zoek)
		{
			$('car_slide').getChildren().each(function(el){
				var myFx = new Fx.Tween(el);
				myFx.set('opacity', 0);
			});
			date = new Date()
			sendTime = date.getTime();
			var myHTMLRequest = new Request.HTML(
				{
					url:'/ajax_carousel.php',
					onSuccess: function(html) {
						$('car_slide').set('text', '');
						$('car_slide').adopt(html);
						
						activateButtons();
						doMagic();
						
						/* Recalculate carousel */
						var i=1;
						var nwidth = 270;
						countImages = $$('.tumbnail');
						$each(countImages, 
						  function(index)
						  {
							  carWidth = i * nwidth;
							  i++;
						  });
						$('car_slide').setStyle('width', carWidth);
						if(autoScroll != null)
						{
							autoScroll.cancel();
						}
						autoScroll = null;
					},
					onFailure: function() {
						alert("Request failed");
					}
					
				}).post({'cat': cat, 'sort': sorteer, 'search': zoek, 'time': sendTime});
		}
		
		function doMagic()
		{
			/* Reset */
			var deScroll = new Fx.Scroll($('carousel'), {
				duration: 0,
				wait: false
			}).toLeft();
			
			sIFR.replace(myriad, {
				selector: '.tumbnail strong'
				,css: [
				  '.sIFR-root { font-size: 18px; leading: -2; color: #ffffff; cursor:pointer; }'
				]
			});
			
			$('car_slide').getChildren().each(function(el){
				var myFx = new Fx.Tween(el);
				myFx.set('opacity', 0);
			});
			
			/* Even wachten met tonen projecten, omdat sifr de teksten nog parsed */
			loadEls.delay(500);
		}
		
		function loadEls()
		{
			$('car_slide').getChildren().each(function(el){
				var myFx = new Fx.Tween(el, {duration: 1000});
				myFx.start('opacity', 1);
			});	
		}
		
		function holdClick(id)
		{
			if($(id).getStyle('background-color') != '#eb008b')
			{
				$(id).setStyle('background-color', '#eb008b');
			} else {
				$(id).setStyle('background-color', '#000000');
			}
		}
		
		function clearClicks(id)
		{
			$('sort_datum').setStyle('background-color', '#000000');
			$('sort_bedrijf').setStyle('background-color', '#000000');
			$('sort_project').setStyle('background-color', '#000000');
			$(id).setStyle('background-color', '#eb008b');
		}
		function clearClicks2(id, alles)
		{
			$('cat_websites').setStyle('background-color', '#000000');
			$('cat_logo').setStyle('background-color', '#000000');
			$('cat_drukwerk').setStyle('background-color', '#000000');
			$(id).setStyle('background-color', '#eb008b');
		}
		
		/* Ajax carousel */
		if($('cat_websites') != null)
		{
			$('cat_websites').addEvent('click', function(event) {
						clearClicks2(this.id, false);
						$('currentCat').value = "website";
						createProjects('website', $('currentSort').value, '');
			});
			$('cat_logo').addEvent('click', function(event) {
						clearClicks2(this.id, false);
						$('currentCat').value = "logo";
						createProjects('logo', $('currentSort').value, '');
			});
			$('cat_drukwerk').addEvent('click', function(event) {
						clearClicks2(this.id, false);
						$('currentCat').value = "drukwerk";
						createProjects('drukwerk', $('currentSort').value, '');
			});
			
			$('sort_datum').addEvent('click', function(event) {
					createProjects($('currentCat').value, 'datum', '');
					$('currentSort').value = "datum";
					clearClicks(this.id);
			});
			$('sort_bedrijf').addEvent('click', function(event) {
					createProjects($('currentCat').value, 'bedrijfsnaam', '');
					$('currentSort').value = "bedrijfsnaam";
					clearClicks(this.id);
			});
			$('sort_project').addEvent('click', function(event) {
					createProjects($('currentCat').value, 'project_naam', '');
					$('currentSort').value = "project_naam";
					clearClicks(this.id);
			});
			
			$('projSearch').addEvent('click', function(event) {
					createProjects($('currentCat').value, $('currentSort').value, $('projSearchVal').value);
			});
		}
		
		if($('mediaboxControls') != null)
		{
			$('mediaAllImages').getChildren().each(function(el){
				var myFx = new Fx.Tween(el);
				myFx.set('opacity', 0);
				el.setStyle('display', 'block');
			});
			$('imgHolder_0').set('opacity', 1);
			
			var newMedianum = 0;
			var mediaMax = $('projMax').value;
			
			/* Next Media */
			$('mediaNext').addEvent('click', function(event) {
				if(Number($('projCurrent').value)+1 <= Number(mediaMax))
				{
					$('mediaPrev').removeClass('mediaInactive');
					if(Number($('projCurrent').value)+1 == Number(mediaMax)) {
						$('mediaNext').addClass('mediaInactive');
					}
					newMedianum = Number($('projCurrent').value)+1;
					$('imgHolder_'+newMedianum).setStyle('display', 'block');	
					var myFx = new Fx.Tween($('imgHolder_'+$('projCurrent').value), {
					duration: 1000,
					onComplete: function(a)
					{
						$(a).setStyle('display', 'none');
						var myFx = new Fx.Tween(a).set('opacity', 0);
						var myFx = new Fx.Tween($('imgHolder_'+newMedianum), {duration: 1000}).start('opacity', 1);
						$('projCurrent').value = Number($('projCurrent').value)+1;
					}}).start('opacity', 0);
				}
				
			});
			
			/* Previous Media */
			$('mediaPrev').addEvent('click', function(event) {
				if(Number($('projCurrent').value)-1 >= 0)
				{
					$('mediaNext').removeClass('mediaInactive');
					if(Number($('projCurrent').value)-1 == 0) {
						$('mediaPrev').addClass('mediaInactive');
					}
					newMedianum = Number($('projCurrent').value)-1;
					$('imgHolder_'+newMedianum).setStyle('display', 'block');
					var myFx = new Fx.Tween($('imgHolder_'+$('projCurrent').value), {
					duration: 1000,
					onComplete: function(a)
					{
						$(a).setStyle('display', 'none');
						var myFx = new Fx.Tween($('imgHolder_'+newMedianum), {duration: 1000}).start('opacity', 1);
						$('projCurrent').value = Number($('projCurrent').value)-1;
					}}).start('opacity', 0);
				} 
			});
		}
});