function time_ago(date) {
    var seconds = Math.abs(Math.floor((new Date() - date) / 1000));

    var interval = Math.floor(seconds / 31536000);
    if (interval > 1) {
        return 'vor ' + interval + " Jahren";
    }

    interval = Math.floor(seconds / 2592000);
    if (interval > 1) {
        return 'vor ' + interval + " Monaten";
    }

    interval = Math.floor(seconds / 86400);
    if (interval > 1) {
        return 'vor ' + interval + " Tagen";
    }

    interval = Math.floor(seconds / 3600);
    if (interval > 1) {
        return 'vor ' + interval + " Stunden";
    }

    interval = Math.floor(seconds / 60);
    if (interval > 1) {
        return 'vor ' + interval + " Minuten";
    }
    return 'vor ' + Math.floor(seconds) + " Sekunden";
}

function parse_date(date_string) {
	// date string is sth. like: Thu Mar 24 13:26:21 +0000 2011
	var abbreviatedMonthNames = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];
	var chunks = date_string.split(' ');
	
	if (chunks.length != 6) {
		return new Date();
	}
	
	var now = new Date();
	
	var time_chunks = chunks[3].split(':') 
	var d = Date.UTC(chunks[5], abbreviatedMonthNames.indexOf(chunks[1]), chunks[2], time_chunks[0], time_chunks[1], time_chunks[2]);
	
	localOffset = now.getTimezoneOffset() * 60 * 1000;
	
	var x = new Date(d + localOffset);

	return x;
}

function ajax_response(response) {

	
	var tweets = "";

	for(var i = 0; i < response.length; i++) {
		var current_tweet = response[i];

		var tweet_date = current_tweet.created_at.replace('"', '');
		var parsedDate = parse_date(tweet_date);

		tweets += '<div class="tweet">'
				+ '<div class="tweet-image"><img src="' + current_tweet.user.profile_image_url + '" alt="' + current_tweet.user.screen_name + '" title="' + current_tweet.user.screen_name + '" /></div>'
					+ '<div class="tweet-text">' + current_tweet.text + '</div>'
					+ '<div class="tweet-footer">'
					+ ' <a href="http://www.twitter.com/' + current_tweet.user.screen_name + '/status/' + current_tweet.id_str + '">' + time_ago(parsedDate) + '</a> - '
					+ ' <a href="http://www.twitter.com/' + current_tweet.user.screen_name + '/status/' + current_tweet.id_str + '">reply</a>'
					+ '</div>'
					+ '</div>';
	}

	
	document.getElementById('topbox-twitter').innerHTML = '<div id="scrollbar_container">'  
													+ '<div id="scrollbar_track"><div id="scrollbar_handle"></div></div>'  
													+ '<div id="scrollbar_content">'
													+ '	<div class="twitter-box">' + tweets + '</div>'
													+ '</div>'
												+ '</div>';

	var scrollbar = new Control.ScrollBar('scrollbar_content','scrollbar_track');  
  
	$('scroll_down_50').observe('click',function(event){  
		scrollbar.scrollBy(-50);  
		event.stop();  
	});  
	$('scroll_up_50').observe('click',function(event){  
		scrollbar.scrollBy(50);  
		event.stop();  
	});  
  
	$('scroll_top').observe('click',function(event){  
		scrollbar.scrollTo('top');  
		event.stop();  
	});  
  
	$('scroll_bottom').observe('click',function(event){  
		//to animate a scroll operation you can pass true  
		//or a callback that will be called when scrolling is complete  
		scrollbar.scrollTo('bottom',function(){  
			if(typeof(console) != "undefined")  
				console.log('Finished scrolling to bottom.');  
		});  
		event.stop();  
	});  
  
	$('scroll_second').observe('click',function(event){  
		//you can pass a number or element to scroll to  
		//if you pass an element, it will be centered, unless it is  
		//near the bottom of the container  
		scrollbar.scrollTo($('second_subhead'));  
		event.stop();  
	});  
  
	$('scroll_third').observe('click',function(event){  
		//passing true will animate the scroll  
		scrollbar.scrollTo($('third_subhead'),true);  
		event.stop();  
	});
}

