$(document).ready(function()
{
    initShare($('#share-items'));
    initShareByEmail();
});

function initShare($shareContainer)
{
    if ($shareContainer.length > 0)
    {
        var $facebook = $shareContainer.find('.facebook-share');
            $facebook.click(shareOnFacebook);

        var $twitter = $shareContainer.find('.twitter-share');
            $twitter.click(shareOnTwitter);

        var $email = $shareContainer.find('.email-share');
            $email.click(shareByEmail);

    }
}

function shareOnTwitter()
{
	var message = $(this).find('.metadata .message').text();
	window.open('http://twitter.com/home?status=' + message, 'share_twitter');
}

function shareOnFacebook()
{
    var $link = $(this);
    var url = $link.find('.metadata .url').text();

	window.open('http://www.facebook.com/sharer.php?u=' + url, 'share', 'width=600, height=400');
}

var $emailShare;

function shareByEmail()
{
    $emailShare = $(this);
    popup.open('email-share-popup');
}

function initShareByEmail()
{
    var $form = $('#email-share-popup form');
        $form.find('input, textarea').each(function()
        {
             formDefaultInput($(this));
        });
    
    var $submit = $('#submit-email-share-link');
        $submit.click(function()
        {
            var url = $emailShare.find('.metadata .url').text();
            var callbackUrl = $emailShare.find('.metadata .callback').text();
            var errors = [];

            var data = {
                creator_name:   $form.find('input[name=creator_name]').val(),
                creator_email:  $form.find('input[name=creator_email]').val(),
                email:          $form.find('input[name=email]').val(),
                comment:        $form.find('textarea[name=comment]').val(),
                url:            url
            };

            if (isEmpty(data.creator_name) || data.creator_name == $form.find('input[name=creator_name]').data('default'))
            {
                errors.push(errorMessages.share_by_email.name_empty);
            }

            if (isEmpty(data.creator_email))
            {
                errors.push(errorMessages.share_by_email.email_empty);
            }
            else if (!isEmail(data.creator_email))
            {
                errors.push(errorMessages.share_by_email.email_invalid);
            }

            if (isEmpty(data.email))
            {
                errors.push(errorMessages.share_by_email.friend_email_empty);
            }
            else if (!isEmail(data.email))
            {
                errors.push(errorMessages.share_by_email.friend_email_invalid);
            }

            if (errors.length > 0)
            {
                alert(errors.join("\n"));
            }
            else
            {
                $.post(callbackUrl, data, function()
                {
                });

                popup.close();
                $form.get(0).reset();
            }
        });
}
