/*******************************************************************************
TTBOARD
Description : category script
Programmer : Kim Dong-kyu
Last Modified : 2003.03.31
*******************************************************************************/
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 += "
";
text += "";
text += "\n";
// Àü´Ü°è Ä«Å×°í¸® À̸§ÀÌ ³ª¿Àµµ·Ï
// Ä«Å×°í¸® ¼ö´Â cate_articles[row-1]
text += "| ¡á " + cate_name[row-1] + " | \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 += ""
text += "| "
} else {
text += " onMouseOver=this.className='catestyle1' onMouseOut=this.className=''>"
}
text += cate_name[i] + " (" + cate_articles[i] + ")";
// more layer
if(parseInt(cate_child[i]) != 0) {
text += " ¢º";
}
text += " | \n";
cnt_cate++;
}
}
text += " \n";
text += " |
\n";
if(cnt_cate != 0) {
obj = document.all["id_toplayer" + level];
nLeft = event.x - event.offsetX -2 + document.body.scrollLeft;
nTop = event.y - event.offsetY + 14 + document.body.scrollTop;
obj.innerHTML = text;
if(level==2) {
obj.style.posTop = nTop+5;
obj.style.posLeft = nLeft+30;
} else {
obj.style.posTop = nTop;
obj.style.posLeft = nLeft;
}
obj.style.display='block';
}
}
function top_show(level) {
document.all["id_toplayer"+level].style.display='block';
}
function top_hide(level) {
document.all["id_toplayer"+level].style.display='none';
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++;
}