// 画面ロード時にH2に対して丸めスクリプトを実行 ----------------------//
function RoundH2() {
	if (!NiftyCheck()) {
		return;
	}
	Rounded("h2", "transparent", "#A8A8A8");
}

// 画面ロード時にP.nicknameに対して丸めスクリプトを実行 --------------//
function RoundNickname() {
	if (!NiftyCheck()) {
		return;
	}
	Rounded("div.nickname", "transparent", "#e30000");
}

// 画面ロード時にP.nicknameに対して丸めスクリプトを実行 --------------//
function RoundPost() {
	if (!NiftyCheck()) {
		return;
	}
	Rounded("h2.post", "transparent", "#e30000");
}

// 画面ロード時にTopのH2に対して丸めスクリプトを実行 ----------------------//
function RoundTopH2() {
	if (!NiftyCheck()) {
		return;
	}
	Rounded("h2", "transparent", "#e30000");
}

// 実行可能環境であるかどうかを調査 ----------------------------------//
function NiftyCheck() {
	if (!document.getElementById || !document.createElement) {
		return(false);
	}
	var b = navigator.userAgent.toLowerCase();
	if (b.indexOf("msie 5") > 0 && b.indexOf("opera") == -1) {
		return(false);
	}
	return(true);
}

// 全角に対して丸めを実行 --------------------------------------------//
// 引数はセレクタ、背景色、前景色、サイズ
function Rounded(selector, bk, color, size) {
	var i;
	var v = getElementsBySelector(selector);
	var l = v.length;
	for (i=0; i<l; i++) {
		AddTop(v[i], bk, color, size);
		AddBottom(v[i], bk, color, size);
	}
}

// 上辺角に対して丸めを実行 ------------------------------------------//
// 引数はセレクタ、背景色、前景色、サイズ
function RoundedTop(selector, bk, color, size) {
	var i;
	var v = getElementsBySelector(selector);
	for (i=0; i<v.length; i++) {
		AddTop(v[i], bk, color, size);
	}
}

// 下辺角に対して丸めを実行 ------------------------------------------//
// 引数はセレクタ、背景色、前景色、サイズ
function RoundedBottom(selector, bk, color, size) {
	var i;
	var v = getElementsBySelector(selector);
	for (i=0; i<v.length; i++) {
		AddBottom(v[i], bk, color, size);
	}
}

// 上辺に対してbタグを生成 -------------------------------------------//
// 引数はセレクタ（多分）背景色、前景色、サイズ
function AddTop(el, bk, color, size) {
	var i;
	var d = document.createElement("b");
	var cn = "r";
	var lim = 4;
	if(size && size == "small") { 
		cn = "rs";
		lim = 2;
	}
	d.className = "rtop";
	d.style.backgroundColor = bk;
	for (i=1; i<=lim; i++) {
		var x = document.createElement("b");
		x.className = cn + i;
		x.style.backgroundColor = color;
		d.appendChild(x);
	}
	el.insertBefore(d, el.firstChild);
}

// 下辺に対してbタグを生成 -------------------------------------------//
// 引数はセレクタ（多分）背景色、前景色、サイズ
function AddBottom(el, bk, color, size) {
	var i;
	var d = document.createElement("b");
	var cn = "r";
	var lim = 4;
	if (size && size == "small"){
		cn = "rs";
		lim = 2;
	}
	d.className = "rbottom";
	d.style.backgroundColor = bk;
	for (i=lim; i>0; i--) {
		var x = document.createElement("b");
		x.className = cn + i;
		x.style.backgroundColor = color;
		d.appendChild(x);
	}
	el.appendChild(d, el.firstChild);
}

function getElementsBySelector(selector) {
	var i;
	var s = [];
	var selid = "";
	var selclass = "";
	var tag = selector;
	var objlist = [];
	if (selector.indexOf(" ") > 0) {
		//descendant selector like "tag#id tag"
		s = selector.split(" ");
		var fs = s[0].split("#");
		if(fs.length == 1) {
			return(objlist);
		}
		return(document.getElementById(fs[1]).getElementsByTagName(s[1]));
	}
	if (selector.indexOf("#") > 0) {
		//id selector like "tag#id"
		s = selector.split("#");
		tag = s[0];
		selid = s[1];
	}
	if (selid != "") {
		objlist.push(document.getElementById(selid));
		return(objlist);
	}
	if (selector.indexOf(".") > 0) {
		//class selector like "tag.class"
		s = selector.split(".");
		tag = s[0];
		selclass = s[1];
	}
	var v = document.getElementsByTagName(tag); // tag selector like "tag"
	if (selclass == "") {
		return(v);
	}
	for (i=0; i<v.length; i++) {
		if (v[i].className == selclass) {
			objlist.push(v[i]);
		}
	}
	return(objlist);
}