
//********************************************************//
//	공지사항 
//  작성자 : 김미의 
//  작성일 : 2007-04-11
//
//	Version. p.0.5
//********************************************************//

var category = "";
var pageSize = 10;
var groupSize = 5;

var currentArray = 0;

var currentPage = 1;
var currentGroup = ((currentPage-1)/groupSize)+1;
var currentScroll = 0;

//글번호 
var startCurrentNum = 0;
var nextCurrentNum = 0;

var searchkey = "";
var searchvalue = "";

var totalPage = 0;

var startPage = ((currentGroup-1)*groupSize) + 1;
var endPage = (currentGroup*groupSize);

var startItem = 10;
var endItem = pageSize-1;

var totalCount = 0;

var gridHtml = "";
var currentId = 0;
var prevId = 0;
var nextId = 0;

var prevPage = 1;
var nextPage = 2;

var minSize = 12;
var maxSize = 16;
var diffSize = maxSize - minSize;

var prevPageSize = minSize;
var nextPageSize = maxSize;
var thisPage = 1;

var openContent = "";

var lists;
var items;
var login;
var timer;

var tmpReadHTML = "";
var listArray = new Array();
var listObj, readObj,  pageObj ;

function initBoard(kind, idx) {
	category = kind;
	readObj = document.getElementById("boardread");
	pageObj = document.getElementById("pagelist");
	listObj = document.getElementById("boardlist");

	tmpReadHTML = readObj.innerHTML;
	readObj.innerHTML = "";
	initGrid('boardgrid');
		
	if(idx == ""){
		actionTrigger('getList(1)');
	}else{
		actionTrigger('getContent(' +idx+ ')');
	}
}

function getList(page) {

	listArray = new Array();

	if(!isNaN(page)) currentPage = page;
	if(currentPage < 1) currentPage = 1;
	currentArray = 0;
	startItem = 10;
	endItem = pageSize-1;
	totalCount = 0;
	gridHtml = "";
	currentScroll = 0;
	currentId = 0;

	thisPage = currentPage;
	prevPageSize = minSize;
	nextPageSize = maxSize;

	//searchkey = document.searchform.searchkey.value;
	//searchvalue = document.searchform.searchvalue.value;
	sendRequestFunction("POST","notice_act.jsp",
		"cmd=list&category="+category+"&ps="+pageSize+"&p="+currentPage+"&searchkey="+searchkey+"&searchvalue="+searchvalue,
		function() {moveContent(showList);});
	
}

function getSearch() {
	
	if(timer) clearInterval(timer);

	listArray = new Array();

	currentPage = 1;
	currentArray = 0;
	startItem = 10;
	endItem = pageSize-1;
	totalCount = 0;
	gridHtml = "";
	currentScroll = pageSize;
	currentId = 0;
	
	thisPage = currentPage;
	prevPageSize = minSize;
	nextPageSize = maxSize;

	searchkey = document.searchform.searchkey.value;
	searchvalue = document.searchform.searchvalue.value;

	sendRequestFunction("POST","notice_act.jsp",
		"cmd=list&category="+category+"&ps="+pageSize+"&p="+currentPage+"&searchkey="+searchkey+"&searchvalue="+searchvalue, 
		showList);
}

function getSearchInterval() {
	if(timer) clearInterval(timer);
	timer = null;
	timer = setInterval(getSearch, 700);
}

function getPrevList() {
	boardlist.onmousewheel = doNotScrolling;
		firstitem = listArray[currentArray][0];
		var idx = firstitem.getElementsByTagName("idx").item(0).firstChild.nodeValue;
		sendRequestFunction("POST","notice_act.jsp",
			"cmd=list&action=prev&category="+category+"&ps="+pageSize+"&p="+currentPage+"&lastitem="+idx+"&searchkey="+searchkey+"&searchvalue="+searchvalue, 
			addPrevList);
}

function getNextList() {
	boardlist.onmousewheel = doNotScrolling;
		lastitem = listArray[currentArray+1][pageSize-1];
		var idx = lastitem.getElementsByTagName("idx").item(0).firstChild.nodeValue;
		sendRequestFunction("POST","notice_act.jsp",
			"cmd=list&action=next&category="+category+"&ps="+pageSize+"&p="+currentPage+"&lastitem="+idx+"&searchkey="+searchkey+"&searchvalue="+searchvalue, 
			addNextList);
}

function getContent(idx) {
	if(isNaN(idx)) {
		alert("더 이상 글이 없습니다.");
	} else {
		currentId = idx;
		sendRequestFunction("POST","notice_act.jsp",
			"cmd=read&category="+category+"&idx="+idx, 
			function(){moveContent(showRead);});
		
	}
}


