﻿var uploadFiles = [];

var FUP_TEXT_UPLOAD_WAIT_EN	= "Waiting...";
var FUP_TEXT_UPLOAD_WAIT_KR	= "대기중...";

var FUP_TEXT_ANALYZING_EN = "Analyzing...";
var FUP_TEXT_ANALYZING_KR = "분석중...";

var FUP_TEXT_COMPLETE_EN = "<font color=239e43>Complete</b></font>";
var FUP_TEXT_COMPLETE_KR = "<font color=239e43>완료</b></font>";

var FUP_TEXT_CANCEL_EN = "<font color=red>Cancel</font>";
var FUP_TEXT_CANCEL_KR = "<font color=red>취소</font>";

var FUP_TEXT_ERROR_LOGIN_EN = "<font color=red>Login error. Please login again.</font>";
var FUP_TEXT_ERROR_LOGIN_KR = "<font color=red>로그인 오류가 발생하였습니다. 다시 로그인 해주세요.</font>";

var FUP_TEXT_ERROR_EXT_EN = "<font color=red>You can only upload MP3, M4A files.</font>";
var FUP_TEXT_ERROR_EXT_KR = "<font color=red>MP3, M4A 파일만 업로드 할 수 있습니다.</font>";

var FUP_TEXT_ERROR_SIZE_EN = "<font color=red>You can only upload files less than 30MB.</font>";
var FUP_TEXT_ERROR_SIZE_KR = "<font color=red>30MB 이하의 파일만 업로드 할 수 있습니다.</font>";

var FUP_TEXT_ERROR_TIME_EN = "<font color=red>You can upload files of less than 10 minutes.</font>";
var FUP_TEXT_ERROR_TIME_KR = "<font color=red>10분 이하의 파일만 업로드 할 수 있습니다.</font>";

var FUP_TEXT_ERROR_LIMIT_20_EN = "<font color=red>You can save up to 20 MP3 files.</font>";
var FUP_TEXT_ERROR_LIMIT_20_KR = "<font color=red>20곡 이상은 등록 할 수 없습니다.</font>";

var FUP_TEXT_ERROR_LIMIT_30_EN = "<font color=red>You can save up to 30 MP3 files.</font>";
var FUP_TEXT_ERROR_LIMIT_30_KR = "<font color=red>30곡 이상은 등록 할 수 없습니다.</font>";

var FUP_TEXT_ERROR_LIMIT_50_EN = "<font color=red>You can save up to 50 MP3 files.</font>";
var FUP_TEXT_ERROR_LIMIT_50_KR = "<font color=red>50곡 이상은 등록 할 수 없습니다.</font>";

var FUP_TEXT_ERROR_LIMIT_1_EN = "<font color=red>Lite user can save up to 1 MP3 file.</font>";
var FUP_TEXT_ERROR_LIMIT_1_KR = "<font color=red>라이트 버전 사용자는 1곡 이상 등록 할 수 없습니다.</font>";

var FUP_TEXT_ERROR_LIMIT_3_EN = "<font color=red>Lite user can save up to 3 MP3 file.</font>";
var FUP_TEXT_ERROR_LIMIT_3_KR = "<font color=red>라이트 버전 사용자는 3곡 이상 등록 할 수 없습니다.</font>";

var FUP_TEXT_ERROR_EN = "<font color=red>Error occurred. Please try again.</font>";
var FUP_TEXT_ERROR_KR = "<font color=red>오류가 발생하였습니다. 다시 시도해주세요.</font>";

function setInfoOk(str) {
	//alert(str);
}

function FUploader_getInfo() {
	var uploadID 	= getUploaderCount()-1;
	var uploadURL = FUP_UPLOAD_URL;
	var checkURL 	= FUP_CHECK_URL;
	var bImageURL = FUP_BIMAGE_URL;
	var uploadKey = FUP_UPLOAD_KEY;
	
	var mp3Uploader = getObject("FObject" + uploadID);
	mp3Uploader.setInfo( uploadID , uploadURL , checkURL , bImageURL, uploadKey, FUP_EXTENSION_DESCRIPTION, FUP_EXTENSION );
}

