    var currentIndex = 0,
        list = [],
        currentTimeout = false,
        locked = false,
        lastIndex;
    var Switch = function() {
    	if(arguments.length > 0 && currentIndex == (parseInt(arguments[0]) - 1))
    	{
    		locked = false;
    		return;
    	}
        $(list[currentIndex]).fadeOut(1000);
        if (arguments.length == 1) {
        	lastIndex = currentIndex + 1;
            currentIndex = parseInt(arguments[0]) - 1;
        } else {
            currentIndex = (currentIndex >= list.length - 1) ? 0 : currentIndex + 1;
        	lastIndex = currentIndex;
        }
        setTimeout(function() {
            $('.galleryButtons div').removeClass('active');
            $('.galleryButtons div:nth-child(' + (currentIndex + 1) + ')').toggleClass('active');
            
            $(list[currentIndex]).fadeIn(1000, function() {
            	if(locked == false)
                	Delay();
                	
            	locked = false;
            });
        }, 200);
    };
    
    var Delay = function() {
        currentTimeout = setTimeout(function() {
            Switch();
        }, 6000);
    };
    
    var Start = function(images) {
        list = images;
        Delay();
    };
    
    function startGallery() {
        if ($('.galleryButtons #1').length > 0) {
            $('.galleryButtons div').css('cursor', 'pointer');
            $('.galleryButtons div').click(function() {
            	if (locked)
            		return false;
            
            	locked = true;
                if (currentTimeout) clearTimeout(currentTimeout);
                Switch($(this).attr('id'));
                
				return false;
            });
            Start($('.gallery div.image'));
        }
    }

(function($) {
    
    function loadRestOfArray() {
      movieArray = [];
	  $(arrayOfFiles).each(function(index) {
		switch(this.substring(this.length - 3))
		{
		case "jpg":
		  var object = '<img class ="shadow rounded" src="' + this + '" />';
		  break;
		case "png":
		  var object = '<img class ="shadow rounded" src="' + this + '" />';
		  break;
		case "swf":
		  var object = '<div id="movie'+(arrayOfFiles.length - index)+'">Please install the Flash Plugin</div>';
		  var attributes = { 'class':"stoppable" };
		  break;
		case "flv":
		  var object = '<div id="movie'+(arrayOfFiles.length - index)+'">Please install the Flash Plugin</div>';
		  var flashvars = { file:this, autostart:'false'};
		  var params = { allowfullscreen:"true", allowscriptaccess:"always" };
		  var attributes = { id:"movie"+(arrayOfFiles.length - index), name:"movie"+(arrayOfFiles.length - index)};	
		}
		$(".gallery").append('<div style="z-index: ' + (arrayOfFiles.length - index) + '; display: none;" class="image">' + object + '</div>');
		$(".galleryButtons").append('<div class="galleryButton" id="' + (index + 2) + '"></div>');
		if(this.substring(this.length - 3) == "flv")
		{
			swfobject.embedSWF("/jwp/player.swf","movie"+(arrayOfFiles.length - index),"700","300","9.0.115","false", flashvars, params, attributes);
			movieArray.push("movie"+(arrayOfFiles.length - index));
		}
		if(this.substring(this.length - 3) == "swf")
			swfobject.embedSWF(this ,"movie"+(arrayOfFiles.length - index),"700","300","9.0.115","false", false, false, attributes);
	  });
	  
	  	for(var p in movieArray)
	  	{
	  		jwplayer(movieArray[p]).onPlay(
			    function(event) {
			    	clearTimeout(currentTimeout);
			    }
			);
		}
		
		$('.stoppable').parent().click(function(){
			clearTimeout(currentTimeout);
		});
	    	
	    startGallery();
    }
    
    function injectElement(element) {
    	$(element).addClass('shadow rounded');
    	var div = $('<div></div>');
    	div.addClass('image');
    	div.css('z-index', arrayOfFiles.length + 1);
    	div.append(element);
    	$('.gallery').append(div);
    	if(arrayOfFiles.length != 0)
			$(".galleryButtons").append('<div class="galleryButton active" id="1"></div>');
    	
    }
    
    function setupGallery() {
    	if (typeof arrayOfFiles == 'undefined' || arrayOfFiles.length == 0)
    		return;
    	
    	var element = arrayOfFiles.shift(),
    		object,
    		loadCallback = function() {};
    	
    	if (arrayOfFiles.length > 0)
    		loadCallback = loadRestOfArray;
    	
    	switch (element.substring(element.length - 3)) {
    		case 'jpg':
    		case 'peg':
    		case 'gif':
    		case 'bmp':
    		case 'png':
    			object = $('<img />');
    			object.attr('src', element);
    			object.bind('load', loadCallback);
    			injectElement(object);
    			break;
    		case 'flv':
				object = '<div id="movie'+(arrayOfFiles.length + 1)+'">Please install the Flash Plugin</div>';
				var flashvars = { file:element, autostart:'false'};
				var params = { allowfullscreen:"true", allowscriptaccess:"always" };
				var attributes = { id:"movie"+(arrayOfFiles.length + 1), name:"movie"+(arrayOfFiles.length + 1)};
    			injectElement(object);
				swfobject.embedSWF("/jwp/player.swf","movie"+(arrayOfFiles.length + 1),"700","300","9.0.115","false", flashvars, params, attributes, loadCallback);
				jwplayer("movie"+(arrayOfFiles.length + 1)).onPlay(function(event) {
			    	clearTimeout(currentTimeout);
			    }
			);
				break;
    		case 'swf':
				object = '<div id="movie'+(arrayOfFiles.length + 1)+'">Please install the Flash Plugin</div>';
				var attributes = { 'class':"stoppable" };
    			injectElement(object);
    			swfobject.embedSWF(element ,"movie"+(arrayOfFiles.length + 1),"700","300","9.0.115","false", false, false, attributes, loadCallback);
    			break;
    	}
    }
    $(document).ready(function() {
        setupGallery();
    });
})(jQuery);

