﻿var LANG_KOREAN												= "ko";
var LANG_ENGLISH											= "en";

var FUP_VERISON												= "1.2"

var FUP_LANG													= LANG_ENGLISH;
var FUP_UPLOAD_URL 										= "/MusicUpload/UploadFlashFile.asp";
var FUP_CHECK_URL 										= "/MusicUpload/UploadFlash.asp";
var FUP_BIMAGE_URL 										= "/Common/Images2/btn_upload.gif";
var FUP_UPLOAD_KEY 										= "";
var FUP_EXTENSION_DESCRIPTION					= "Music Files (*.mp3,*.m4a)"
var FUP_EXTENSION											= "*.mp3;*.m4a;"

var DIV_CONTENTS_INDEX								= 0;
var DIV_PROGRESS_INDEX 								= 0;
var DIV_PROGRESS_BACK_INDEX						= 0;
var DIV_PROGRESS_VALUE_INDEX					= 1;
var DIV_PROGRESS_TEXT_INDEX						= 2;
var DIV_FILE_NAME_INDEX								= 1;
var DIV_FILE_NAME_TEXT_INDEX					= 0;
var DIV_DESCRIPTION_INDEX 						= 2;
var DIV_CANCEL_INDEX									= 3;
var FLASH_OBJECT_INDEX								= 4;

var DIV_PROGRESS_WIDTH								= 360;

var fUpLimitCount			= 30;
var	fUpCompleteCount 	= 0;
var fUpCurrentCount		= 0;
var fUpNewCount 			= 0;
var fUpStartCount 		= 0;

// 업로더 갯수 리턴
function getUploaderCount() {
	var rootNode = getObject("FlashUpload");
	var count = 0;
	
	for (i = 0; i < rootNode.childNodes.length; i++) {
		if (rootNode.childNodes[i].nodeName == "DIV" || rootNode.childNodes[i].nodeName == "SPAN")
			count++;
	}

	return count;
}

// DIV, SPAN 의 Child Node 리턴
function getChildNodeForIndex(obj, index) {
	var nodes = obj.childNodes;
	var checkIndex = 0;
	for (i = 0; i < nodes.length; i++) {
		if (nodes[i].nodeName == "DIV" || nodes[i].nodeName == "SPAN") {
			if (index == checkIndex)
				return nodes[i];
			else
				checkIndex++;
		}
	}
	return null;
}

// 플레시 설치 추가
function addFInstaller() {
	var fUploaderCount = getUploaderCount();
	var rootNode = getObject("FlashUpload");
	if (rootNode) {
		var fInstaller = document.createElement("div");

		fInstaller.innerHTML = getObject("FInstaller").innerHTML;
		
		rootNode.appendChild(fInstaller);
	}
}

// 플레시 설치 추가 - Intro
function addFInstallerToIntro() {
	var fUploaderCount = getUploaderCount();
	var rootNode = getObject("FlashUploadIntro");
	if (rootNode) {
		var fInstaller = document.createElement("div");

		fInstaller.innerHTML = getObject("FInstaller").innerHTML;
		
		rootNode.appendChild(fInstaller);
	}
}

// 완료 추가
function addUploaderComplete() {
	var fUploaderCount = getUploaderCount();
	var rootNode = getObject("FlashUpload");
	if (rootNode) {
		var fUploader = document.createElement("div");

		fUploader.innerHTML = getObject("FUploaderComplete").innerHTML;
		
		rootNode.appendChild(fUploader);
	}
}

// 완료 추가 - Intro
function addUploaderCompleteToIntro() {
	var fUploaderCount = getUploaderCount();
	var rootNode = getObject("FlashUploadIntro");
	if (rootNode) {
		var fUploader = document.createElement("div");

		fUploader.innerHTML = getObject("FUploaderComplete").innerHTML;
		
		rootNode.appendChild(fUploader);
	}
}

// 업로드 윈도우 팝업 추가 - Intro
function addUploaderGoToIntro() {
	var fUploaderCount = getUploaderCount();
	var rootNode = getObject("FlashUploadIntro");
	if (rootNode) {
		var fUploader = document.createElement("div");

		fUploader.innerHTML = getObject("FlashUploadGo").innerHTML;
		
		rootNode.appendChild(fUploader);
	}
}

