/*******************************************************************************
									TTBOARD

	Description		: category script
	Programmer		: Kim Dong-kyu
	Last Modified	: 2003.09.15
*******************************************************************************/
var cate_idx = new Array();
var cate_name = new Array();
var cate_level = new Array();
var cate_parent = new Array();
var cate_articles = new Array();
var cate_child = new Array();
var ncate = 0;	// number of category

function cate_row(idx) {
	return parseInt(document.all["cate"+idx+"_row"].value);
}

/*******************************************************************************
	top category script
*******************************************************************************/
// subcategory¸¦ º¯°æ½ÃÅ´.
function top_layer(idx) {
	var row = cate_row(idx);
	var level = cate_level[row-1];
	var parent_idx, name;
	var cnt_cate = 0;
	var text = "";

	// make subcategory. (parent°¡ idxÀÎ category¸¦ (level+1)¿¡ insert.)
	text += "<table border='0' cellspacing='0' cellpadding='0' align='center' style='border: 1px solid #666666'>";
	text += "<tr><td bgcolor='#FFFFFF'>";
	text += "<table border='0' cellspacing='0' cellpadding='2'>\n";

	for(i = 0; i < ncate; i++) {
		parent_idx = cate_parent[i];
		child_idx = cate_idx[i];
		child_level = cate_level[i];
		child_articles = cate_articles[i];

		if(parent_idx != 0 && parent_idx == parseInt(idx)) {
			text += "<tr><td style='padding-left:3px; padding-right:3px;'>";
			text += "<a href='javascript:top_go(" + child_idx + ");'";

			if(parseInt(child_level) == 2) {
				// level3¿¡ ´ëÇÑ sublayer´Â ÇÊ¿ä¾øÀ½.
				text += " onMouseOver='top_layer(" + child_idx + ");'"
				text += " onMouseOut='top_hide(" + child_level + ");'"
			}
			text += ">" + cate_name[i] + " <font class='text8pt'>(" + cate_articles[i] + ")</font></a>";

			// more layer
			if(parseInt(cate_child[i]) != 0) {
				text += " ¢º";
			}
			text += " </td></tr>\n";
			cnt_cate++;
		}
	}

	text += "</table>\n";
	text += "</td></tr></table>\n";

	if(cnt_cate != 0) {
		var obj = document.all["id_toplayer" + level];
		obj.style.posLeft = event.x + document.body.scrollLeft - 3;
		obj.style.posTop = event.y + document.body.scrollTop - 3;
		obj.innerHTML = text;
		obj.style.visibility = "visible";
	}
}

function top_show(level) {
	document.all["id_toplayer"+level].style.visibility = "visible";
}

function top_hide(level) {
	document.all["id_toplayer"+level].style.visibility = "hidden";
	document.all["id_toplayer"+level].style.width = 0;
}

// ÇØ´ç category¸¸ ¼±ÅÃ
function top_go(idx) {
	location.href = LINK_LIST + "&s_mode=def&s_cate=1&s_key="+idx;
}

function top_add(idx, name, level, parent, child, articles) {
	cate_idx[ncate] = idx;
	cate_name[ncate] = name;
	cate_level[ncate] = level;
	cate_parent[ncate] = parent;
	cate_child[ncate] = child;
	cate_articles[ncate] = articles;
	ncate++;
}

/*******************************************************************************
	select category script
*******************************************************************************/
// subcategory¸¦ º¯°æ½ÃÅ´.
function select_change(level) {
	var cur_sel = document.all["select_level"+level];
	var select_level1 = document.all["select_level1"];
	var select_level2 = document.all["select_level2"];
	var select_level3 = document.all["select_level3"];
	var idx = cur_sel.value;
	var sel_idx = "";			/* selected index */
	var count = 0;				/* total subcategories */

	if(level == 1) {
		// hide select object
		select_level2.style.display = "none";
		select_level3.style.display = "none";

		// intialize option
		for(var	i = select_level2.length - 1; i > 0; i--)
			select_level2.options[i] = null;
		for(var	i = select_level3.length - 1; i > 0; i--)
			select_level3.options[i] = null;

		if(idx != "") {
			// set options
			count = select_subcate(select_level2, idx);
			// display select category
			if(count) select_level2.style.display = "inline";
		}

		sel_idx = idx;
	} else if(level == 2) {
		// hide select_level3
		select_level3.style.display = "none";

		// initialize option
		for(var	i = select_level3.length - 1; i > 0; i--)
			select_level3.options[i] = null;

		if(idx != "") {
			// set options
			sel_idx = idx;
			count = select_subcate(select_level3, idx);
			// display select category
			if(count) select_level3.style.display = "inline";
		} else {
			sel_idx = select_level1.value;
		}
	} else {
		if(idx != "") sel_idx = idx;
		else sel_idx = select_level2.value;
	}

	// set category index
	document.all["cate_idx"].value = sel_idx;
}

