/* Redmine - project management software
 Copyright (C) 2006-2013  Jean-Philippe Lang */

function postUpMsg(attachmentId) {
    $.ajax({
        url: '/attachments/renderTag',
        type: "GET",
        data: {
            attachmentId: attachmentId
        }

    })
}

function reload(fileSpan) {
    fileSpan.remove();
    $('#upload_file_count').html("<%= l(:label_no_file_uploaded)%>");
    $old_file = $("#_file");
    $new_file = $old_file.clone(true);
    $old_file.replaceWith($new_file);
    $new_file.show();

}

function addFile_board(inputEl, file, eagerUpload, id,btnId) {

    var attachments_frame = '#attachments_fields' + id;
    if ($(attachments_frame).children().length < 30) {
        deleteallfiles = $(inputEl).data('deleteAllFiles');
        var attachmentId = addFile.nextAttachmentId++;

        var fileSpan = $('<span>', {
            'id': 'attachments_' + attachmentId,
            'class': 'attachment'
        });

        fileSpan.append(
            $('<input>', {
                'type': 'text',
                'class': 'upload_filename readonly',
                'name': 'attachments[' + attachmentId + '][filename]',
                'readonly': 'readonly'
            }).val(file.name),
//            $('<input>', {
//                'type': 'text',
//                'class': 'description',
//                'name': 'attachments[' + attachmentId + '][description]',
//                'maxlength': 254,
//                'placeholder': $(inputEl).data('descriptionPlaceholder')
//            }).toggle(!eagerUpload),
//            $('<span >' + $(inputEl).data('fieldIsPublic') + ':</span>').attr({
//                'class': 'ispublic-label'
//            }),
//            $('<input>', {
//                'type': 'checkbox',
//                'class': 'is_public_checkbox',
//                'value': 1,
//                'name': 'attachments[' + attachmentId + '][is_public_checkbox]',
//                checked: 'checked'
//            }).toggle(!eagerUpload),
            $('<a>&nbsp</a>').attr({
                'href': "#",
                'class': 'remove-upload',
                'data-containerid': id
            }).click(function() {
                if (confirm($(inputEl).data('areYouSure'))) {
                    removeFile();
                    if (!eagerUpload) {
                        (function(e) {
                            reload(e);
                        })(fileSpan);
                    }
                }

            }).toggle(!eagerUpload),
            $('<div>', {
                'class': 'div_attachments',
                'name': 'div_' + 'attachments_' + attachmentId
            })
        ).appendTo(attachments_frame);

        if (eagerUpload) {
            ajaxUpload(file, attachmentId, fileSpan, inputEl,btnId);

        }
        return attachmentId;
    }
    return null;
}

function addFile(inputEl, file, eagerUpload,btnId) {

    var attachments_frame = '#attachments_fields';
    if (true) {
        deleteallfiles = $(inputEl).data('deleteAllFiles');
        var attachmentId = addFile.nextAttachmentId++;

        var fileSpan = $('<span>', {
            'id': 'attachments_' + attachmentId,
            'class': 'attachment'
        });

        fileSpan.append(
            $('<input>', {
                'type': 'text',
                'class': 'upload_filename readonly',
                'name': 'attachments[' + attachmentId + '][filename]',
                'readonly': 'readonly'
            }).val(file.name),
//            $('<input>', {
//                'type': 'text',
//                'class': 'description',
//                'name': 'attachments[' + attachmentId + '][description]',
//                'maxlength': 254,
//                'placeholder': $(inputEl).data('descriptionPlaceholder')
//            }).toggle(!eagerUpload),
//            $('<span >' + $(inputEl).data('fieldIsPublic') + ':</span>').attr({
//                'class': 'ispublic-label'
//            }),
//            $('<input>', {
//                'type': 'checkbox',
//                'class': 'is_public_checkbox',
//                'value': 1,
//                'name': 'attachments[' + attachmentId + '][is_public_checkbox]',
//                checked: 'checked'
//            }).toggle(!eagerUpload),
            $('<a>&nbsp</a>').attr({
                'href': "#",
                'class': 'remove-upload'
            }).click(function() {
                if (confirm($(inputEl).data('areYouSure'))) {
                    removeFile();
                    if (!eagerUpload) {
                        (function(e) {
                            reload(e);
                        })(fileSpan);
                    }
                }

            }).toggle(!eagerUpload),
            $('<div>', {
                'class': 'div_attachments',
                'name': 'div_' + 'attachments_' + attachmentId
            })
        ).appendTo('#attachments_fields');

        if (eagerUpload) {
            ajaxUpload(file, attachmentId, fileSpan, inputEl,btnId);

        }
        return attachmentId;
    }
    return null;
}
addFile.nextAttachmentId = 1;

