  function MM_swapImgRestore() { //v3.0
    var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
  }
  function MM_preloadImages() { //v3.0
    var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
  }

  function MM_findObj(n, d) { //v4.01
    var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
    if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
    for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
    if(!x && d.getElementById) x=d.getElementById(n); return x;
  }

  function MM_swapImage() { //v3.0
    var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
     if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
  }

  (function($){
    $.fn.extend({
      imghover: function(opt){
        return this.each(function() {
          opt = $.extend({
              prefix: '',
              suffix: '_o',
              src: '',
              btnOnly: true,
              fade: false,
              fadeSpeed: 500
            }, opt || {});

          var node = $(this);
          if(!node.is('img')&&!node.is(':image')){
            var sel = 'img,:image';
            if (opt.btnOnly) sel = 'a '+sel;
            node.find(sel).imghover(opt);
            return;
          }

          var orgImg = node.attr('src');

          var hoverImg;
          if(opt.src){
            hoverImg = opt.src;
          }else{
            hoverImg = orgImg;
            if(opt.prefix){
              var pos = hoverImg.lastIndexOf('/');
              if(pos>0){
                hoverImg = hoverImg.substr(0,pos-1)+opt.prefix+hoverImg.substr(pos-1);
              }else{
                hoverImg = opt.prefix+hoverImg;
              }
            }
            if(opt.suffix){
              var pos = hoverImg.lastIndexOf('.');
              if(pos>0){
                hoverImg = hoverImg.substr(0,pos)+opt.suffix+hoverImg.substr(pos);
              }else{
                hoverImg = hoverImg+opt.suffix;
              }
            }
          }

          if(opt.fade){
            var offset = node.offset();
            var hover = node.clone(true);
            hover.attr('src', hoverImg);
            hover.css({
              position: 'absolute',
              left: offset.left,
              top: offset.top,
              zIndex: 1000
            }).hide().insertAfter(node);
            node.mouseover(
              function(){
                var offset=node.offset();
                hover.css({left: offset.left, top: offset.top});
                hover.fadeIn(opt.fadeSpeed);
                node.fadeOut(opt.fadeSpeed,function(){node.show()});
              }
            );
            hover.mouseout(
              function(){
                node.fadeIn(opt.fadeSpeed);
                hover.fadeOut(opt.fadeSpeed);
              }
            );
          }else{
            node.hover(
              function(){node.attr('src', hoverImg)},
              function(){node.attr('src', orgImg)}
            );
          }
        });
      }
    });
  })(jQuery);

