
//image queue vars
var queueImageLoaded 	= 0;
var queueImageCount  	= 0;

var queueVideoLoaded	= 0;
var queueVideoCount		= 0;

var queueElement		= false;


//check for image load delay
function checkPageLoadingDelay(ele)
{	
	//set defaults
	queueElement		= ele;
	queueImageLoaded	= 0;
	queueVideoLoaded	= 0;
	
	//get number of focus images
	queueImageCount 	= queueElement.find('.galleryblock .galleryblock_image a img').size();
		
	//if there are images
	if(queueImageCount > 0)
	{
		debug(queueDebug, "need to load "+queueImageCount+" image(s)");
		
		//set listeners
		queueElement.find('.galleryblock .galleryblock_image a img').load(function(){onQueueImageResponse($(this));});
		queueElement.find('.galleryblock .galleryblock_image a img').error(function(){onQueueImageErrorResponse($(this));});
	}
	
	//chekc for video objects
	queueVideoCount 	= queueElement.find('.videocontainer .video_wrap').size();
	
	//if there are any videos
	if(queueVideoCount > 0)
	{
		queueElement.find('.videocontainer .video_wrap').height(0);
		debug(queueDebug, "need to wait for "+queueVideoCount+" video object(s)");
		checkMediaQueue();
	}
	
	if(queueImageCount+queueVideoCount == 0)
	{
		//alert("no media items found");
		//if no images, and videos 
		//then its text, complete render
		debug(queueDebug, "no image or video object(s) to load");
		onQueueComplete();
	}
	else
	{
		//alert("media items found");
		onQueuedItems();
	}
}

function onQueueImageErrorResponse(img)
{
	debug(queueDebug, "error loading image ("+img.attr('src')+")");
	onQueueImageResponse(img);
}

//on image response
function onQueueImageResponse(img)
{
	img.unbind('load').unbind('error');
	if(img.attr('data-loaded') == undefined)
	{
		//another image loaded/failed
		queueImageLoaded++;
		var imgh = img.height();
		var imgw = img.width();
		
		debug(queueDebug, "gallery images "+queueImageLoaded+"/"+queueImageCount+" loaded, image ("+img.attr('src')+") dimensions: "+imgw+", "+imgh);
		//if(imgw > 0){img.css('max-width', imgw);}
		//if(imgh > 0){img.css('max-height', imgh);}
		
		//unbind listeners
		data(img, 'loaded', true);
		
		//check queue
		isQueueCompleted();
	}
}

function isQueueCompleted(force)
{
	if((queueImageCount == queueImageLoaded && queueVideoCount == queueVideoLoaded) || force)
	{
		if(queueImageCount > 0)
		{
			queueElement.find('.galleryblock .galleryblock_image a img').unbind('load').unbind('error');
		}
		onQueueComplete();
	}
	else
	{
		debug(queueDebug, "queue not finished: image ("+queueImageLoaded+"/"+queueImageCount+"), video ("+queueVideoLoaded+"/"+queueVideoCount+")");
	}
}

