var google = 'UA-9294429-1';
if (google) {
	var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
	document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
}

window.addEvent('load', function(e) {
	if (google && _gat) {
		var pageTracker = _gat._getTracker(google);
		pageTracker._initData();
		pageTracker._trackPageview();
	}

	if ($('fadingheader')) {
		for (var i=0; i<4; i++) {
			new Element('div', {
				'styles': {
					'width': $('fadingheader').getStyle('width'),
					'height': $('fadingheader').getStyle('height'),
					'background-image': $('fadingheader').getStyle('background-image'),
					'background-position': '0 -'+(i*200)+'px'
				}
			}).inject($('fadingheader'));
		}
		new imageFader($$('#fadingheader div'), {duration: 1500, interval: 7500});
	}
});

window.addEvent('domready', function(e) {

	$$('body').addClass('js');

	var readmoretxt = ['lees meer', 'verbergen'];
	var open = document.location.href.substr(document.location.href.indexOf('#')+1);
	$$('a[name='+open+']').each(function(el) {
		open = el.getParent('div').getElement('a.togglereadmore');
		if (open) {
			open.addClass('open');
		}
	});
	
	$$('a.togglereadmore').each(function(el) {
		el.setStyle('display', 'inline');

		if (!el.hasClass('open')) {
			var nextps = el.getParent('p').getAllNext('p');
			nextps.each(function(pel) {
				pel.dissolve();
			});
		}
		el.addEvent('click', function(e){
			e.stop();
			if (el.get('html') == readmoretxt[0]) {
				nextps.reveal();
				el.set('html', readmoretxt[1]);
			}
			else if (el.get('html') == readmoretxt[1]) {
				nextps.dissolve();
				el.set('html', readmoretxt[0]);
			}
		});
	});

	new mouseOvers();
	
	if ($('twitter_div')) {
		new Element('ul', {'id': 'twitter_update_list'}).inject($('twitter_div'));
		new Asset.javascript('http://twitter.com/statuses/user_timeline/ugaathetmaken.json?callback=twitterCallback2&count=5');
	}
	new pngSupport().replace();

	$$('.togglersubject').setStyle('display', 'none');
	$$('.toggler').addEvent('click', function(e) {
		document.getElement('.togglersubject').setStyle('display',
		document.getElement('.togglersubject').getStyle('display') == 'none' ? 'block': 'none');
	});


});

var mouseOvers = new Class({
	initialize: function(elements) {
		elements = elements || $$('img.mouseover');
		elements.each(function(image) {
			if (image.hasClass('specialmo')) {
				image.set('src_mouseover', image.get('class').replace(/.*mouseover=/, ''));
				image.set('src_mouseout',  image.get('src'));
				image.addEvent('mouseenter', this.mouseover);
				image.addEvent('mouseleave', this.mouseout);
				new Asset.image(image.get('src_mouseover'));
			} else {
				var xsrc = image.src;
				if (xsrc.substring(xsrc.length-7, xsrc.length-3) == '_up.')	{
					image.set('src_mouseover', image.get('src').replace(/_up\.([a-z]{3})/, '_ov.$1'));
					image.set('src_mouseout',  image.get('src'));

					image.addEvent('mouseenter', this.mouseover);
					image.addEvent('mouseleave', this.mouseout);

					// Preload
					new Asset.image(image.get('src_mouseover'));
				}
			}
		}, this);
	},
	mouseover: function() {
		this.set('src', this.get('src_mouseover'));
	},
	mouseout: function()	{
		this.set('src', this.get('src_mouseout'));
	}
});

var pngSupport = new Class({

	Implements: [Options],

	options: {
		transparentImage: '/images/pnghack/transparent.gif'
	},

	initialize: function(options) {
		this.setOptions(options);
		this.needed = Browser.Engine.trident4 && Browser.Platform.win;
	},

	replace: function(parentel) {
		if (!this.needed) return;
		if (!parentel) parentel = document;

		parentel.getElements('img').each(function(img) {
			if (img.src.indexOf(this.options.transparentImage) == -1 && img.src.indexOf("png") >= 0) {
				var oldsrc = img.get('src');
				img.set('src', this.options.transparentImage);
				img.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + oldsrc + "',sizingMethod='scale')";
			}
		}, this);
	}
});

var imageFader = new Class({

	Extends: Fx.Elements,

	options: {
		auto: true,
		interval: 10000
	},

	initialize: function(elements, options) {
		this.elements = elements;
		this.setOptions(options);

		this.elements.setStyles({
			'opacity': 0,
			'position': 'absolute',
			'left': 0,
			'top': 0
		});

		if (this.elements[0]) {
			this.elements[0].setStyle('opacity', 1);
			if (this.elements[0].getParent('div').getStyle('position') != 'absolute' && this.elements[0].getParent('div').getStyle('position') != 'relative') {
				this.elements[0].getParent('div').setStyle('position', 'relative');
			}
		}

		this.curel = 0;
		if (this.options.auto) {
			this.auto.periodical(this.options.interval, this);
			this.auto.delay(1000, this);
		}
	},

	auto: function() {
		if (!this.elements[this.curel]) {
			this.curel = 0;
		}
		this.display(this.curel);

		this.curel += 1;
	},

	display: function(idx) {
		var obj = {};
		this.elements.each(function(el, i) {
			if (el.getStyle('opacity') != 0 && i != idx) {
				obj[i] = {'opacity': 0};
				el.setStyle('z-index', 1);
			} else if (i == idx) {
				obj[i] = {'opacity': 1};
				el.setStyle('z-index', 2);
			}
		});
		return this.start(obj);
	}

});

function twitterCallback2(twitters) {
  var statusHTML = [];
  for (var i=0; i<twitters.length; i++){
    var username = twitters[i].user.screen_name;
    var status = twitters[i].text.replace(/((https?|s?ftp|ssh)\:\/\/[^"\s\<\>]*[^.,;'">\:\s\<\>\)\]\!])/g, function(url) {
      return '<a href="'+url+'">'+url+'</a>';
    }).replace(/\B@([_a-z0-9]+)/ig, function(reply) {
      return  reply.charAt(0)+'<a href="http://twitter.com/'+reply.substring(1)+'">'+reply.substring(1)+'</a>';
    });
    statusHTML.push('<li><span>'+status+'</span> <a style="font-size:85%" href="http://twitter.com/'+username+'/statuses/'+twitters[i].id+'">'+relative_time(twitters[i].created_at)+'</a></li>');
  }
  document.getElementById('twitter_update_list').innerHTML = statusHTML.join('');

	//bottomSetter.resize();
}

function relative_time(time_value) {
  var values = time_value.split(" ");
  time_value = values[1] + " " + values[2] + ", " + values[5] + " " + values[3];
  var parsed_date = Date.parse(time_value);
  var relative_to = (arguments.length > 1) ? arguments[1] : new Date();
  var delta = parseInt((relative_to.getTime() - parsed_date) / 1000);
  delta = delta + (relative_to.getTimezoneOffset() * 60);

  if (delta < 60) {
    return 'minder dan een minuut geleden';
  } else if(delta < 120) {
    return 'ongeveer een minuut geleden';
  } else if(delta < (60*60)) {
    return (parseInt(delta / 60)).toString() + ' minuten geleden';
  } else if(delta < (120*60)) {
    return 'ongeveer een uur geleden';
  } else if(delta < (24*60*60)) {
    return '' + (parseInt(delta / 3600)).toString() + ' uur geleden';
  } else if(delta < (48*60*60)) {
    return 'gisteren';
  } else {
    return (parseInt(delta / 86400)).toString() + ' dagen geleden';
  }
}
