(function() {
    var public_key = '6LeAC8wSAAAAADLto3hwsVoBQWtH3P9gnj-uFksC';
    var form_id = 'contact_form';
    var captcha_id = 'captcha_container';

    var $dialog = null;
    var $form = null;

    $(function() {
        $form = $('#' + form_id);

        $form.submit(function(e) {
            var verified = $form.data('verified');
            if (verified) {
                return;	
            }

            if (!$dialog) {
                $dialog = create_dialog();
            }

            Recaptcha.create(public_key, captcha_id, {
                theme: "clean",
                callback: Recaptcha.focus_response_field
            });

            $dialog.dialog('open');

            return false;
        });
    });

    function create_dialog() {

        var $container = $('<div><div id="' + captcha_id + '"></div><button type="button">Submit</button></div>');

        $('body').append($container);
        
        $container.find('button').click(submit_clicked);

        $container.dialog({
            autoOpen: false,
            modal: true,
            title: 'Verification Question',
            width: 460,
            close : handle_dialog_close
        });

        return $container;
    }

    function submit_clicked(e) {
        $form.find('input[name=recaptcha_challenge_field]').val(Recaptcha.get_challenge());
        $form.find('input[name=recaptcha_response_field]').val(Recaptcha.get_response());
        $form.data('verified', true);

        $form.submit();
    }

    function handle_dialog_close(e, ui) {
        Recaptcha.destroy();
    }
})();

