// AVA Clan Javascript
// required jQuery 1.3.2(or above)

var _checkClanName = false;

function checkClanName(clanId, formName, nameInput, checkHidden) {

	if (_checkClanName || !clanId) {
		return;
	}

	_checkClanName = true;

	$j.getJSON(
			"/clan/info.nhn",
			{"m":"checkclanname", "clanid":clanId},
			function(json) {
				if (json) {
					if (json.result != "Y") {
						alert(json.message);
						document.forms[formName][nameInput].value = "";
					} else {
						alert("This clan name is available.");
						document.forms[formName][checkHidden].value = "Y";
					}
				}
			});
	_checkClanName = false;
}

function checkCreateClanForm(fm) {

	if (!fm) {
		return;
	}

	if (fm.agree.checked == false) {
		alert("Please agree to the terms of service.");
		return;
	}

	if (fm["clan.guildId"].value == "") {
		alert("Enter a clan name.");
		return;
	}

	if (fm.checkName.value != "Y") {
		alert("Please check to see if the clan's name is available.");
		return;
	}

	fm.submit();
}

var _joinButtonClicked = false;
var _leaveButtonClicked = false;

function joinClan(clanId) {
	if (_joinButtonClicked || !clanId) {
		return;
	}

	_joinButtonClicked = true;
	$j.getJSON(
			"/myclan/join.nhn",
			{"clanid":clanId},
			function (json) {
				if (json && json.message) {
					alert(json.message);
					if (json.result == "Y") {
						location.href="/myclan/index.nhn?clanid="+clanId;
					}
				}
			});
	_joinButtonClicked = false;
}
function leaveClan(clanId) {
	if (_leaveButtonClicked || !clanId) {
		return;
	}
	if (!confirm("Do you really want to leave the clan?")) {
		return;
	}
	_leaveButtonClicked = true;
	$j.getJSON(
			"/myclan/leave.nhn",
			{"clanid":clanId},
			function (json) {
				if (json && json.message) {
					alert(json.message);
					if (json.result == "Y") {
						location.href="/myclan/index.nhn?clanid="+clanId;
					}
				}
			});

	_leaveButtonClicked = false;
}
function checkTextSize(objId, limit, displayCountId) {
	var text = $j("#"+objId).val();
	var byteCount = 0;
	var tempText = "";

	for (var i=0; i < text.length; i++) {
		
		byteCount += countByte(text.charAt(i));

		if (byteCount < limit-1) {
			tempText += text.charAt(i);
		} else {
			if (byteCount == limit-1) {
				if (countByte(text.charAt(i)) == 1) {
					tempText += text.charAt(i);
				}
			}

			if (byteCount == limit) {
				tempText += text.charAt(i);
			}
		}
	}

	$j("#"+objId).val(tempText);
	if (displayCountId) {
		$j("#"+displayCountId).text((byteCount>limit)?limit:byteCount);
	}
	return;
}
function countByte(str) {
	if (escape(str).length > 4) {
		return 2;
	} else {
		return 1;
	}
}

