/* 

	jQuery addCaption plugin

	Copyright 2008 by Paul Boutin 

	Licensed under the Creative Commons Attribution 3.0 license

	Version 1.0.0

	http://www.redsgn.com/category/jquery/

	

*/

(function($){

 $.fn.addcaption = function(options) {

  var defaults = {

	  bgcolor:'#fff',

	  fontcolor:'#333',

	  font:'Arial, Helvetica, sans-serif',

	  fontsize:'10px;',

	  margin:'margin:5px;',

	  align:'display:block;float:left;',

	  width:'width:auto;',

	  border:'border:1px solid #666666;'

  };

  var options = $.extend(defaults, options);

    

  return this.each(function() {

   if($(this).attr('alt')){

	   var margin = options.margin;

	   if($(this).attr('vspace') != -1 && $(this).attr('hspace') != -1){

	   		margin = 'margin:'+$(this).attr('vspace')+'px '+$(this).attr('hspace')+'px;';

			$(this).removeAttr('vspace').removeAttr('hspace');

	   }else if($(this).attr('vspace') != -1){

			margin = 'margin:'+$(this).attr('vspace')+'px 0px;';

			$(this).removeAttr('vspace');

	   }else if($(this).attr('hspace') != -1){

			margin = 'margin:2px '+$(this).attr('hspace')+'px;';

			$(this).removeAttr('hspace');

	   }

	   var align = options.align;

	   if($(this).attr('align') && ($(this).attr('align').toLowerCase() == 'right' || $(this).attr('align').toLowerCase() == 'left')){

	   		align = 'display:block;float:'+$(this).attr('align').toLowerCase()+';';

	   }

	   if($(this).attr('align')){

	   		$(this).removeAttr('align');

	   }

	   var width = options.width;

	   if($(this).attr('width')){

	   		width = 'width:'+$(this).attr('width')+'px;';

	   }

	   var border = options.border;

	   if($(this).attr('border')){

	   		border = 'border:'+$(this).attr('border')+'px solid #000;';

			$(this).removeAttr('border');

	   }

	   $(this).attr('style','margin:auto;border:none;');

	   $(this).wrap('<span style="'+border+'background-color:#fff;'+align+''+margin+'padding:0px;text-align:center;'+width+'"></span>');   

	   $(this).parent('span').append('<span style="display:block;text-align:center;padding:2px;background-color:#fff;color:#333;font-family:'+options.font+';font-size:'+options.fontsize+'width:'+(parseInt($(this).attr('width'))-4)+'px;">' + $(this).attr('alt') + '</span>');

   	   if($(this).parent('span').parent('a')){

			if($.browser.msie){

				$(this).parent('span').attr('style',$(this).parent('span').attr('style') + 'cursor:hand;');

				$(this).parent('span').parent('a').attr('style','text-decoration:none;cursor:hand;');

			}else{

				$(this).parent('span').attr('style',$(this).parent('span').attr('style') + 'cursor:pointer;');

				$(this).parent('span').parent('a').attr('style','text-decoration:none;cursor:pointer;');

			}

	   }

	}

  });

 };

})(jQuery);
