var adiaryCategoryCloud; ( function() { var FONT_UNIT = 'px'; var FONT_MIN = 8; var FONT_MAX = 64; var FONT_MIN_DEF = 10; var FONT_MAX_DEF = 24; var FONT_RATE = 0.5; var REG_CNT = RegExp("[(]([0-9]+)[)]"); var CLASS_MAIN_CATEGORY_UL = 'hatena-section main-category'; var ID_MAIN_CATEGORY_UL = 'main-category'; var OBJ_TARGET_LI = []; function getText(t) { return (t.innerText || t.textContent);}
function getFontSize(csq, cminsq, cmaxsq, fmin, fmax) { var frate = FONT_RATE; if (cminsq < cmaxsq) { frate = (csq - cminsq) / (cmaxsq - cminsq);}
var fsize = (frate * (fmax - fmin) + fmin); return Math.floor(fsize);}
function shuffleArray(l) { var i = l.length; var j, k; while (--i) { j = Math.floor(Math.random() * (i + 1)); if (i === j) continue; k = l[i]; l[i] = l[j]; l[j] = k;}
return l;}
function createElementLi(u, t, f, lh) { var elemSpan = document.createElement('span'); elemSpan.style.fontSize = f; elemSpan.style.lineHeight = lh; var tnTag = document.createTextNode(t); elemSpan.appendChild(tnTag); var elemA = document.createElement('a'); elemA.href = u; elemA.style.textDecoration = 'none'; elemA.appendChild(elemSpan); var elemLi = document.createElement('li'); elemLi.style.display = 'inline'; elemLi.style.margin = '0px 5px 0px 0px'; elemLi.appendChild(elemA); var tnSpace = document.createTextNode(' '); elemLi.appendChild(tnSpace); return elemLi;}
function adiaryCategoryCloud(min, max) { var clouds = []; var url = []; var tag = []; var cnt = []; var cntMax = 0; var cntMin = 0; var fontMin = FONT_MIN_DEF; var fontMax = FONT_MAX_DEF; if ( !isNaN(min) && !isNaN(max) ) { if ((min >= FONT_MIN && max <= FONT_MAX) && (min <= max) ) { fontMin = min; fontMax = max;}
}
var lineHeight = fontMax + FONT_UNIT; var ul = document.getElementsByTagName('ul'); for (var i = 0; i < ul.length; i++) { if (ul[i].className === CLASS_MAIN_CATEGORY_UL) { ul[i].setAttribute('id', ID_MAIN_CATEGORY_UL); (function (n) { if (n.tagName === 'LI') { OBJ_TARGET_LI[OBJ_TARGET_LI.length] = n;}
for (var m = n.firstChild; m !== null; m = m.nextSibling) { arguments.callee(m);}
})(ul[i]); break;}
}
(function () { for (var i = 0; i < OBJ_TARGET_LI.length; i++) { url[url.length] = OBJ_TARGET_LI[i].firstChild.href; tag[tag.length] = getText(OBJ_TARGET_LI[i].firstChild); if (getText(OBJ_TARGET_LI[i]).replace(tag[tag.length-1], "").match(REG_CNT)) { cnt[cnt.length] = parseInt(RegExp.$1, 10);}
}
})(); (function () { for (var i = 0; i < cnt.length; i++) { if (cnt[i] > cntMax || cntMax === 0) cntMax = cnt[i]; if (cnt[i] < cntMin || cntMin === 0) cntMin = cnt[i];}
})(); var cntMaxSq = Math.sqrt(cntMax); var cntMinSq = Math.sqrt(cntMin); var nodeMainCategory = document.getElementById(ID_MAIN_CATEGORY_UL); nodeMainCategory.style.listStyle = 'none'; nodeMainCategory.style.margin = '0px'; nodeMainCategory.style.padding = '0px'; var fontSize; var elem; (function () { for (var i=0; i < cnt.length; i++) { var cntSq = Math.sqrt(cnt[i]); fontSize = getFontSize(cntSq, cntMinSq, cntMaxSq, fontMin, fontMax) + FONT_UNIT; elem = createElementLi(url[i], tag[i], fontSize, lineHeight); clouds[clouds.length] = elem.innerHTML;}
})(); clouds = shuffleArray(clouds); nodeMainCategory.innerHTML = clouds.join("\n");}
window['adiaryCategoryCloud'] = adiaryCategoryCloud;})(); 