function toGrayScale(im){
	im.style.cursor='pointer';
    if(document.createElement("canvas").getContext){
		if(im.gs){
			im.src=im.gs;
			return;
		}
        var ref = document.createElement("canvas");
        ref.width = im.width || im.offsetWidth;
        ref.height =im.height  || im.offsetHeight;
        var context = ref.getContext("2d");
        context.drawImage(im,0,0);
        var iData=context.getImageData(0,0,  ref.width, ref.height);
        var data   = iData.data;
        var length = data.length;
          for (var i = 0;i<length;i+=4) {
            var average = (data[i]+data[i+1]+data[i+2])/3;
              data[i]   = average;
              data[i+1] = average;
              data[i+2] = average;
            
          }
          context.putImageData(iData, 0, 0);
		  im.src=im.gs=ref.toDataURL();
    }else{
        im.style.filter = 'progid:DXImageTransform.Microsoft.BasicImage(grayscale=1)';
    }
    
}
