/**
 * Check if the given character is hiragana
 *
 * @param unknown_type value
 * @return unknown
 */
function is_hiragana(value){
	for (i = 0; i < (value+'').length ; i++){
		c = (value+'').substr(i,1).charCodeAt(0);
		if (!((0x3040 <= c) && (c <= 0x309e))){
			return false;
		}
	}
	return true;
}

/**
 * Check if the given character is half katakana
 *
 * @param unknown_type value
 * @return unknown
 */
function is_half_katakana(value){
	for (i = 0; i < (value+'').length ; i++){
		c = (value+'').substr(i,1).charCodeAt(0);
		if (!((0xff66 <= c) && (c <= 0xff9d))){
			return false;
		}
	}
	return true;
}

/**
 * Check if the given character is full katakana
 *
 * @param unknown_type value
 * @return unknown
 */
function is_full_katakana(value){
	for (i = 0; i < (value+'').length ; i++){
		c = (value+'').substr(i,1).charCodeAt(0);
		if (!((0x30a1 <= c) && (c <= 0x30fe))){
			return false;
		}
	}
	return true;
}

/**
 * Check if the given character is Kanji
 *
 * @param unknown_type value
 * @return unknown
 */
function is_kanji(value){
	for (i = 0; i < (value+'').length ; i++){
		c = (value+'').substr(i,1).charCodeAt(0);
		charIsKanji = false;
		if ((0x4e00 <= c) && (c <= 0x9fa5)){
			charIsKanji = true;
		}
		if ((0x3005 <= c) && (c <= 0x3007)){
			charIsKanji = true;
		}
		if (!charIsKanji){
			return false;
		}
	}
	return true;
}


/**
 * Check if the given character is katakana
 *
 * @param unknown_type value
 * @return unknown
 */
function is_katakana(value){
	return (is_half_katakana(value) || is_full_katakana(value));
}

/**
 * Check if the given string is Japanese
 *
 * @param unknown_type value
 * @return unknown
 */
function is_japanese(value){
	bc =0;

	for (i = 0; i < (value+'').length ; i++){
		c = (value+'').substr(i,1);
		if (!is_kanji(c) && !is_hiragana(c) && !is_katakana(c)){
			return false;
		}
	}
	return true;
}