function initStyle(){
	if(typeof(doLoaded) != "undefined"){doLoaded();}


	replaceClass('sidebar-bottom', 'div', '<img src="http://template.cocolog-nifty.com/000057/three_column/component/sidebar-bottom.gif" width="135" height="91" alt="bee"  style="display:block" border="0" />', '');

}


function surroundTag(sClass, sTag, sNewAttr, sNewName){
	if(sClass.length == 0){
		return;
	}
	var attr;
	if(sNewAttr == 1){
		attr = 'id';
	}
	else{
		attr = getclassBrowser();
	}
	if(sNewName.length == 0){
		return;
	}
	
	var oElement = getByTagName(sTag);
	if(!oElement){
		return;
	}
    var len = oElement.length;
    var num;
    
    for (num=0; num<len; num++) {
		if(oElement[num] != null){
		    var pElement;
	        if (oElement[num].className == sClass) {
	        	pElement = oElement[num].parentNode;
	            var newT = document.createElement('div');
    	        newT.setAttribute(attr, sNewName);
	            newT.appendChild(pElement.cloneNode(true));
	            ppElement = pElement.parentNode;
        	    ppElement.insertBefore(newT, pElement);
        	    ppElement.removeChild(pElement);
    	    }
    	}
	}
}


function surroundPCT(sNewAttr, sNewName){
	
	var sClass = 'posted';
	var attr;
	if(sNewAttr == 1){
		attr = 'id';
	}
	else{
		attr = getclassBrowser();
	}
	if(sNewName.length == 0){
		return;
	}
	
	var oElement = getByTagName("P");
	var len = oElement.length;
	if(!oElement){
		return;
	}
    for (num=0; oElement[num]; num++) {
	    var pElement;
        if (oElement[num].className == sClass) {
        	pElement = oElement[num];
        	p = pElement.firstChild;
        	// 追加処理
        	while(p){
				if (p.className  == "separator") {
		            newT = document.createElement('div');
   			        newT.setAttribute(attr, sNewName);
					pElement.insertBefore(newT, p);
		        	var child = pElement.firstChild;
		        	while(child){
		        		nextc = child.nextSibling;
		        		if(child.className != 'post-footers'){
							if (child.className  != sNewName && child.id != sNewName) {
		        				newT.appendChild(child.cloneNode(true));
			        			pElement.removeChild(child);
		        			}
		        		}
		        		child = nextc;
		        	}
   			        break;
		        }
        		p = p.nextSibling;
        	}
   	    }
	}
}

function replaceFooter(fString, fCode){
	if(fCode.length == 0){
		return;
	}
	if(fString.length == 0){
		return;
	}

	var oElement = getByTagName('p');
	if(!oElement){
		return;
	}
	var fID='posted';
    var len = oElement.length;
    for (num=0; num<len; num++) {
		if(oElement[num] != null){
		    var element = oElement[num];
		    if (element.className == fID) {
				var tmpinner = "";
	        	var p = element.firstChild;
				while(p){
					if(p.innerHTML){
						if(p.className == fCode ){
							end = p.innerHTML.length;
							for(count=0; count<end; count++){
								numchar = p.innerHTML.substring(count, count+1);
								if(numchar.match(/[0-9()]/i) != null){
									tmpinner += numchar;
								}
		    				}
//							var str = p.innerHTML.replace(/[^0-9()]*/i, fString);
//							p.innerHTML = str;
							p.innerHTML = fString + tmpinner;
						}
					}
	        		p = p.nextSibling;
				}
			}
		}
	}
}