function addReviseFile(inputEl, file, eagerUpload,btnId) {

    var attachments_frame = '#attachments_fields';
    if ($(attachments_frame).children().length < 30) {
        deleteallfiles = $(inputEl).data('deleteAllFiles');
        var attachmentId = addFile.nextAttachmentId++;

        var fileSpan = $('<span>', {
            'id': 'attachments_' + attachmentId,
            'class': 'attachment'
        });

        fileSpan.append(
            $('<input>', {
                'type': 'text',
                'class': 'upload_filename readonly',
                'name': 'attachments[' + attachmentId + '][filename]',
                'readonly': 'readonly'
            }).val(file.name),
//            $('<input>', {
//                'type': 'text',
//                'class': 'description',
//                'name': 'attachments[' + attachmentId + '][description]',
//                'maxlength': 254,
//                'placeholder': $(inputEl).data('descriptionPlaceholder')
//            }).toggle(!eagerUpload),
//            $('<span >' + $(inputEl).data('fieldIsPublic') + ':</span>').attr({
//                'class': 'ispublic-label'
//            }),
//            $('<input>', {
//                'type': 'checkbox',
//                'class': 'is_public_checkbox',
//                'value': 1,
//                'name': 'attachments[' + attachmentId + '][is_public_checkbox]',
//                checked: 'checked'
//            }).toggle(!eagerUpload),
            $('<a>&nbsp</a>').attr({
                'href': "#",
                'class': 'remove-upload'
            }).click(function() {
                if (confirm($(inputEl).data('areYouSure'))) {
                    removeReviseFile();
                    if (!eagerUpload) {
                        (function(e) {
                            reload(e);
                        })(fileSpan);
                    }
                }

            }).toggle(!eagerUpload),
            $('<div>', {
                'class': 'div_attachments',
                'name': 'div_' + 'attachments_' + attachmentId
            })
        ).appendTo('#attachments_fields');

        $("#uploadReviseBox").addClass('disable_link');
        $("#choose_revise_attach").attr("onclick","return false;");

        if (eagerUpload) {
            ajaxUpload(file, attachmentId, fileSpan, inputEl,btnId);
        }
        return attachmentId;
    }
    return null;
}