function twitter_box(url) {
	jQuery.ajax({
	  url: url,
	  dataType: 'jsonp',
	  jsonpCallback: 'ajax_response'
	});
}

function doc_height() {
    var D = document;
    return Math.max(
        Math.max(D.body.scrollHeight, D.documentElement.scrollHeight),
        Math.max(D.body.offsetHeight, D.documentElement.offsetHeight),
        Math.max(D.body.clientHeight, D.documentElement.clientHeight)
    );
}

function doc_width() {
    var D = document;
    return Math.min(
        Math.min(D.body.scrollWidth, D.documentElement.scrollWidth),
        Math.min(D.body.offsetWidth, D.documentElement.offsetWidth),
        Math.min(D.body.clientWidth, D.documentElement.clientWidth)
    );
}

window.onload = function() {

	// monkey patching of Array.indexOf for IE
	if (!Array.indexOf) {
	  Array.prototype.indexOf = function (obj, start) {
	    for (var i = (start || 0); i < this.length; i++) {
	      if (this[i] == obj) {
	        return i;
	      }
	    }
	    return -1;
	  }
	}

	// autostart: Add flying objects
	function move_flying_objects() {
		var height = doc_height();
		var width = doc_width();

		var transporter = document.getElementById('bgimg_transporter');
		if (transporter) {
			transporter.style.display = (width > 1800)  ? 'block' : 'none';
			transporter.style.top = (height - 1472) + "px";
			transporter.style.left = ((width / 2) - 900) + 'px';
		}
		
		var cleaner = document.getElementById('bgimg_cleaner');
		if (cleaner) {
			cleaner.style.top = (height - 1850) + "px";
			cleaner.style.left = ((width / 2) + 750) + 'px';
		}
	}

	var cssElements = document.getElementsByTagName('link');
	var showFlyingObjects = true;
	
	for(var i = 0; i<cssElements.length;i++)
	{
		if(cssElements[i].href.indexOf('page02.css') > 0)
			showFlyingObjects = false;
			
	}
	
	if(showFlyingObjects)
	{
		var img = document.createElement('img');
		img.src = cdnPath + '/images/transporter.png';
		img.id = 'bgimg_transporter';
		document.getElementById('body').appendChild(img);

		img = document.createElement('img');
		img.src = cdnPath + '/images/cleaner.png';
		img.id = 'bgimg_cleaner';
		document.getElementById('body').appendChild(img);


		move_flying_objects();
		window.onresize = move_flying_objects;
	}
	
	// start the twitter thing
	if (typeof(jQuery) != "undefined" && document.getElementById('topbox-twitter')) {
		twitter_box('http://www.anno-portal.de/twitter/twitter.php');
	}
	
	var bgsoundDiv = document.getElementById('bgsound');
	
	if (bgsoundDiv) {
		if (typeof(swfobject) != "undefined") {
	        var swfVersionStr = "10.0.0";
	        var xiSwfUrlStr = "playerProductInstall.swf";
	        var flashvars = { path: cdnPath + "/flash/", sound: "sounds/background.mp3" };
	        var params = {};
	        params.quality = "high";
	        params.bgcolor = "#ffffff";
	        params.allowscriptaccess = "sameDomain";
	        params.allowfullscreen = "true";
	        params.wmode = "transparent";
	        var attributes = {};
	        attributes.id = "contentsound";
	        attributes.name = "contentsound";
	        attributes.align = "middle";
	        swfobject.embedSWF(
	            cdnPath + "/flash/backgroundSoundButton.swf", "bgsound", 
	            "24", "24", 
	            swfVersionStr, xiSwfUrlStr,
	            flashvars, params, attributes);
		} else {
			var so = new SWFObject(cdnPath + "/flash/backgroundSoundButton.swf", "movie", "24", "24", "8", "red");
			so.addParam('wmode', 'transparent');
			so.write("contentsound");
		}
	}
}

