(function($) {
	
	$.extend($.fn, {	
		photoHarvester: function(param) {
			
			if (!param) var param = {};
						
			//Check params
			if (param.language == undefined || param.language == '') raiseError("Please specify language to use.");			
			param.ref = $(this);
			param.picturesPerPage = 10;
			
			//Start
			$.ajax({
				type: "GET",
				url: "../resources/"+param.language+"/pictures.xml",
				dataType: "xml",
				success: function(xml) 
				{
					//Parsing xml
					parseXmlFile(xml);														
				},
				error : function() { 
					//No data
					document.getElementById(param.ref.attr("id")).innerHTML = "<p>Dati attualmente non disponibili</p>";
				}				
			});
			
			function raiseError(errorMsg) 
			{
				alert("WARNING!\n"+errorMsg);
				return false;
			}					
			
			function parseXmlFile(xml)
			{				
				var htmlBuilt='';
				var innerContainer='';
				
				//Creating layer container			
				htmlBuilt += "<div class=\"basic\" id=\"list1b\">\n";
				
				//Parsing xml
				var picCounter = 0;
				$(xml).find('gallery').each(function()
				{
					var galleryId = $(this).attr('id');
					htmlBuilt += "\t<a class='tabs'>"+galleryId+"</a>\n";
					
					//Creating inner container
					htmlBuilt += "\t<div style=\"\">\n\t\t<div class=\"pics_gallery items\">"
								+"\n<div class=\"scrollable\" id=\"browsable\">\n<div class=\"items\">\n"					
					            +"<table><tr><td><ul>\n";
						
					$(this).find('picture').each(function()
					{	
						var image = '';
						$(this).find('image').each(function()
						{
							image = $(this).text();
							htmlBuilt += '\t\t\t<li><a onclick=\"pageTracker._trackEvent(\'evento - foto\',\'open\');\" href=\"../gallery/'+image+'\" rel="prettyPhoto['+galleryId+']" ';
						});	
						
						$(this).find('description').each(function()
						{
							htmlBuilt += 'title=\''+$(this).text()+'\'><img src=\'../gallery/t_'+image+'\' border=\'0\'></a></li>\n';
						});			
						picCounter++;
						if (picCounter % param.picturesPerPage == 0)
							htmlBuilt += "</ul></td></tr></table>\n\t<table><tr><td><ul>\n";
					});		
					htmlBuilt+="</ul></td></tr></table>\t\t</div>\n\t\t</div>\n\t\t<div class=\"navi\"></div>\n\t</div></div>\n\n";
				});
				
				//Assign html to referenced object using a workaround for that stupid IE!								
				document.getElementById(param.ref.attr("id")).innerHTML = htmlBuilt+"</div>";				
				
				//prettyPhoto
				$(".scrollable").not("#pics_gallery_event").scrollable().navigator();
				
				//Center navigator
				var containerWidth = $(".pics_gallery.items").width();
				var paginatorWidth = $(".navi").width();
				var marginToApply = ((containerWidth / 2) - (paginatorWidth / 2));
				//IE6 fix
				marginToApply = (jQuery.browser.version=="6.0") ? marginToApply/2 : marginToApply;
				$(".navi").css("margin-left", marginToApply);				
				
				//Accordion
				$("#list1b").accordion({
					autoheight: false
				});				
			}
		}
	});		
})(jQuery);