function ajaxUpload(file, attachmentId, fileSpan, inputEl,btnId) {
    //上传开始调用函数
    function onLoadstart(e) {
        fileSpan.removeClass('ajax-waiting');
        fileSpan.addClass('ajax-loading');
        $('input:submit', $(this).parents('form')).attr('disabled', 'disabled');
    }
    //更改progressbar的值
    function onProgress(e) {
        if (e.lengthComputable) {
            this.progressbar('value', e.loaded * 100 / e.total);
        }
    }

    function actualUpload(file, attachmentId, fileSpan, inputEl,btnId) {

        ajaxUpload.uploading++;

        uploadBlob(file, $(inputEl).data('upload-path'), attachmentId, {
            loadstartEventHandler: onLoadstart.bind(progressSpan),
            progressEventHandler: onProgress.bind(progressSpan)
        })
            .done(function(result) {
                progressSpan.progressbar('value', 100).remove(); //上传完成就去掉该文件名后的进度条
                fileSpan.find('input.description, a').css('display', 'inline-block');
                fileSpan.find('input.is_public_checkbox, a').css('display', 'inline-block');
            })
            .fail(function(result) {
                progressSpan.text("网络错误");
                if ($("#network_issue")) { //在上传处都要给出一个network_issue的div用来显示错误
                    $("#network_issue").show();
                }
            }).always(function() {
                ajaxUpload.uploading--;
                fileSpan.removeClass('ajax-loading');
                var containerid = $(inputEl).data('containerid');//多个上传控件需要的容器id
                if(containerid == undefined ){
                    var count = 1;//同步上传参数为1，所以不需要去获取正在上传的文件就知道是1
                    $('#upload_file_count').html("<span id=\"count\">" + count + "</span>" + $(inputEl).data('lebelFileUploding'));
                }
                else{
                    var count = 1;
                    $('#upload_file_count' + containerid).html("<span id=\"count\">" + count + "</span>" + $(inputEl).data('lebelFileUploding'));
                }
                var form = fileSpan.parents('form');
                if (form.queue('upload').length == 0 && ajaxUpload.uploading == 0) { //所有文件上传完毕,更改状态
                    $('input:submit', form).removeAttr('disabled');
                    $('#' + btnId).removeAttr("disabled");
                    $('#' + btnId).val('确定')
                    $('#' + btnId).css('background-color', '#269ac9')
                    if(containerid == undefined ){
                        var count = $('#attachments_fields>span').length;
                        $('#upload_file_count').html("<span id=\"count\">" + count + "</span>" + $(inputEl).data('fileCount'));
                    }else{
                        var count = $('#attachments_fields' + containerid + '>span').length;
                        $('#upload_file_count'+containerid).html("<span id=\"count\">" + count + "</span>" + $(inputEl).data('fileCount'));
                    }

                }
                form.dequeue('upload');//上传完成一个就退出一个
            });

        //gcm files count and add delete_all link

        //modify by yutao 2015-5-14  ��1��ҳ����ڶ���ϴ��ؼ�ʱ�˿�������bug  �ʸ�֮  start
        var containerid = $(inputEl).data('containerid');
        if (containerid == undefined) {
            var count = $('#attachments_fields>span').length;
            $('#'+btnId).attr("disabled",true);
            $('#'+btnId).val('提交中');
            $('#'+btnId).css('background-color','#c1c1c1')
            $('#upload_file_count').html("<span id=\"count\">1</span>" + $(inputEl).data('lebelFileUploding'));//目前肯定是穿一个文件
            if (count >= 1) {
                var add_attachs = $('.add_attachment');
                var delete_all = $('.remove_all');
                if (delete_all.length < 1) {
                    add_attachs.append($("<a>&nbsp</a>").attr({
                        "href": "javascript:void(0)",
                        'class': 'remove_all',
                        "onclick": "removeAll()"
                    }));
                }
            }
        } else {
            var count = $('#attachments_fields' + containerid + '>span').length;
            $('#'+btnId).attr("disabled",true);
            $('#'+btnId).val('提交中');
            $('#'+btnId).css('background-color','#c1c1c1')
            $('#upload_file_count' + containerid).html("<span id=\"count\">1</span>" + $(inputEl).data('lebelFileUploding'));//目前肯定是穿一个文件
            if (count >= 1) {
                var add_attachs = $('.add_attachment').filter(function(index) {
                    return $(this).data('containerid') == containerid;
                });
                var delete_all = $('.remove_all').filter(function(index) {
                    return $(this).data('containerid') == containerid;
                });
                if (delete_all.length < 1) {
                    add_attachs.append($("<a>&nbsp</a>").attr({
                        "href": "javascript:void(0)",
                        'class': 'remove_all',
                        'data-containerid': containerid,
                        "onclick": "removeAll('" + containerid + "')"
                    }));
                }
            }
            //modify by yutao 2015-5-14  ��1��ҳ����ڶ���ϴ��ؼ�ʱ�˿�������bug  �ʸ�֮  end
        }

        //gcm

    }
    //在插入文件名的后边插入div
    var progressSpan = $('<div>').insertAfter(fileSpan.find('input.upload_filename'));
    progressSpan.progressbar(); //将div处理成progress bar
    fileSpan.addClass('ajax-waiting'); //添加文件正在上传的状态
    var containerid = $(inputEl).data('containerid');//多个上传控件需要的容器id
    if(containerid == undefined ){ //选择了多少个文件也要显示，因为有时候文件过大，一时半会传不完，但还是显示文件没有选择
        var count = $('#attachments_fields>span').length;
        $('#upload_file_count').html("<span id=\"count\">" + count + "</span>" + '个文件被选择');
    }else{
        var count = $('#attachments_fields' + containerid + '>span').length;
        $('#upload_file_count'+containerid).html("<span id=\"count\">" + count + "</span>" + '个文件被选择');
    }
    //最大的同步上传参数
    var maxSyncUpload = 1 //$(inputEl).data('max-concurrent-uploads');
     //如果没有指定同步上传参数 或者参数不对，或者需要上传的文件已经小于同步上传的个数，那么直接上传
    if (maxSyncUpload == null || maxSyncUpload <= 0 || ajaxUpload.uploading < maxSyncUpload)
        actualUpload(file, attachmentId, fileSpan, inputEl,btnId);
    else  //否则就进行队列上传
        $(inputEl).parents('form').queue('upload', actualUpload.bind(this, file, attachmentId, fileSpan, inputEl,btnId));
}

ajaxUpload.uploading = 0;

function removeFile() {
    $(this).parent('span').remove();
    return false;
}

