function slidemeResize()
{
    var imgWidth = $('body').width();
	var imgHeight = (imgWidth * 800) / 1280;
	if (imgHeight < $('body').height()) {
		var imgHeight = $('body').height();
		var imgWidth = (imgHeight * 1280) / 800;
		var range = Math.round((imgWidth - $('body').width()) / 2);
		$('.slideme').css('marginLeft', '-'+range+'px');
	}
	else { $('.slideme').css('marginLeft', '0px'); }
	$('.slideme').css('width', imgWidth+'px');
	$('.slideme').css('height', imgHeight+'px');
}

function navigationResize()
{
	//$('.hud_slideshow_nav').css('top', ($('body').height() / 2)+'px');
}

var SlideShow = function (parameters) {
	var arr_item = new Array();
	var testEmpty = false;
	$('.slideme').each(function(key, item){
		testEmpty = true;
		arr_item.push(item.id);
	});

	var current = 0;
	var currentIndex = 0;
	var prev = 0;
	var prevIndex = 0;
	var slideshowPlaying = false;
	var cacheCounter = 0;

	var slide = function(currentId, prevId)
	{
		parameters.mask.fadeIn(500, function() {
			$('.slideme').css('display', 'none');
			$('#'+currentId).css('display', 'block');
			parameters.mask.fadeOut(500, function() {
				;
			});
		});
	}

	var slideshowStop = function()
	{
		//console.log('slideshowstop');
		$(document).stopTime('SlideshowTimer');
		slideshowPlaying = false;
	}

	var slideshowPlay = function()
	{
		//console.log('slideshowplay');
		$(document).everyTime(parameters.timer, 'SlideshowTimer', function(i) {
			//parameters.btNext.trigger("click");
			gotoNext();
		});
		slideshowPlaying = true;
	}

	var slideshowNext = function(callback) {
		slideshowStop();
        if (cacheCounter < 3) {
            cacheCounter++;
        }
        if (cacheCounter == 1) {
            cacheExec('gotoNext');
        }
		eval(callback);
	}
	this.next = slideshowNext;

	var slideshowPrev = function() {
		slideshowStop();
        if (cacheCounter < 3) {
            cacheCounter++;
        }
        if (cacheCounter == 1) {
            cacheExec('gotoPrev');
        }
	}
	this.prev = slideshowPrev;

	function cacheExec(goto)
	{
        eval(goto+'();');
        var cpt = 0;

        $(document).everyTime(1000, 'SlideshowCacheTimer', function(i) {
            cpt++;
            if (cpt == 1) {
                cacheCounter--;
            }
            if(cacheCounter > 0) {
                eval(goto+'();');
                cacheCounter--;
            }
            else {
                $(document).stopTime('SlideshowCacheTimer');
                slideshowPlay();
            }
		});
    }

    function gotoNext()
	{
        current++;
		prev = (current - 1);
		if (current > arr_item.length) {
			current = 1;
		}
		$('#hud_slideshow_next span').html(current+' / '+arr_item.length);
		prevIndex = (prev - 1);
		currentIndex = (current - 1);

		slide(arr_item[currentIndex], arr_item[prevIndex]);
    }

    function gotoPrev()
	{
	    current--;
		prev = (current + 1);
		if (current < 1) {
			current = arr_item.length;
		}
		$('#hud_slideshow_next span').html(current+' / '+arr_item.length);
		prevIndex = (prev - 1);
		currentIndex = (current - 1);
		slide(arr_item[currentIndex], arr_item[prevIndex]);
	}

	this.preload = function(arr_url) {
		$.preload(arr_url, {
			init: function(loaded, total) {
				//console.log(loaded+' / '+total);
			},
			loaded: function(img, loaded, total) {
				//console.log('loaded : '+loaded+'/'+total);
				var arr_src = img.src.split('/');
				var basename = arr_src[arr_src.length - 1];
				var id = 'img_'+basename.substring(0, (basename.length - 4));
				$('#'+id).attr('src', img.src);
				//console.log('#'+id+' src='+img.src);
				if (loaded == 1) {
					/*slideshowNext("slideshowStop();");*/
					gotoNext();
				}
			},
			loaded_all: function(loaded, total) {
				$('.hud_slideshow_nav').css('display', 'block');
				slideshowPlay();
			}
		});
	}

	if (testEmpty) {
		var arr_split = $('#'+arr_item[0]).attr('src').split('/');
		var fileName = arr_split[arr_split.length - 1];
		var basedir = $('#'+arr_item[0]).attr('src').replace(fileName, '');

		var arr_url = new Array();
		$.each(arr_item, function(key, item) {
			arr_url.push(basedir+item.replace('img_', '')+'.jpg');
		});

		//console.log(arr_url);

		this.preload(arr_url);
	}

}
