var suo;
var upload_mode_what;
var board_type;
var najaxform_name;
var my_swfupload_debug_mode = false;
function flash_uploader( pid, upfiles_which, max_upsize, max_upcnt, Allow_Upload_Ext ) {
var Allow_Upload_Extis = "*."+Allow_Upload_Ext.replaceAll(",",";*.");
var settings = {
flash_url : "/js/swf_upload/swfupload_v220b5.swf",
upload_url: upfiles_which,
file_size_limit : max_upsize,
file_types : Allow_Upload_Extis,
file_types_description : "÷ºÎÆÄÀÏ",
file_upload_limit : max_upcnt,
file_queue_limit : max_upcnt,
custom_settings : {
progressTarget : "fsUploadProgress"
},
debug: false,
// Button Settings
button_placeholder_id : "fappend",
button_image_url : "/images/swf_upload/btn_filesearch.gif",
button_width: 65,
button_height: 18,
button_window_mode: SWFUpload.WINDOW_MODE.TRANSPARENT,
button_cursor: SWFUpload.CURSOR.HAND,
button_action : SWFUpload.BUTTON_ACTION.SELECT_FILES,
swfupload_loaded_handler : fileUploadReady,
//file_dialog_start_handler : fileDialogStart,
file_queued_handler : fileQueued,
file_queue_error_handler : fileQueueError,
upload_start_handler : uploadStart,
upload_progress_handler : uploadProgress,
file_dialog_complete_handler : fileDialogStart,
upload_error_handler : uploadError,
upload_success_handler : uploadSuccess,
minimum_flash_version : "9.0.28", //10.0.12
swfupload_pre_load_handler : fileUploadReady
};
var nhid = new Element("input",{"type":"hidden","id":"user_file","name":"user_file"});
$(pid).appendChild(nhid);
var flash_upload_div = new Element("div",{"id":"flash_upload_div"});
$(pid).appendChild(flash_upload_div);
var fu_comment = new Element("div",{"id":"fu_comment"});
flash_upload_div.appendChild(fu_comment);
var fu_btn = new Element("div",{"id":"fu_btn"});
flash_upload_div.appendChild(fu_btn);
var fcomment = new Element("div",{"id":"fcomment"});
fu_btn.appendChild(fcomment);
var f_total = new Element("div",{"id":"f_total"}).update("ÃÑ 0°³(0 KB) ");
fu_btn.appendChild(f_total);
var fud = new Element("div",{"id":"fud"});
flash_upload_div.appendChild(fud);
var fu_bar = new Element("div",{"id":"fu_bar"});
fud.appendChild(fu_bar);
var fu_check = new Element("div",{"class":"fu_check"});
fu_bar.appendChild(fu_check);
fu_check.addClassName("fu_check");
var fu_check_b = new Element("input",{"type":"checkbox","id":"selectall","name":"selectall"});
fu_check_b.style.border = "0px";
fu_check.appendChild(fu_check_b);
Event.observe( fu_check_b, "click", file_checked);
var fu_check = new Element("div",{"class":"fu_split"});
fu_bar.appendChild(fu_check);
fu_check.addClassName("fu_split");
var fu_filename = new Element("div",{"class":"fu_filename"}).update("ÆÄÀϸí");
fu_bar.appendChild(fu_filename);
fu_filename.addClassName("fu_filename");
var fu_check = new Element("div",{"class":"fu_split"});
fu_bar.appendChild(fu_check);
fu_check.addClassName("fu_split");
var fu_filesize = new Element("div",{"class":"fu_filesize"}).update("ÆÄÀÏÅ©±â");
fu_bar.appendChild(fu_filesize);
fu_filesize.addClassName("fu_filesize");
var fu_item_set = new Element("div",{"id":"fu_item_set"});
fud.appendChild(fu_item_set);
var fappendDiv = new Element("div",{"id":"fappendDiv"});
flash_upload_div.appendChild(fappendDiv);
var fappend = new Element("span",{"id":"fappend"});
fappendDiv.appendChild(fappend);
var fcancel = new Element("img",{"id":"fcancel","src":"/images/swf_upload/btn_filemove.gif","align":"abstop","alt":"ÆÄÀÏÁ¦°Å","hspace":"2","width":"65","height":"18"});
fcancel.style.cursor = "pointer";
fcancel.style.display = "none";
fappendDiv.appendChild(fcancel);
Event.observe( fcancel, "click", cancel_upload);
if ( my_swfupload_debug_mode == true ) {
var my_swfupload_debug_mode_fieldset = new Element("fieldset");
$(pid).appendChild(my_swfupload_debug_mode_fieldset);
my_swfupload_debug_mode_fieldset.setStyle({"marginTop":"20px"});
var my_swfupload_debug_mode_fieldset_legend = new Element("legend").update("SWF UPLOAD DEBUG");
my_swfupload_debug_mode_fieldset.appendChild(my_swfupload_debug_mode_fieldset_legend);
var my_swfupload_debug_mode_div = new Element("div",{"id":"my_swfupload_debug_mode_div"});
my_swfupload_debug_mode_fieldset.appendChild(my_swfupload_debug_mode_div);
}
suo = new SWFUpload(settings);
}
function fileUploadReady() {
fup = parseInt( suo.getSetting("file_upload_limit"), 10 );
flimit_size = parseFloat(suo.getSetting("file_size_limit"),10);
$("fcomment").innerHTML = "¡Ø ÷ºÎÆÄÀÏÀº ÃÑ "+file_size_return(flimit_size*1024)+" (ÃÖ´ë "+fup+"°³)±îÁö ¾÷·Îµå °¡´ÉÇÕ´Ï´Ù.";
if ( fup == 0 ) suo.setButtonDisabled(true);
else if ( fup > 0 ) suo.setButtonDisabled(false);
if ( my_swfupload_debug_mode == true ) $("my_swfupload_debug_mode_div").innerHTML += "
¢º fileUploadReady
- file_upload_limit : "+fup+", - file_size_limit : "+flimit_size+"
";
}
function file_checked() {
itms_ary = $("fu_item_set").childElements();
item_len = itms_ary.length;
if ( $("selectall").checked == true ) {
for ( i = 0; i < item_len; i++ ) $("cb_"+itms_ary[i].id).checked = true;
} else {
for ( i = 0; i < item_len; i++ ) $("cb_"+itms_ary[i].id).checked = false;
}
if ( my_swfupload_debug_mode == true ) $("my_swfupload_debug_mode_div").innerHTML += "
¢º file_checked
- fu_item_set.length : "+item_len+"
";
file_checked_overlab();
}
function file_checked_overlab() {
fsize = 0;
itms_ary = $("fu_item_set").childElements();
item_len = itms_ary.length;
for ( i = 0; i < item_len; i++ ) {
if ( $("cb_"+itms_ary[i].id).checked == true ) itms_ary[i].addClassName("items_sel");
else itms_ary[i].removeClassName("items_sel");
fsize += parseInt( $("fu_hfsize_"+itms_ary[i].id).innerHTML, 10);
}
$("f_total").innerHTML = "ÃÑ "+item_len+"°³("+file_size_return(fsize)+") ";
if ( my_swfupload_debug_mode == true ) $("my_swfupload_debug_mode_div").innerHTML += "
¢º file_checked_overlab
- fu_item_set.length : "+item_len+"
";
}
function toggle_checkbox( tid ) {
if ( my_swfupload_debug_mode == true ) $("my_swfupload_debug_mode_div").innerHTML += "
¢º toggle_checkbox
";
if ( $("cb_"+tid).checked == true ) $("cb_"+tid).checked = false;
else $("cb_"+tid).checked = true;
file_checked_overlab();
}
function fileDialogStart() { if ( my_swfupload_debug_mode == true ) $("my_swfupload_debug_mode_div").innerHTML += "
¢º fileDialogStart
"; }
function fileQueued( fileObj ) {
try {
var conti_fupload = "YES";
itms_ary = $("fu_item_set").childElements();
item_len = itms_ary.length;
for ( i = 0; i < item_len ; i++ ) {
if ( itms_ary[i].name == fileObj.name ) {
conti_fupload = "NO";
break;
}
}
max_upload = parseInt(suo.getSetting("file_upload_limit"), 10);
now_queues = parseInt(suo.getStats().files_queued, 10);
if ( max_upload <= now_queues) suo.setButtonDisabled(true);
if ( now_queues != 0 ) $("fcancel").style.display = "inline";
if ( conti_fupload == "NO" ) {
alert( fileObj.name + "ÆÄÀÏÀº ÀÌ¹Ì Ã·ºÎµÇ¾î ÀÖ½À´Ï´Ù." );
suo.cancelUpload( fileObj.id );
} else {
var fu_items = new Element("div",{id:fileObj.id,"name":fileObj.name,"class":"fu_item","title":"Ŭ¸¯ÇϽøé ["+fileObj.name+"]ÆÄÀÏÀÌ ¼±ÅÃÀÌ µË´Ï´Ù."});
$("fu_item_set").appendChild(fu_items);
Event.observe( fu_items, "click", function() { toggle_checkbox(this.id); } );
var nchk_div = new Element("div",{"class":"fu_initem"});
nchk_div.style.width = "7%";
nchk_div.style.textAlign = "center";
fu_items.appendChild(nchk_div);
nchk_div.addClassName("fu_initem");
var nchk = new Element("input",{id:"cb_"+fileObj.id,"class":"fu_initem","type":"checkbox"});
nchk.style.border = "0px";
nchk.style.marginLeft = "10px";
nchk_div.appendChild(nchk);
Event.observe( nchk, "click", function() { toggle_checkbox( this.id.substring(3,this.id.length) ); });
nchk.addClassName("fu_initem");
var nfname = new Element("div",{"id":"fname_"+fileObj.id,"class":"fu_initem"}).update("[´ë±â] "+fileObj.name);
nfname.style.paddingTop = "2px";
nfname.style.width = "72%";
fu_items.appendChild(nfname);
nfname.addClassName("fu_initem");
var nfsize = new Element("div",{"class":"fu_initem"}).update( file_size_return(fileObj.size) );
nfsize.style.paddingTop = "2px";
nfsize.style.width = "20%";
nfsize.style.textAlign = "right";
fu_items.appendChild(nfsize);
nfsize.addClassName("fu_initem");
var nfsize_hid = new Element("span",{"id":"fu_hfsize_"+fileObj.id,"class":"hfsize"}).update(fileObj.size);
nfsize_hid.style.display = "none";
fu_items.appendChild(nfsize_hid);
nfsize_hid.addClassName("hfsize");
var ncomment = new Element("div",{"class":"ncomment"}).update(" ");
fu_items.appendChild(ncomment);
ncomment.addClassName("ncomment");
var default_name_ary = fileObj.name.split(".");
var default_name = default_name_ary[0];
var ncomment_input = new Element("input",{"type":"text","id":"fc_"+fileObj.id,"name":"user_file_comments[]","class":"input","value":default_name});
ncomment.appendChild(ncomment_input);
file_checked_overlab();
}
if ( my_swfupload_debug_mode == true ) $("my_swfupload_debug_mode_div").innerHTML += "
¢º fileQueued
- conti_fupload : "+conti_fupload+", - file_upload_limit : "+max_upload+", files_queued : "+now_queues+"
";
} catch (ex) { this.debug(ex); }
}
function cancel_upload() {
selcnt = 0;
max_upload = parseInt(suo.getSetting("file_upload_limit"), 10);
itms_ary = $("fu_item_set").childElements();
item_len = itms_ary.length;
for ( i = 0; i < item_len; i++ ) {
if ( $("cb_"+itms_ary[i].id).checked == true ) selcnt++;
}
if ( selcnt == 0 ) {
alert("»èÁ¦ÇÏ°íÀÚ ÇÏ´Â ÆÄÀÏÀ» ¼±ÅÃÇϼ¼¿ä.");
return;
} else {
for ( i = 0; i < item_len; i++ ) {
if ( $("cb_"+itms_ary[i].id).checked == true ) {
itms_ary[i].remove();
suo.cancelUpload( itms_ary[i].id );
}
}
now_queued = parseInt(suo.getStats().files_queued, 10);
if ( now_queued == 0 ) $("fcancel").style.display = "none";
if ( max_upload <= now_queued ) {
suo.setButtonDisabled(true);
} else {
suo.setButtonDisabled(false);
}
file_checked_overlab();
}
if ( my_swfupload_debug_mode == true ) $("my_swfupload_debug_mode_div").innerHTML += "
¢º cancel_upload
- max_upload : "+max_upload+", - fu_item_set.length : "+item_len+", - files_queued : "+now_queued+"
";
}
function custom_upload_start( what, this_type_set ) {
if ( my_swfupload_debug_mode == true ) $("my_swfupload_debug_mode_div").innerHTML += "
¢º custom_upload_start
";
upload_mode_what = what;
board_type = this_type_set;
itms_ary = $("fu_item_set").childElements();
now_queued = itms_ary.length;
if ( now_queued == 0 ) fileupload_clear();
else suo.startUpload();
}
function uploadStart( fileObj ) {
if ( my_swfupload_debug_mode == true ) $("my_swfupload_debug_mode_div").innerHTML += "
¢º uploadStart
- fileObj.id : "+fileObj.id+"
";
try { suo.removeFileParam(fileObj.id, "objid"); } catch(e) { }
suo.addFileParam( fileObj.id, "objid", fileObj.id );
return true;
}
function uploadSuccess(fileObj, server_data) {
if ( my_swfupload_debug_mode == true ) $("my_swfupload_debug_mode_div").innerHTML += "
¢º uploadSuccess
- fileObj :"+fileObj.id+", - server_data : "+server_data+"
";
if ( $("user_file").value != "" ) $("user_file").value += ",";
$("user_file").value += server_data;
now_queued = parseInt(suo.getStats().files_queued, 10);
if ( now_queued != 0 ) suo.startUpload();
else fileupload_clear();
}
function fileupload_clear() {
if ( my_swfupload_debug_mode == true ) $("my_swfupload_debug_mode_div").innerHTML += "
¢º fileupload_clear
";
if ( board_type == "AJAX" ) {
try { nboard.mask_stop(); } catch(e) {}
try {
nboard.write_edit_form_up( upload_mode_what );
} catch(e) {
debate.write_edit_form_up( upload_mode_what );
}
} else {
//loading_stop();
najaxform_name.submit();
}
}
function uploadProgress(fileObj, bytesLoaded, bytesTotal) {
try {
var percent = Math.ceil((bytesLoaded / bytesTotal) * 100);
if ( percent != 100 ) $(fileObj.id+"_progress").innerHTML = "["+percent+"%] ";
else $(fileObj.id+"_progress").innerHTML = "[¿Ï·á] ";
} catch (ex) { this.debug(ex); }
if ( my_swfupload_debug_mode == true ) $("my_swfupload_debug_mode_div").innerHTML += "
¢º uploadProgress
- fileObj : "+fileObj.id+"("+percent+"%)
";
}
function fileQueueError(fileObj, error_code, message) {
if ( my_swfupload_debug_mode == true ) $("my_swfupload_debug_mode_div").innerHTML += "
¢º fileQueueError
- fileObj : "+fileObj.id+"
";
try {
if (error_code === SWFUpload.QUEUE_ERROR.QUEUE_LIMIT_EXCEEDED) {
alert("÷ºÎÆÄÀÏ °³¼ö°¡ Çã¿ë·®À» ÃÊ°úÇÏ¿´½À´Ï´Ù.");
this.debug("÷ºÎÆÄÀÏ °³¼ö°¡ Çã¿ë·®À» ÃÊ°úÇÏ¿´½À´Ï´Ù. " + (message === 0 ? "You have reached the upload limit." : "You may select " + (message > 1 ? "up to " + message + " files." : "one file.")));
return;
}
switch(error_code) {
case SWFUpload.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT:
alert("÷ºÎÆÄÀÏÀÇ Å©±â°¡ ÃÖ´ë Çã¿ëÅ©±â¸¦ ÃÊ°úÇÏ¿© ¾÷·Îµå ÇϽǼö ¾ø½À´Ï´Ù.\n\n "+fileObj.name+"["+ file_size_return(fileObj.size)+"]");
this.debug("Error Code: File too big, File name: " + fileObj.name + ", File size: " + fileObj.size + ", Message: " + message);
break;
case SWFUpload.QUEUE_ERROR.ZERO_BYTE_FILE:
alert("÷ºÎÆÄÀÏÀÌ 0BytesÀÎ ÆÄÀÏÀº ¾÷·Îµå ÇϽǼö ¾ø½À´Ï´Ù.");
this.debug("Error Code: Zero byte file, File name: " + fileObj.name + ", File size: " + fileObj.size + ", Message: " + message);
break;
case SWFUpload.QUEUE_ERROR.INVALID_FILETYPE:
alert("÷ºÎÆÄÀÏ·Î ¾÷·Îµå Çã¿ëµÈ È®ÀåÀÚ°¡ ¾Æ´Õ´Ï´Ù.");
this.debug("Error Code: Invalid File Type, File name: " + fileObj.name + ", File size: " + fileObj.size + ", Message: " + message);
break;
case SWFUpload.QUEUE_ERROR.QUEUE_LIMIT_EXCEEDED:
alert("÷ºÎÆÄÀÏ °³¼ö°¡ Çã¿ë·®À» ÃÊ°úÇÏ¿´½À´Ï´Ù.");
this.debug("÷ºÎÆÄÀÏ °³¼ö°¡ Çã¿ë·®À» ÃÊ°úÇÏ¿´½À´Ï´Ù. " + (message > 1 ? "You may only add " + message + " more files" : "You cannot add any more files."));
break;
default:
if (fileObj !== null) {
alert("Unhandled Error");
}
this.debug("Error Code: " + error_code + ", File name: " + fileObj.name + ", File size: " + fileObj.size + ", Message: " + message);
break;
}
} catch (ex) {
this.debug(ex);
}
}
function uploadError(fileObj, error_code, message) {
if ( my_swfupload_debug_mode == true ) $("my_swfupload_debug_mode_div").innerHTML += "
¢º uploadError
- fileObj : "+fileObj.id+"
";
try {
switch(error_code) {
case SWFUpload.UPLOAD_ERROR.HTTP_ERROR:
alert("Upload Error: " + message);
this.debug("Error Code: HTTP Error, File name: " + fileObj.name + ", Message: " + message);
break;
case SWFUpload.UPLOAD_ERROR.MISSING_UPLOAD_URL:
alert("Configuration Error");
this.debug("Error Code: No backend file, File name: " + fileObj.name + ", Message: " + message);
break;
case SWFUpload.UPLOAD_ERROR.UPLOAD_FAILED:
alert("Upload Failed.");
this.debug("Error Code: Upload Failed, File name: " + fileObj.name + ", File size: " + fileObj.size + ", Message: " + message);
break;
case SWFUpload.UPLOAD_ERROR.IO_ERROR:
alert("Server (IO) Error");
this.debug("Error Code: IO Error, File name: " + fileObj.name + ", Message: " + message);
break;
case SWFUpload.UPLOAD_ERROR.SECURITY_ERROR:
alert("Security Error");
this.debug("Error Code: Security Error, File name: " + fileObj.name + ", Message: " + message);
break;
case SWFUpload.UPLOAD_ERROR.UPLOAD_LIMIT_EXCEEDED:
alert("Upload limit exceeded.");
this.debug("Error Code: Upload Limit Exceeded, File name: " + fileObj.name + ", File size: " + fileObj.size + ", Message: " + message);
break;
case SWFUpload.UPLOAD_ERROR.SPECIFIED_FILE_ID_NOT_FOUND:
alert("File not found.");
this.debug("Error Code: The file was not found, File name: " + fileObj.name + ", File size: " + fileObj.size + ", Message: " + message);
break;
case SWFUpload.UPLOAD_ERROR.FILE_VALIDATION_FAILED:
alert("Failed Validation. Upload skipped.");
this.debug("Error Code: File Validation Failed, File name: " + fileObj.name + ", File size: " + fileObj.size + ", Message: " + message);
break;
case SWFUpload.UPLOAD_ERROR.FILE_CANCELLED:
if (this.getStats().files_queued === 0) {
$("fcancel").disabled = true;
}
break;
case SWFUpload.UPLOAD_ERROR.UPLOAD_STOPPED:
alert("Stopped");
break;
default:
alert("Unhandled Error: " + error_code);
this.debug("Error Code: " + error_code + ", File name: " + fileObj.name + ", File size: " + fileObj.size + ", Message: " + message);
break;
}
} catch (ex) {
this.debug(ex);
}
}
function file_size_return( siz ) {
org_size = parseFloat(siz, 10);
var rret = "";
ret = Math.floor( org_size / 1024 );
if ( ret > 0 ) {
ret1 = Math.floor( ret / 1024);
if ( ret1 > 0 ) {
rret = ret1+" MBytes";
} else rret = ret+" KBytes";
} else rret = org_size+" Bytes";
return rret;
}