function removeReviseFile() {
    $(this).parent('span').remove();
    $("#uploadReviseBox").removeClass('disable_link');
    $("#choose_revise_attach").attr("onclick","_file.click();");
    return false;
}

//gcm delete all file
//modify by yutao 2015-5-14  ��1��ҳ����ڶ���ϴ��ؼ�ʱ�˿�������bug  �ʸ�֮  start
function removeAll(containerid) {
    if (confirm(deleteallfiles)) {
        if (containerid == undefined) {
            $(".remove-upload").removeAttr("data-confirm");
            $(".remove-upload").click();
        } else {
            var arr = $(".remove-upload").filter(function() {
                return $(this).data('containerid') == containerid;
            });
            arr.removeAttr("data-confirm");
            arr.click();
        }
    }
    //	return false;
}
//modify by yutao 2015-5-14  ��1��ҳ����ڶ���ϴ��ؼ�ʱ�˿�������bug  �ʸ�֮  end
//gcm

function uploadBlob(blob, uploadUrl, attachmentId, options) {

    var actualOptions = $.extend({
        loadstartEventHandler: $.noop,
        progressEventHandler: $.noop
    }, options);
    if (uploadUrl.indexOf('?') > 0) {
        uploadUrl = uploadUrl + '&attachment_id=' + attachmentId;
    } else {
        uploadUrl = uploadUrl + '?attachment_id=' + attachmentId;
    }
    if (blob instanceof window.File) {
        uploadUrl += '&filename=' + encodeURIComponent(blob.name);
    }

    return $.ajax(uploadUrl, {
        type: 'POST',
        contentType: 'application/octet-stream',
        beforeSend: function(jqXhr) {
            jqXhr.setRequestHeader('Accept', 'application/js');
        },
        xhr: function() {
            var xhr = $.ajaxSettings.xhr();
            xhr.upload.onloadstart = actualOptions.loadstartEventHandler;
            xhr.upload.onprogress = actualOptions.progressEventHandler;
            return xhr;
        },
        data: blob,
        cache: false,
        processData: false
    });
}

function addReviseInputFiles(inputEl,btnId) {
    // var clearedFileInput = $(inputEl).clone().val('');
    if (inputEl.files) {
        uploadAndAttachReviseFiles(inputEl.files, inputEl,btnId);
        //   $(inputEl).remove();
    } else {
        // browser not supporting the file API, upload on form submission
        var attachmentId;
        var aFilename = inputEl.value.split(/\/|\\/);
        var count = $('#attachments_fields>span').length;
        attachmentId = addReviseFile(inputEl, {
            name: aFilename[aFilename.length - 1]
        }, false);
        if (attachmentId) {
            $(inputEl).attr({
                name: 'attachments[' + attachmentId + '][file]'
            }).hide();
            if (count <= 0) count = 1;
        }
    }

    //clearedFileInput.insertAfter('#attachments_fields');
}

function addInputFiles(inputEl,btnId) {
    // var clearedFileInput = $(inputEl).clone().val('');
    if (inputEl.files) {
//        if(inputEl.files.length >= 5){
//            alert('一次选择的文件不能超过5个')
//            return;
//        }
        // upload files using ajax
        uploadAndAttachFiles(inputEl.files, inputEl,btnId);
        //   $(inputEl).remove();
    } else {
        // browser not supporting the file API, upload on form submission
        var attachmentId;
        var aFilename = inputEl.value.split(/\/|\\/);
        var count = $('#attachments_fields>span').length;
        attachmentId = addFile(inputEl, {
            name: aFilename[aFilename.length - 1]
        }, false);
        if (attachmentId) {
            $(inputEl).attr({
                name: 'attachments[' + attachmentId + '][file]'
            }).hide();
            if (count <= 0) count = 1;
            $('#upload_file_count').html("<span id=\"count\">" + count + "</span>" + $(inputEl).data('fileCount'));
        }
    }

    //clearedFileInput.insertAfter('#attachments_fields');
}

function addInputFiles_board(inputEl, id,btnId) {
    // var clearedFileInput = $(inputEl).clone().val('');

    if (inputEl.files) {
//        if(inputEl.files.length >= 5){
//            alert('一次选择的文件不能超过5个')
//            return;
//        }
        // upload files using ajax
        uploadAndAttachFiles_board(inputEl.files, inputEl, id,btnId);
        //   $(inputEl).remove();
    } else {
        // browser not supporting the file API, upload on form submission
        var attachmentId;
        var aFilename = inputEl.value.split(/\/|\\/);
        attachmentId = addFile_board(inputEl, {
            name: aFilename[aFilename.length - 1]
        }, false, id);
        if (attachmentId) {
            $(inputEl).attr({
                name: 'attachments[' + attachmentId + '][file]'
            }).hide();
            $('#upload_file_count').html("<span id=\"count\">" + count + "</span>" + $(inputEl).data('fileCount'));
        }
    }

    //clearedFileInput.insertAfter('#attachments_fields');
}