function showRead() {
	openContent = "boardread";
	readObj.innerHTML = tmpReadHTML;
	var cells = readObj.getElementsByTagName("div");
	read = REQ.responseXML.getElementsByTagName("read").item(0);	
	nextId = parseInt(read.getAttribute("next"), 10);
	prevId = parseInt(read.getAttribute("prev"), 10);
	if(nextId > 0){
		nextArticle.innerHTML = "<a href=\"javascript:actionTrigger(\'getContent("+ nextId +")\');\"><img src=\"../images/common/btn_next.gif\" width=\"46\" height=\"19\"></a>" ;
	}else{
		nextArticle.innerHTML = "<img src=\"../images/common/btn_next.gif\" width=\"46\" height=\"19\">" ;
	}
	
	if(prevId > 0){
		preArticle.innerHTML = "<a href=\"javascript:actionTrigger('getContent("+ prevId +")');\"><img src=\"../images/common/btn_prev.gif\" width=\"46\" height=\"19\"></a>";
	}else{
		preArticle.innerHTML = "<img src=\"../images/common/btn_prev.gif\" width=\"46\" height=\"19\">" ;
	}
	
					
	var celllength = cells.length;
	for(x = 0; x < celllength; x++) {
		if(cells.item(x).id) {
			if(read.getElementsByTagName(cells.item(x).id).item(0)) {
				cells.item(x).innerHTML = read.getElementsByTagName(cells.item(x).id).item(0).firstChild.nodeValue;
			}
		}
	}
	var height = readObj.scrollHeight;
	Resize(readObj).smoothly(NaN, NaN, NaN, 100, null, 1);
}

function showList() {

	openContent = "boardlist";

	lists = REQ.responseXML.getElementsByTagName("lists").item(0);
	items = lists.getElementsByTagName("item");
	totalCount = parseInt(lists.getAttribute("totalcount"), 10);
	boardlist.onmousewheel = doScrolling;

	totalPage = Math.ceil(totalCount / pageSize);
	currentGroup = Math.floor(((currentPage-1)/groupSize)+1);
	startPage = Math.ceil(((currentGroup-1)*groupSize) + 1);
	endPage = Math.ceil((currentGroup*groupSize));
	currentScroll = (totalPage - (currentPage))*pageSize;
	
	startCurrentNum	= totalCount - pageSize*(currentPage-1);
	nextCurrentNum	= totalCount - pageSize*(currentPage)+1;
	
	currentArray = Math.ceil((totalCount - (currentPage-1)*10)/10);
	
	if(items.length > pageSize) {
		listArray[currentArray+1] = new Array();
		for(var i=0; i<pageSize; i++){
			listArray[currentArray+1][i] = items.item(i);
		}
		for(var i=0; i<pageSize; i++){
			lists.removeChild(lists.firstChild);
		}

		items = lists.getElementsByTagName("item");
	}

	listArray[currentArray] = new Array();
	for(var i=0; i<items.length; i++){
		listArray[currentArray][i] = items.item(i);
	}
	showGrid("boardgrid",listArray[currentArray]);

	var height = listObj.scrollHeight;
	Resize(listObj).smoothly(NaN, NaN, NaN, 100, null, 1);
	showPageList();
}

function showPageList() {

	if(thisPage < currentPage) {
		prevPageSize = maxSize;
		nextPageSize = minSize;
		thisPage = currentPage;
		startPage = currentPage-3;
		if(currentPage > 5) {
			if(currentPage >= totalPage)  startPage = currentPage-4;
		}
		endPage = currentPage+1;
	} else if(thisPage > currentPage) {
		prevPageSize = minSize;
		nextPageSize = maxSize;
		thisPage = currentPage;
		startPage = currentPage-2;
		if(currentPage > 4) {
			if(currentPage+1 >= totalPage)  startPage = currentPage-3;
		}
		endPage = currentPage+2;
	}

	if(prevPageSize < minSize) prevPageSize = minSize;
	if(nextPageSize < minSize) nextPageSize = minSize;

	var html = "<table border='0' cellspacing='0' cellpadding='0'><tr>";
	var size = 0;
	var page = 0;

	if(startPage < 1) startPage = 1;
	if(startPage < 2) endPage = 5;
	else if(endPage > totalPage) endPage = totalPage;
	if(totalPage <= groupSize) startPage = 1;
	
	if(startPage > 1)
		html += "<td><a href=\"javascript:actionTrigger('getList("+(startPage-1)+")');\"><img src=\"../images/common/btn_p.gif\" align=\"absmiddle\"></a></td><td width=\"15\"></td>";
	
	html += "<td>";
	for(var i = startPage; i <= endPage; i++) {
		if(i> totalPage) break;
	
		if(i == currentPage-1) size =  prevPageSize;
		else if(i == currentPage) size = nextPageSize;
		else size = minSize;

		if(size > minSize+(Math.ceil(diffSize/2)-1)) page = "<b>"+i+"</b>";
		else page = i+"";
		html += "<td align='center'><a href=\"javascript:actionTrigger('getList("+i+")');\" >"+page+"</a>";
		if(i < endPage)
			html += "<img src=\"../images/common/dot_w.gif\" width=\"3\" height=\"1\">";
	}
	html += "</td>";
	
	if(endPage < totalPage)
		html += "<td width=\"15\"></td><td><a href=\"javascript:actionTrigger('getList("+(endPage+1)+")');\"><img src=\"images/btn_next2.gif\" width=\"14\" height=\"13\" align=\"absmiddle\"></a></td>";

	html += "</tr></table>";
	pageObj.innerHTML = html;
}

