(function ($) {
    // Fetch the image
    $.fn.image = function (src, f) {
        return this.each(function () {
            var i = new Image();
            i.onload = f;
            i.src = src;
            this.appendChild(i);
        });
    }
    $.fn.questGallery = function (targetId) {
        var target = $(this),
            targetId = $(this).attr('id'),
            targetObj = "#" + targetId,
            loaderObj = "#" + targetId + "-loader",
            loader = '.loader';
        // Load First image
        var $imageNum = 0;
        var $maxslides = $(this).find('.inlinegallery li').size(); // Get number of images
        var imageurl = $(this).find('#' + targetId + '-link_0 a').attr('href');
        var imagecaption = $(this).find('#' + targetId + '-link_0 a').attr('title');
        var imagedescription = $(this).find('#' + targetId + '-link_0 a').attr('rel');
        var imageheight = $(this).find('#' + targetId + '-link_0 a').html();
		 
        var previousBtn = '.button_up'; // Previous slide button
        var nextBtn = '.button_down'; // Previous slide button
        // Inline gallery initial setup
        $(targetObj + ' .postgallery').append('<div id="' + loaderObj + '" class="loader"></div><div class="gallery_caption"></div><a href="#" class="button_up "></a><a href="#"  class="button_down"></a>');
        $(targetObj).find('.loader').image(imageurl, function () {});
        $(targetObj).find('.loader img').animate({
            'height': imageheight + 'px'
        },300, function(){
			   $('#wrapper').masonry()
			  });
        //$(".gallery_caption").html('<p><span class="captiontitle">' + imagecaption + '</span>' + imagedescription + '</p>' );
        //galleryCaptionIn();
        $('#' + targetId).find(nextBtn).click(function (e) {
            $imageNum++;
            if ($imageNum == $maxslides) {
                $imageNum = 0;
            }
            slide();
            return false;
        });
        $('#' + targetId).find(previousBtn).click(function (e) {
            $imageNum--;
            if ($imageNum < 0) {
                $imageNum = $maxslides - 1;
            }
            slide();
            return false;
        });
        // This is where the actual slide is done

        function slide() {
			   var previmageheight = $(this).parent().find('#' + targetId + '-link_' + $imageNum - 1 + ' a').html();
				imageheight = $('#' + targetId + '-link_' + $imageNum + ' a').html();
				var imageurl = $('#' + targetId + '-link_' + $imageNum + ' a').attr('href');
            $(targetObj).find('.button_up').fadeOut('fast');
						$(targetObj).find('.button_down').fadeOut('fast');
            $(targetObj).find('.loader').animate({
                'opacity': '0'
            }, 300, function () {
					 $(targetObj).animate({'height': imageheight + 'px'}, 300, function(){
						
					 document.getElementById(loaderObj).innerHTML = ''; // Clear image
					 
                $(targetObj).find('.loader').image(imageurl, function () {
										
                           $(targetObj).find('.loader').animate({
                            'opacity': '1'
                        }, 200);
							$(targetObj).find('.button_up').fadeIn('fast');
						$(targetObj).find('.button_down').fadeIn('fast');
                     $('#wrapper').masonry();
                });																	  
																											  
																											  
																											  });
               
            });
        }
/*function galleryCaptionOut(){

				$(".gallery_caption").animate({'marginBottom':-300},600);
	
	}

function galleryCaptionIn(targetId){
				
				imagecaption = $('#' + targetId + '-link_' + $imageNum + ' a').attr('title');
				imaimagedescriptiongecaption = $('#' + targetId + '-link_' + $imageNum + ' a').attr('rel');
				//imagecaption = $('.galleryImageLink_' + $imageNum + ' a').attr('title');
				//imagedescription = $('.galleryImageLink_' + $imageNum + ' a').attr('rel');
				if(imagecaption != ''){
				$(".gallery_caption").html('<p  class="captiontitle">' + imagecaption + '</p><p class="captiondesc">' + imagedescription + '</p>');	
				$(".gallery_caption").animate({'marginBottom':0 + 'px'},600);
				
				}
				//$(".gallery_nav").html(($imageNum + 1) +  '/' + $maxslides + ' <a href="#" id="opengallery"></a>' );	
				//initGalleryButtons();
	}*/
    };
})(jQuery);
jQuery(document).ready(function ($) {
    $('.questgallery').each(function () {
        $(this).questGallery();
    });
});
