
var rest = '...';
function cutStringById(id, size) {
	var str = document.getElementById(id).innerHTML;
	if(str.length > size){
		document.getElementById(id).innerHTML = str.substring(0, size) + rest;
	}
}
 
function cutStringByTagNameAndClassName(tagName, className, size) {
	var elements = document.getElementsByTagName(tagName);
	for (i=0; i < elements.length; i++) {
		if (elements[i].className == className) {
			var str = elements[i].innerHTML;
			elements[i].innerHTML = trim(str,size);
		}
	}
}
 
function cutStringByIdAndTagName(id, tagName, size) {
	var element = document.getElementById(id);
	var elements = element.getElementsByTagName(tagName);
	for (i=0; i < elements.length; i++) {
		var str = elements[i].innerHTML;
		if(str.length > size){
			elements[i].innerHTML = trim(str,size);
		}
	}
}
 
function cutStringByClassNameAndTagName(className, tagName, size) {
	var elements = document.getElementsByTagName(tagName);
	for (i=0; i < elements.length; i++) {
		if (elements[i].parentNode.className == className) {
			var str = elements[i].innerHTML;
			elements[i].innerHTML = trim(str,size);
		}
	}
}
 
function trim(str, size) {
	if(str.length > size){
		var cutstring = str.substring(0, size);
		var byte = countByte(cutstring);
		var tmp = "";
		if (byte < size*2) {
			 for(k=0; k < (size*2-byte)*2; k++){
				 tmp = str.substring(0,size + k);
				 if (countByte(tmp) >= size*2) {
					 break;
				 }
			 }
		}
		if(tmp){
			return tmp + rest;
		} else {
			return str.substring(0, size) + rest;
		}
	} else {
		return str;
	}
}
 
function countByte(str) {
	var byte = 0;
	for (j=0; j < str.length; j++) {
		str.charCodeAt(j) < 0x100 ? byte++ : byte += 2;
	}
	return byte;
}