function replaceFooterNumber(fString, fCode, fUrl){
	if(fCode.length == 0){
		return;
	}
	if(fString.length == 0){
		return;
	}
	if(fUrl.length == 0){
		return;
	}
	if(fUrl.lastIndexOf("/") == -1){
		fUrl += fUrl + "/";
	}
	fUrl = "<img border=0 src='" + fUrl;
	
	var fID='posted';
	var oElement = getByTagName('p');
	if(!oElement){
		return;
	}
    var len = oElement.length;
    for (num=0; num<len; num++) {
		if(oElement[num] != null){
		    var element = oElement[num];
		    if (element.className == fID) {
				var tmpinner = "";
	        	var p = element.firstChild;
				while(p){
					if(p.innerHTML){
						if(p.className == fCode ){
							end = p.innerHTML.length;
							for(count=0; count<end; count++){
								numchar = p.innerHTML.substring(count, count+1);
								if(numchar.match(/[0-9()]/i) != null){
									if(p.innerHTML.charAt(count) == '('){
										tmpinner += fUrl + "l.gif'>";
									}
									else if(p.innerHTML.charAt(count) == ')'){
										tmpinner += fUrl + "r.gif'>";
									}
									else{
										tmpinner += fUrl + p.innerHTML.charAt(count) + ".gif'>";
									}
								}
								else{
									if(p.innerHTML.charAt(count) == ' '){
										continue;
									}
								}
		    				}
							p.innerHTML = fString + tmpinner;
						}
			        }
	        		p = p.nextSibling;
	        	}
			}
		}
	}
}

function preinsertTagClassHTML(targetClass,  targetTag, targetName, createTag, createAttr, createName){
	var classTag = targetTag;

	if(targetClass.length == 0){
		return;
	}
	if(targetTag.length == 0){
		classTag = 'div';
	}

	var attr;
	if(createAttr == 1){
		attr = 'id';
	}
	else{
		attr = getclassBrowser();
	}

	var oElement = getByTagName(classTag);
	if(!oElement){
		return;
	}
    var len = oElement.length;
    var targetstr;
    var num;

    for (num=0; num<len; num++) {
		if(oElement[num] != null){
		    var pElement;
	        if (oElement[num].className == targetClass) {
	        	cElement = oElement[num].firstChild;
		    	while(cElement) {
    	    	    cNext = cElement.nextSibling;
		        	if(cElement.nodeName.toLowerCase() == targetName.toLowerCase()){
			            var newT = document.createElement(createTag);
    			        newT.setAttribute(attr, createName);
			        	pElement = cElement.parentNode;
	        	    	pElement.insertBefore(newT, cElement);
    	    	    }
    	    	    cElement = cNext;
    	    	}
    	    }
    	}
	}
}

function postinsertTagClassHTML(targetClass,  targetTag, targetName, createTag, createAttr, createName){
	var classTag = targetTag;

	if(targetClass.length == 0){
		return;
	}
	if(targetTag.length == 0){
		classTag = 'div';
	}

	var attr;
	if(createAttr == 1){
		attr = 'id';
	}
	else{
		attr = getclassBrowser();
	}

	var oElement = getByTagName(classTag);
	if(!oElement){
		return;
	}
    var len = oElement.length;
    var targetstr;
    var num;

    for (num=0; num<len; num++) {
		if(oElement[num] != null){
		    var pElement;
	        if (oElement[num].className == targetClass) {
	        	cElement = oElement[num].firstChild;
		    	while(cElement) {
    	    	    cNext = cElement.nextSibling;
		        	if(cElement.nodeName.toLowerCase() == targetName.toLowerCase()){
			            var newT = document.createElement(createTag);
    			        newT.setAttribute(attr, createName);
			        	pElement = cElement.parentNode;
			        	if(cNext){
	        	    		pElement.insertBefore(newT, cNext);
		    	    	    cNext = cNext.nextSibling;
	        	    	}
    	    	    }
    	    	    cElement = cNext;
    	    	}
    	    }
    	}
	}
}

