﻿spider.indicator = function (selector, settings) {
    var _settings = {
        minDuration: 0,
        imageSrc: null
    };

    if (settings !== undefined) {
        j.extend(_settings, settings);
    }
    
    var _startTime;
    var _endTime;
    var _timeDifference;

    var _returnObject = {
        start: function () {
            _startTime = new Date().getMilliseconds();
            var addImg;
            if (_settings.imageSrc !== null) {
                addImg = "background-image:url('" + _settings.imageSrc + "');";
            }
            j(selector).wrap('<div class="se-edit-indicator-wrapper" style="' + addImg + '"></div>');
        },

        stop: function (callback) {
            _endTime = new Date().getMilliseconds();
            _timeDifference = _endTime - _startTime;

            if (_timeDifference > _settings.minDuration) {
                _settings.minDuration = _timeDifference;
            }

            setTimeout(function () {
                j(selector).unwrap();
                if (callback !== undefined) {
                    callback();
                }
            }, _settings.minDuration);
        }
    };
    return _returnObject;
};
