// 문서 등록 관련 스크립트 author : goodoi

var upload1;
var s_id = 0;

// swf 다중 문서 등록
function swfUpload() {
	var  session_id  = arguments[0];
	var  folder_seq  = arguments[1];
	var  noEvent  = arguments[2];

	s_id = session_id;
	upload1 = new SWFUpload({
		// Backend Settings
		upload_url: "/regist/procSaveDoc.php",	// Relative to the SWF file (or you can use absolute paths)
		post_params: {"PHPSESSID" : session_id, "mode":"fileUpload", "mainCate":1, "myFolder":folder_seq, "noEvent":noEvent},
		file_post_name : "regFile_m",
		// File Upload Settings
		file_size_limit : "102400",	// 100MB
		file_types : "*.doc;*.docx;*.xls;*.xlsx;*.ppt;*.pptx;*.hwp;*.pdf;*.txt",
		file_types_description : "All Files",
		file_upload_limit : "10000",
		file_queue_limit : "100",

		// Event Handler Settings (all my handlers are in the Handler.js file)
		file_dialog_start_handler : fileDialogStart,
		file_queued_handler : fileQueued,
		file_queue_error_handler : fileQueueError,
		file_dialog_complete_handler : fileDialogComplete,
		upload_start_handler : uploadStart,
		upload_progress_handler : uploadProgress,
		upload_error_handler : uploadError,
		upload_success_handler : uploadSuccess_u,
		upload_complete_handler : uploadComplete,
		
		// Button Settings
		button_image_url : "/image/com/alpha2_docu_center_bt03.gif",	// Relative to the SWF file
		button_placeholder_id : "spanButtonPlaceholder1",
		button_width: 144,
		button_height: 35,

		// Flash Settings
		flash_url : "/js/swfupload/swfupload_f10.swf",	// Relative to this file (or you can use absolute paths)
		
		swfupload_element_id : "flashUI1",		// Setting from graceful degradation plugin
		degraded_element_id : "degradedUI1",	// Setting from graceful degradation plugin

		custom_settings : {
			progressTarget : "fsUploadProgress1",
			cancelButtonId : "btnCancel1",
			upload_successful : false				
		},
		
		// Debug Settings
		debug: false
	});
} 


/**
 * by lauree 2010.01.27 2010.01.27 SWFUpload를 사용하지 못할 때 FORM으로 upload하기
 * 문서 등록
 */
function registOneFile() {
	if ($('regFile_m').value!=''){
		var actionPage = "/regist/procSaveDoc.php?regdoc=first";
		$('send_mode').value = "form";
		$('upFileForm').action = actionPage;
		$('upFileForm').submit();
	}else{
		alert("파일을 선택해주세요.");
	}
}

function mainCateInit() {
	var mainCateList = document.getElementsByName("mainCate");
	for (var i=0; i<mainCateList.length; i++) {
		mainCateList[i].onclick = setMainCate;
	}
}



function setMainCate() {
	var noEventValue = ''; 
	if($('noEvent'))
		noEventValue = $('noEvent').value;
	// by lauree 2010.01.27 SWFUpload가 로딩되었을때만 실행
	if ($('flashUI1') && $('flashUI1').style.display!="none")
		upload1.setPostParams({"PHPSESSID":s_id, "mode":"fileUpload", "mainCate":this.value, "myFolder":$('myFolder').value, "noEvent":noEventValue});
}

function setFolderSeq() {
	var MainCate = 1;
	var mainCateList = document.getElementsByName("mainCate");
	for (var i=0; i<mainCateList.length; i++) {
		if(mainCateList[i].checked) {
			MainCate = mainCateList[i].value;
		}
	}
	
	var noEventValue = ''; 
	if($('noEvent'))
		noEventValue = $('noEvent').value;
	// by lauree 2010.01.27 SWFUpload가 로딩되었을때만 실행		
	if ($('flashUI1') && $('flashUI1').style.display!="none")	
		upload1.setPostParams({"PHPSESSID":s_id, "mode":"fileUpload", "mainCate":MainCate , "myFolder":$('myFolder').value, "noEvent":noEventValue});
}