function retrunList() {

	openContent = "boardlist";
	
	boardlist.onmousewheel = doScrolling;

	var height = listObj.scrollHeight;
	Resize(listObj).smoothly(NaN, NaN, NaN, height, null, 1);
}

function addPrevList() {
	lists = REQ.responseXML.getElementsByTagName("lists").item(0);
	items = lists.getElementsByTagName("item");
	totalCount = parseInt(lists.getAttribute("totalcount"), 10);
	boardlist.onmousewheel = doScrolling;
	startItem = items.length-1;
	endItem = 8;
	prevPage = currentArray+1;

	totalPage = Math.ceil(totalCount / pageSize);
	currentArray = Math.ceil((totalCount - (currentPage-1)*10)/10);
	
	listArray[currentArray-2] = null;
	listArray[prevPage] = new Array();
	var ii = 0;
	for(var i=items.length; i> 0; i--){
		listArray[prevPage][ii++] = items.item(i-1);
	}
	addFirstGrid("boardgrid", listArray[prevPage][startItem]);
}

function addNextList() {
	lists = REQ.responseXML.getElementsByTagName("lists").item(0);
	items = lists.getElementsByTagName("item");
	totalCount = parseInt(lists.getAttribute("totalcount"), 10);
	boardlist.onmousewheel = doScrolling;
	startItem = 1;
	endItem = 0;

	totalPage = Math.ceil(totalCount / pageSize);
	currentArray = Math.ceil((totalCount - (currentPage-1)*10)/10);
	
	listArray[currentArray+2] = null;
	listArray[currentArray] = new Array();
	for(var i=0; i<items.length; i++){
		listArray[currentArray][i] = items.item(i);
	}

	addNextGrid("boardgrid", listArray[currentArray][endItem]);
}


function prevItem() {

	if((totalPage - 1)*pageSize > currentScroll) {
		startItem--;
		endItem--;
		currentScroll++;
		startCurrentNum++;
		nextCurrentNum++;
		if(startItem < 0) {
			currentPage--;
			currentArray++;
			getPrevList();
		} else {
			if(listArray[currentArray+1][startItem]) {
				addFirstGrid("boardgrid", listArray[currentArray+1][startItem]);
			}
		}
		prevPageSize += diffSize/pageSize;
		nextPageSize -= diffSize/pageSize;
		showPageList();
	}
}

function nextItem() {

	if(0 < currentScroll) {

		startItem++;
		endItem++;
		currentScroll--;
		startCurrentNum--;
		nextCurrentNum--;

		if(endItem >= pageSize) {
			currentPage++;
			currentArray--;
			getNextList();
		} else {
			addNextGrid("boardgrid", listArray[currentArray][endItem]);
		}
		prevPageSize -= diffSize/pageSize;
		nextPageSize += diffSize/pageSize;
		showPageList();
	}
}

function doScrolling(){
	if (totalCount > currentScroll && event.wheelDelta>=120) {
		prevItem();
		return false;
	} else if (0 < currentScroll && event.wheelDelta<=-120) {
		nextItem();
		return false;
	}
	return false;
}

function doNotScrolling(){
	return false;
}

function moveContent(nextObj) {
	boardlist.onmousewheel = null;
	if(openContent != "") {
		var closeObj = document.getElementById(openContent);
		Resize(closeObj).smoothly(NaN, NaN, NaN, 0, function(){ if(openContent != "boardlist") {closeObj.innerHTML = ""; } nextObj();}, 1);
	} else {
		nextObj();
	}
}

function closeContent(nextObj) {
	var closeObj = document.getElementById(openContent);
	if(openContent != "boardlist")closeObj.innerHTML = "";
	nextObj();
}

function actionTrigger(func) {
	actionFrame.location.href="/common/action.html?func="+func;
	window.scrollTo(0,0);
}

function actionTriggerSend(func) {
	eval(func);
}

function showLoading() {
	var roadObj = document.getElementById("loading");
	if(openContent == "boardlist") roadObj.onmousewheel = doNotScrolling;
	roadObj.style.display = "block";
}

function hideLoading() {
	var  roadObj = document.getElementById("loading");
	roadObj.style.display = "none";
}

function showMsg(msg) {
	var Obj = document.getElementById("msgBox");
	Obj.innerHTML = msg+"<br>"+Obj.innerHTML;
}

function resizeImage(img,max) {
	
	if(img.width > img.height && img.width > max) {
		img.width = max;
		img.height = img.height*(img.width/max);
	} else if(img.width < img.height &&img.height > max) {
		img.height = max;
		img.width = img.width*(img.height/max);
	}
}

var imgTmp = "";

function openImage(img) {
	window.open("imageview.html?src="+urlEncode(img.src),"imgWindow","scrollbars=yes");
}


function resizeContent() {
	var height = readObj.scrollHeight;
	Resize(readObj).smoothly(NaN, NaN, NaN, height, null, 1);
}

function closePreview(){
	previewObj.style.display = "none";
}


