(function($) { Drupal.behaviors.image_caption = { attach: function (context, settings) { $("img.caption:not(.caption-processed)").each(function(i) { var imgwidth = $(this).width() ? $(this).width() : false; var imgheight = $(this).height() ? $(this).height() : false; // Get caption from title attribute var captiontext = $(this).attr('title'); // Get image alignment and style to apply to container if($(this).attr('align')){ var alignment = $(this).attr('align'); $(this).css({'float':alignment}); // add to css float $(this).removeAttr('align'); }else if($(this).css('float')){ var alignment = $(this).css('float'); }else{ var alignment = 'normal'; } var style = $(this).attr('style') ? $(this).attr('style') : ''; // Reset img styles as are added to container instead //$(this).removeAttr('width'); //$(this).removeAttr('height'); $(this).css('width', ''); $(this).css('height', ''); $(this).removeAttr('align'); $(this).removeAttr('style'); //Display inline block so it doesn't break any text aligns on the parent contatiner $(this).wrap(""); $(this).parent().addClass('image-caption-container-' + alignment); // Add dimensions, if available if(imgwidth){ $(this).width(imgwidth); $(this).parent().width(imgwidth); } if(imgheight){ $(this).height(imgheight); } // Append caption $(this).parent().append("" + captiontext + ""); // Add class to prevent duplicate caption adding $(this).addClass('caption-processed'); }); } }; })(jQuery);