$(function(){
	initXMLGallery();
});

function initXMLGallery() {
	// gallery options
	var _activeClass = 'active';
	var _autoSlide = false;
	var _switchTime = 5000;
	var _fadeSpeed = 500;

	// xml gallery init
	$('ul.fade-gal').each(function(_groupIndex){
		var _holder = $(this);
		var _xmlSource = _holder.attr('title');
		_holder.removeAttr('title');

		// ajax XML request
		_holder.empty();
		$.ajax({
			url: _xmlSource,
			dataType: ($.browser.msie) ? 'text' : 'xml',
			success: function(xmlData){
				var _galleryData;
				if (typeof xmlData == 'string') {
					_galleryData = new ActiveXObject('Microsoft.XMLDOM');
					_galleryData.async = false;
					_galleryData.loadXML(xmlData);
				} else {
					_galleryData = xmlData;
				}

				//generate gallery from XML
				$(_galleryData).find('item').each(function(){
					var _item = $(this);
					var _id = $(this).find('id').text();
					var _rank = $(this).find('rank').text();
					var _image = $(this).find('image').text();
					var _link = $(this).find('link').text();
					var _target = $(this).find('target').text();
					var _text = $(this).find('text').text();

					var img = new Image();
					img.src = _image;
					_holder.append('<li><img src="'+_image+'" /><div class="visual-text"><p>'+ _text +'</p></div></li>');

				});

				_holder.each(function(){
					var _this = $(this);
					var _list = $('> li', _this)

					var _a = _list.index(_list.filter('.active:eq(0)'));
					if(_a == -1) _a = 0;
					_list.removeClass('active').hide().css({'opacity': 0}).eq(_a).show().addClass('active').css('opacity', 1).css({'opacity': 'auto'});
					var _t;
					if (_switchTime){
						_t = setTimeout(function(){
							if(_a < _list.length - 1) changeEl(_a + 1);
							else changeEl(0);
						}, _switchTime);
					}
					function changeEl(_ind){
						if(_t) clearTimeout(_t);
						if(_ind != _a){
							_list.eq(_a).removeClass('active').css({display:'block'}).animate({opacity: 0}, {queue:false, duration:_fadeSpeed, complete: function(){
								$(this).hide();
							}});
							_list.eq(_ind).addClass('active').css({opacity:0,display:'block'}).animate({opacity: 1}, {queue:false, duration:_fadeSpeed, complete: function(){
								$(this).css('opacity','auto');
								_a = _ind;
								if (_switchTime){
									_t = setTimeout(function(){
										if(_a < _list.length - 1) changeEl(_a + 1);
										else changeEl(0);
									}, _switchTime);
								}
							}});
						}
					}
				});
			},
			error: function() {
				alert('AJAX Error!');
			}
		});
	});
}

