
var notAllowedFile = new Array('sh','cmd','jsp', 'jspf', 'jspx', 'php', 'php3', 'asp', 'cgi', 'inc', 'pl');

function isAllowed(file){
    var splitedFile = file.split('.');
    var isAllowed = true;
    
    for(var i = 0 ; i < notAllowedFile.length ; i++){
        if(notAllowedFile[i] == splitedFile[splitedFile.length - 1].toLowerCase()){
            isAllowed = false;
            break;
        }
    }
    
    return isAllowed;
}

/**
 * 업로드할 파일을 선택한 후에 필요한 작업을 수행한다.  
 *
 * @param element input(file)
 * @param max 업로드 가능한 최대 파일 사이즈
 * @param type 유형
 */
function createUpload(element, max, type) {
	alert(111);
	/*IE 버그로 인한 입력값 정확성 체크 */
	var re = /^[a-z]:\\(.){0,300}$/i;
	if (element.value != "" && !element.value.match(re)) {
		alert("올바른 파일명이 아닙니다.파일을 다시 입력해 주시기 바랍니다.");
		element.focus();
		return;
	} else if (element.value == "") {
		return;
	} else if (!isAllowed(element.value)){
        alert("업로드가 허용되지 않는 파일형태입니다. 파일을 확인해주세요.");
        element.focus();
        return;
    }
	
    var liNode = element.parentNode;
    var ulNode = liNode.parentNode;
    
    /* 선택한 파일을 텍스트로 보이도록 함 */
    element.style.display = "none";
    var textSpan = document.createElement("span");
    //alert(element.value);
    var realFileName = element.value.substring(element.value.lastIndexOf("\\") + 1, element.value.length);
    var text = element.value + "<a onclick=\"deleteUpload(this, " + max + ", '" + type + "')\">&nbsp;<font color=\"blue\"><b>삭제</b></font></a>";
    if (type == "N/A") {
        textSpan.innerHTML = text + "<input type=\"hidden\" name=\"j_file_realname\" value=\"" + realFileName + "\"/>";
    } else {
        textSpan.innerHTML = text + "<input type=\"hidden\" name=\"j_file_type\" value=\"" + type + "\"/>" + "<input type=\"hidden\" name=\"j_file_realname\" value=\"" + realFileName + "\"/>";
    }
    liNode.appendChild(textSpan);

    jprivate_adjustCount(ulNode, max, type, true);
}

/**
 * 파일을 삭제하는 작업을 수행한다.  
 *
 * @param element a 태그
 * @param max 업로드 가능한 최대 파일 사이즈
 * @param type 유형
 * @param fileName 파일 이름 (이미 업로드 된 파일에만 해당)
 * @param filePath 파일 경로 (이미 업로드 된 파일에만 해당)
 */
function deleteUpload(element, max, type, fileName, filePath) {
    var liNode = element.parentNode.parentNode;
    var ulNode = liNode.parentNode;

    /* UI에서 삭제 */
    ulNode.removeChild(liNode);
    
    jprivate_adjustCount(ulNode, max, type, false);

    /* 삭제할 파일 정보 기록 */
    if (fileName) {
        var Forms = document.forms[0];
        var input = document.createElement("input");
        input.name = "j_file_delete";
        input.type = "hidden";
        input.value = fileName;
        Forms.appendChild(input);
        
        input = document.createElement("input");
        input.name = "j_file_path_delete";
        input.type = "hidden";
        input.value = filePath;
        Forms.appendChild(input);
    }
}

function jprivate_adjustCount(ulNode, max, type, flag) {
    /* 총 업로드 파일 수 수정 */
    var allSpan = ulNode.getElementsByTagName("span");
    var name = "j_file_count";
    if (type != "N/A") {
        name += ("_" + type);
    }
    var fileCount = document.forms[0][name];
    fileCount.value = allSpan.length;

    /* 새로운 파일 입력 박스 생성 */
    if ((flag && allSpan.length < max) || (!flag && allSpan.length == (max - 1))) {
        var upload = document.createElement("li");    
        upload.innerHTML = "첨부파일 : <input type=\"file\" name=\"j_file\" class=\"input_board_1\" style=\"width:100%\" onchange=\"createUpload(this, " + max + ", '" + type + "');\"/>";
        ulNode.appendChild(upload);
    }
    
    // 게시판 iFrame 리사이징..
    if(window.parent.frames.cmscontent != undefined){
        window.parent.autoIframe('cmscontent');
    }
}
