(function($) {
	
//var $$,tID;
var $$;

$$ = $.fn.fqGallery = function(options) {
	var $options = {
		loadingText: 'loading...',
		delay: 300,
		fade: 200,
		onLoad: function(){}
	};
	$$.options = $.extend($options,options);
	if($('body #page #content').find('#fullscreen').length < 1) {
		$('body #page #content').prepend('<div id="fullscreen"><div><img src="/sites/fionaquinn.co.nz/themes/fionaquinn/images/loading.gif" class="init"></div></div>');
	}
	return this.each(function() {
		//$(this).addClass('fqGallery');	
		$$.preload($(this).find('li:first'));
	});

};

$$.next = function(element) {
	if (!element || element.length < 1 || element.siblings().length < 1) {
		return false;
	} else {
		//clearTimeout(tID);
		//element.siblings().find('a').css('display','none');
		$$.show(element.next().length > 0 ? element.next() : element.siblings(':first'));
	}
}

$$.prev = function(element) {
	if (!element || element.length < 1 || element.siblings().length < 1) {
		return false;
	} else {
		//clearTimeout(tID);
		//element.siblings().find('a').css('display','none');
		$$.show(element.prev().length > 0 ? element.prev() : element.siblings(':last'));
	}
}

$$.preload = function(element) {
	var anchor  = element.find('a');
	var image   = $(new Image());
	/*if (anchor.text().length > 0) {
		anchor.text(anchor.text().replace(/ /,'\xa0'));
	}*/
	element.addClass('loading');
	image.load(function() {
		element.removeClass('loading');
		//if(anchor.find('img').length > 0) {
			//element.css({background:'url('+anchor.find('img').attr('src')+')',backgroundRepeat:'no-repeat',backgroundPosition:'50% 50%'});
		//	element.css({backgroundColor:'transparent'});
		//}
		element.addClass('loaded').click(
			function() {
				$$.show($(this));
				return false;
			}
		);//.hover(
		//	function() {
		//		$(this).addClass('hover');
		//		$('.fsGallery li a').css('display','none');
		//		anchor.css({
		//			marginLeft: ((anchor.width()/2))*-1 +'px',
		//			marginTop: (anchor.height() + 20)*-1+'px'
		//		});
		//		clearTimeout(tID);
		//		tID = setTimeout(function() {
		//			if ($$.options.fade > 1) {
		//				anchor.css({marginLeft: ((anchor.width()/2)+10)*-1 +'px'});
		//				anchor.fadeIn($$.options.fade,function() {
		//					$(this).css({display:'block'});
		//				});
		//			} else {
		//				if ($.browser.msie) {
		//					anchor.css({marginLeft: ((anchor.width()/2)+10)*-1 +'px'});
		//				}
		//				anchor.css('display','block');
		//			}
		//		},$$.options.delay);
		//	},
		//	function() {
		//		$(this).removeClass('hover');
				//clearTimeout(tID);
		//		anchor.css('display','none');
		//	}
		//);
		if ($('#fullscreen img:not(.init)').length < 1) { $$.show(element); }
		if (element.next().length > 0) { $$.preload(element.next()); }
		$(this).remove();
		
	}).attr('src',anchor.attr('href'));
};

$$.c = function(e) {
	return $(document.createElement(e));
};

//$$.resize = function(image) {
	//var ratio = Math.max($(window).width()/image.width(),$(window).height()/image.height());
	//if ($(window).width() > $(window).height()) {
	//	image.css({width:image.width()*ratio,height:'auto'});
	//} else {
		//image.css({width:'auto',height:'100%'});
	//}
//};

$$.show = function(element) {
	element.siblings('.active').removeClass('active');
	element.addClass('active');
	var image = $(new Image).attr({
		src: element.find('a').attr('href'),
		alt: element.find('a').attr('title')
		//id:  element.find('a img').attr('id')
	});
	var nextImage = $(new Image).attr({
		src: (element.next().length > 0 ? element.next() : element.siblings(':first')).find('a').attr('href'),
		alt: (element.next().length > 0 ? element.next() : element.siblings(':first')).find('a').attr('title')
		//id:  element.find('a img').attr('id')
	});
	var prevImage = $(new Image).attr({
		src: (element.prev().length > 0 ? element.prev() : element.siblings(':last')).find('a').attr('href'),
		alt: (element.prev().length > 0 ? element.prev() : element.siblings(':last')).find('a').attr('title')
	});
	var left = $$.c('span').append(prevImage).addClass('left').click(function() { $$.prev(element); });
	var right = $$.c('span').addClass('right').append(nextImage).click(function() { $$.next(element); });
	$('#fullscreen').empty().append(image.css('display','block')).prepend(left).prepend(right);
	/*if(($.browser.msie && $.browser.version < 7) || $.browser.safari) {
		$(window).resize(function(){ $$.resize($('#fullscreen img:not(.init)')); });
		$(function($){$$.resize(image);});
	}*/
	$$.options.onLoad();
};

/*$.fn.hoverClass = function() {
	return this.hover(
		function() { $(this).addClass('hover') },
		function() { $(this).removeClass('hover') }
	);
}*/

})(jQuery);


jQuery(function($) {
	$().fqGallery();
});