function FUploader_Ready(uploaderID , fileName) {
	fUpStartCount++;

	setUploaderCloseHidden(true);
	
	setUploaderFileName(uploaderID, fileName);
	setUploaderFlashHidden(uploaderID, true);
	setUploaderCancelHidden(uploaderID, false);

	if (FUP_LANG == LANG_KOREAN)
		setUploaderDescription(uploaderID, FUP_TEXT_UPLOAD_WAIT_KR);
	else
		setUploaderDescription(uploaderID, FUP_TEXT_UPLOAD_WAIT_EN);
	uploadFiles.push(uploaderID);
	if (uploadFiles.length == 1)
		uploadNextHash();
		
	addUploader();
}

function FUploader_Analyze(uploaderID , fileName) {
	setUploaderCloseHidden(true);
	
	setUploaderFileName(uploaderID, fileName);
	if (FUP_LANG == LANG_KOREAN)
		setUploaderDescription(uploaderID, FUP_TEXT_ANALYZING_KR);
	else
		setUploaderDescription(uploaderID, FUP_TEXT_ANALYZING_EN);
}

function FUploader_Start(uploaderID, step, fileName) {
	setUploaderCloseHidden(true);
	
	setUploaderProgress(uploaderID, 0, 0);
	setUploaderFileName(uploaderID, fileName);
}

function FUploader_Progress(uploaderID, size, total) {
	setUploaderDescription(uploaderID, "");
	setUploaderProgress(uploaderID, size, total);
}

function FUploader_Complete(uploaderID, step, code) {
	setUploaderProgress(uploaderID, 0, 0); // Progress 숨김

	switch (code) {
		case 1:
			break;
		default:
			uploadRemove(uploaderID);
			setUploaderCancelHidden(uploaderID, true);
			setUploaderCloseHidden(false);
			break;
	}
	
	switch (code) {
		case 0:
			fUpCompleteCount++;
			uploadUpdateCount();
			
			if (FUP_LANG == LANG_KOREAN)
				setUploaderDescription(uploaderID, FUP_TEXT_COMPLETE_KR);
			else
				setUploaderDescription(uploaderID, FUP_TEXT_COMPLETE_EN);

			if (fUpNewCount == fUpStartCount && fUpLimitCount == fUpCompleteCount) {
				addUploaderComplete();
				setUploaderCloseHidden(false);
				return;
			}
			break;
		case 1:
			break;
		case -1:
			if (FUP_LANG == LANG_KOREAN)
				setUploaderDescription(uploaderID, FUP_TEXT_ERROR_LOGIN_KR);
			else
				setUploaderDescription(uploaderID, FUP_TEXT_ERROR_LOGIN_EN);
			break;
		case -10:
			if (FUP_LANG == LANG_KOREAN)
				setUploaderDescription(uploaderID, FUP_TEXT_ERROR_SIZE_KR);
			else
				setUploaderDescription(uploaderID, FUP_TEXT_ERROR_SIZE_EN);
			break;
		case -20:
			if (FUP_LANG == LANG_KOREAN)
				setUploaderDescription(uploaderID, FUP_TEXT_ERROR_EXT_KR);
			else
				setUploaderDescription(uploaderID, FUP_TEXT_ERROR_EXT_EN);
			break;
		case -30:
			if (FUP_LANG == LANG_KOREAN)
				setUploaderDescription(uploaderID, FUP_TEXT_ERROR_TIME_KR);
			else
				setUploaderDescription(uploaderID, FUP_TEXT_ERROR_TIME_EN);
			break;
		
		case -100:
			if (FUP_LANG == LANG_KOREAN)
				setUploaderDescription(uploaderID, FUP_TEXT_ERROR_LIMIT_20_KR);
			else
				setUploaderDescription(uploaderID, FUP_TEXT_ERROR_LIMIT_20_EN);
			break;
		case -101:
			if (FUP_LANG == LANG_KOREAN)
				setUploaderDescription(uploaderID, FUP_TEXT_ERROR_LIMIT_30_KR);
			else
				setUploaderDescription(uploaderID, FUP_TEXT_ERROR_LIMIT_30_EN);
			break;
		case -110:
			if (FUP_LANG == LANG_KOREAN)
				setUploaderDescription(uploaderID, FUP_TEXT_ERROR_LIMIT_1_KR);
			else
				setUploaderDescription(uploaderID, FUP_TEXT_ERROR_LIMIT_1_EN);
			break;
		case -111:
			if (FUP_LANG == LANG_KOREAN)
				setUploaderDescription(uploaderID, FUP_TEXT_ERROR_LIMIT_3_KR);
			else
				setUploaderDescription(uploaderID, FUP_TEXT_ERROR_LIMIT_3_EN);
			break;
		case -112:
			if (FUP_LANG == LANG_KOREAN)
				setUploaderDescription(uploaderID, FUP_TEXT_ERROR_LIMIT_50_KR);
			else
				setUploaderDescription(uploaderID, FUP_TEXT_ERROR_LIMIT_50_EN);
			break;
		case -113:
			if (FUP_LANG == LANG_KOREAN)
				setUploaderDescription(uploaderID, FUP_TEXT_ERROR_LIMIT_20_KR);
			else
				setUploaderDescription(uploaderID, FUP_TEXT_ERROR_LIMIT_20_EN);
			break;
		case -900:
		case -999:
		default:
			if (FUP_LANG == LANG_KOREAN)
				setUploaderDescription(uploaderID, FUP_TEXT_ERROR_KR);
			else
				setUploaderDescription(uploaderID, FUP_TEXT_ERROR_EN);
			break;
	}
	
	switch (code) {
		case 1:
			uploadNextFile();
			break;
		default:
			if (uploadFiles.length > 0) {
				if (uploadFiles[0] == uploaderID)
					uploadFiles.shift();
				uploadNextHash();
			}
			break;
	}
	
	switch (code) {
		case 0:
		case 1:
			break;
		default:
			fUpCurrentCount--;
			if (fUpNewCount == fUpStartCount) addUploader();
			break;
	}
}