// 여러 문서저장
function saveMultiDoc(cateName, session_id) {
	var strCate = 1;
	if (cateName) {
		for(i=0;i<document.getElementsByName(cateName).length;i++){
		if (document.getElementsByName(cateName)[i].checked)
			strCate = document.getElementsByName(cateName)[i].value;
		}
	}
	// by lauree 2010.01.27 SWFUpload가 로딩되었을때만 실행	
	if ($('flashUI1') && $('flashUI1').style.display!="none"){	
		upload1.selectFiles();
		upload1.setPostParams({"PHPSESSID":session_id, "mode":"fileUpload", "mainCate":strCate});
	}		
}	

// 문서 등록 중 취소
function cancelDoc() {
	$('upFileForm').reset();
}

// 문서저장
function saveDoc() {
	
	if ($('regFile').value == '') {
		alert('파일을 업로드 해주세요.');
		return false;
	}
	
	if (!checkFileType()) {
		return false;
	}
	
	$('upFileForm').submit();
}

/**
 * 등록가능한 파일만 등록할 수 있도록 한다.
 *
**/
function checkFileType() {
	var validTypes = $A(['pdf','doc','hwp','ppt','xls','xlsx','docx','pptx','txt','java','c','cpp','py','rb','php','asp','jsp','pl','pas','vb']);
	
	var fileName = $('regFile').value;
	var pathPoint = fileName.lastIndexOf('.');
	var fileType = fileName.substring(pathPoint+1, fileName.length).toLowerCase();
	if ( validTypes.indexOf(fileType) == -1 ) {
		alert('파일 형식이 맞지 않습니다');
		return false;
	}
	return true;
}


function RegistChange(obj){
	
	if (obj.name == 'chkMulti'){
		document.getElementById('multi_regist').style.display = "";
		document.getElementById('single_regist').style.display = "none";
		document.getElementById('single_button').style.display = "none";
	} else {
		document.getElementById('multi_regist').style.display = "none";
		document.getElementById('single_regist').style.display = "";
		document.getElementById('single_button').style.display = "";
	}
	obj.checked = false;
}


function cate1Change(mainCateSeq) {
	
	new Ajax.Updater('oneCategory', '/regist/get_cate1.php', {
        method: 'post',
        parameters: {
            mainCateSeq: mainCateSeq
           }
    });
	
}


/**
 * 1차 카테고리에 해당하는 2차 카테고리 목록을 가져온다.
 *
 * @param 1차 카테고리 select 태그
 * @return 1차 카테고리에 해당하는 2차 카테고리 목록
 */
function cate2Change(mainCate, oneCateVal){
    
    new Ajax.Updater('twoCategory', '/regist/get_cate2.php', {
        method: 'post',
        parameters: {
        		mainCate: mainCate,
            cate1: oneCateVal
        }
    });
}

/**
 * 서식일 경우 필요없는 입력 필드를 감추고 아닐 경우 다시 생기게 한다.
 */
function fieldChange(oneCateVal, divId) {
	
	// 서식일 경우
	if (oneCateVal.substr(0,1) == '5') {
		$(divId).hide();
	}else {
		$(divId).show();
	}
}

/**
 * 선택한 이미지를 등록시 전달하기 위해서 전체 이미지중 선택한 이미지만 걸러낸다.
 */
function imgSelect() {
	var imgList = document.getElementsByName('thumb_img[]');
	var selectImgsList = new Array();
	
	for (var i=0; i<imgList.length; i++) {
		if (imgList[i].checked) {
			selectImgsList.push(imgList[i].value);
		}
	}

	$('selectImgs').value = selectImgsList.toJSON();
	
}


/**
 * 첫번째 선택한 카테고리와 두번째 선택한 카테고리를 모두 선택해 준다.
 * 
 * @param cate1Code: 첫번째 카테고리
 * @param cate2Code: 두번째 카테고리
 */
function cate2Select(mainCate, cate1Code, cate2Code){

    new Ajax.Updater('twoCategory', '/regist/get_cate2_select.php', {
        method: 'post',
        parameters: {
        		mainCate: mainCate,
            cate1: cate1Code,
            cate2: cate2Code
        }
    });
    
}

function chkKeyLength(textArea, lenInput){
    lenInput.value = textArea.value.length;
}

