/*
* share.js
*
* Contains function used to share a recording via Twitter, Facebook, Email, Save video informations( when just uploading)
*/
var screenjelly = function() {
    var _version = '1.0';
    var _config;
    
    return {
        version: function(){ return _version; },
        init: function(config) {
            _config = config;
        },

        tweetVideo: function(video_bid, status_text, description, published, successCallback, errorCallback, showSuccess) {
                        if(showSuccess === null) { showSuccess = true; }
                        if(description === null) { description = ''; }
                        if(published === null) { published = ''; }
                        ajaxCall({
                            type: 'POST',
                            async: false,
                            showSuccess: showSuccess,
                            url: _config.urls.tweet_video,
                            data: {
                                status: status_text,
                                video_bid: video_bid,
                                description: description,
                                published: published
                            },
                            cache: false,
                            onSuccess: function(data) { if(typeof successCallback == 'function') { successCallback(data); } },
                            onError: function (code, error) { if(typeof errorCallback == 'function') { errorCallback(code, error); } }
                        });
        },
                
        saveVideo: function(video_bid, description, published, successCallback, errorCallback, showSuccess) {
                        if(showSuccess === null) { showSuccess = true; }
                        ajaxCall({
                            type: 'POST',
                            async: false,
                            showSuccess: showSuccess,
                            url: _config.urls.save_video,
                            data: {
                             'video_bid' : video_bid,
                             'description' : description,
                             'published' : published
                            },
                            cache: false,
                            onSuccess: function(data){ if(typeof successCallback == 'function') { successCallback(data); } },
                            onError: function (code, error) { if(typeof errorCallback == 'function') { errorCallback(code, error); } }
                        });
        },
        
        emailVideo: function(video_bid, from, to, message, published, successCallback, errorCallback, showSuccess) { 
                        if(showSuccess === null) { showSuccess = true; }
                        ajaxCall({
                            type: 'POST',
                            async: false,
                            showSuccess: showSuccess,
                            url: _config.urls.email_video,
                            cache: false,
                            data: {
                                'from': from,
                                'to': to,
                                'video_bid': video_bid,
                                'note': message
                            },
                            onSuccess: function(data){ if(typeof successCallback == 'function') { successCallback(data); } },
                            onError: function (code, error) { if(typeof errorCallback == 'function') { errorCallback(code, error); } }
                         });
         },
         
         facebookPostVideo: function(video_bid, status_text, description, published, successCallback, errorCallback, showSuccess) { 
                        if(showSuccess === null) { showSuccess = true; }
                        if(description === null) { description = ''; }
                        if(published === null) { published = ''; }
                        ajaxCall({
                            type: 'POST',
                            async: false,
                            showSuccess: showSuccess,
                            url: _config.urls.facebook_post_video,
                            cache: false,
                            data: {
                                'video_bid': video_bid,
                                'description': description,
                                'status_text' : status_text,
                                'published' : published
                            },
                            onSuccess: function(data){ if(typeof successCallback == 'function') { successCallback(data); } },
                            onError: function (code, error) { if(typeof errorCallback == 'function') { errorCallback(code, error); } }
                         });
         }

    };
}(); // the parens here cause the anonymous function to execute and return