// document.getElementById を $ に定義

	function $(f) {
		return document.getElementById(f);
	}



// http://www.openspc2.org/reibun/javascript/business/005/
// 全角・半角変換

	function toHankakuNum(motoText){
		han = "0123456789.,-+ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ";
		zen = "０１２３４５６７８９．，－＋ＡＢＣＤＥＦＧＨＩＪＫＬＭＮＯＰＱＲＳＴＵＶＷＸＹＺａｂｃｄｅｆｇｈｉｊｋｌｍｎｏｐｑｒｓｔｕｖｗｘｙｚ　";
		str = "";
		for (i=0; i<motoText.length; i++){
			c = motoText.charAt(i);
			n = zen.indexOf(c,0);
				if (n >= 0) c = han.charAt(n);
			str += c;
		}
	return str;
	}



// http://0xcc.net/blog/archives/000008.html
// http://0xcc.net/blog/archives/000019.html
// いやなブログ - JavaScript でインクリメンタル 検索 (grepではない版)
// 正規表現を落とす

	function quotemeta (string) {
		return string.replace(/(\W)/g, "\\$1");
	}



// http://0xcc.net/blog/archives/000008.html
// http://0xcc.net/blog/archives/000019.html
// いやなブログ - JavaScript でインクリメンタル 検索 (grepではない版)

function grep (pattern) {

	var p = toHankakuNum(pattern).split(" ");
		for (i=0; i<4; i++){
			if (typeof(p[i]) == 'undefined') {
			p[i] = '';
			}
		}


	if (pattern.match(/^\d\d\d\d/)) {
	//数字4桁の場合は検索方法を変更

		try {

			var regex1 = new RegExp(quotemeta(p[0]), "ig");

			var p_dtp_Texts = new Array();
			for ( i in p_dtp_Text ) {
				p_dtp_Texts[i] = p_dtp_Text[i][1] + p_dtp_Text[i][2];
			}

			var divlineslength_dtp = 0;
			var count_dtp = 0;

			var p_dtp_HTML = '<ol>';
			for ( i in p_dtp_Text) {

				divlineslength_dtp ++;

				if ( p_dtp_Texts[i].match(regex1)) {

					p_dtp_HTML += '<li class="pittari-dtp-line"><a href="' + p_dtp_Text[i][0] + '">' + p_dtp_Text[i][1] + '</a><span class="pittari-keywords">' + p_dtp_Text[i][2] + '</span></li>';

				}
				else {
					count_dtp ++;
				}

				var regexserchwords  = new RegExp(' ', "gi");
					if ((toHankakuNum(pattern).replace(regexserchwords,"")) == ""){
						//欄が「」（空欄）か「 」か「　」の場合
						count_dtp ++;
					}

			}

			p_dtp_HTML += '</ol>';
			$('pittari-area').innerHTML = p_dtp_HTML;


//			alert(p_dtp_HTML);
//			alert(count_dtp);
//			alert(divlineslength_dtp);


			if ( count_dtp == divlineslength_dtp ) {
				$('pittari-area').style.display   = 'none';
				$('pittari-shinai').innerHTML = '<p>「ぴったりサーチ！」では該当するドキュメントはありませんでした</p>';
				$('pittari-shinai').style.display = 'block';
			} else {
				$('pittari-area').style.display   = 'block';
				$('pittari-shinai').style.display = 'none';
			}
			//検索してなにも該当しない場合の表示



			var regexserchwords  = new RegExp(' ', "gi");
				if ((toHankakuNum(pattern).replace(regexserchwords,"")) == ""){
					//欄が「」（空欄）か「 」か「　」の場合
				$('pittari-shinai').innerHTML = '<p>検索語を入力してください</p>';
				$('pittari-area').style.display   = 'none';
				$('pittari-shinai').style.display = 'block';
				}




		} catch (e) {
			// 正規表現の文法エラーを無視する
		}

	}


	else {
		try {


			var regex1 = new RegExp(quotemeta(p[0]), "ig");
			var regex2 = new RegExp(quotemeta(p[1]), "ig");
			var regex3 = new RegExp(quotemeta(p[2]), "ig");
			var regex4 = new RegExp(quotemeta(p[3]), "ig");
			//検索語は4つまでにした


			var pTexts = new Array();
			for ( i in pText ) {
				pTexts[i] = pText[i][1] + pText[i][2];
			}


			var divlineslength = 0;
			var count = 0;

			var pHTML = '<ol>';
			for ( i in pText) {

				divlineslength ++;

				if ( pTexts[i].match(regex1) && pTexts[i].match(regex2)  && pTexts[i].match(regex3)  && pTexts[i].match(regex4) ) {
					pHTML += '<li class="pittari-line"><a href="' + pText[i][0] + '">' + pText[i][1] + '</a><span class="pittari-keywords">' + pText[i][2] + '</span></li>';
				}
				else {
					count ++;
				}

				var regexserchwords  = new RegExp(' ', "gi");
					if ((toHankakuNum(pattern).replace(regexserchwords,"")) == ""){
						//欄が「」（空欄）か「 」か「　」の場合
						count ++;
					}

			}

			pHTML += '</ol>';
			$('pittari-area').innerHTML = pHTML;

//			alert(count);
//			alert(divlineslength);

			if ( count == divlineslength ) {
				$('pittari-area').style.display   = 'none';
				$('pittari-shinai').innerHTML = '<p>「ぴったりサーチ！」では該当するドキュメントはありませんでした</p>';
				$('pittari-shinai').style.display = 'block';
			} else {
				$('pittari-area').style.display   = 'block';
				$('pittari-shinai').style.display = 'none';
			}
			//検索してなにも該当しない場合の表示

			var regexserchwords  = new RegExp(' ', "gi");
				if ((toHankakuNum(pattern).replace(regexserchwords,"")) == ""){
					//欄が「」（空欄）か「 」か「　」の場合
				$('pittari-shinai').innerHTML = '<p>検索語を入力してください</p>';
				$('pittari-area').style.display   = 'none';
				$('pittari-shinai').style.display = 'block';
				}


		} catch (e) {
			// 正規表現の文法エラーを無視する
		}
	}


}



