/*
 * http://www.h5.dion.ne.jp/%7Etangos/zencart/charCheck2.html
 * unicode checker ver.2.3	2008/03/08
 */

Event.observe(window, 'load', initCharCheck, false);

/*
 *
 */
function initCharCheck() {
	for (var h = 0; h < document.forms.length; h++) {
		Event.observe(document.forms[h], 'submit', CharCheck2, false);
	}
}
/*
 * 環境依存文字のチェック
 */
function CharCheck2(event) {
	var badChr = '';
	var isSubmit = false;
	
	var form = Event.element(event);
	for(var i = 0; i < form.elements.length; i++) {
		if ((form.elements[i].tagName == "INPUT" && form.elements[i].type == "text") ||
			form.elements[i].tagName == "TEXTAREA")
		{
			// 半角カタカナを全角カタカナへ
			form.elements[i].value = hankaku2zenkaku3(form.elements[i].value);
			//
			if (form.elements[i].name == "keyword") {
				form.elements[i].value = zenkakuSpace2hankakuSpace(form.elements[i].value);
			}
			
			var ObjValue = form.elements[i].value;
			for (var j=0; j<ObjValue.length; j++){
				var Chr = ObjValue.charAt(j);
		  	var c = ObjValue.charCodeAt(j);
		  	if (c < 128) {
		  		// 半角英数字 - nothing to do.
		  		;
		  	} else if (65376 < c && c < 65440) {
		  		// 半角カタカナ
		  		window.alert("ERROR:半角カタカナを検出！[ "　+　Chr　+　" ]");
		  		return false;
		  	} else if (JISX0208.indexOf(Chr) == -1){
		  		// 環境依存文字
					if (badChr != '') badChr += ', ';
					badChr += Chr;
		    } 
		  }
		}
	}
  
  if (badChr != '') {
  	window.alert("\" "　+　badChr　+　" \"は環境依存文字の為、使用できません。");
  	if (form.name == 'create_account') {
  		window.submitted = false;
  	}
  	isSubmit = false;
  } else if (form.name == 'create_account' && window.submitted === false) {
  	isSubmit = false;
  } else {
  	isSubmit = true;
  }
  
 	if (isSubmit === false) {
 		Event.stop(event);
	}
}

/* 
 * 半角カタカナを全角カタカナへ変換
 */ 
function hankaku2zenkaku3(str0){
	var str1 = str0;
	// 半角カナ
	var Kana1 = new Array("ｳﾞ","｡","｢","｣","､","･",
		"ｶﾞ","ｷﾞ","ｸﾞ","ｹﾞ","ｺﾞ","ｻﾞ","ｼﾞ","ｽﾞ","ｾﾞ","ｿﾞ","ﾀﾞ","ﾁﾞ",
		"ﾂﾞ","ﾃﾞ","ﾄﾞ","ﾊﾞ","ﾋﾞ","ﾌﾞ","ﾍﾞ","ﾎﾞ","ﾊﾟ","ﾋﾟ","ﾌﾟ","ﾍﾟ","ﾎﾟ",
		"ｦ",
		"ｧ",	"ｨ","ｩ","ｪ","ｫ","ｬ","ｭ","ｮ","ｯ","ｰ","ｱ","ｲ","ｳ","ｴ","ｵ","ｶ","ｷ","ｸ","ｹ",	"ｺ",
		"ｻ","ｼ","ｽ","ｾ","ｿ","ﾀ","ﾁ","ﾂ","ﾃ","ﾄ","ﾅ","ﾆ","ﾇ","ﾈ","ﾉ","ﾊ","ﾋ","ﾌ","ﾍ","ﾎ",
		"ﾏ","ﾐ","ﾑ","ﾒ","ﾓ","ﾔ","ﾕ","ﾖ","ﾗ","ﾘ","ﾙ","ﾚ","ﾛ","ﾜ","ﾝ",
		"ﾞ","ﾟ");
	// 全角カナ
	var Kana2 = new Array("ヴ","。","「","」","、","・",
		"ガ","ギ","グ","ゲ","ゴ","ザ","ジ","ズ","ゼ","ゾ","ダ","ヂ",
		"ヅ","デ","ド","バ","ビ","ブ","ベ","ボ","パ","ピ","プ","ペ","ポ",
		"ヲ",
		"ァ","ィ","ゥ","ェ","ォ","ャ","ュ","ョ","ッ","ー","ア","イ","ウ","エ","オ","カ","キ","ク","ケ","コ",
		"サ","シ","ス","セ","ソ","タ","チ","ツ","テ","ト","ナ","ニ","ヌ","ネ","ノ","ハ","ヒ","フ","ヘ","ホ",
		"マ","ミ","ム","メ","モ","ヤ","ユ","ヨ","ラ","リ","ル","レ","ロ","ワ","ン",
		"゛","゜");
	str1 = replaceChars(str1, Kana1, Kana2);
	
	return str1;
}
/*
 * 全角スペースを半角スペースに変換
 * 	http://zen-cart.jp/bbs/viewtopic.php?p=18143#18143
 */
function zenkakuSpace2hankakuSpace(str0) {
	var str1 = str0;
	// 全角スペース
	var zenkaku = new Array("　");
	// 半角スペース
	var hankaku = new Array(" ");
	str1 = replaceChars(str1, zenkaku, hankaku); 	
	
	return str1;
}
/*
 * 
 */
function replaceChars(str0, fromChars,　toChars) {
	var str1 = str0;
	
	for(var i = 0; i < fromChars.length; i++){
		var strObj = new String(str1);
		var fromCharReg = new RegExp(fromChars[i]);
		while (strObj.match(fromCharReg)) { 
			str1 = str1.replace(fromChars[i], toChars[i]);
			strObj = new String(str1);
		}
	}
	
	return str1;
}