function uploadAndAttachReviseFiles(files, inputEl,btnId) {

    var maxFileSize = $(inputEl).data('max-file-size');
    var maxFileSizeExceeded = $(inputEl).data('max-file-size-message');

    var sizeExceeded = false;
    $.each(files, function() {
        if (this.size && maxFileSize != null && this.size > parseInt(maxFileSize)) {
            sizeExceeded = true;
        }
    });
    if (sizeExceeded) {
        window.alert(maxFileSizeExceeded);
    } else {
        $.each(files, function() {
            addReviseFile(inputEl, this, true,btnId);
        });
    }
}

function uploadAndAttachFiles(files, inputEl,btnId) {

    var maxFileSize = $(inputEl).data('max-file-size');
    var maxFileSizeExceeded = $(inputEl).data('max-file-size-message');

    var sizeExceeded = false;
    $.each(files, function() {
        if (this.size && maxFileSize != null && this.size > parseInt(maxFileSize)) {
            sizeExceeded = true;
        }
    });
    if (sizeExceeded) {
        window.alert(maxFileSizeExceeded);
    } else {
        $.each(files, function() {
            addFile(inputEl, this, true,btnId);
        });
    }
}

function uploadAndAttachFiles_board(files, inputEl, id,btnId) {

    var maxFileSize = $(inputEl).data('max-file-size');
    var maxFileSizeExceeded = $(inputEl).data('max-file-size-message');

    var sizeExceeded = false;
    $.each(files, function() {
        if (this.size && maxFileSize != null && this.size > parseInt(maxFileSize)) {
            sizeExceeded = true;
        }
    });
    if (sizeExceeded) {
        window.alert(maxFileSizeExceeded);
    } else {
        $.each(files, function() {
            addFile_board(inputEl, this, true, id,btnId);
        });
    }
}

function handleFileDropEvent(e) {

    $(this).removeClass('fileover');
    blockEventPropagation(e);

    if ($.inArray('Files', e.dataTransfer.types) > -1) {
        uploadAndAttachFiles(e.dataTransfer.files, $('input:file.file_selector'));
    }
}

function dragOverHandler(e) {
    $(this).addClass('fileover');
    blockEventPropagation(e);
}

function dragOutHandler(e) {
    $(this).removeClass('fileover');
    blockEventPropagation(e);
}

function setupFileDrop() {
    if (window.File && window.FileList && window.ProgressEvent && window.FormData) {

        $.event.fixHooks.drop = {
            props: ['dataTransfer']
        };

        $('form div.box').has('input:file').each(function() {
            $(this).on({
                dragover: dragOverHandler,
                dragleave: dragOutHandler,
                drop: handleFileDropEvent
            });
        });
    }
}

$(document).ready(setupFileDrop);
$(function() {
    $(".file_selector").each(function() {
        deleteallfiles = $(this).data('deleteAllFiles');
        var containerid = $(this).data('containerid');
        if (containerid == undefined) containerid = '';
        var count = $('#attachments_fields' + containerid + '>span').length;
        if (count >= 1) {
            $('#upload_file_count' + containerid).html("<span id=\"count\">" + count + "</span>" + $(this).data('fileCount'));
            var add_attachs = $('.add_attachment').filter(function(index) {
                return $(this).data('containerid') == containerid;
            });
            var delete_all = $('.remove_all').filter(function(index) {
                return $(this).data('containerid') == containerid;
            });
            if (delete_all.length < 1) {
                add_attachs.append($("<a>&nbsp</a>").attr({
                    "href": "javascript:void(0)",
                    'class': 'remove_all',
                    'data-containerid': containerid,
                    "onclick": "removeAll('" + containerid + "')"
                }));
            }

        }
    });
});