function FUploader_Error(uploaderID, code) {
	/*
	setUploaderProgress(uploaderID, 0, 0); // Progress 숨김
	
	setUploaderDescription(uploaderID, '오류발생 (' + code + ')');
	*/
}

/////////////////////////////////////////////////////////////////

function uploadNextHash() {
	while (uploadFiles.length > 0 && uploadFiles[0] == -1)
		uploadFiles.shift();
	
	if (uploadFiles.length == 0) return;

	var mp3Uploader = getObject("FObject" + uploadFiles[0]);
	if( mp3Uploader )
		mp3Uploader.uploadHash("");
}

function uploadNextFile() {
	while (uploadFiles.length > 0 && uploadFiles[0] == -1)
		uploadFiles.shift();
	
	if (uploadFiles.length == 0) return;
	
	var mp3Uploader = getObject("FObject" + uploadFiles[0]);
	if( mp3Uploader )
		mp3Uploader.uploadFile("");
}

function uploadCancel(uploaderID) {
	if (uploadFiles.length == 0) return;
	
	for (i = 0; i < uploadFiles.length; i++) {
		if (uploadFiles[i] == uploaderID) {
			var mp3Uploader = getObject("FObject" + uploadFiles[i]);
			if( mp3Uploader ) {
				mp3Uploader.uploadCancel();
				uploadFiles[i] = -1;
				
				setUploaderCloseHidden(false);
				
				uploadNextHash();
				
				if (FUP_LANG == LANG_KOREAN)
					setUploaderDescription(uploaderID, FUP_TEXT_CANCEL_KR);
				else
					setUploaderDescription(uploaderID, FUP_TEXT_CANCEL_EN);

				setUploaderCancelHidden(uploaderID, true);
				setUploaderProgress(uploaderID, 0, 0);
					
				fUpCurrentCount--;
				if (fUpNewCount == fUpStartCount) addUploader();
			}
		}
	}
}

function uploadRemove(uploaderID) {
	var mp3Uploader = getObject("FObject" + uploaderID);
	if (mp3Uploader) {
		mp3Uploader.parentNode.removeChild(mp3Uploader);
	}
}

function uploadUpdateCount() {
	var divCount = getObject("FlashUploadCount");
	if (divCount) {
		divCount.innerHTML = fUpCompleteCount + "/" + fUpLimitCount;
	}
}