﻿/*

TODO

* tiny URL things
* email


*/

var Share = (function () {


    var isUrl = function (s) {
        var regexp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/
        return regexp.test(s);
    }

    var assertLocation = function (url) {
        if (!url)
            return location.href;

        return url;
    };

    var assertTitle = function (title) {
        if (!title)
            return document.title;

        return title;
    };

    var shareOnTwitter = function (status) {
        window.open('http://twitter.com/home?status=' + escape(status), 'twitter');
    };

    var shareOnFacebook = function (url, title) {

        var turl = 'http://www.facebook.com/sharer.php?u=' + escape(assertLocation(url));
        if (title) {
            turl += "&t=" + escape(assertTitle(title));
        }

        window.open(turl, 'Facebook');
    };


    return {


        toTwitter: function (urlOrStatus) {

            var status = urlOrStatus;
            if (isUrl(urlOrStatus)) {
                status = "Check this out " + assertLocation(urlOrStatus) + " (via @ilovefootballoz)";
            }
            shareOnTwitter(status);
        },

        //http://www.stumbleupon.com/submit?url=http://www.lasoo.com.au%26title%3DThe%2BArticle%2BTitle
        toStumbleUpon: function (url, title) {

            var computedUrl = Broadcast.assertLocation(url)
            if (computedUrl.indexOf('?') == -1) computedUrl += '?';
            computedUrl += '&title=' + assertTitle(title);
            window.open('http://www.stumbleupon.com/submit?url=' + escape(computedUrl), 'StumbleUpon');
        },

        // http://www.facebook.com/sharer.php?u=http%3A%2F%2Fwww.lasoo.com.au%2Fportal%2Fofferdetails%2Fthe_donut_pillow%2F12404603931443%3FNtt%3Ddonut%26Ntk%3DPrimary%26N%3D0%26source%3Dsearch&t=Lasoo.com.au%20-%20Search%20offers%20and%20catalogues%20from%20your%20local%20retail%20stores

        toFacebook: function (url, title) {
            shareOnFacebook(url, title);
            //window.open('http://www.facebook.com/sharer.php?u=' + assertLocation(url), 'Facebook');
        }

    };

})();
