var loadAction = window.ie?'load':'domready';
window.addEvent(loadAction,function(){ var ThumbPreview = new zxThumbPreview(); });

var zxThumbPreview = new Class({
    thumbs:null,
    options : {
        thumbs: '.ResList .PicImage img, .ResListDivList li .ResListDiv-picture-table img, .ResListDiv table img',
        src:{
            f:/_(s|t)\.jpg$/i,
            r:'_l.jpg'
        },
        divW: 'ThImgPrev',
        shift:{x:15,y:15}
    },

    setOptions:function(options){
        this.options = Object.extend(this.options, options || {} );
    },

    initialize:function(options){
        this.setOptions(options);

        this.thumbs = $$(this.options.thumbs);
        if (!this.thumbs) return null;

        $each(this.thumbs,function(img,i){
            img.addEvent('mouseenter',this.createPreview.bind(this));
            //img.addEvent('click',this.createPreview.bind(this));
            img.addEvent('mousemove', this.movePreview.bind(this));
            img.addEvent('mouseleave',this.destroyPreview.bind(this));
        },this);
    },

    createPreview:function(ev){
        ev = new Event(ev).stop();
        img = ev.target;

        var src = img.src.replace(this.options.src.f,this.options.src.r);
        var div = ($(this.options.divW) || new Element('div').addClass(this.options.divW).setProperties({'id':this.options.divW}));
        div.setStyles({'position':'absolute','top':'0px','left':'0px'});
        div.empty();
        var imgP = new Element('img').setProperties({'src':src,'title':img.title,'alt':img.alt}).injectInside(div);
        div.injectInside(document.body);
        if (window.ie6) $$('select').setOpacity(0);

        this.movePreview(ev);
    },

    movePreview:function(ev){
        ev = new Event(ev);
        if ( $(this.options.divW) ){
            var div = $(this.options.divW);
            var s = div.getSize().size;
            var w = {x:window.getSize().size.x,y:window.getSize().size.y+window.getSize().scroll.y};
            var x = ev.page.x + this.options.shift.x;
            var y = ev.page.y + this.options.shift.y;
            if (x+s.x>w.x){ x = ev.page.x - this.options.shift.x - s.x; }
            if (y+s.y>w.y){ y = ev.page.y - this.options.shift.y - s.y; }
            div.setStyles({'top':y+'px','left':x+'px'});
        }
    },

    destroyPreview:function(ev){
        if ( $(this.options.divW) ) $(this.options.divW).remove();
        if (window.ie6) $$('select').setOpacity(1);
    }
});