/**
 * 등록하기전 유/무료 가격 등을 체크하는 함수
 * 
 * @return 유효하면 ture, 아니면 false
 */
function checkValue(){
	 // 태그 수를 계산한다.

	if ($('keyTags').value == '') {
		$('tagCnt').value = 0;	
	}else {
		var keyTags = $('keyTags').value.split(',');
		$('tagCnt').value = keyTags.length;
	}
    
    // 필수사항 입력 유무 체크
	if ( !checkRequire() ) {
		return false;
	}
	
//	if ( !checkIsCharge() ) {
//		return false;
//	}
	
	//if ( !checkMaxLen() ) {
	//	return false;
	//}
	//if ( !dirtoryCheck() ) {
	//	return false;
	//}
	
	if ( !mainCateCheck() ) {
		return false;
	}
	
	return true;
}

/**
 * 디렉토리 2차분류 체크하지 않았으면 false를 리턴
 */
function dirtoryCheck() {
	var firstDir = document.getElementById("cate1");
	var secDir = document.getElementById("cate2");
	var firefox  = (navigator.appName.indexOf("Microsoft") != -1) ? false : true;
	if( firefox == true ) {
		if( !firstDir || firstDir.value == "" || secDir.value != "2차 분류" )  {
			return true;		
		}	
	}else{
		if( (!firstDir || firstDir.value == "" || secDir.value != "") ) { 
			return true;		
		}	
	}
	
	alert('디렉토리 2차 분류를 선택하세요');
	return false;
}


/**
 * 형식별 분류를 하나도 체크하지 않았으면 false를 리턴
 */
function mainCateCheck() {
	
	var mainCateList = document.getElementsByName("mainCate");
	for (var i=0; i<mainCateList.length; i++) {
		if (mainCateList[i].checked) {
			return true;
		}
	}
	alert('형식별 분류를 선택하세요');
	return false;
}

/**
 * 소개글, 본문내용, 참고자료가 입력 한계치(1000자)를 넘었는지 확인한다.
 *
 * @return 모두 입력 한계치를 넘지 않았으면 true, 넘었으면 경고문을 띄우고 false
 *
 **/
function checkMaxLen() {
	
	var introLength = $('introLength').value;
	if ( introLength  > 1000 ) {
		alert('소개글이 1000자를 넘었습니다.');
		return false;
	}
	
//	var contLength = $('contLength').value;
//	if ( contLength  > 1000 ) {
//		alert('본문내용이 1000자를 넘었습니다.');
//		return false;
//	}
//	
//	var refLength = $('refLength').value;
//	if ( refLength  > 1000 ) {
//		alert('참고자료가 1000자를 넘었습니다.');
//		return false;
//	}
	
	return true;
}

/**
 * 필수 사항이 입력되었는지 체크한다.
 * 
 * @return 모두 입력되었으면 true, 하나라도 빠졌으면 경고창을 띄우고 false를 리턴한다.
 */
function checkRequire() {
	var requires = $$('.require');
	for (var i = 0; i < requires.length; i++) {
		if (requires[i].value.length == 0) {
			alert('필수 입력 사항을 입력해 주세요.');
			return false;
		}
	}
	return true;
}

/**
 * 유/무료와 가격이 적정범위내에 있는지 체크한다.
 * 
 * @return 유효하면 true, 아니면 false
 */
function checkIsCharge() {
	var charges = document.getElementsByName('isCharge');
	var isCharge = '';
	for ( var i=0; i<charges.length; i++ ) {
		if ( charges[i].checked ) {
			isCharge = charges[i];
		}
	}
	
	// 무료이면
    if (isCharge.value == 0) {
        $('filePrice').value == 0;
	// 유료이면
    }else {
	    if ($('filePrice').value < 300 || $('filePrice').value > 30000) {
	        alert('최소 300원 ~ 최대 30,000원 사이의 금액을 입력하세요.');
			  return false;
	    }
	}
	return true;
}

/**
 * 마이 폴더를 추가한다.
 */
