var __loaded_ts = (new Date()).getTime();
var __slideshow_t = null;
var __clock_t = null;
var __SLIDESHOW_INTERVAL = 7000; /* 20 seconds */
var __first_load = true;
var __play_anim = true; 
var __roll_speed = 750;

/***********************************************************************
* Global slideshow function 
***********************************************************************/ 
var __slideshow_preinit = function(container, ilist, time,sm){
	var tot = ilist.length;
	var c = 0;
	var preloaded = Array();

	jQuery('.slideshow-wrap').addClass('loader');

	for (var i = 0 ; i < ilist.length; ++i){
		(function(){
			var img = new Image();
			img.src = ilist[i]['image_url'];
			img.alt = ilist[i]['title'];
			ilist[i]['preload'] = img;
			jQuery(img).one("load",
				function(){
					++c;
					jQuery(img).css('display', 'none');
					jQuery('body').append(jQuery(img));
					if (c == tot){
						__slideshow_init(container, ilist, time, sm);
					}
				}
			).each(function(){
				if(this.complete) jQuery(this).trigger("load");
			});
		})();
	}
}
var __slideshow_init = function(c,d,t,sm){
	var ilist = Array();
	var _t = null; 
	var cur = -1;
	try {
		if (jQuery(c).length && (d.length > 1)){
			/* show loader */	
			jQuery(c).html('');
			//jQuery(sm).html('');
			for (var i = 0 ; i < d.length; ++i){
				(function(){
					var s = d[i]['image_url'];
					var title = d[i]['title'];
					var description = d[i]['description'];
					var im = d[i]['preload'];
					var id = d[i]['id'];
					jQuery(c).prepend('<div class="data-group" id="data-group-' + i.toString() + '"></div>');
					//jQuery(im).attr('class', 'pic').attr('id', 'pic-' + i.toString()).css('display', 'inline').css('top', '-' + jQuery(im).height().toString());
					jQuery(im).attr('class', 'pic').attr('id', 'pic-' + i.toString()).css('display', 'inline');
					jQuery('#data-group-' + i.toString()).prepend(jQuery(im));
					if (i > 0){
						//jQuery('#data-group-' + i.toString()).css('left', '-' + jQuery(im).width().toString() + 'px');
					}
					ilist[ilist.length] = im; 
					jQuery(im).data('title', title);
					//jQuery(sm).append('<li class="' + id + '">' + d[i]['title'] + '</li>');
					jQuery('#data-group-' + i.toString()).data('id', id);

					//jQuery(sm).bind( 'mouseenter', function(){ jQuery(this).addClass('over'); });
					//jQuery(sm).bind( 'mouseleave', function(){ jQuery(this).removeClass('over'); });

					jQuery('li.' + id).bind(
						'mouseenter',
						function(){
							return;
							__play_anim = false; 
							jQuery(c).append('<div class="fade_display d-' + id + '"><img src="' + im.src + '" /></div>');
							jQuery(c + ' .fade_display.d-' + id).fadeIn('fast');
						}
					);
					jQuery('li.' + id).bind(
						'mouseleave',
						function(){
							return;
							jQuery(c + ' .fade_display.d-' + id).stop();
							jQuery(c + ' .fade_display.d-' + id).fadeOut('fast', function(){
								jQuery(c + ' .fade_display.d-' + id).remove();
							});
							__play_anim = true;
						}
					);
				})();
			}
			//jQuery(sm + ' li.over').removeClass('over');
			var id = jQuery('#data-group-0').data('id').toLowerCase();
			//jQuery(sm + ' li.' + id).addClass('over');
			if (ilist.length){
				var f = function(){
					if (jQuery('.slideshow-wrap.loader').length > 0){
						jQuery('.slideshow-wrap').removeClass('loader');
					}
					var n = cur;
					var n2 = cur + 1; 
					if ((cur + 1) >= ilist.length) { cur = n2 = 0; } else { ++cur; }


					/* fade out */
					if (n >= 0){
					var h = jQuery('#data-group-' + n.toString() + ' .pic').height();
					/*jQuery('#data-group-' + n.toString()).css('top', '0px');*/
					jQuery('#data-group-' + n.toString()).stop(); 
					jQuery('#data-group-' + n.toString()).fadeOut();
					//jQuery('#data-group-' + n.toString()).animate({'top' : h.toString() + 'px'}, __roll_speed, 'easeOutCirc', function(){ if (jQuery.browser.msie) this.style.removeAttribute('filter'); });

					}
					//jQuery(sm + ' li.over').removeClass('over');
					var id = jQuery('#data-group-' + n2.toString()).data('id').toLowerCase();
					//jQuery(sm + ' li.' + id).addClass('over');

					/* fade in */
					h = jQuery('#data-group-' + n2.toString() + ' .pic').height();
					jQuery('#data-group-' + n2.toString()).stop(); 
					jQuery('#data-group-' + n2.toString()).fadeIn();
					//jQuery('#data-group-' + n2.toString()).css('top', '-' + h.toString() + 'px').css('display', 'inline').css('left', '0px');
					//jQuery('#data-group-' + n2.toString()).animate({'top' : '0px'}, __roll_speed, 'easeOutCirc', function(){ if (jQuery.browser.msie) this.style.removeAttribute('filter'); });
				};
				if (ilist.length > 1) { 
					if (__slideshow_t != null) { clearInterval(__slideshow_t); }
					cur = 0;  
					_slideshow_t = _t = setInterval(
						function(){ if (__play_anim) { f() }}, t
					); 
				} 
			}
		}
	} catch(ex) { alert(ex.message); };
}

/***********************************************************************
* Initialize 
***********************************************************************/ 
var documentReady = function(){
	//var XML_SRC = "data.xml";
	var XML_SRC = "data.xml";

	/***********************************************************************
	* Initialize images from xml 
	***********************************************************************/ 
	jQuery.ajax({
		type: 'GET',
		data: '',
		url: XML_SRC,
		dataType: 'xml',
		error: function() { alert('There was an error initializing the images'); },
		success: function(xml, textStatus) {
			var ilist = new Array();
			__first_load = false;	
			jQuery(xml).find('item').each(
				function() {
					var fiu = jQuery(this).find('image_url').text();
					if (typeof fiu != "undefined" && fiu != null && fiu.length){
						var imgData = {};
						imgData['image_url'] = fiu;
						imgData['title'] = jQuery(this).find('title').text();
						imgData['id'] = jQuery(this).find('id').text();
						imgData['description'] = jQuery(this).find('description').text();
						ilist[ilist.length] = imgData;
					}
				}
			)
			if (ilist.length){ __slideshow_preinit('#slideshow_container', ilist, __SLIDESHOW_INTERVAL, '#slideshow_menu'); }	
		}
	});
}
jQuery(document).ready(
	function(){
		if (jQuery('#page_home').length > 0){
			documentReady();
		}
	}
);

