﻿//
// This file implements Sharing buttons logic see:
// http://www.elevatorpitchonline.com/BugNet/Bugs/BugDetail.aspx?bid=2429
// Using AddThis service and self implementation
function initAddThisShare() {
    if (!window.addthis_share) {
        window.addthis_share = {
            url: 'http://www.google.com/',
            baseUrl: 'http://www.licensequote.com/storeAPI.axd?op=playTrack&song=',
            templates: {
                twitter: "Play song {{url}} on LicenseQuote.com"
            }
        };
    }
}

function flagClickEvent() { }
function getViewportBottom() {
    var result = 0;
    if (window.innerHeight) {// all except explorer
        result = self.innerHeight + self.pageYOffset - 10;
    }
    else if(document.body){//ie > 6
        result = document.body.clientHeight + document.body.scrollTop - 30;
    }
    return result;
}
function renderAddThis() {
    var delay = 200;
    $('.sharing_button').bind('click', function() {
        var id = $(this).attr('id');
        var name = $(this).attr('name');

        if (window.addthis_share) {
            window.addthis_share.url = window.addthis_share.baseUrl + id;
            window.addthis_share.title = 'Play ' + name + ' on LicenseQuote.com';
            window.addthis_share.description = window.addthis_share.title;
            window.addthis_share.templates.twitter = 'Play ' + name + ' {{url}} on LicenseQuote.com';
        }

        var menu = $('#sharemenu');

        var pos = $(this).position();
        pos.top = pos.top + $(this).height();
        
        menu.css({ "left": pos.left + "px", "top": pos.top + "px" });
        menu.fadeIn('fast');
        $(this).data('in', true);
        menu.data('hidden', false);

        // update menu position
        var menuBottom = pos.top + menu.height();
        var vpBottom = getViewportBottom();
        if (vpBottom - menuBottom < 0) {
            pos.top += vpBottom - menuBottom;
            menu.css({ "top": pos.top + "px" });
        }
    })
    .bind('mouseleave', function() {
        $(this).data('in', false);
        setTimeout(hideMenu, delay);
    }).click(flagClickEvent);
    
    $('#sharemenu')
    .bind('mouseenter', function() {
        $('#sharemenu').fadeIn('fast');
        $(this).data('in', true);
        $('#sharemenu').data('hidden', false);
    })
    .bind('mouseleave', function() {
        $(this).data('in', false);
        setTimeout(hideMenu, delay);
    });    
}

function hideMenu() {
    if (!$('.sharing_button').data('in') && !$('#sharemenu').data('in') && !$('#sharemenu').data('hidden')) {
        $('#sharemenu').fadeOut('fast');
        $('#sharemenu').data('hidden', true);
    }
    checkEventsAndRebind();
}
function forceHideMenu() {
    $(this).data('in', false);
    $('#sharemenu').fadeOut('fast');
    $('#sharemenu').data('hidden', true);
    checkEventsAndRebind();
}

function checkEventsAndRebind() {
    var eventData = $('.sharing_button').data("events");
    if (!eventData || !eventData.click) {
        renderAddThis();
    }
}
function openPopupCenterScreen(url, name, opts, w, h) {
    var xOff = (screen.width - w) >> 1;
    var yOff = (screen.height - h) >> 1;
    opts += ',width=' + w + ',height=' + h + ',left=' + xOff + ',top=' + yOff;
    var result = window.open(url, name, opts);
    return result;
}

var _sharingEmail;
function showSharingEmail(baseUrl, userId) {
    var urlToShare = 'http://www.licensequote.com';
    if (window.addthis_share) {
        urlToShare = window.addthis_share.url;
    }
    
    var openUrl = baseUrl + '/ShareEmail.aspx?UserID=' + userId;
    openUrl += '&ShareURL=' + escape(urlToShare);

    var opts = 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,titlebar=no,resizable=no,copyhistory=yes';
    _sharingEmail = openPopupCenterScreen(openUrl, 'ShareEmail', opts, 470, 415);
    if (!addthisCheckPopupOk(_sharingEmail)) {
        alert("Cannot open ShareLinks page because your browser blocks popups. Please change your browser settings.");
        return;
    }
    _sharingEmail.focus();
    
}

var _sharingLinks;
function showSharingLinks(baseUrl) {
    var urlToShare = 'http://www.licensequote.com';
    if (window.addthis_share) {
        urlToShare = window.addthis_share.url;
    }
        
    var openUrl = baseUrl + '/ShareLinks.aspx?&ShareURL=' + escape(urlToShare);
    var _opts = 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,titlebar=no,resizable=no,copyhistory=yes';
    _sharingLinks = openPopupCenterScreen(openUrl, 'ShareLinks', _opts, 480, 235);
    if (!addthisCheckPopupOk(_sharingLinks)) {
        alert("Cannot open ShareLinks page because your browser blocks popups. Please change your browser settings.");
        return;
    }
    _sharingLinks.focus();
}

function showSharingMyspace() {
    var t = encodeURIComponent('View Link');
    var u = encodeURIComponent('http://www.licensequote.com');
    if (window.addthis_share) {
        t = encodeURIComponent(window.addthis_share.title);
        u = encodeURIComponent(window.addthis_share.url);
    }
    var openUrl = 'http://www.myspace.com/Modules/PostTo/Pages/?';
    openUrl += 'u=' + u;
    openUrl += '&t=' + t;
    
    var _opts = 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,titlebar=no,resizable=no,copyhistory=yes';
    var _myspace = openPopupCenterScreen(openUrl, '_blank', _opts, screen.width, screen.height);
    if (!addthisCheckPopupOk(_myspace)) {
        alert("Cannot open MySpace page because your browser blocks popups. Please change your browser settings.");
        return;
    }
    _myspace.focus();
}

function addthisCheckPopupOk(poppedWindow) {
    var result = true;
    try {
        if (typeof poppedWindow == 'undefined') {
            // Safari with popup blocker...
            result = false;
        }
        else if (!poppedWindow || poppedWindow.closed) {
            // This happens if the user opens and closes the client window...
            result = false;
        }
    }
    catch (err) {
        // Do nothing here
    }
    return result;
}

