var slider = {
    slidesNum: 0,
    slidesLoaded: 0,
    cur: 0,
    ready: false,
    timeout: null,
    useAuto: false,
    delay: 3000,
    
    init: function(data) {
        if ($.isArray(data)) {
            
        } else {
            var thumbs = [];
            
            $(data).children('div').each(function(i,v) {           
               /* $(v).find('img').load(function() {
                    slider.slidesLoaded++;
                    slider.checkReady();
                });*/
                
                if (i != 0) {
                    $(v).hide();
                }
                
                var src = $(v).find('img').attr('src').replace(/x_(\w+)/g, 'b_$1'); //(i != 0) ? $(v).find('img').attr('src').replace(/x_(\w+)/g, 'b_$1') : $(v).find('img').attr('src');
                /*
                thumbs.push('<div id="thumb'+ i +'" class="slider_thumb">\n\
                               <a onclick="return slider.go('+ i +')">'+ ((i != 0) ? '' : '') + '<img src="'+ src + '" alt="" /></a>\n\
                             </div>');*/
                
                $(v).attr('id', 'slider_slide'+ i)
                    .addClass('image');
                
                slider.slidesNum++;
            });
            
            $('#slider').show();
            $('<div id="slider_thumbs">'+ thumbs.join('') + '</div>').appendTo('#slider');
            
            slider.slidesLoaded++;
            slider.checkReady();
        }
    },
    addControls: function() {
        var hpx = Math.floor($('#slider_slide0').find('img').outerHeight() / 2);
        
        $('<div class="slider_arrow left"><a onclick="return slider.prev()"></a></div>').appendTo('#slider');
        $('<div class="slider_arrow right"><a onclick="return slider.next()"></a></div>').appendTo('#slider');
        
        //$('div.slider_arrow').css('top', hpx);
    },
    go: function(idx) {
        $('#slider_slide'+ slider.cur).hide();
        $('#slider_slide'+ idx).show();
        
        //$('#thumb'+ slider.cur).children('a').append('<span class="gray"></span>');
        //$('#thumb'+ idx).children('a').children('span.gray').remove();
        //$('#thumb'+ slider.cur).find('img').attr('src', $('#thumb'+ slider.cur).find('img').attr('src').replace(/x_(\w+)/g, 'b_$1'));
        //$('#thumb'+ idx).find('img').attr('src', $('#thumb'+ idx).find('img').attr('src').replace(/b_(\w+)/g, 'x_$1'));
        
        slider.cur = idx;
    },
    prev: function() {
        var idx = 0;
        
        if (slider.cur == 0) idx = slider.slidesNum - 1;
        else idx = slider.cur - 1;
        
        if (slider.useAuto) {
            clearTimeout(slider.timeout);
            slider.timeout = setTimeout(function() {
                slider.prev();
            }, slider.delay);
        }
        
        slider.go(idx);
    },
    next: function() {
        var idx = 0;
        
        if (slider.cur == slider.slidesNum - 1) idx = 0;
        else idx = slider.cur + 1;
        
        if (slider.useAuto) {
            clearTimeout(slider.timeout);
            slider.timeout = setTimeout(function() {
                slider.next();
            }, slider.delay);
        }
        
        slider.go(idx);
    },
    run: function() {
        if (slider.useAuto && slider.ready) {
            setTimeout(function() {
                slider.next();
            }, slider.delay);
        } else setTimeout(function() {
            slider.run();
        }, 1000);
    },
    checkReady: function() {
        //if (slider.slidesNum == slider.slidesLoaded || slider.slidesNum == slider.slidesLoaded - 1) {
        if (slider.slidesLoaded > 0) {
            slider.addControls();
            slider.ready = true;
        }
    }
};