function addFolder(userSeq) {
	var folName = $('folderName').value;
	
	if(!folName.isByteLength(1,14)) {
		alert("폴더이름을 입력해주세요.한글 7자, 영문 14자까지 입력 가능합니다.");
		return false;
	}	
	///regist/procAddFolder.php
	$('addFolderBox').hide();
	new Ajax.Updater('folderList', '/mybox/addFolderProc.php', {
			method: 'post',
			asynchronous: false,
			parameters:{'cfName':folName},
			onSuccess:function(xmlHttp) {
				var result = xmlHttp.responseText;	  			
				$('folderName').value = '';
				if( result != '' ) {  						
					alert( result );
				}else{					
					showFolder();
					showSelectFolder();  																
				}					
			},
			onFailure:function(xmlHttp) {
			}
	});
}

/**
 * 내폴더 select 리스트
 *
 **/		
function showSelectFolder() {								
		var folderMove = '';
		if( $("folderList") != null ) {
				if( $("fSetting") != null ) {
					folderMove = 'Y';
				} 
		}
		var url = "/regist/procAddFolder.php";
		new Ajax.Request(url, {
			method:'get',
			asynchronous: false, 
			parameters:{'folderMove':folderMove},	 				
			onSuccess:function(xmlHttp) {
				var result = xmlHttp.responseText;	  							
				if( result != '' ) {							
					$("folderList").innerHTML	= '<select name="myFolder" id="myFolder" >'+result+'</select>&nbsp';
					$("folderList2").innerHTML	= '<select name="myFolder2" id="myFolder2" >'+result+'</select>&nbsp';
				}		  		
			},
			onFailure:function(xmlHttp) {
			} 
		});  	
	}

/**
 * 폴더 생성 보여주기
 *
 **/	
function create() {	
	if( $("crtFolder").getStyle('display') == 'none' ) {
		$("crtFolder").show();
		$("cfName").focus();
	}else{
		$("crtFolder").hide();
	}	
}

/**
 * 내폴더 리스트
 *
 **/		
function showFolder() {
		var url = "/mybox/folderList.php";
		var seq = (arguments[0]==undefined)?'':arguments[0];
		var flag = (arguments[1]==undefined)?'':arguments[1];

		new Ajax.Request(url, {
			method:'get',
			asynchronous: true,  
			parameters:{'folderSeq':seq, 'flag':flag},				
			onSuccess:function(xmlHttp) {
				var result = xmlHttp.responseText;
				
				if( $("leftFolderList") && result != '' ) {					
					temp = result;					
					$("leftFolderList").innerHTML	= result;
				}		  		
			},
			onFailure:function(xmlHttp) {
			} 
		});
	}
	
/**
 * 내폴더 리스트 (내페이지용)
 *
 **/		
function showFolderForMyPage(userSeq) {								
	var url = "/mybox/folderList.php";
	var seq = (arguments[0]==undefined)?'':arguments[0];
	
	new Ajax.Request(url, {
		method:'get',
		asynchronous: true,  
		parameters:{'folderSeq':seq, 'myPage':'T', 'userSeq':userSeq},				
		onSuccess:function(xmlHttp) {
			var result = xmlHttp.responseText;	  			
			if( result != '' ) {					
				temp = result;
				$("leftFolderList").innerHTML	= result;
			}		  		
		},
		onFailure:function(xmlHttp) {
		} 
	});  	
}


/**
 * 내폴더 삭제
 *
 **/
function folderRemove(seq) {				
	
	if ( !confirm('삭제하신 폴더의 문서들은 모두 기본폴더로 이동됩니다. 삭제하시겠습니까?' ) ) {
		return false;
	}
	var url = "/mybox/removeFolderProc.php";
	new Ajax.Request(url, {
		method:'get',
		asynchronous: false,
		parameters:{'folder_seqs':seq},
		onSuccess:function(xmlHttp) {
			var result = xmlHttp.responseText;			
			if (result == 'TRUE') {
				window.location.reload();
			} else {
				alert('폴더를 삭제하지 못했습니다.');
			}
		},
		onFailure:function(xmlHttp) {
			alert('폴더를 삭제하지 못했습니다.');
		} 
	});  	
}


/**
 * 내폴더 생성
 *
 **/	