// html 업로더 추가 - Intro
function addHtmlUploaderToIntro() {
	var fUploaderCount = getUploaderCount();
	var rootNode = getObject("FlashUploadIntro");
	if (rootNode) {
		var fUploader = document.createElement("div");

		fUploader.innerHTML = getObject("HtmlUploader").innerHTML;
		
		rootNode.appendChild(fUploader);
	}
}

// 업로더 추가
function addUploader() {
	var hasFlash = DetectFlashVer(10, 0, 0);
	
	if (hasFlash) {
		if (fUpCurrentCount >= fUpLimitCount) return;

		var fUploaderCount = getUploaderCount();
		var rootNode = getObject("FlashUpload");
		if (rootNode) {
			var fUploader = document.createElement("div");

			fUploader.setAttribute("id", "FUploader" + fUploaderCount);
			fUploader.innerHTML = getObject("FUploaderProto").innerHTML;
			
			rootNode.appendChild(fUploader);
			
			var contents = getChildNodeForIndex(fUploader, DIV_CONTENTS_INDEX);
		
			if (contents ) {
				var fObject = getChildNodeForIndex(contents, FLASH_OBJECT_INDEX);
				fObject.setAttribute("id" , "FObject" + fUploaderCount);
				var flashvars = {}; 
				var params = {}; 
				var attributes = {}; 

				params.wmode = "transparent";
				swfobject.embedSWF("/Common/Flash/FUploader.swf?v=" + FUP_VERISON,  "FObject" + fUploaderCount , "56", "20", "10.0.22.87", "/Common/Flash/ExpressInstall.swf" ,flashvars, params,attributes);
				getObject("FObject" + fUploaderCount).className = "fObject";
				
				fUpNewCount++;
				fUpCurrentCount++;
			}
			
			resetUploader(fUploaderCount);
		}
	}
}

// 업로더 초기화
function resetUploader(uploaderID) {
	if (FUP_LANG == LANG_KOREAN)
		setUploaderFileName(uploaderID, "<b>지원파일 : <font color=#969696>MP3,M4A / 30MB / 10분</font></b>");
	else
		setUploaderFileName(uploaderID, "<font style='font-size:11px'><b>Support Files : <font color=#969696>MP3,M4A / 30MB / 10Minutes</font></b></font>");
		
	if (FUP_LANG == LANG_KOREAN)
		setUploaderDescription(uploaderID, "'Upload' 버튼을 눌러 업로드 할 음악을 선택하세요.");
	else
		setUploaderDescription(uploaderID, "Press \"Upload\" to select and upload a music file.");
	setUploaderCancel(uploaderID, "<a href='javascript:uploadCancel(" + uploaderID + ");'  onFocus='this.blur()'><img src='/common/images2/btn_cancel.png' width=56 height=20></a>");
	setUploaderCancelHidden(uploaderID, true);
	setUploaderProgress(uploaderID, 0, 0);
}

// 업로드 진행 설정
function setUploaderProgress(uploaderID, size, total) {
	var fUploader = getObject("FUploader" + uploaderID);
	if (fUploader) {
		var contents = getChildNodeForIndex(fUploader, DIV_CONTENTS_INDEX);
		if (contents) {
			var divProgress = getChildNodeForIndex(contents, DIV_PROGRESS_INDEX);
			if (divProgress) {
				if (size == 0 && total == 0) {
					setObjectHidden(divProgress, true);
					setObjectStyleWidth(divProgress, DIV_PROGRESS_WIDTH);
					
					var divProgressBack = getChildNodeForIndex(divProgress, DIV_PROGRESS_BACK_INDEX);
					if (divProgressBack)
						setObjectStyleWidth(divProgressBack, DIV_PROGRESS_WIDTH);
							
					var divProgressValue = getChildNodeForIndex(divProgress, DIV_PROGRESS_VALUE_INDEX);
					if (divProgressValue)
						setObjectStyleWidth(divProgressValue, 0);
						
					var divProgressText = getChildNodeForIndex(divProgress, DIV_PROGRESS_TEXT_INDEX);
					if (divProgressText) {
						setObjectStyleWidth(divProgressText, DIV_PROGRESS_WIDTH);
						divProgressText.innerHTML = "";
					}
				} else {
					setObjectHidden(divProgress, false);
							
					var divProgressBack = getChildNodeForIndex(divProgress, DIV_PROGRESS_BACK_INDEX);
					if (divProgressBack) {
						setObjectStyleWidth(divProgressBack, DIV_PROGRESS_WIDTH);
						if (divProgressBack.innerHTML == "")
							divProgressBack.innerHTML = "&nbsp;";
					}
						
					var divProgressValue = getChildNodeForIndex(divProgress, DIV_PROGRESS_VALUE_INDEX);
					if (divProgressValue) {
						setObjectStyleWidth(divProgressValue, DIV_PROGRESS_WIDTH * (size / total));
						if (divProgressValue.innerHTML == "")
							divProgressValue.innerHTML = "&nbsp;";
					}
						
					var divProgressText = getChildNodeForIndex(divProgress, DIV_PROGRESS_TEXT_INDEX);
					if (divProgressText) {
						divProgressText.innerHTML = Math.round(100 / total * size) + "%";
					}
				}
			}
		}
	}
}

