"use strict";

/**
 * 自定义单击事件
 * @id 选择器
 * @fun 点击事件
 * */
function baseClick(id, fun) {
	document.querySelectorAll(id).forEach(function (v) {
		v.addEventListener('click', fun);
	});
};

/**
 * 自定义双击事件
 * @id 选择器
 * @fun 点击事件
 * */
function baseDblclick(id, fun) {
	document.querySelectorAll(id).forEach(function (v) {
		v.addEventListener('dblclick', fun);
	});
};

/**
 * 自定义鼠标按键按下事件
 * @id 选择器
 * @fun 点击事件
 * */
function baseMousedown(id, fun) {
	document.querySelectorAll(id).forEach(function (v) {
		v.addEventListener('mousedown', fun);
	});
};

/**
 * 自定义鼠标按键松开事件
 * @id 选择器
 * @fun 点击事件
 * */
function baseMouseup(id, fun) {
	document.querySelectorAll(id).forEach(function (v) {
		v.addEventListener('mouseup', fun);
	});
};

/**
 * 自定义鼠标移入事件
 * @id 选择器
 * @fun 点击事件
 * */
function baseMouseenter(id, fun) {
	document.querySelectorAll(id).forEach(function (v) {
		v.addEventListener('mouseenter', fun);
	});
};

/**
 * 自定义鼠标移出事件
 * @id 选择器
 * @fun 点击事件
 * */
function baseMouseleave(id, fun) {
	document.querySelectorAll(id).forEach(function (v) {
		v.addEventListener('mouseleave', fun);
	});
};

/**
 * 自定义鼠标移动事件
 * @id 选择器
 * @fun 点击事件
 * */
function baseMousemove(id, fun) {
	document.querySelectorAll(id).forEach(function (v) {
		v.addEventListener('mousemove', fun);
	});
};
/**
 * Utf8Array转字符串
 * @array Utf8Array数据
 * */
function Utf8ArrayToStr(array) {
	var out, i, len, c;
	var char2, char3;
	out = "";
	len = array.length;
	i = 0;
	while (i < len) {
		c = array[i++];
		switch (c >> 4) {
			case 0:
			case 1:
			case 2:
			case 3:
			case 4:
			case 5:
			case 6:
			case 7:
				// 0xxxxxxx
				out += String.fromCharCode(c);
				break;
			case 12:
			case 13:
				// 110x xxxx 10xx xxxx
				char2 = array[i++];
				out += String.fromCharCode((c & 0x1f) << 6 | char2 & 0x3f);
				break;
			case 14:
				// 1110 xxxx 10xx xxxx 10xx xxxx
				char2 = array[i++];
				char3 = array[i++];
				out += String.fromCharCode((c & 0x0f) << 12 | (char2 & 0x3f) << 6 | (char3 & 0x3f) << 0);
				break;
		}
	}
	return out;
}