window.onload = function () {
	var hbElm = document.getElementsByClassName('hbUsersThis');

	for(var i=0; i<hbElm.length; i++) {
		getHatenaXml(location.href, hbElm[i]);
	}


	hbElm = document.getElementsByClassName('hbUsers');

	for(var i=0; i<hbElm.length; i++) {
		if(hbElm[i].innerHTML.match(/href="(http[^>]+?)"/i)) {
			getHatenaXml(RegExp.$1, hbElm[i]);
		}
	}
}

function getHatenaXml(checkUrl, elm) {
	var checker = 'nuluerer.cgi';
	var param = 'url=' + checkUrl;

	var ajax = new Ajax.Request(
		checker, {
			method: 'get',
			parameters: param,
			onComplete: function(res){
				var users = getBmUsers(res);
				createUsersLink(users, checkUrl, elm);
			}
		}
	);
	
}

function createUsersLink(users, checkUrl, elm) {

	var str = ' users';
	if (users<2) {
		str = ' user';
	}

	var cElm;
	if (users>9) {
		cElm = document.createElement('strong');
	} else if (users>3) {
		cElm = document.createElement('em');
	} else {
		cElm = document.createElement('span');
	}
/*
	cElm.appendChild(document.createTextNode(users+str));

	var usersLink = document.createElement('a');
	usersLink.setAttribute('href', 'http://b.hatena.ne.jp/entry/' + checkUrl);
	usersLink.setAttribute('target', '_blank');
	usersLink.appendChild(cElm);

	elm.appendChild(usersLink);
*/
	var usersLink = document.createElement('a');
	usersLink.setAttribute('href', 'http://b.hatena.ne.jp/entry/' + checkUrl);
	usersLink.setAttribute('target', '_blank');
	usersLink.appendChild(document.createTextNode(users+str));

	cElm.appendChild(usersLink);
	elm.appendChild(cElm);
	return;
}


function getBmUsers(res) {
//	$('res').innerHTML = res.responseXML;
	var xml = res.responseXML;
	var users = getElementByName(xml.getElementsByTagName('count'),'bookmark');

	var ret;
	if(users) {
		ret = users.firstChild.nodeValue;
	} else {
		ret = 0;
	}

	return ret;
}



function getElementByName(elmArray, name) {
	for (var i=0; i<elmArray.length; i++ ) {
		if (elmArray[i].getAttribute('name') == name) {
			return elmArray[i];
		}
	}
	return;
}

