// JavaScript Document
function GalleryFull (wrapper, color, xml, index)
{
	var _wrapper = $(wrapper);
	var _color = color;
	var _xml = xml;
	var _xmlIndex = index == undefined ? 0 : index;
	
	var _currentNode = _xml.find("project:eq(" + _xmlIndex + ")");
	var _total = _xml.find("project").length;
	var _path = _currentNode.attr("path");
	
	var _bandText;
	var _galleryControl;
	
	/* Public Methods *****************************************************************
	***********************************************************************************/
	this.changeImage = function (index)
	{
		// animate Container
		scrollObjects($(".inner_gallery", _wrapper), "x", index * $(".item_gallery", _wrapper).width(), 500);
		
		// Save new Infos
		_xmlIndex = index;
		_currentNode = _xml.find("project:eq(" + _xmlIndex + ")");
		_path = _currentNode.attr("path");
		
		// Build Description
		var title = _currentNode.find("title").find("pt").text();
		var kinded = _currentNode.attr("kinded");
		_bandText = title + " - " + kinded;
		
		// Change Controls
		_galleryControl.setIndex(index, false)
		
		// Print Description
		$(".thumb_gallery_band .description", _wrapper).html("<span>" + _bandText + "</span>");
	}
	
	/* Private Methods ****************************************************************
	***********************************************************************************/
	function parseXML ()
	{
		// Params
		var title = _currentNode.find("title").find("pt").text();
		var kinded = _currentNode.attr("kinded");
		var total = _currentNode.children("images").find("item").length;
		
		// build description
		_bandText = title + " - " + kinded;
		
		// Create Inner Gallery
		_wrapper.append("<div class='inner_gallery'></div>");
		_wrapper.append("<div class='bt_left'></div>");
		_wrapper.append("<div class='bt_right'></div>");
		_wrapper.append("<div class='bt_close'></div>");
		
		// Load Images
		_xml.find("project").each(function ()
		{
			$(".inner_gallery", _wrapper).append("<div class='item_gallery' style=\"background: url('" + _path + $(this).find("images").find("item").attr("image") + "') no-repeat 50% 50%;\"></div>");
		});
		
		// Resize Inner
		$(".inner_gallery", _wrapper).css("width", _total * $(".item_gallery", _wrapper).width() );
		
		// Ipad - hide controls
		if(navigator.userAgent.match(/iPad/i) != null) 
		{
			$(".bt_right", _wrapper).hide();
			$(".bt_left", _wrapper).hide();
		}
		
		// Create Thumbs
		_wrapper.append("<div class='thumb_gallery'></div>");
		$(".thumb_gallery", _wrapper).append("<div class='thumb_gallery_wrapper'></div>");
		$(".thumb_gallery_wrapper", _wrapper).append("<div class='thumb_gallery_inner'></div>");
		$(".thumb_gallery_wrapper", _wrapper).append("<div class='thumb_gallery_band'></div>");
		
		// Set Description	
		$(".thumb_gallery_band", _wrapper).append("<div class='description'></div>");
		$(".thumb_gallery_band", _wrapper).append("<div class='thumb_gallery_band_bg'></div>");
		$(".thumb_gallery_band .description", _wrapper).html("<span>" + _bandText + "</span>");
		
		// Controls
		setupControls ();
	}
	
	function changeImageGallery (value)
	{
		$.address.value(value);
	}
	
	/* Swipe ********************************
	*****************************************/
	function moveGallery(event, phase, direction, distance)
	{
		if( phase == "move" && (direction == "left" || direction == "right") )
		{
			if (direction == "left") scrollObjects($(".inner_gallery", _wrapper), "x", (_galleryControl.getIndex() * $(".item_gallery", _wrapper).width()) + distance, 0);
			else if (direction == "right") scrollObjects($(".inner_gallery", _wrapper), "x", (_galleryControl.getIndex() * $(".item_gallery", _wrapper).width()) - distance, 0);
		}
		else if ( phase == "cancel")
		{
			scrollObjects($(".inner_gallery", _wrapper), "x", _galleryControl.getIndex() * $(".item_gallery", _wrapper).width(), 200);
		}
		else if ( phase == "end" )
		{
			if (direction == "right") _galleryControl.backImage();
			else if (direction == "left") _galleryControl.forwardImage();
		}
	}
	
	/* Setup Controls ***********************
	*****************************************/
	function setupControls ()
	{
		_galleryControl = new GalleryControl ($(".bt_left", _wrapper), $(".bt_right", _wrapper), _total, _xmlIndex, changeImageGallery, false);
		
		$(".bt_left", _wrapper).mouseenter(function () { $(this).css("background-color", _color); });
		$(".bt_left", _wrapper).mouseleave(function () { $(this).css("background-color", "#FFF"); });
		
		$(".bt_right", _wrapper).mouseenter(function () { $(this).css("background-color", _color); });
		$(".bt_right", _wrapper).mouseleave(function () { $(this).css("background-color", "#FFF"); });
		
		/* Gallery **/
		$(".bt_close", _wrapper).click(function () { scrollObjects($(".inner_page"), "x", 0, 500); });
		$(".inner_gallery", _wrapper).swipe({ triggerOnTouchEnd : true, swipeStatus : moveGallery, allowPageScroll:"horizontal", threshold:200 });
	}
	
	/* Dispose ******************************
	*****************************************/
	function killGallery ()
	{
		_wrapper.empty();
	}
	
	/* Parse Gallery ***********************
	****************************************/
	parseXML ();
}