// g:javascript - javascript 覚え書き日記 - URLの引数を配列に分解
// http://javascript.g.hatena.ne.jp/tetsu23/20060706/p1

	function get_t() {
		querywords = location.search.slice(1).split('&');
		h = new Array();
		for (var i=0 , c = querywords.length ; i < c ; i++) {
			var s = querywords[i].split('=');
			h[s[0]] = s[1];
		}
		return h;
	}

	// 利用する場合には以下のように。qを取得する場合。

	function get_serach() {
		var ar = get_t();
		if (typeof(ar["q"]) != 'undefined'){

			var regexserchwords  = new RegExp("\\+", "gi");

			if((navigator.platform == "MacPPC")
				&& (navigator.appName == "Microsoft Internet Explorer")) {
			// Mac Internet Explorer の場合、decodeURIComponent が使えないので分岐

//				alert(unescape(unescape(ar["q"])));
				$('q').value = toHankakuNum(unescape(unescape(ar["q"]).replace(regexserchwords," ")));
				$('sbi').value = toHankakuNum(unescape(unescape(ar["q"]).replace(regexserchwords," ")));
				grep($('q').value);
			}
			else {

//				alert(decodeURIComponent(ar["q"]));
				$('q').value = toHankakuNum(decodeURIComponent(ar["q"]).replace(regexserchwords," "));
				grep($('q').value);
				gajaxsearch($('q').value);
				gajaxbbssearch($('q').value);
				adobehelpsearch($('q').value);
				adobekbsearch($('q').value);
			}
		}
		else {
//			grep($('q').value);
//			gajaxsearch($('q').value);
		}
	}


//Mac Internet Explorer の場合、色々ややこしいので、escapeして送信する

	function form_escape() {
//		alert(escape($('q').value));
		$('q').value = escape($('q').value);
	}

