/* 
* Permet d'ajouter une ombre portée sur le text d'un conteneur
* Exemple d'utilisation: 
* //HTML
* <html xmlns="http://www.w3.org/1999/xhtml">
* <head>
*		<script type="text/javascript" src="/js/jquery.js"></script>
*		<script type="text/javascript" src="/js/jquery.texteffect.js"></script>
*   <script type="text/javascript">$(document).ready(function(){ $("#conteneur").textShadow();});</script>
*		<style type="text/css">#conteneur { text-shadow:#000 2px 2px 2px; }</style>
* </head>
* 	<body>
* 		<div id="conteneur">Texte avec ombre port&eacute;e</div>
* 	</body>
* </html>
*/

(function($){
	$.fn.textShadow = function(useroptions) {
		return this.each(function() {
			var obj = $(this);
			obj.removeTextShadow();
			var shadowarray = obj.css("text-shadow").split(" ");
			var sradi = parseInt(shadowarray[3], 10);
			var text = "<span class='jQshad'>" + obj.html() + "</span>";

			var padding = {
				left:parseInt(obj.css("padding-left"), 10),
				top:parseInt(obj.css("padding-top"), 10)
			};

			var defaults = {
				color: shadowarray[0],
				radius: sradi,
				xoffset: parseInt(shadowarray[1], 10)-1+(padding.left-sradi) + "px",
				yoffset: parseInt(shadowarray[2], 10)-1+(padding.top-sradi) + "px",
				opacity: 50
			};
			var options = $.extend(defaults, useroptions);
			options.color = (options.color.length == 4) ? options.color.replace(/#([0-9A-f])([0-9A-f])([0-9A-f])/i, '#$1$1$2$2$3$3') : options.color;
            var filtertext = "progid:DXImageTransform.Microsoft.Glow(Color="+options.color+",Strength="+(options.radius/6)+") progid:DXImageTransform.Microsoft.Blur(pixelradius="+options.radius+", enabled='true') progid:DXImageTransform.Microsoft.Alpha(opacity="+options.opacity+")";

			if($.browser.msie && options != "") {
				obj.css({"position":"relative","zoom":"1"}).append(text);
				obj.children("span.jQshad").css({
					"position":"absolute",
					"z-index":"-1",
					"zoom":"1",
					"left":options.xoffset,
					"top":options.yoffset,
					"color":options.color,
					"filter":filtertext,
					"-ms-filter":filtertext
				});
			}
		});
	};

	$.fn.removeTextShadow = function() {
		return this.each(function() {
			$(this).children("span.jQshad").remove();
		});
	};
})(jQuery);
