﻿/* initialize toggle button */
function initToggle() {
	var txt = new Array('toggle_plus', 'toggle_minus', 'toggle_button');
	
	for (j = 0; j < txt.length; j++) {
		var btn = document.getElementsByClassName(txt[j]);
		
		for (i = 0; i < btn.length; i++) {
			btn[i].onclick = function() { toggle(this); }
			btn[i].className = 'toggle_plus';
			btn[i].title = '開く';
		}
	}
	
	txt = document.getElementsByClassName('toggle_text');
	
	for (i = 0; i < txt.length; i++) {
		txt[i].style.display = 'none';
	}
}

/* toggle switch */
function toggle(btn) {
	var lst = getElementsByClassName(btn.parentNode, 'toggle_text');
	var txt;
	
	if (lst.length == 1) {
		txt = lst[0];
	}
	
	if (btn.className == 'toggle_minus') {
		btn.className = 'toggle_plus';
		btn.title = '開く';
		
		if (txt) {
			txt.style.display = 'none';
		}
	}
	else {
		btn.className = 'toggle_minus';
		btn.title = '閉じる';
		
		if (txt) {
			txt.style.display = 'block';
		}
	}
}

/* search elements by class name */
function getElementsByClassName(obj, className) {
    var i, j, eltClass;
    var objAll = obj.getElementsByTagName ? obj.getElementsByTagName("*") : obj.all;
    var objCN = new Array();
    
    for (i = 0; i < objAll.length; i++) {
        eltClass = objAll[i].className.split(/\s+/);
        
        for (j = 0; j < eltClass.length; j++) {
            if (eltClass[j] == className) {
                objCN.push(objAll[i]);
                break;
            }
        }
    }
    
    return objCN;
}

/* add onload event */
function addLoadEvent(func) {	
	var oldonload = window.onload;
	
	if (typeof window.onload != 'function') {
    	window.onload = func;
	}
	else {
		window.onload = function() {
			oldonload();
			func();
		}
	}
}

document.getElementsByClassName = function (className) { return getElementsByClassName(document,className); }

//	onlead event
function loadThis() {
	initToggle();
	
	with (document) {
		//	news hide
		var ul = getElementById('ulNews');
		if (ul) {
			var iMax = 5;	//	default show items
			
			//	hide
			var li = ul.getElementsByTagName('li');
			for (var i = iMax; i < li.length; i++) {
				li[i].style.display = 'none';
			}
			
			if (li.length >= iMax) {
				//	make more link
				var dv = createElement('div');
				with (dv) {
					style.textAlign = 'right';
					
					var lnk = createElement('a');
					with (lnk) {
						href = '#';
						innerHTML = ' more≫';
						setAttribute('rel', '');
						lnk.onclick = function() {
							with (this) {
								var dis = getAttribute('rel');
								var li = document.getElementById('ulNews').getElementsByTagName('li');
								for (var i = iMax; i < li.length; i++) {
									li[i].style.display = dis;
								}
								
								if (dis.length == 0) {
									dis = 'none';
									innerHTML = '≪less';
								}
								else {
									dis = '';
									innerHTML = 'more≫';
								}
								setAttribute('rel', dis);
							}
							return false;
						}
					}
					appendChild(lnk);
				}
				ul.insertBefore(dv, li[iMax]);
			}
		}
	}
}

addLoadEvent(loadThis);