//课程课件
function addInputFilesCourseSource(inputEl) {
    checkBox = arguments[1] == 'public' ? false : true;
    btnId = arguments[2];
    // var clearedFileInput = $(inputEl).clone().val('');
    if (inputEl.files) {
//        if(inputEl.files.length >= 5){
//            alert('一次选择的文件不能超过5个')
//            return;
//        }
        // upload files using ajax
        uploadAndAttachFilesCourseSource(inputEl.files, inputEl,checkBox,btnId);
        //   $(inputEl).remove();
    } else {
        // browser not supporting the file API, upload on form submission
        var attachmentId;
        var aFilename = inputEl.value.split(/\/|\\/);
        var count = $('#attachments_fields>span').length;
        attachmentId = addFile(inputEl, {
            name: aFilename[aFilename.length - 1]
        }, false);
        if (attachmentId) {
            $(inputEl).attr({
                name: 'attachments[' + attachmentId + '][file]'
            }).hide();
            if (count <= 0) count = 1;
            $('#upload_file_count').html("<span id=\"count\">" + count + "</span>" + $(inputEl).data('fileCount'));
        }
    }

    //clearedFileInput.insertAfter('#attachments_fields');
}

function uploadAndAttachFilesCourseSource(files, inputEl,checkBox,btnId) {

    var maxFileSize = $(inputEl).data('max-file-size');
    var maxFileSizeExceeded = $(inputEl).data('max-file-size-message');

    var sizeExceeded = false;
    $.each(files, function() {
        if (this.size && maxFileSize != null && this.size > parseInt(maxFileSize)) {
            sizeExceeded = true;
        }
    });
    if (sizeExceeded) {
        window.alert(maxFileSizeExceeded);
    } else {
        $.each(files, function() {
            addFileCourseSource(inputEl, this, true,checkBox,btnId);
        });
    }
}

function addFileCourseSource(inputEl, file, eagerUpload,checkBox,btnId) {

    var attachments_frame = '#attachments_fields';
    if ($(attachments_frame).children().length < 30) {
        deleteallfiles = $(inputEl).data('deleteAllFiles');
        var attachmentId = addFile.nextAttachmentId++;

        var fileSpan = $('<span>', {
            'id': 'attachments_' + attachmentId,
            'class': 'attachment'
        });
        //alert(checkBox);
        if(checkBox){
            fileSpan.append(
                $('<input>', {
                    'type': 'text',
                    'class': 'upload_filename readonly',
                    'name': 'attachments[' + attachmentId + '][filename]',
                    'readonly': 'readonly'
                }).val(file.name),
//                $('<input>', {
//                    'type': 'text',
//                    'class': 'description',
//                    'name': 'attachments[' + attachmentId + '][description]',
//                    'maxlength': 254,
//                    'placeholder': $(inputEl).data('descriptionPlaceholder')
//                }).toggle(!eagerUpload),
                $('<div>', {
                    'class': 'div_attachments',
                    'name': 'div_' + 'attachments_' + attachmentId
                })
            ).appendTo('#attachments_fields');
        }else {
            fileSpan.append(
                $('<input>', {
                    'type': 'text',
                    'class': 'upload_filename readonly',
                    'name': 'attachments[' + attachmentId + '][filename]',
                    'readonly': 'readonly'
                }).val(file.name),
//                $('<input>', {
//                    'type': 'text',
//                    'class': 'description',
//                    'name': 'attachments[' + attachmentId + '][description]',
//                    'maxlength': 254,
//                    'placeholder': $(inputEl).data('descriptionPlaceholder')
//                }).toggle(!eagerUpload),
//                $('<span >' + $(inputEl).data('fieldIsPublic') + ':</span>').attr({
//                    'class': 'ispublic-label'
//                }),
//                $('<input>', {
//                    'type': 'checkbox',
//                    'class': 'is_public_checkbox',
//                    'value': 1,
//                    'name': 'attachments[' + attachmentId + '][is_public_checkbox]',
//                    checked: 'checked'
//                }).toggle(!eagerUpload),
                $('<a>&nbsp</a>').attr({
                    'href': "#",
                    'class': 'remove-upload'
                }).click(function () {
                    if (confirm($(inputEl).data('areYouSure'))) {
                        removeFile();
                        if (!eagerUpload) {
                            (function (e) {
                                reload(e);
                            })(fileSpan);
                        }
                    }

                }).toggle(!eagerUpload),
                $('<div>', {
                    'class': 'div_attachments',
                    'name': 'div_' + 'attachments_' + attachmentId
                })
            ).appendTo('#attachments_fields');
        }

        if (eagerUpload) {
            ajaxUpload(file, attachmentId, fileSpan, inputEl,btnId);

        }
        return attachmentId;
    }
    return null;
}
addFileCourseSource.nextAttachmentId = 1;