// Clan Schedule
var _nowDrawing = false;
var _json = null;
var _canAddNewSchedule = false;
function drawClanSchedule(clanId, targetDate, amount) {
	if (!targetDate || targetDate.length != 6) {
		return;
	}

	if (_nowDrawing) {
		return;
	}

	_nowDrawing = true;
	var currentDate = new Date();
	currentDate.setFullYear(parseInt(targetDate.substring(0,4)));
	currentDate.setMonth(Number(targetDate.substring(4,6)) - 1 + amount, 1);

	var textDate = ""+currentDate.getFullYear()+(currentDate.getMonth()<9?"0"+(currentDate.getMonth()+1):(currentDate.getMonth()+1));
	$j("#currentDate").text(textDate);

	var month = currentDate.getMonth();

	$j("#clanSchedule").empty();

	var html = "<tr><th class='holiday'>Sunday</th><th>Monday</th><th>Tuesday</th><th>Wednesday</th><th>Thursday</th><th>Friday</th><th>Saturday</th></tr>";
	while (currentDate.getMonth() == month) {
		html += "<tr>";
		var i=0;
		for (; i < 7 && currentDate.getMonth()==month; i++) {
			if (currentDate.getDay() == i) {
				var dateId = textDate+(currentDate.getDate()<10?"0"+currentDate.getDate():currentDate.getDate());
				html += "<td id='date_"+dateId+"'>";
				if (_canAddNewSchedule) {
					html += "<a href='#' onclick=\"formAddSchedule('"+dateId+"');return false;\"><p"+(i==0?" class='holiday'":"")+">"+currentDate.getDate()+"</p></a></td>";
				} else {
					html += "<p"+(i==0?" class='holiday'":"")+">"+currentDate.getDate()+"</p></td>";
				}
				currentDate.setDate(currentDate.getDate()+1);
			} else {
				html += "<td></td>";
			}
		}
		for (; i < 7; i++) {
			html += "<td></td>";
		}
		html += "</tr>";
	}
	$j("#clanSchedule").append(html);

	$j.getJSON(
			"/myclan/schedule.nhn",
			{"date":textDate, "clanid":clanId},
			function (json) {
				fillSchedule(json);
			});
}
function fillSchedule(json) {
	_nowDrawing = false;

	if (json == null || json.length == 0) {
		_json = null;
		return;
	}

	_json = json;
	for (var i=0; i < json.length; i++) {
		$j("#date_"+json[i].regdate).append("<span><a href='#' onclick=\"viewSchedule("+json[i].srl+");return false;\">"+json[i].shortcontent+"</a></span>");
	}
}
function viewSchedule(srl) {
	if (_json == null || _json.length < 1) {
		return;
	}

	for (var i=0; i < _json.length; i++) {
		if (_json[i].srl == srl) {
			$j("#viewSchedule p").text(_json[i].content);
			$j("#viewSchedule").css("left", $j("#calendar").position().left + 200);
			$j("#viewSchedule").css("top", $j("#calendar").position().top + 100);
			$j("#viewSchedule").css("display", "block");
			document.schedule.srl.value = srl;
			break;
		}
	}
}
function formEditSchedule() {
	if (_json == null || _json.length < 1) {
		return;
	}

	for (var i=0; i < _json.length; i++) {
		if (_json[i].srl == document.schedule.srl.value) {
			$j("#schedule_content").val(_json[i].content);
			$j("#editSchedule").css("left", $j("#calendar").position().left + 200);
			$j("#editSchedule").css("top", $j("#calendar").position().top + 100);
			$j("#editSchedule").css("display", "block");
			$j('#viewSchedule').css('display', 'none');
			return;
		}
	}
}
function formAddSchedule(regdate) {
	document.schedule.regdate.value = regdate;
	$j("#schedule_content").val("");
	$j("#editSchedule").css("left", $j("#calendar").position().left + 200);
	$j("#editSchedule").css("top", $j("#calendar").position().top + 100);
	$j("#editSchedule").css("display", "block");
}
function editSchedule() {
	$j("#editSchedule").css("display", "none");

	if (document.schedule.srl.value) {
		$j.post(
				"/myclan/schedule.nhn",
				{"m":"edit", "clanid":document.schedule.clanid.value, "srl":document.schedule.srl.value, "content":$j("#schedule_content").val()},
				function (json) {
					if (json == "Y") {
						drawClanSchedule(document.schedule.clanid.value, $j('#currentDate').text(), 0);
					}
				}, "json");
		cleanFormField();
		return;
	} else if (document.schedule.regdate.value) {
		$j.post(
				"/myclan/schedule.nhn",
				{"m":"add", "clanid":document.schedule.clanid.value, "regdate":document.schedule.regdate.value, "content":$j("#schedule_content").val()},
				function (json) {
					if (json == "Y") {
						drawClanSchedule(document.schedule.clanid.value, $j('#currentDate').text(), 0);
					}
				}, "json");
		cleanFormField();
		return;
	}
}
function deleteSchedule() {

	if (document.schedule.srl.value.length < 1) {
		return;
	}

	if (!confirm("Do you really want to delete this schedule?")) {
		closeScheduleLayer("viewSchedule");
		return;
	}

	$j.getJSON(
			"/myclan/schedule.nhn",
			{"m":"remove", "srl":document.schedule.srl.value, "clanid":document.schedule.clanid.value},
			function (json) {
				if (json == "Y") {
					drawClanSchedule(document.schedule.clanid.value, $j('#currentDate').text(), 0);
				}
			});
	closeScheduleLayer("viewSchedule");
}
function cleanFormField() {
	document.schedule.srl.value = "";
	document.schedule.regdate.value = "";
}
function closeScheduleLayer(layerId) {
	cleanFormField();
	$j("#"+layerId).css("display", "none");
}
