	$j = jQuery.noConflict();

	if (typeof Panagora != 'object' || typeof Panagora == 'undefined')
		Panagora = {};
		
	Panagora.ImageGallery = function(params)
	{
		var current_image = 1;
		var count = 0;
		var _id ="";
		var heading = params.heading
		var imageArray = params.imageArray;
		var self = this;
			
		var previousImage = function (e)
		{
			e.preventDefault();
			current_image--;
			current_image = current_image <= 0 ? count  : current_image;
			updateProperties();
			return false;
		}
		var nextImage = function (e)
		{
			e.preventDefault();
			current_image = 1+current_image > count ? 1 : ++current_image;
			updateProperties();
			return false;
		}
		
		var updateProperties = function()
		{
			var idx = current_image-1;
			$j(".productImageContainer .count span").html("Bild " + current_image +" av "+ count);
			$j("#productImageID").attr("src", imageArray[idx]);
		}
		
		var initialize = function()
		{
			count = imageArray.length;
			var az = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','x','y','z'];

			_id = params.id;
			
			$j('#' + _id).html('<div class="productImageContainer">\
				<img src="'+imageArray[0]+'" id="productImageID"><p class="count"><span>Bild 1 av '+count+'</span></p>\
				</div>');
			
			// hook up events to html
			$j("#productImageID").click(nextImage);
		}
		
		
		var LoadExternal = function(url)
		{
			$j.ajax({
				url: url,
				success: function(data){ 
					heading = data.heading || '';
					imageArray = data.imageArray;
	
					initialize();
				},
				//error: function(xhr, error){  },
				dataType: 'json'
			});
		}

		
		if(!params.url)
			initialize();
		else
			LoadExternal(params.url);

	}
	

