jQuery(document).ready(function() {
    var dialog = jQuery('#embedDialog');

    var btnCancel = dialog.attr('btnCancel');
    var btnFinish = dialog.attr('btnFinish');
    
    var btnHandlers = {};
    btnHandlers[btnFinish] = function() {
        var data = dialog.data('editorSelection');
        var widget = jQuery("<widget></widget>");
        widget.attr('xmlns', 'http://halvr.org');
        widget.attr('contentEditable', 'false');
    
        dialog.find(':input:not([type=submit]):not([type=reset])').each(function(){
             widget.attr(this.name, this.value);
        });
        dialog.find('select').each(function(){
            var index = this.selectedIndex;
            widget.attr(this.name, this.options[index].value);
        });

        widget.text('WIDGET:embed');
        var encodeDiv = jQuery("#encodeDiv").append(widget);
        
        jQuery.halvr.replaceSelectionWith(data.iframe, data.range, encodeDiv.get(0).innerHTML);
        
        encodeDiv.empty();
        
        jQuery(data.iframe).halvrChange();
        dialog.find('textarea').val('');
        jQuery(this).dialog('close');
    };
    btnHandlers[btnCancel] = function() {
        dialog.find('textarea').val('');
        jQuery(this).dialog('close');
    };

    dialog.dialog({
        modal:true,
        autoOpen:false,
        width:400,
        height:350,
        buttons:btnHandlers,
        open: function(event, ui) {
            disableButton(btnFinish);
            var value = dialog.find('textarea').val();
            
            if (value && value.length > 0) {
                enableButton(btnFinish);
            }
        }
    });
    
    dialog.find('textarea').keyup(function(){
        var value = dialog.find('textarea').val();
        
        if (value && value.length > 0) {
            enableButton(btnFinish);
        } else {
            disableButton(btnFinish);
        }
    });
    
    function disableButton(buttonText) {
        var button = dialog.parent().find('.ui-dialog-buttonpane button:contains(' + buttonText + ')');
        button.attr('disabled','true');
        button.addClass('ui-state-disabled');
    }
    
    function enableButton(buttonText) {
        var button = dialog.parent().find('.ui-dialog-buttonpane button:contains(' + buttonText + ')');
        button.removeClass('ui-state-disabled');
        button.removeAttr('disabled');
    }

   
});