﻿SocialNetworkingToolbar = function() { };

SocialNetworkingToolbar.prototype.INSTANCE_GUID = null;
SocialNetworkingToolbar.prototype.INSTANCE_TITLE = null;
SocialNetworkingToolbar.prototype.INSTANCE_URL = null;

SocialNetworkingToolbar.prototype.TOOLBAR_LINKS = null;
SocialNetworkingToolbar.prototype.TOOLBAR_PREFIX = 'snt-';
SocialNetworkingToolbar.prototype.TOOLBAR_OPACITY_OFF = '1.0';
SocialNetworkingToolbar.prototype.TOOLBAR_OPACITY_ON = '1.0';

SocialNetworkingToolbar.prototype.LINK_FORMAT_DELICIOUS = 'http://del.icio.us/post?url={0}&title={1}';
SocialNetworkingToolbar.prototype.LINK_FORMAT_DIGG = 'http://digg.com/submit?url={0}&title={1}';
SocialNetworkingToolbar.prototype.LINK_FORMAT_REDDIT = 'http://reddit.com/submit?url={0}&title={1}';
SocialNetworkingToolbar.prototype.LINK_FORMAT_FACEBOOK = 'http://www.facebook.com/sharer.php?u={0}';
SocialNetworkingToolbar.prototype.LINK_FORMAT_STUMBLEUPON = 'http://www.stumbleupon.com/submit?url={0}&title={1}';
SocialNetworkingToolbar.prototype.LINK_FORMAT_TWOCOLLAB = 'http://www.2collab.com/bookmark/addremote?url={0}&title={1}';

SocialNetworkingToolbar.prototype.init = function() {
    var _links = this.TOOLBAR_LINKS.split(',');
    var _scope = this;

    for (var i = 0; i < _links.length; i++) {
        this.link_register(this.TOOLBAR_PREFIX + _links[i] + '-' + this.INSTANCE_GUID);
    }
};

SocialNetworkingToolbar.prototype.register = function() {
    this.INSTANCE_GUID = arguments[0];
    this.TOOLBAR_LINKS = 'delicious,digg,reddit,facebook,stumbleupon,twocollab';
};

SocialNetworkingToolbar.prototype.link_register = function() {
    var scope = this;
    var obj = $(arguments[0]);

    var link_parts = obj.id.split('-');
    var link_features = 'directories=0,height=420,location=0,menubar=0,status=0,titlebar=0,toolbar=0,width=840';

    var social_url = eval("this.LINK_FORMAT_" + link_parts[1].toUpperCase());
    social_url = social_url.format(this.INSTANCE_URL, this.INSTANCE_TITLE);

    Event.addListener(obj, 'click', function() {
        Event.preventDefault(arguments[0]);
        window.open(social_url, null, link_features, false);
    });
};

String.prototype.format = function() {
    var pattern = /\{\d+\}/g;
    var args = arguments;
    return this.replace(pattern, function(capture) {
        return args[capture.match(/\d+/)];
    });
};