function createFolder() {	

	var url = "/mybox/addFolderProc.php";			
  var cfName = $('cfName').value;
  if(!cfName.isByteLength(1,20)) {
		alert("폴더이름을 입력해주세요.한글 10자, 영문 20자까지 입력 가능합니다.");
		return false;
	}
	
	new Ajax.Request(url, {
		method:'post',
		asynchronous: false,  	
		parameters:{'cfName':cfName},					
		onSuccess:function(xmlHttp) {
			var folderSeq = xmlHttp.responseText;
			if( folderSeq == -1 ) {  						
				alert( "같은 이름의 폴더가 있습니다." );
			}else if ( folderSeq == -2 ) {
				alert( "폴더를 생성하지 못했습니다." );	
			}else{								
				addMyFolder($('cfName').value, folderSeq);
				$('cfName').value = "";			
				showSelectFolder();		
			}		  		
		},
		onFailure:function(xmlHttp) {
		} 
	});  	
}


/**
 * 마이박스 새폴더 생성시 생성된 폴더의 html을 생성하여 화면에 나타낸다.
 * 
 * @param folderName 생성시킬 폴더명
 * @param folderSeq 생성시킨 폴더의 폴더 seq
 * @author goodoi
 * @since 08.12.02
 */
function addMyFolder(folderName, folderSeq) {	
	folderName = folderName.replaceAll ('<', '&lt;');
	folderName = folderName.replaceAll ('>', '&gt;');	
	var newFolderTag = '<div class="mybox_s_title_all"><div class="mybox_s_title_icon" >' + 
          				 '<img src="/image/icon/icon_mybox_green_dot.gif" /></div>' +
          				 '<div style="float:left;">' +           				 
          				 '<span style="" id="folder_'+folderSeq+'" name="folder_'+folderSeq+'">' +
          				 '<a href="/mybox/index.php?cmd=doc&folderSeq=' + folderSeq + '&flag=' + $("flag").value + '" style="font-weight:normal" id="folderName_'+folderSeq+'"> ' +  folderName +
							 ' </a>' +
							 '<img src="/image/bt/bt_mybox_edit.gif" border="0" align="absmiddle" onclick="return folderRename(\'' + folderSeq + '\')" style="cursor: pointer;"/>' +
							 '<img src="/image/bt/bt_mybox_del.gif" border="0" align="absmiddle" onclick="return folderRemove(\'' + folderSeq + '\')" style="cursor: pointer;"/>' +
							 '</span>' +							 
							 '<span id="folder_input_'+folderSeq+'" style="display:none;">' +
							 '<input type="text" id="cfName_'+folderSeq+'" name="cfName_'+folderSeq+'" maxlength="20" size="9" value="'+folderName+'" style="height: 12px;" onkeypress="javascript:if( event.keyCode == 13 ){modifyFolder(\''+folderSeq+'\');}"/>' +
								'<img src="/image/bt/bt_mybox_edit.gif" id="confirm" name="confirm" onclick="return modifyFolder(\''+folderSeq+'\')" style="cursor: pointer;"/>' +
							'</span>' +							 
							 '</div></div>' + 
							 '<div id="newFolderArea"></div>';	
	
	var newFolderArea = $('newFolderArea');						 
	newFolderArea.innerHTML = newFolderTag;
	newFolderArea.id = "";
}

/**
 * 폴더 수정 입력창
 *
 **/
var temp;	
function folderRename(seq) {
	
	$("folder_"+seq).hide();
	$("folder_input_"+seq).show();
	$("cfName_"+seq).focus();	
	
}


/**
 * 폴더명 수정
 */
function modifyFolder(seq) {
	var url = "/mybox/renameFolderProc.php";			
  var cfName = $('cfName_'+seq).value;
  if(!cfName.isByteLength(1,20)) {
		alert("폴더이름을 입력해주세요.한글 10자, 영문 20자까지 입력 가능합니다.");
		return false;
	}
	
	new Ajax.Request(url, {
		method:'post',
		asynchronous: false,  	
		parameters:{'cfName':cfName, 'cfSeq':seq},					
		onSuccess:function(xmlHttp) {
			var result = xmlHttp.responseText;	  						
			if( result != '' ) {  						
				alert( result );
			}else{												
				if( $("folderList") != null ) {
					$("folder_input_"+seq).hide();
					$("folderName_"+seq).innerHTML = cfName;					
					$("folder_"+seq).show();
					showSelectFolder();	
				}else{
					$("folder_input_"+seq).hide();					
					$("folderName_"+seq).innerHTML = cfName;				
					$("folder_"+seq).show();
				}
			}		  		
		},
		onFailure:function(xmlHttp) {
		} 
	});  	
}