function preinsertClassHTML(insertClass,  targetTag, insertTag, insertString, targetId, insertNumber){
	var classTag = targetTag;
	var classId = targetId;
	var insertNum = insertNumber;


	if(insertTag.length == 0){
		return;
	}
	if(targetTag.length == 0){
		classTag = 'div';
	}
	if(!targetId || targetId.length == 0){
		classId = '';
	}
	if(insertNumber == ''){
		insertNum = 0;
	}

	var regpre = new RegExp("<" + insertTag, "ig");
	var regpost = new RegExp("</"+insertTag, "ig");

	var oElement = getByTagName(classTag);
	if(!oElement){
		return;
	}
    var len = oElement.length;
    var targetstr;
    var num;
    for (num=0; num<len; num++) {
		if(oElement[num] != null){
		    var addstr="";
	        if (oElement[num].className == insertClass) {
	        	if(classId.length == 0 || oElement[num].id == classId){
	    	    	var tagnum = oElement[num].innerHTML.match(regpre);
    		    	if(!tagnum){
    		    		continue;
    	    		}
        			var morestr = oElement[num].innerHTML;
	        		var morestart = 0;
	        		var tagcount;
					for(tagcount=0; tagcount<tagnum.length; tagcount++){
			      		morestr = oElement[num].innerHTML.substring(morestart);
		    	  		if(morestr.search(regpost) == -1){
		      				break;
		      			}
			      		morecount = morestr.search(regpost);
		      			morestr = oElement[num].innerHTML.substring(morestart, morestart+morecount+3+insertTag.length);
	    	  			morestart += morecount+3+insertTag.length;
						//指定番目のみ
		        		if(insertNum > 0){
		        			if(tagcount+1 != insertNum){
		        				addstr += morestr;
	    	    				continue;
	    	    			}
	        			}
						if ((begin = morestr.search(regpre)) != -1) {
							var tmpstr = morestr.substring(begin);
							var innerstr = morestr.substring(0,begin);
							if ((end = tmpstr.search(regpost)) != -1) {
								addstr += innerstr + insertString + morestr.substring(begin);
							}
						}
					}
					oElement[num].innerHTML = addstr + oElement[num].innerHTML.substring(morestart);
				}
	        }
        }
    }
}

function postinsertClassHTML(insertClass,  targetTag, insertTag, insertString, targetId, insertNumber){
	var classTag = targetTag;
	var classId = targetId;
	var insertNum = insertNumber;

	if(insertTag.length == 0){
		return;
	}
	if(targetTag.length == 0){
		classTag = 'div';
	}
	if(!targetId || targetId.length == 0){
		classId = '';
	}
	if(insertNumber == ''){
		insertNum = 0;
	}


	regpre = new RegExp("<" + insertTag, "ig");
	regpost = new RegExp("</"+insertTag, "ig");

	var oElement = getByTagName(classTag);
	if(!oElement){
		return;
	}
    var len = oElement.length;
    var targetstr;
    for (num=0; num<len; num++) {
		if(oElement[num] != null){
		    var addstr="";
	        if (oElement[num].className == insertClass) {
	        	if(classId.length == 0 || oElement[num].id == classId){
	    	    	tagnum = oElement[num].innerHTML.match(regpre);
    		    	if(!tagnum){
    		    		continue;
    	    		}
        			morestr = oElement[num].innerHTML;
	        		morestart = 0;
					for(tagcount=0; tagcount<tagnum.length; tagcount++){
			      		morestr = oElement[num].innerHTML.substring(morestart);
		    	  		if(morestr.search(regpost) == -1){
		      				break;
		      			}
			      		morecount = morestr.search(regpost);
		      			morestr = oElement[num].innerHTML.substring(morestart, morestart+morecount+3+insertTag.length);
	    	  			morestart += morecount+3+insertTag.length;
						//指定番目のみ
		        		if(insertNum > 0){
		        			if(tagcount+1 != insertNum){
		        				addstr += morestr;
	    	    				continue;
	    	    			}
	        			}
						if ((begin = morestr.search(regpre)) != -1) {
							var tmpstr = morestr.substring(begin);
							var innerstr = morestr.substring(0,begin);
							if ((end = tmpstr.search(regpost)) != -1) {
								addstr += innerstr + morestr.substring(begin)+ insertString;
							}
						}
					}
					oElement[num].innerHTML = addstr + oElement[num].innerHTML.substring(morestart);
				}
	        }
        }
    }
}