// 파일명 설정
function setUploaderFileName(uploaderID, fileName) {
	var fUploader = getObject("FUploader" + uploaderID);
	if (fUploader) {
		var contents = getChildNodeForIndex(fUploader, DIV_CONTENTS_INDEX);
		if (contents) {
			var divFileName = getChildNodeForIndex(contents, DIV_FILE_NAME_INDEX);
			if (divFileName) {
				var divFileNameText = getChildNodeForIndex(divFileName, DIV_FILE_NAME_TEXT_INDEX);
				if (divFileNameText)
					divFileNameText.innerHTML = fileName;
			}
		}
	}
}

// 설명글 설정
function setUploaderDescription(uploaderID, desc) {
	var fUploader = getObject("FUploader" + uploaderID);
	if (fUploader) {
		var contents = getChildNodeForIndex(fUploader, DIV_CONTENTS_INDEX);
		
		if (contents) {
			var divDesc = getChildNodeForIndex(contents, DIV_DESCRIPTION_INDEX);
			
			if (divDesc) {
				divDesc.innerHTML = desc;
				
				if (desc == "")
					setObjectHidden(divDesc, true);
				else
					setObjectHidden(divDesc, false);
			}
		}
	}
}

// Flash 숨김 설정
function setUploaderFlashHidden(uploaderID, bHide) {
	var uploaderFlash = getObject("FObject" + uploaderID);
	setObjectStyleLeft(uploaderFlash, -10000);
	/*if (bHide)
		uploaderFlash.style.visibility = "visible";
	else
		uploaderFlash.style.visibility = "visible";
	*/
	/*
	var fUploader = getObject("FUploader" + uploaderID);
	if (fUploader) {
		var contents = getChildNodeForIndex(fUploader, DIV_CONTENTS_INDEX);
		if (contents) {
			var fObject = getChildNodeForIndex(contents, FLASH_OBJECT_INDEX);
			if (fObject) {
				setObjectHidden(fObject, bHide);
			}
		}
	}
	*/
}

// Cancel 설정
function setUploaderCancel(uploaderID, html) {
	var fUploader = getObject("FUploader" + uploaderID);
	if (fUploader) {
		var contents = getChildNodeForIndex(fUploader, DIV_CONTENTS_INDEX);
		if (contents) {
			var divCancel = getChildNodeForIndex(contents, DIV_CANCEL_INDEX);
				divCancel.innerHTML = html;
		}
	}
}

// Cancel 숨김 설정
function setUploaderCancelHidden(uploaderID, bHidden) {
	var fUploader = getObject("FUploader" + uploaderID);
	if (fUploader) {
		var contents = getChildNodeForIndex(fUploader, DIV_CONTENTS_INDEX);
		if (contents) {
			var divCancel = getChildNodeForIndex(contents, DIV_CANCEL_INDEX);
				setObjectHidden(divCancel, bHidden);
		}
	}
}

// Close 숨김 설정
function setUploaderCloseHidden(bHidden) {
	var divClose = getObject("FlashUploadWindowClose");
	if (divClose)
		setObjectHidden(divClose, bHidden);
}