function userImgError(errImgDiv,errImgA){
	document.getElementById(errImgA).rel = '';
	document.getElementById(errImgDiv).style.display = 'none';
	return;
}



/**
 * 문서 수정 버튼 클릭시
 */
function modify(cd_status) {
	// 사용자가 입력한 값에 따라 넘어갈 값을 적절히 변경해 준다.
	
	if (!checkValue()) {
		return false;
	}
	$('modifyDiv').setOpacity(0);
	$('modifyDiv').hide();
	$('waitMessage').show();
	
	imgSelect();
					
	$('modifyForm').request({
		asynchronuos: false,
		onSuccess: function(transport) {
			var response = transport.responseText;
			//alert(response);
			var respList = response.split("|");
			var docType = respList[0];
			
			// 수정이 성공될 경우 공개/비공개 문서 여부를 알려준다.
			if (docType == 'R' || docType == 'N') {
				
				var myboxSeq = respList[1];
				$('waitMessage').hide();

				if (docType == 'R' && cd_status == 'N') {
					window.location.href = '/mybox/index.php?cmd=agreement&seq=' + myboxSeq + "&cd_status=" + docType;
				}else {
					var reUrl = getCookieValue('reUrl');
					window.location.href = reUrl;
				}							
				
			}else {
				$('modifyDiv').show();
				$('modifyDiv').setOpacity(1);
				$('waitMessage').hide();
				alert('수정이 실패했습니다.');
			}
		},
		onFailure: function(transport) {
			$('modifyDiv').show();
			$('modifyDiv').setOpacity(1);
			$('waitMessage').hide();
			alert('수정이 실패했습니다.');
		}
	});
	
}



/**
 * 문서 등록
 */
function regist(isExistDoc) {

	 //사용자가 입력한 값에 따라 넘어갈 값을 적절히 변경해 준다.
	if (!checkValue()) {
		return false;
	}
	
	$('registDiv').setOpacity(0);
	$('registDiv').hide();
	$('waitMessage').show();
	
	imgSelect();
	
	var actionPage = "/regist/procSaveDoc.php?regdoc=first";
	if (isExistDoc) {
		actionPage = "/regist/procSaveDoc.php?regdoc=exist";
	}
	$('registForm').action = actionPage;
	
	$('registForm').request({
		asynchronuos: false,
		onSuccess: function(transport) {
			var response = transport.responseText;
			alert(response);
			var respList = response.split("|");
			var docType = respList[0];
			
			// 등록이 성공하면 공개/비공개 문서인지를 알려준다.
			if (docType == 'R' || docType == 'N') {
			
				var myboxSeq = respList[1];
				if (docType == 'R') {
					$('waitMessage').hide();
					window.location.href = '/mybox/index.php?cmd=agreement&seq=' + myboxSeq + "&cd_status=" + docType;
				}else {
					$('waitMessage').hide();
					window.location.href = '/mybox/index.php?cmd=doc&flag=' + docType;
				}
			}else {
				$('registDiv').show();
				$('registDiv').setOpacity(1);
				$('waitMessage').hide();
				alert('등록이 실패했습니다.');
			}
		},
		onFailure: function(transport) {
			$('registDiv').show();
			$('registDiv').setOpacity(1);
			$('waitMessage').hide();
			alert('등록이 실패했습니다.');
		}
	});
}

/**
 * 마이 폴더를 추가한다.
 */
function updateFolderCategory(seq_folder, seq_category) {
	new Ajax.Updater('folderList', '/regist/updateFolderCategory.php', {
			method: 'post',
			asynchronous: false,
			parameters:{'seq_folder':seq_folder, 'seq_category':seq_category},
			onSuccess:function(xmlHttp) {
				var result = xmlHttp.responseText;	  			
				
				if( result != '' ) {  						
					alert( result );
				}else{					
					showFolder();
					showSelectFolder();  																
				}					
			},
			onFailure:function(xmlHttp) {
			}
	});
}