ShareTool = function() {

    var _commonGetParams = 'format=jsonp&jsonParams[id]={id}&callbackName={callback}';
    var _stockShareUrl = 'http://stock-manager.pho.to/share.php?img={imageUrl}&thumb={thumbUrl}&' + _commonGetParams;
    var _photoShareUrl = 'http://twit.pho.to/add.php?url={imageUrl}&' + _commonGetParams;
    var _items = {};

    var _shareStock = function(id) {
        var pIn = _items[id]["in"];
        var url = _stockShareUrl.supplant({
            imageUrl : pIn.imageUrl,
            thumbUrl : pIn.thumbUrl,
            id       : id,
            callback : 'ShareTool.stockCallback'
        })
        $.getScript(url);
        /*$.ajax({
            url: url,
            dataType: 'jsonp',
            jsonp: 'jsonp',
            jsonpCallback: 'ShareTool.stockCollback'
        })*/
    }

    var _sharePhoto = function(id) {
        var pIn = _items[id]["in"];
        var pOut = _items[id]["out"];
        var url = _photoShareUrl.supplant({
            imageUrl: pOut.imageUrl,
            id      : id,
            callback: 'ShareTool.photoCallback'
        });
        $.getScript(url);
    }

    var _success = function(id) {
        var pIn = _items[id]["in"];
        var pOut = _items[id]["out"];

        if (pIn.success) {
            pIn.success(pOut)
        }

        delete _items[id];
    }

    var _error = function(id) {
        var pIn = _items.id["in"];
        var pOut = _items.id["out"];

        if (pIn.error) {
            pIn.error();
        }

        delete _items[id];
    }

    return {

        share: function(params) {
            var id = '' + Math.round(100000 * Math.random());
            _items[id] = {
                "in": params,
                "out": {}
            };
            _shareStock(id);
        },

        stockCallback: function(params) {
            var item = _items[params.id];
            item.out.imageUrl = params.imageUrl;
            item.out.thumbUrl = params.thumbUrl;
            _sharePhoto(params.id);
        },

        photoCallback: function(params) {
            var item = _items[params.id];
            item.out.twitUrl = params.twitUrl;
            item.out.sharedUrl = params.sharedUrl;
            item.out.shortUrl = params.shortUrl;
            item.out.code = params.code;
            _success(params.id);
        }
    }
}();

