﻿/*
This is a replacement for Share THIS.  Page Usage:

<script type="text/javascript">
    BindShareThat("sharethat");
</script>
<a href="#" id="sharethat">Share That</a>
*/

var facebook = { img: '/_images/shareicons/facebook_share_icon.gif', text: 'Facebook', func: 'openFacebook()' }
var digg = { img: '/_images/shareicons/16x16-digg-guy.gif', text: "Digg", func: 'openDigg()' };
var delicious = { img: '/_images/shareicons/images/delicious_icon.png', text: "Del.icio.us", func: 'openDelicious()' };
var stumbleupon = { img: '/_images/shareicons/images/icon_su.gif', text: "StumbleUpon", func: 'openStumbleupon()' };
var reddit = { img: '/_images/shareicons/reddit_icon.png', text: "Reddit", func: 'openReddit()' };
var twitter = { img: '/_images/shareicons/twitter_icon.png', text: "Twitter", func: 'openTwitter()' };

function shareTHATClick(link) {
    var modal = createShareTHAT(link);
    var closeButton = "<a href='#' style='position:absolute; top: 5px; right: 5px;' onclick='$(this).hide().parent().hide(); return false;'><img src='/_images/shareicons/close_icon.gif' /></a>"
    $("body").append(modal);
    modal.prepend(closeButton);
}

function createShareTHAT(link) {
    var shareModal = $("<ul>");
    var li = $("<li>");
    $(shareModal).addClass("sharethat_modal").addClass("round-both");
    $(li).addClass("sharethat_li");
    $(shareModal).css({
        top: $(link).offset().top + $(link).height() + 5,
        left: $(link).offset().left
    });

    /*  Add styles to your stylesheet.  Customize as you like
    .sharethat_modal { position: absolute; margin: 0; list-style: none; border: 1px solid gray; background-color: #f0f0f0; padding: 10px; -webkit-border-radius: 10px; -moz-border-radius: 10px; border-radius: 10px }
    .sharethat_li	 { vertical-align: top; margin-left: 0px; padding: 5px; }
    */

    //modify this array with the links you want.  Supported: facebook, digg, delicious, stumbleupon, reddit, twitter
    var linkArr = new Array(facebook, twitter);
    for (var x in linkArr) {
        if (linkArr[x].text != null) {
            li.html(CreateShareLink(linkArr[x]));
            shareModal.append(li.clone());
        }
    }
    
    return shareModal;
}

function CreateShareLink(link) {
    var img = $("<img>").attr({
        src:link.img,
        style:"position: relative; top: 3px; left: -3px"
    });
    var anchor = $("<a></a>").attr({
        "href": "javascript:" + link.func + ";",
        "style": "text-decoration: none"
    });
    anchor.text(link.text);
    anchor.prepend(img);
    return anchor;
}

/* The following courtesy of Ameriprise.com */

function getUrl() {
    //Grab our current Url
    var url = window.location.toString();
    //Remove anchor from url
    var anchor_index = url.indexOf('#');
    if (anchor_index != -1) {
        url = url.substring(0, anchor_index);
    }
    return escape(url);
}

function openReddit() {
    var url = getUrl()
    var title = document.title;
    window.open("http://reddit.com/submit?title=" + title + "&url=" + url);
}

function openFacebook(params) {
    dcsMultiTrack('DCS.dcsuri', '/sharethis/facebook/', 'WT.ti', 'Share This - Facebook' );
    var url = getUrl()
    if (params && typeof params == 'string')
        url += escape(params);
    window.open("http://www.facebook.com/share.php?u=" + url);
}

function openStumbleupon() {
    var url = getUrl();
    var title = document.title;
    window.open("http://www.stumbleupon.com/submit?url=" + url + "&title=" + title);
}

function openDigg() {
    var url = getUrl();
    var title = document.title;
    window.open("http://digg.com/submit?phase=2&title=" + title + "&url=" + url);
}

function openDelicious() {
    var url = getUrl();
    var title = document.title;
    window.open("http://del.icio.us/post?url=" + url + "&title=" + title);
}

function openTwitter(params) {
    dcsMultiTrack('DCS.dcsuri', '/sharethis/twitter/', 'WT.ti', 'Share This - Twitter' );
    var url = getUrl();
    if (params && typeof params == 'string')
        url += escape(params);
    var title = document.title;
    window.open("http://twitter.com/home?status=" + htmlEncode("Found this on boxtops4education.com: ") + url);
}

/**
* Taken from 
* http://cass-hacks.com/articles/code/js_url_encode_decode/
*/
function htmlEncode(clearString) {
    var output = '';
    var x = 0;
    clearString = clearString.toString();
    var regex = /(^[a-zA-Z0-9_.]*)/;
    while (x < clearString.length) {
        var match = regex.exec(clearString.substr(x));
        if (match != null && match.length > 1 && match[1] != '') {
            output += match[1];
            x += match[1].length;
        } else {
            if (clearString[x] == ' ')
                output += '+';
            else {
                var charCode = clearString.charCodeAt(x);
                var hexVal = charCode.toString(16);
                output += '%' + (hexVal.length < 2 ? '0' : '') + hexVal.toUpperCase();
            }
            x++;
        }
    }
    return output;
}
