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

    var btnCancel = dialog.attr('btnCancel');
    var btnFinish = dialog.attr('btnFinish');
    
    var btnHandlers = {};
    btnHandlers[btnFinish] = function() {
        var iframe = dialog.find('iframe').get(0);
        var iframeDocument;
        if (iframe.contentWindow) {
            iframeDocument = jQuery(iframe.contentWindow.document);
        } else {
            iframeDocument = jQuery(iframe.contentDocument);
        }
        var form = iframeDocument.find('form');
        form.submit();
    };
    btnHandlers[btnCancel] = function() {jQuery(this).dialog('close');};

    dialog.dialog({
        modal:true,
        autoOpen:false,
        width:300,
        height:250,
        buttons:btnHandlers,
        open: function(event, ui) {
            disableButton(btnFinish);
        }
     });
	
	function createLink(dialog, filename) {
	    var form = dialog.attr('formName');
	    var recordId = dialog.attr('formId');
	    
	    var link = '/attachment/';
	    if (recordId.length > 0) {
	        link = link + form + '/' + recordId;
	    } else {
	        link = link + 'temporary/' +  dialog.attr('temporaryId');
	    }
	    link = link + '//';   
	    
	    return link + filename;
	}
	
    dialog.get(0).uploadOk = function(fileName) {
        var editorSelection = dialog.data('editorSelection');
        var attachmentLink = createLink(dialog, fileName);
        
        var link = '<a href=\"' + attachmentLink  + '\" >';
        link = link +  fileName +'</a>';
        
        jQuery.halvr.replaceSelectionWith(editorSelection.iframe, editorSelection.range, link);
        jQuery(editorSelection.iframe).halvrChange();
        dialog.dialog('close');
    };
    
    
    dialog.get(0).uploadCancel = function() {
        dialog.dialog('close');
    };
    
    dialog.get(0).enableFinish = function() {
        enableButton(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');
    }
});