function replaceClassHTML(insertClass, targetTag, insertTag, insertString, targetId, insertNumber){
	var classTag = targetTag;
	var classId = targetId;
	var insertNum = insertNumber;

	if(insertTag.length == 0){
		return;
	}
	if(targetTag.length == 0){
		classTag = 'div';
	}
	if(!targetId || targetId.length == 0){
		classId = '';
	}
	if(insertNumber == ''){
		insertNum = 0;
	}

	var oElement = getByTagName(classTag);
	if(!oElement){
		return;
	}
    var len = oElement.length;
    var tagcount = 0;
    var num;
    for (num=0; num<len; num++) {
		if(oElement[num] != null){
		    var element = oElement[num];
	        if (element.className == insertClass) {
	        	var pLen = element.childNodes.length;
	        	var p;
	        	var pnum;
	        	for(pnum=0; pnum<pLen; pnum++){
	        		if(pnum == 0){
			        	p = element.firstChild;
						changeString(p, insertTag, insertString, 1, 0, targetId, insertNum);
	        		}
	        	}
    	    }
    	}
	}
}


function insertClassHTML(insertClass, targetTag, insertTag, insertString, index, targetId, insertNumber){
	var classTag = targetTag;
	var classId = targetId;
	var insertNum = insertNumber;

	if(insertTag.length == 0){
		return;
	}
	if(targetTag.length == 0){
		classTag = 'div';
	}
	if(!targetId || targetId.length == 0){
		classId = '';
	}
	if(insertNumber == ''){
		insertNum = 0;
	}

	var oElement = getByTagName(classTag);
	if(!oElement){
		return;
	}
    var len = oElement.length;
    var tagcount = 0;
    var num;
    var tmpIndex;
    for (num=0; num<len; num++) {
		if(oElement[num] != null){
		    var element = oElement[num];
	        if (element.className == insertClass) {
	        	pLen = element.childNodes.length;
	        	var p;
	        	var pnum;
	        	for(pnum=0; pnum<pLen; pnum++){
	        		if(pnum == 0){
			        	p = element.firstChild;
						changeString(p, insertTag, insertString, 2, index, targetId, insertNumber);
	        		}
	        		p = p.nextSibling;
	        	}
    	    }
    	}
	}

}


function replaceidHTML(replaceID, replaceTag, replaceString){
	var oElement = document.getElementById(replaceID);
	if(!oElement){
		return;
	}
	if(replaceTag.length == 0){
		return;
	}
	if(replaceString.length == 0){
		return;
	}

    var len = oElement.length;
    var tagcount = 0;
    if (oElement.id == replaceID) {
		p = oElement.firstChild;
		changeString(p, replaceTag, replaceString, 1);
    }
}

function replaceidHTML2(replaceID, replaceTag, replaceString){
	var oElement = document.getElementById(replaceID);
	if(!oElement){
		return;
	}
	if(replaceTag.length == 0){
		return;
	}
	if(replaceString.length == 0){
		return;
	}

    var len = oElement.length;
    var tagcount = 0;
    if (oElement.id == replaceID) {
		p = oElement.firstChild;
		changeString2(p, replaceTag, replaceString, 1);
    }
}


function insertidHTML(insertID, insertTag, insertString, index){
	var oElement = document.getElementById(insertID);
	if(!oElement){
		return;
	}
	if(index == null){
		index = 0;
	}

    var len = oElement.length;
    var tagcount = 0;
    var tmpIndex;
    if (oElement.id == insertID) {
		p = oElement.firstChild;
		changeString(p, insertTag, insertString, 2, index);
    }
}


function preinsertHTML(replaceID, replaceTag, tag){
	var oElement = document.getElementById(replaceID);
	if(!oElement){
		return;
	}
	var regpre = new RegExp("<"+replaceTag, "i");
	var replen = replaceTag.length+1;

	var begin;
	var tmpbegin;
	if ((begin = oElement.innerHTML.search(regpre)) != -1) {
		var pre = oElement.innerHTML.substring(0, begin);
		oElement.innerHTML = pre + tag + oElement.innerHTML.substring(begin);
	}
}


