$(document).ready(function(){
	var jabber = $('#jabber a');
	jabber.attr('href', 'mailto:' + 'nick' + jabber.html());
	jabber.html('nick' + jabber.html());
});

var bgImages =
{
	images: {},
	imagesInfo: {},
	activePreloadImage: false,

	init: function()
	{
		$('body').append('<div id="images"></div>');
		$('body').append('<div id="preload"></div>');

		$(window).bind("resize", function(){
    		bgImages.windowResize();
		});

		window.setTimeout(function(){
			bgImages.initSlideShow();
		}, 0);
	},

	getImages: function(url)
	{
		$.ajax({
			url:        'proxy2.php?url=' + escape(url),
			method:     'GET',
			success:    function(items) {
				items = items.split("\n");
				for (var i in items) {
					bgImages.preloadImage(items[i]);
				}
			}
		});
	},

	preloadImage: function(item)
	{
		if (item == '') return;
		_item = item.split(';;');
		var src = _item[0];
		var copy = _item[2];
		var copyLink = _item[1];
		bgImages.imagesInfo[src] = {
			'copy':     copy,
			'copyLink': copyLink
		};
		if (bgImages.activePreloadImage) {
			window.setTimeout(function(){
				bgImages.preloadImage(item);
			}, 1000 + Math.ceil(Math.random() * 1000));
		}
		else {
			bgImages.activePreloadImage = true;
			$('#preload').append('<div><img src="' + src + '" onload="bgImages.addImage(\'' + src + '\')" /></div>');
		}
	},

	addImage: function(image)
	{
		bgImages.activePreloadImage = false;
		if ($('#images img[src=' + image + ']').length == 0) {
			$('#images').append('<a><img src="' + image + '" /></a>');
		}

		window.setTimeout(function(){
			bgImages.getImageSizes();
		}, 0);
	},

	initSlideShow: function()
	{
		var time_out = 7777;
		var activeslide = $('#images .activeslide');
		if (activeslide.length == 0) {
			if ($('#images a').length == 0) {
				window.setTimeout(function(){
					bgImages.initSlideShow();
				}, 1000);
//				return;
			}
			else {
				var activeslide = $('#images a:first');
				activeslide.addClass('activeslide');
				bgImages.windowResize();
				window.setTimeout(function(){
					activeslide.fadeIn('slow')
				}, 100);
				window.setTimeout(function(){
					bgImages.initSlideShow();
				}, time_out);
//				return;
			}
		}
		else {
			var nextslide = $('#images .activeslide').next();
			if (nextslide.length == 0) {
				nextslide = $('#images a:first');
			}
			if (nextslide.find('img').attr('src') != activeslide.find('img').attr('src')) {
				activeslide.removeClass('activeslide');
				window.setTimeout(function(){
					activeslide.css('display', 'none');
				}, 1000);
				nextslide.addClass('activeslide');

				bgImages.windowResize();
				window.setTimeout(function(){
					nextslide.fadeIn('slow')
				}, 100);
			}

			window.setTimeout(function(){
				bgImages.initSlideShow();
			}, time_out);
		}
		if (activeslide.length != 0) {
			var src = activeslide.find('img').attr('src');
			if (src && bgImages.imagesInfo[src]) {
				var copy = $('#imageCopy');
				if (copy.length == 0) {
					copy = $('<div id="imageCopy"></div>');
					$('body').append(copy);
				}
				copy.html('<a target="_blank" href="' + bgImages.imagesInfo[src]['copyLink'] + '">' + bgImages.imagesInfo[src]['copy'] + '</a>');
			}
		}
	},

	getImageSizes: function()
	{
		var loaded = {};
		$('#images a img').each(function(){
			var src = $(this).attr('src');
			loaded[src] = 1;
		});
		$('#preload img').each(function(){
			var t = $(this);
			var src = t.attr('src');

			if (loaded[src] && !bgImages.images[src]) {
				bgImages.images[src] = {
					width: t.width(),
					height: t.height()
				};
			}
		});
	},

	windowResize: function()
	{
//		$('#images a img').each(function(){
		$('#images .activeslide img').each(function(){
			var t = $(this);
			var src = t.attr('src');

			var browser_width = $(window).width();
			var browser_height = $(window).height();

			var ratio = bgImages.images[src]['width'] / bgImages.images[src]['height'];

			if ((browser_width/browser_height) > ratio){
				t.width(Math.ceil(browser_width));
				t.height(Math.ceil(browser_width / ratio));
				t.css('left', 0);
				t.css('top', (browser_height - Math.ceil(browser_width / ratio)) / 2);
			}
			else {
				t.height(Math.ceil(browser_height));
				t.width(Math.ceil(browser_height * ratio));
				t.css('top', 0);
				t.css('left', (browser_width - Math.ceil(browser_height * ratio)) / 2);
			}
		});
	}
}
