var Reflet = {
	
add: function(image) {
		
	Reflet.init(image);

	var d = document.createElement('div');
	var p = image;
	
	var classes = p.className.split(' ');
	var newClasses = '';
	for (j=0;j<classes.length;j++) {
		if (classes[j] != "reflet") {
			if (newClasses) {
				newClasses += ' '
			}
			
			newClasses += classes[j];
		}
	}
	
	d.className = newClasses;
	p.className = 'reflected';
	
	
	var refletHeight = Math.floor(p.height*0.5);
	var divHeight = Math.floor(p.height*(1.5));
	var refletWidth = p.width;
	
	d.style.cssText = p.style.cssText;
	p.style.cssText = 'vertical-align: bottom';			

	
	if (jQuery.browser.msie && !window.opera) {
	  

                
		var reflect = document.createElement('img');
		reflect.src = p.src;
		reflect.style.width = refletWidth+'px';
		reflect.style.display = 'block';
		reflect.style.height = p.height+"px";
		
		reflect.style.marginBottom = "-"+(p.height-refletHeight)+'px';
		reflect.style.filter = 'flipv progid:DXImageTransform.Microsoft.Alpha(opacity=50, style=1, finishOpacity=0, startx=0, starty=0, finishx=0, finishy=50)';
		
		d.style.width = refletWidth+'px';
		d.style.height = divHeight+'px';
		p.parentNode.replaceChild(d, p);
		
		d.appendChild(p);
		d.appendChild(reflect);
	
	} 
	else
	{
		
	
		var reflect = document.createElement('canvas');
		if (reflect.getContext) {
						
			var context = reflect.getContext("2d");
		
			reflect.style.height = refletHeight+'px';
			reflect.style.width = refletWidth+'px';
			reflect.height = refletHeight;
			reflect.width = refletWidth;
			
			d.style.width = refletWidth+'px';
			d.style.height = divHeight+'px';
			
			p.parentNode.replaceChild(d, p);
			
			d.appendChild(p);
			d.appendChild(reflect);
			
			context.save();
			
			context.translate(0,image.height-1);
			context.scale(1,-1);
			
			context.drawImage(image, 0, 0, refletWidth, image.height);

			context.restore();
			
			context.globalCompositeOperation = "destination-out";
			var gradient = context.createLinearGradient(0, 0, 0, refletHeight);
			
			gradient.addColorStop(1, "rgba(255, 255, 255, 1.0)");
			gradient.addColorStop(0, "rgba(255, 255, 255, 0.5)");
			context.fillStyle = gradient;
			context.rect(0, 0, refletWidth, refletHeight*2);
			context.fill();
		}
	}
},

init : function(image) {
	if (image.className == "reflected") {
		image.className = image.parentNode.className;
		image.parentNode.parentNode.replaceChild(image, image.parentNode);
	}
}
}
function ajoutReflet() {
	var rimages = jQuery(".reflet").toArray();
	for (i=0;i<rimages.length;i++) {
		Reflet.add(rimages[i]);
	}
}

