function Gallery(CLASSNAME, XMLURL, SLIDEINTERVAL, NODESON, ARROWSON, LOOPINGON, ANIMSPEED, ANIMTRANSITION){
	
	var numImages = 0;
	var imageWidth;
	var imageHeight;
	var navNodesWidth = 165;
	var nodeWidth = 13;
	var moverX = 0;
	var nodeSpacing = 10;
	var xmlurl;
	var currentNum = 0;
	var slideTimer;
	var slideInterval = 0;
	var animSpeed = 500;
	var animTransition = "easeOutExpo";
	var nodesOn = true;
	var arrowsOn = true;
	var looping = true;
	var gallery;
	var linkArray = new Array();
	
	gallery = "." + CLASSNAME;
	xmlurl = XMLURL;
	if(SLIDEINTERVAL != null)
	{
		slideInterval = SLIDEINTERVAL;
	}
	if(NODESON != null)
	{
		nodesOn = NODESON;
	}
	if(ARROWSON != null)
	{
		arrowsOn = ARROWSON;
	}
	if(LOOPINGON != null)
	{
		looping = LOOPINGON;
	}
	if(ANIMSPEED != null)
	{
		animSpeed = ANIMSPEED;
	}
	if(ANIMTRANSITION != null)
	{
		animTransition = ANIMTRANSITION;
	}
	
	imageWidth = $(gallery).width();
	imageHeight = $(gallery).height();
	
	$(gallery).empty();
	
	var mainHTML = '<div class="galleryContainer"><div class="mover" style="width: 20000px"></div>';
	
	if(arrowsOn)
	{
		mainHTML += '<div class="navBtns"><div class="rightBtn"><a href="#"></a></div><div class="leftBtn"><a href="#"></a></div><div class="linkDiv"></div></div>';
	}
	
	mainHTML += '</div>';
	
	if(nodesOn)
	{
		mainHTML += '<div class="navBar"><div class="navNodes"></div><div style="clear:both;"></div></div>';
	}
	
	$(gallery).append(mainHTML);
						   
	if(arrowsOn)
	{
		$(gallery + " .rightBtn a").click(function(event){
		 event.preventDefault();
		 getImage(-2);
	   });
	   
	   $(gallery + " .leftBtn a").click(function(event){
		 event.preventDefault();
		 getImage(-1);
	   });
	}
						   
	$.ajax({
        type: "GET",
		url: xmlurl,
		dataType: "xml",
		success: function(xml) {
			$(xml).find('xml').each(function(){
											 
				var numImages = $(this).find('item').length;
				var newWidth = (navNodesWidth - (((nodeWidth + nodeSpacing) * (numImages - 1)) + nodeWidth)) / 2;
				
				if(nodesOn)
				{
					$(gallery + " .navNodes").css('marginLeft', newWidth);
				}
				
				var i = 0;
				
				$(this).find('item').each(function(){
					var imagePath = encodeURI($(this).find('file').text());
					linkArray.push(encodeURI($(this).find('link').text()));
					
					$(gallery + " .mover").append('<img src="' + imagePath + '" width="' + imageWidth + '" height="' + imageHeight + '" />');
					
					
					if(nodesOn)
					{
						var nodeSpacer = nodeSpacing;
						if(i == 0)
						{
							nodeSpacer = 0;
						}
						$(gallery + " .navNodes").append('<div class="node" style="margin-left: ' + nodeSpacer + 'px;"><a href="#" style="display:block; width:100%; height:100%;"><div class="fadeThis"><p>h</p><span class="hover"></span></div></a></div>');
					
						$(gallery + " .fadeThis:last").each(function () {
							var $span = $(gallery + " > span.hover", this).css('opacity', 0);
						});
						
						var imageNum = i;
						
						$(gallery + " .node:last a").click(function(event){
							 event.preventDefault();
							 getImage(imageNum);
						});
					}
					
					i++;
				});
			});
			
			
/*			$('.navBar').mouseenter(function() {
				$(this).stop().animate(
					{
						marginTop: 200,
						height: 130
					},
					500,
					easeOutExpo'
				);
			});
			
			$('.navBar').mouseleave(function() {
				$(this).stop().animate(
					{
						marginTop: 282,
						height: 48
					},
					500,
					easeInOutSine'
				);
			});
*/			
		  
		 
			
			numImages = $(xml).find('item').length;
			
			var totalString = new String();
			for(var m = 0; m < linkArray.length; m++)
			{
				totalString += linkArray[m];
			}
			
			if(totalString != "" && arrowsOn)
			{
				//$(gallery + " .linkDiv").append('<a href=""></a>');
				$(gallery + " .linkDiv").click(function(event){
					event.preventDefault();
					getLink();
			    });
			}
			
			if(numImages == 1)
			{
				$(gallery + " .navBtns").empty();
				$(gallery + " .navBar").empty();
			}
			getImage(0);
		},
		error:function (xhr, ajaxOptions, thrownError){
			alert(xhr.status);
			alert(thrownError);
		} 
		
		
	}); 
	
	var getImage = function(num)
	{
		
		
		if(num == -1)
		{//left
			num = currentNum - 1;
		}
		else if(num == -2)
		{//right
			num = currentNum + 1;	
		}
		
		if(looping)
		{
			if(slideInterval > 0)
			{
				clearTimeout(slideTimer)
				slideTimer = setTimeout(nextImage, slideInterval);
			}
		}
		else if (num < numImages - 1)
		{
			if(slideInterval > 0)
			{
				clearTimeout(slideTimer)
				slideTimer = setTimeout(nextImage, slideInterval);
			}
		}		
		
		if(num < 0)
		{
			num = numImages - 1;
		}
		else if (num > numImages - 1)
		{
			num = 0;
		}
		
		currentNum = num;
	
		$(gallery + " div.mover").stop().animate(
			{marginLeft: -(imageWidth * num)},
			{duration: animSpeed,
			easing: animTransition});
		
		$(gallery + " .node .fadeThis span.hover").stop().fadeTo(200, 0);
		num++;
		$(gallery + " .node:nth-child(" + num + ") .fadeThis span.hover").stop().fadeTo(200, 1);
	}
	
	var nextImage = function()
	{
		getImage(-2);
	}
	
	var getLink = function()
	{
		window.location = linkArray[currentNum];
	}
	
}
