String.prototype.repeat = function(n) {
	return Array(n + 1).join(this);
}

function $(tagID) {
	return document.getElementById(tagID);
}

function $E(tagName) {
	return document.createElement(tagName);
}

function $T(value) {
	return document.createTextNode(value);
}

function showElem(tagID) {
	$(tagID).style.display = "block";
}

function hideElem(tagID) {
	$(tagID).style.display = "none";
}

function toggleElem(tagID) {
	var obj = $(tagID);
	if (obj.style.display == "none") {
		obj.style.display = "block";
	} else {
		obj.style.display = "none";
	}
}

function showLength(value, tagID) {
	var dspObj = $(tagID);
	if (!dspObj) return;
	dspObj.innerHTML = value.length;
}

function createHttpRequest() {
	if (window.ActiveXObject) {
		try {
			return new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e1) {
			try {
				return new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e2) {
				return null;
			}
		}
	} else if (window.XMLHttpRequest) {
		return new XMLHttpRequest();
	} else {
		return null;
    }
}

function dropChild(parent) {
	var child = parent.firstChild;
	while (child) {
		parent.removeChild(child);
		child = parent.firstChild;
	}
}

function goLogin() {
	location.href = "https://ssl.livetown.jp/login/login.php?referer=" + document.URL;
}

function scrollLeft() {
	return document.body.scrollLeft || document.documentElement.scrollLeft;
} 

function scrollTop() {
	return document.body.scrollTop || document.documentElement.scrollTop;
} 

function verifyDate(year, month, day) {
	if (year < 0 || month < 1 || month > 12 || day < 1 || day > 31) {
		return false;
	} else {
		var vDate = new Date(year, month - 1, day); 
		if (isNaN(vDate)) {
			return false;
		} else {
			return (vDate.getFullYear() == year && vDate.getMonth() == (month - 1) && vDate.getDate() == day);
		}
	}
}

function verifyEmpty(tagID) {
	var obj = $(tagID);
	if (!obj) return true;
	return !obj.value;
}

function emojiToDOM(parent, row) {
	var cPos = 0;
	var cStart = row.indexOf("{/e-", cPos);
	var cEnd = row.indexOf("/}", cPos);
	var cStr;
	var cImg;
	while (cStart > -1 && cStart < cEnd) {
		if (cPos < cStart) {
			cStr = row.substring(cPos, cStart);
			parent.appendChild($T(cStr));
		}
		cStr = row.substring(cStart + 4, cEnd);
		cImg = $E("img");
		cImg.src = "http://www.livetown.jp/image/emoji/" + cStr + ".gif";
		parent.appendChild(cImg);
		cPos = cEnd + 2;
		cStart = row.indexOf("{/e-", cPos);
		cEnd = row.indexOf("/}", cPos);
	}
	if (cPos < row.length) {
		cStr = row.substring(cPos, row.length);
		parent.appendChild($T(cStr));
	}
}