function postinsertHTML(replaceID, replaceTag, tag){
	var oElement = document.getElementById(replaceID);
	if(!oElement){
		return;
	}
	var regpost = new RegExp("</"+replaceTag+">", "i");
	var replen = replaceTag.length +3;
	
	var end;
	if ((end = oElement.innerHTML.search(regpost)) != -1) {
		var post = oElement.innerHTML.substring(0, end+replen);
		oElement.innerHTML = post + tag + oElement.innerHTML.substring(end+replen);
	}
}

function insertClass(insertClass, targetTag, insertString, index, targetId){
	var classTag = targetTag;
	var classId = targetId;
	if(targetTag.length == 0){
		classTag = 'div';
	}
	if(index == null){
		index = 0;
	}
	if(!targetId || targetId.length == 0){
		classId = '';
	}

	var oElement = getByTagName(classTag);
	if(!oElement){
		return;
	}

    var len = oElement.length;
    var targetstr;
    var cattag;
    for (num=0; num<len; num++) {
		if(oElement[num] != null){
		    var addstr="";
	        if (oElement[num].className == insertClass) {
	        	if(classId.length == 0 || oElement[num].id == classId){
					targetstr = oElement[num].innerHTML;
   			    	if(targetstr.length < index){
			    		index = targetstr.length;
  					}
					if(index == -1){
						pre = targetstr.substr(0);
						cattag = insertString;
					}
					else{
						pre = targetstr.substr(0, index);
					}
					if(index != -1){
						cattag = insertString + targetstr.substring(index);
					}
					oElement[num].innerHTML = pre + cattag;
				}
			}
	    }
    }
}

function replaceClass(insertClass, targetTag, insertString, targetId){
	var classTag = targetTag;
	var classId = targetId;
	if(targetTag.length == 0){
		classTag = 'div';
	}
	if(targetTag.length == 0){
		classId = '';
	}
	if(!targetId || targetId.length == 0){
		classId = '';
	}

	var oElement = getByTagName(classTag);
	if(!oElement){
		return;
	}

    var len = oElement.length;
    var targetstr;
    for (num=0; num<len; num++) {
		if(oElement[num] != null){
		    var addstr="";
	        if (oElement[num].className == insertClass) {
	        	if(classId.length == 0 || oElement[num].id == classId){
				oElement[num].innerHTML = insertString;
				}
			}
	    }
    }
}

function insertId(insertID, insertTag, index){
	var oElement = document.getElementById(insertID);
	if(index == null){
		index = 0;
	}
	if(!oElement){
		return;
	}

	var pre;
	var post;
	if(oElement.innerHTML.length < index){
		index = oElement.innerHTML.length;
	}
	if(index == -1){
		pre = oElement.innerHTML;
		post = "";
	}
	else{
		pre = oElement.innerHTML.substring(0, index);
		post = oElement.innerHTML.substring(index);
	}
	oElement.innerHTML = pre + insertTag + post;
}

function replaceId(replaceID, insertTag){
	var oElement = document.getElementById(replaceID);
	if(!oElement){
		return;
	}
	oElement.innerHTML = insertTag;
}


// inner function
function getclassBrowser(){
	var ua=navigator.userAgent;
	var classname;
    if(ua.match(/MSIE/) != null){
		classname = 'className';
	}
	else{
		classname = 'class';
	}
	return classname;
}

function changeString2(node, tag, string, whichcase, insertIndex, id){

	var classId = id;
    var tagcount = 0;
    var tmpIndex=0;
    
	if(!id || id.length == 0){
		classId = '';
	}

	while(node){
		if(node.firstChild){
			if(node.id == classId){
				if(changeString2(node.firstChild, tag, string, whichcase, insertIndex, id) == -1){
					return -1;
				}
			}
		}
		// 入れ替え対象タグ
		if(node.nodeName.toLowerCase() == tag.toLowerCase()){
			changestr(node, string, whichcase, insertIndex);
			return -1;
		}
		node = node.nextSibling;
    }
}

