//
// ImageRotate
var ImageRotate = function(el){
    var self = this;
    self.current = 0;
    self.photos = [];
    self.el = {};
    self.opt = {
        duration: 7000,
        effectDuration: 1000
    };
    //
    // PHOTOS
    self.Photo = function(url){
        var photo = this;
        photo.url = url;
        return photo;
    };
    self.addPhoto = function(url){
        self.photos.push(new self.Photo(url));
        self.preLoad(url);
        if (self.photos.length == 1) {self.goNext()};
        return self;
    };
    self.preLoad = function(url){
        $('<img/>').attr('src', url);
        return self;
    };
    //
    // RUN
    self.goNext = function(){
        if (self.current + 1 >= self.photos.length) {
            self.current = 0;
        } else {
            ++self.current;
        };
        var photo = self.photos[self.current];
        var old = self.el.container.find('img')
            .fadeOut(self.opt.effectDuration, function(){
                old.remove();
            });
            $('<img/>')
                .attr('src', photo.url)
                .hide()
                .appendTo(self.el.container)
                .fadeIn(self.opt.effectDuration);
        return self;
    };
    self.start = function(){
        self.interval = setInterval(self.goNext, self.opt.duration);
        return self;
    };
    //
    // INIT
    self.init = function(el){
        self.el.container = $(el);
        return self;
    };
    return self.init(el);
};