/*!
	reflection.js for jQuery v1.1
	(c) 2006-2011 Christophe Beyls <http://www.digitalia.be>
	MIT-style license.
 */
(function(a) {
	a.fn
			.extend({
				reflect : function(b) {
					b = a.extend({
						height : 1 / 3,
						opacity : 0.5
					}, b);

					return this
							.unreflect()
							.each(
									function() {
										var c = this;
										if (/^img$/i.test(c.tagName)) {
											function d() {
												var g = c.width, f = c.height, l, i, m, h, k;
												i = Math
														.floor((b.height > 1) ? Math
																.min(
																		f,
																		b.height)
																: f * b.height);
												l = a("<canvas />")[0];
												if (l.getContext) {
													h = l.getContext("2d");
													try {
														a(l).attr({
															width : g,
															height : i
														});
														h.save();
														h.translate(0, f - 1);
														h.scale(1, -1);
														h.drawImage(c, 0, 0, g,
																f);
														h.restore();
														h.globalCompositeOperation = "destination-out";
														k = h
																.createLinearGradient(
																		0, 0,
																		0, i);
														k
																.addColorStop(
																		0,
																		"rgba(255, 255, 255, "
																				+ (1 - b.opacity)
																				+ ")");
														k
																.addColorStop(
																		1,
																		"rgba(255, 255, 255, 1.0)");
														h.fillStyle = k;
														h.rect(0, 0, g, i);
														h.fill()
													} catch (j) {
														return
													}
												} else {
													if (!a.browser.msie) {
														return
													}
													l = a("<img />")
															.attr("src", c.src)
															.css(
																	{
																		width : g,
																		height : f,
																		marginBottom : i
																				- f,
																		filter : "FlipV progid:DXImageTransform.Microsoft.Alpha(Opacity="
																				+ (b.opacity * 100)
																				+ ", FinishOpacity=0, Style=1, StartX=0, StartY=0, FinishX=0, FinishY="
																				+ (i
																						/ f * 100)
																				+ ")"
																	})[0]
												}
												a(l).css({
													display : "block",
													border : 0
												});
												m = a(
														/^a$/i
																.test(c.parentNode.tagName) ? "<span />"
																: "<div />")
														.insertAfter(c).append(
																[ c, l ])[0];
												m.className = c.className;
												a
														.data(
																c,
																"reflected",
																m.style.cssText = c.style.cssText);
												a(m).css({
													width : g,
													height : f + i,
													overflow : "hidden"
												});
												c.style.cssText = "display: block; border: 0px; width: 70px; height: 70px";
												c.className = "reflected"
											}
											if (c.complete) {
												d()
											} else {
												a(c).load(d)
											}
										}
									})
				},
				unreflect : function() {
					return this.unbind("load").each(function() {
						var c = this, b = a.data(this, "reflected"), d;
						if (b !== undefined) {
							d = c.parentNode;
							c.className = d.className;
							c.style.cssText = b;
							a.removeData(c, "reflected");
							d.parentNode.replaceChild(c, d)
						}
					})
				}
			})
})(jQuery);

// AUTOLOAD CODE BLOCK (MAY BE CHANGED OR REMOVED)
jQuery(function($) {
	$("img.reflect").reflect({/* Put custom options here */});
});