function changeString(node, tag, string, whichcase, insertIndex, id){

	var classId = id;
    var tagcount = 0;
    var tmpIndex=0;
    
	if(!id || id.length == 0){
		classId = '';
	}

	while(node){
		if(node.firstChild){
			if(node.id == classId){
				changeString(node.firstChild, tag, string, whichcase, insertIndex, id);
			}
		}
		// 入れ替え対象タグ
		if(node.nodeName.toLowerCase() == tag.toLowerCase()){
			changestr(node, string, whichcase, insertIndex);
		}
		node = node.nextSibling;
    }
}


function changestr(node, string, whichcase, insertIndex){

	// replace
	if(whichcase == 1){
		node.innerHTML =string;
	}
	// insert
	else{
    	tmpIndex=insertIndex;
		if(insertIndex == -1 || insertIndex > node.innerHTML.length){
			tmpIndex = node.innerHTML.length;
		}
		var str = node.innerHTML;
       	node.innerHTML =str.substring(0, tmpIndex) + string + str.substring(tmpIndex);
	}
}


// Common Javascript
var themeBaseURI = 'http://exaple.org/specialstyles';

// put image and flash files to themeBaseURI/THEME/
//  filename should be THEME-CLASSNAME.gif or THEME-ID.swf.
//  like mybow-comment.gif and mybow-recent-updates.swf

function insertFlashMovie (theme, divs) {
    for (i in divs) {
        var swfURL = themeBaseURI + '/' + theme + '/' + theme + '-' + divs[i] + '.swf';
        insertHTML(divs[i], '<embed src="' + swfURL + '" PLUGINSPAGE="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" TYPE="application/x-shockwave-flash" </embed>');
    }
}

function insertHTML (divID, tag) {
    var e = getByID(divID);
    e.innerHTML = tag + e.innerHTML;
}

function replaceHTML (divID, tag) {
    var e = getByID(divID);
    e.innerHTML = tag;
}

function replaceImage (theme, divs) {
    for (i in divs) {
        var imageURL = themeBaseURI + '/' + theme + '/' + theme + '-' + divs[i] + '.gif';        
        var tag = '<img src="' + imageURL + '" alt="' + divs[i] + '" />';
        replaceHTML(divs[i], tag);
    }
}

function replaceButton (theme, classes) {
    for (i in classes) {
        // alert(theme + '/' + theme + '-' + classes[i] + '.gif');
        doReplaceLinkToImage(classes[i], theme + '/' + theme + '-' + classes[i] + '.gif', '');
    }
}

function doReplaceLinkToImage (className, imageFilename, title) {
    if (title) {
        title = 'alt="' + title + '" ';
    } else {
        title = '';
    }
    var imageURL = themeBaseURI + '/' + imageFilename;
    var tag = '<img src="' + imageURL + '" ' + title + '/>';
    doReplaceLinkInnerHTML (className, tag);
}

function doReplaceLinkInnerHTML (className, str) {
    var e = getByTagName('a');
    var len = e.length;
    for (i=0; i<len; i++) {
        if (e[i].className == className) {
            e[i].innerHTML = str;
        }
    }
}

function eraseSeparator () {
    var e = getByTagName('span');
    var len = e.length;
    for (i=0; i<len; i++) {
        if (e[i].className == 'separator') {
            e[i].innerHTML = '';
        }
    }
}

function getByID (n) {
    var d = window.document;
    if (d.getElementById)
        return d.getElementById(n);
    else if (d.all)
        return d.all[n];
}

function getByTagName (n) {
    var d = window.document;
    if (d.getElementsByTagName)
        return d.getElementsByTagName(n);
    else if (d.all)
        return d.all[n];
}

