﻿var VoteHelper = function() {
    var _config = null;

    var attachClickEvents = function() {
        $('#btnSubmitVote').click(function() {
            var radOptions = $('input:radio');
            var foundCheckedItem = false;

            $(radOptions).each(function() {
                if ($(this).attr('checked')) {
                    foundCheckedItem = true;
                    var voteId = $(this).attr('value');
                    submitVote(voteId);
                }
            });

            //if (!foundCheckedItem)
            //    alert('Please select a vote option');
        });
    };

    var clearVoteOptions = function() {
        var radOptions = $('input:radio');        

        $(radOptions).each(function() {
            if ($(this).attr('checked')) {                
                var voteId = $(this).attr('checked', false);                
            }
        });

    };

    var submitVote = function(voteItemId) {
        var voteObj = {
            "voteItemId": voteItemId
        };

        var voteJson = JSON.stringify(voteObj);

        $.ajax({
            url: _config.Url
            , global: false
            , type: "POST"
            , data: voteJson
            , contentType: "application/json"
            , dataType: "json"
            , success: function(result) {
                if (result != null && result.SubmitVoteResult.Result == 1) {
                    clearVoteOptions();
                    $("a#votePopupTrigger").click();
                }
                else {
                    //
                }
            }
        });
    };

    var setup = function(config) {
        _config = config;

        // set up fancy box, model
        $('a#votePopupTrigger').attr('href', _config.TemplateUrl);
        $('a#votePopupTrigger').fancybox({
            hideOnContentClick: false
                , width: 520
                , height: 110
                , transitionIn: 'elastic'
                , onClosed: function() {
                    //location.reload(true);
                }
        });

        // attach button click events
        attachClickEvents();
    };

    return {
        Setup: function(config) { setup(config); }
    }
};
