﻿function validateSendEmail(jobId) {
    var CSS_ERROR = 'inputError';

    var txtEmailName = $('.list .listContainer .listbox .jobPost.rate' + jobId + ' .helpPromote .inputEmailName');
    var txtEmailAddresses = $('.list .listContainer .listbox .jobPost.rate' + jobId + ' .helpPromote .inputEmailAddresses');
    var isValid = true;
    if ($.trim(txtEmailName.val()).length == 0) {
        isValid = false;
        txtEmailName.addClass(CSS_ERROR);
    } else {
        txtEmailName.removeClass(CSS_ERROR);
    }
    if ($.trim(txtEmailAddresses.val()).length == 0) {
        isValid = false;
        txtEmailAddresses.addClass(CSS_ERROR);
    } else {
        txtEmailAddresses.removeClass(CSS_ERROR);
    }

    var addressesValid = true;

    var emails = txtEmailAddresses.val().split(',');
    for (var i = 0; i < emails.length; i++) {
        if (!validateEmail(emails[i])) {
            addressesValid = false;
            isValid = false;
            txtEmailAddresses.addClass(CSS_ERROR);
            break;
        }
    }
    if (addressesValid) {
        txtEmailAddresses.removeClass(CSS_ERROR);
    }

    return isValid;
}

function sendEmail(id) {
    if (!validateSendEmail(id)) {
        return;
    }

    var txtEmailName = $('.list .listContainer .listbox .jobPost.rate' + id + ' .helpPromote .inputEmailName');
    var txtEmailAddresses = $('.list .listContainer .listbox .jobPost.rate' + id + ' .helpPromote .inputEmailAddresses');

    var addresses = txtEmailAddresses.val().split(',');
    var name = txtEmailName.val();

    var emailRequest = {
        jobId: id,
        senderName: name,
        emailAddresses: addresses
    };

    var proxy = new serviceProxy(DOMAIN + '/Services/Promotion.asmx/');
    proxy.invoke('SendEmail', emailRequest,
                function(msg) {
                    $('#emailSendSuccessful').dialog('open');
                    txtEmailAddresses.val('');
                    txtEmailName.val('');
                },
                function(msg) {
                    $('#emailSendFailure').dialog('open');
                }
            );
    return false;
}

function showPromotion(id) {
    var jobRequest = {
        jobId: id
    };
    var proxy = new serviceProxy(DOMAIN + '/Services/Promotion.asmx/');
    proxy.invoke('GetPromotion', jobRequest, function(msg) {
        var container = $('.list .listContainer .listbox .jobPost.rate' + id + ' .helpPromote');
        if ($.trim(container.html()).length == 0) {
            var linkText = 'Vote+for++on+CrazyHotJob.com+' + msg.ShortenedUrl;
            var twitLength = 140;
            var availableTitleLength = twitLength - linkText.length;
            var title = encodeURI(msg.Title);
            title = title.replace(' ', '+');
            if (title.length > availableTitleLength) {
                title = title.substr(0, availableTitleLength);
            }

            var hlFacebook = 'http://www.facebook.com/share.php?u=' + msg.Url;
            var hlTwitter = 'http://twitter.com/home/?status=Vote+for+' + title + '+on+CrazyHotJob.com+' + msg.ShortenedUrl;

            var txt = '<div class="divider"></div><h3>Want to see this job posted tomorrow?  Help promote it!</h3>';
            txt += '<div class="socialLinks"><a href="' + hlFacebook + '" class="facebook" target="_blank"><span>Post to Facebook</span></a>';
            txt += '<a href="' + hlTwitter + '" class="twitter" target="_blank">Post to Twitter</a></div>';
            txt += '<div class="email"><div class="emailName"><span id="lblEmailName">Your Name:</span>';
            txt += '<input id="txtEmailName" type="text" class="inputEmailName" /></div>';
            txt += '<h4><span>Email your friends:</span></h4><div class="clear"></div>';
            txt += '<div class="emailAddresses"><span id="lblEmailAddresses">Enter their email addresses, separated by commas:</span><br />';
            txt += '<a class="sendEmail" href="#" onclick="sendEmail(\'' + id + '\'); return false;">Send Email</a><input id="txtEmailAddresses" type="text" class="inputEmailAddresses" /></div></div>';

            container.html(txt).slideToggle();
        }
    }, null);
}

$(function() {
    var industryId = $('#<% =hdnIndustryId.ClientID %>').val();

    $('#hlPopular').click(function() {
        document.location.href = '/Choose/?in=' + industryId + '&s=Popular';
        return false;
    });
    $('#hlRecent').click(function() {
        document.location.href = '/Choose/?in=' + industryId + '&s=Recent';
        return false;
    });
    $('#hlRating').click(function() {
        document.location.href = '/Choose/?in=' + industryId + '&s=Rating';
        return false;
    });

    $('#<% =ddlIndustry.ClientID %>').val(industryId);

    $('#alreadyVoted').dialog({
        autoOpen: false,
        width: 350,
        closeOnEscape: true,
        dialogClass: 'dialog',
        modal: true,
        title: 'Already Voted',
        buttons: {
            'OK': function() {
                $(this).dialog('close');
                return false;
            }
        }
    });
    $('#emailSendSuccessful').dialog({
        autoOpen: false,
        width: 350,
        closeOnEscape: true,
        dialogClass: 'dialog',
        modal: true,
        title: 'Email Sent Successfully',
        buttons: {
            'OK': function() {
                $(this).dialog('close');
                return false;
            }
        }
    });
    $('#emailSendFailure').dialog({
        autoOpen: false,
        width: 350,
        closeOnEscape: true,
        dialogClass: 'dialog',
        modal: true,
        title: 'Error Sending Email',
        buttons: {
            'OK': function() {
                $(this).dialog('close');
                return false;
            }
        }
    });

    $('.postHelp').betterTooltip({
        speed: 150,
        delay: 300
    });
});