(function () {
     var CLASS_NAME = "btn";
     var SUFFIX     = "_o";

      addEvent(window, "load", function() {
         var list = getImageFilterByClass(CLASS_NAME);
         for (var i = 0, len = list.length; i < len; i++) {
             var e = list[i];

             e.orig_src = e.src;
             e.ol_src = e.orig_src.replace(/(?:_sel)?\.(gif|jpg|png)/, SUFFIX+'.$1');

             document.createElement("img").src = e.ol_src;

             addEvent(e, "mouseover", function (evt) { this.src = this.ol_src; });
             addEvent(e, "mouseout", function (evt) { this.src = this.orig_src; });
         }
     });

     function addEvent(ele, name, fun) {
         if (ele.addEventListener) {
             ele.addEventListener(name, fun, false);
         } else {
             ele.attachEvent("on"+name, function() { fun.call(ele, window.event); });
         }
     };

     function getImageFilterByClass(className) {
         var list = [];
         var imgs = document.getElementsByTagName("img");
         var inputs = document.getElementsByTagName("input");
         var ln = (imgs.length < inputs.length)? inputs.length : imgs.length;
         for (var i = 0; i < ln; i++) {
             if(imgs[i] && (" "+imgs[i].className+" ").indexOf(" "+className+" ") != -1) {
                 list.push(imgs[i]);
             }
             if ( inputs[i]
               && inputs[i].type == 'image'
               && (" "+inputs[i].className+" ").indexOf(" "+className+" ") != -1) {
                 list.push(inputs[i]);
             }
         }
         return list;
     };
})();

