function grayscale(image, bPlaceImage, width_real, height_real)
{
  var myCanvas=document.createElement("canvas");
  var myCanvasContext=myCanvas.getContext("2d");

  var imgWidth=width_real;
  var imgHeight=height_real;
  // You'll get some string error if you fail to specify the dimensions
  myCanvas.width = imgWidth;
  myCanvas.height = imgHeight;
//  alert(imgWidth);
  myCanvasContext.drawImage(image,0,0);
  // this function cannot be called if the image is not rom the same domain.  You'll get security error
  var imageData=myCanvasContext.getImageData(0,0, imgWidth, imgHeight);
  for (i=0; i<imageData.height; i++)
  {
    for (j=0; j<imageData.width; j++)
    {
     var index=(i*4)*imageData.width+(j*4);
     var red=imageData.data[index];     
     var green=imageData.data[index+1];
     var blue=imageData.data[index+2];     
     var alpha=imageData.data[index+3];    
     var average=(red+green+blue)/3;      
        imageData.data[index]=average;     
        imageData.data[index+1]=average;
        imageData.data[index+2]=average;
        imageData.data[index+3]=alpha;          
   }
  }
  myCanvasContext.putImageData(imageData,0,0,0,0, imageData.width, imageData.height);
 // myCanvasContext.drawIMage(imageData,0,0);//,0,0, imageData.width, imageData.height);  
  
  if (bPlaceImage)
  {  
     var myDiv=document.createElement("div");  
     myDiv.appendChild(myCanvas);
     image.parentNode.appendChild(myCanvas);//, image);
  }
  return myCanvas.toDataURL();
}


function prepareMouseOverImage(image, originalURL, width_real)
{
   var ua = navigator.userAgent.toLowerCase();
   if (ua.indexOf("msie") != -1 && ua.indexOf("opera") == -1 && ua.indexOf("webtv") == -1) {
      image.onload=function(){return true;};
      image.onmouseover=function()
      {
      //alert("a");
         image.style['-ms-filter'] = "progid:DXImageTransform.Microsoft.BasicImage(grayscale=0)";
         image.style['filter'] = "progid:DXImageTransform.Microsoft.BasicImage(grayscale=0);";
      }
      image.onmouseout=function()
      {
//   alert(this.normalImage.src);
         image.style['-ms-filter'] = "progid:DXImageTransform.Microsoft.BasicImage(grayscale=1)";
         image.style['filter'] = "progid:DXImageTransform.Microsoft.BasicImage(grayscale=1);";
      }
      
   }else{
      if(width_real){
         var height_real = (width_real * image.height)/image.width;
                        height_real = Math.floor(height_real);
      }else{
         var width_real=image.width;
         var height_real=image.height;
      }
      image.mouseOverImage=originalURL;
      image.onload=function(){return true;};
      image.normalImage=grayscale(image, false, width_real, height_real);
      
      image.onmouseover=function()
      {
      //alert("a");
         this.src=this.mouseOverImage;
      }
      
      image.onmouseout=function()
      {
//   alert(this.normalImage.src);
         this.src=this.normalImage;
      }
      image.src=image.normalImage;   
   }
}
