//Gert-Jan Glazenburg NC-Websites 18-03-2011

var blogItems;
var blogItemsImages;
var blogContainer;
var blogContainerHeight = 0;
var totalHeight = 0;
var innerScroller;
var blogIndex = 0;
var scrollTopPx = 0;
var fx;
var controls;
var timer;
var timeTick = 5000;
var slideSpeed = 1500;

window.addEvent('load', function () {
	
	//Define items 
	blogContainer = $('blogscroller');
	blogItems =  $$('div.blogscrollitem').filter('div');
	innerScroller = $('innerScroller');
	titles = $$('h3.blogitemTitle');
	contents = $$('p.blogitemContent');
	blogItemsImages = $$('img.blogitemImage');
	
	//Fade items keep first visible
	if(!Browser.ie) {
				blogItems.fade(0);
			} else {
				blogItems.setStyle('visibility', 'hidden');
			}
	if(!Browser.ie) {
				blogItems[0].fade(1);
			} else {
				blogItems[0].setStyle('visibility', 'visible');
			}	
	
	//Get minimum height for scroller. Get biggest blog item and get total height.
	for (n in blogItems) {
		var obj = blogItems[n];
		var typeObj = typeof(obj);
		
		if(typeof(obj) == "object" && obj.name != "array") {
			var tempvar =obj.name;
			var objDimensions = obj.getComputedSize();
			if(blogContainerHeight < objDimensions["totalHeight"]) {
				blogContainerHeight = objDimensions["totalHeight"];
			}
			obj.setProperty('alt', totalHeight);
			totalHeight += objDimensions["totalHeight"];
			
		}
	}
	
	//Styles
	blogContainer.setStyle('height', (blogContainerHeight+10));
	blogContainer.setStyle('overflow', 'hidden');
	blogContainer.setStyle('position', 'relative');
	innerScroller.setStyle('position', 'absolute');
	titles.setStyle('margin', '0px');
	titles.setStyle('padding', '0px');
	//blogItemsImages.setStyle('width', (blogContainer.getStyle('width').toInt() / 2));
	contents.setStyle('margin', '0px');
	contents.setStyle('padding', '0px');
	blogItems.setStyle('padding-bottom', '10px');
	
	//Inject controls
	controls = $('blogControls');
	controls.set('html', '<a href="javascript:Up()"><img src="images/icons/arrow_up.png" /></a><a href="javascript:Down()"><img src="images/icons/arrow_down.png" /></a>');
	controls.setStyles({
		position: "absolute",
		top: "0px",
		right: "0px"
	});
	blogContainer.adopt(controls);
	
	//Events activate
	addEvents();
	fx.start('top', 0);
});

function addEvents() {	
	//blogContainer.addEvent('click', function(event) { Down(); });
	fx = new Fx.Tween(innerScroller, {duration: slideSpeed});
	timer = Down.periodical(timeTick);
	blogContainer.addEvent('mouseover', function(event) { clearInterval(timer) });
	blogContainer.addEvent('mouseout', function(event) { timer = Down.periodical(timeTick) }); 
}

function Down() {
	var obj = blogItems[blogIndex];
		var typeObj = typeof(obj);
		if(typeof(obj) == "object") {
			
			var objDimensions = obj.getComputedSize();
			scrollTopPx = scrollTopPx - objDimensions["totalHeight"];
			//innerScroller.setStyle('top', scrollTopPx);
			if(!Browser.ie) {
				obj.fade(0);
			} else {
				obj.setStyle('visibility', 'hidden');
			}
		}
		blogIndex += 1;
		
		if((blogItems.length - 1) < blogIndex) {
			blogIndex = 0;
			obj = blogItems[blogIndex];
			if(!Browser.ie) {
				obj.fade(1);
			} else {
				(function() {obj.setStyle('visibility', 'visible')}).delay(100);
			}
			scrollTopPx = 0;
		} else {
			if(!Browser.ie) {
				blogItems[blogIndex].fade(1);
			} else {
				(function() {blogItems[blogIndex].setStyle('visibility', 'visible')}).delay(100);
			}
		}
		
		fx.start('top', scrollTopPx);
}

function abs (n) {
return ((n>0) ? n*-1 : n);
} 

function Up() {
	var obj = blogItems[blogIndex];
		var typeObj = typeof(obj);
		if(typeof(obj) == "object") {
			if(!Browser.ie) {
				obj.fade(0);
			} else {
				obj.setStyle('visibility', 'hidden');
			}
		}
		blogIndex -= 1;
		if(blogIndex < 0) {
			blogIndex = blogItems.length - 1;
			obj = blogItems[blogIndex];
			if(!Browser.ie) {
				obj.fade(1);
			} else {
				(function() {obj.setStyle('visibility', 'visible')}).delay(100);
			}
			objDimensions = obj.getComputedSize();
			scrollTopPx = obj.getProperty('alt');
			scrollTopPx = abs(scrollTopPx);
		} else {
			if(!Browser.ie) {
				blogItems[blogIndex].fade(1);
			} else {
				(function() {blogItems[blogIndex].setStyle('visibility', 'visible')}).delay(100);
			}
		}
		var obj = blogItems[blogIndex];
		scrollTopPx = obj.getProperty('alt');
			scrollTopPx = abs(scrollTopPx);
		if(blogIndex == 0) {
			scrollTopPx = 0;
		}
		
		fx.start('top', scrollTopPx);
}