// subcategory¸¦ ¼±ÅÃÇÑ´Ù. (parent°¡ idxÀÎ category¸¦ (level+1)¿¡ insert.)
function select_subcate(next_sel, idx) {
	var parent_idx, name;
	var	count = 0;			/* total subcategories */

	for(i = 0; i < ncate; i++) {
		parent_idx = cate_parent[i];
		if(parent_idx != 0 && parent_idx == parseInt(idx)) {
			name = "" + cate_name[i] + " (" + cate_articles[i] + ")";
			if(parseInt(cate_child[i]) != 0) {
				name += " ¢º";
			}

			next_sel.options[next_sel.length] = new Option(name, cate_idx[i]);
			count++;
		}
	}

	return count;
}

// category¸¦ ÃÊ±âÈ­½ÃÅ´.
function select_init(idx) {
	if(idx == 0) return;
	var row = cate_row(idx);
	var level = cate_level[row-1];
	var select_level1 = document.all["select_level1"];
	var select_level2 = document.all["select_level2"];
	var select_level3 = document.all["select_level3"];
	var level1_idx, level2_idx;

	if(level == 1) {
		init_select(select_level1, ""+idx);
		select_change(1);
	} else if(level == 2) {
		// level 1
		level1_idx = cate_parent[row-1];
		init_select(select_level1, ""+level1_idx);
		select_change(1);

		// level 2
		init_select(select_level2, ""+idx);
		select_change(2);
	} else {
		level2_idx = cate_parent[row-1];

		// level 1
		level1_idx = cate_parent[cate_row(level2_idx)-1];
		init_select(select_level1, ""+level1_idx);
		select_change(1);

		// level 2
		init_select(select_level2, ""+level2_idx);
		select_change(2);

		// level 3
		init_select(select_level3, ""+idx);
		select_change(3);
	}
}

// ÇØ´ç category¸¸ ¼±ÅÃ
function select_go() {
	var idx = document.all["cate_idx"].value;
	if(idx == "")
		location.href = LINK_LIST;
	else
		location.href = LINK_LIST + "&s_mode=def&s_cate=1&s_key="+idx;
}

function select_add(idx, name, level, parent, child, articles) {
	cate_idx[ncate] = idx;
	cate_name[ncate] = name;
	cate_level[ncate] = level;
	cate_parent[ncate] = parent;
	cate_child[ncate] = child;
	cate_articles[ncate] = articles;
	ncate++;
}

/*******************************************************************************
	side category script
*******************************************************************************/
// subcategory¸¦ ¿¬´Ù.
function side_open(idx) {
	var row = cate_row(idx);
	var opened = parseInt(document.all["cate"+idx+"_opened"].value);
	var parent_level = cate_level[row-1];
	var child_idx, child_level;

	for(i = row; i <= ncate; i++) {
		/* pos -> idx */
		child_idx = cate_idx[i];
		child_level = cate_level[i];

		if(opened) {
			// close cate
			if(child_level > parent_level) {
				document.all["cate"+child_idx].style.display = "none";
				document.all["cate"+child_idx+"_opened"].value = "0";
			}
		} else {
			// open cate
			if(child_level == parent_level+1) {
				document.all["cate"+child_idx].style.display = "block";
			}
		}

		if(child_level == parent_level) {
			break;
		}
	}

	if(opened) {
		document.all["cate"+idx+"_opened"].value = "0";
		document.all["cate"+idx+"_img"].src = PATH_SKIN + "images/category_plus.gif";
	} else {
		document.all["cate"+idx+"_opened"].value = "1";
		document.all["cate"+idx+"_img"].src = PATH_SKIN + "images/category_minus.gif";
	}
}

// category¸¦ ÃÊ±âÈ­ÇÑ´Ù.
function side_init(idx) {
	if(idx == 0) return;
	var row = cate_row(idx);
	var level = cate_level[row-1];
	var parent_idx;

	for(parent_idx = idx, i = level; i > 1; i--) {
		parent_idx = cate_parent[cate_row(parent_idx)-1];
		if(parent_idx == 0) break;

		side_open(parent_idx);
	}

	// check Ç¥½Ã
	document.all["cate"+idx+"_name"].style.fontColor = "#FF00000";
}

// category¸¦ ¼±ÅÃ
function side_go(idx) {
	location.href = LINK_LIST + "&s_mode=def&s_cate=1&s_key="+idx;
}

function side_add(idx, level, parent) {
	cate_idx[ncate] = idx;
	cate_level[ncate] = level;
	cate_parent[ncate] = parent;
	ncate++;
}

