//////////////グルメ情報検索（AJAX）//////////////

//下準備
var http=new JKL.ParseXML('/news_info/gourmet/data/gourmet.xml?'+Math.floor(Math.random()*100000));
var data=http.parse();var entrycount=data['gourmetlist']['array_item'].length;
var matchdata=new Array();var date=new Date();var resultHTML='';var tgtdiv='';
var tmpmatch1=new Array();var tmpmatch2=new Array();var tmpmatch3=new Array();

/*memo
	keylist　は　true/falseの全リスト
	keycount　は　key種別の数
	entrycount　は　登録店の数
	data['gourmetlist']['array_item'][0]...の形で参照
	matchdata　は　ヒットしたdataの登録順リスト
*/

function searchfunc(){
	tgtdiv=document.getElementById('target');bangumiChecked=0;
	prechallenge:{
		for(j=0;j<op1;j++){
			if(keylist[0][j]==1)bangumiChecked=1;
			}
		if(bangumiChecked==0){
			alert('番組名を選択してください');
			break prechallenge;
			}
		tgtdiv.innerHTML='<div id="searching"></div>';

		//変数初期化
		tmpmatch1.length=0;tmpmatch2.length=0;tmpmatch3.length=0;
		matchdata.length=0;resultHTML='';

		//番組フィルタ
		for(i=0;i<entrycount;i++){
			for(j=0;j<op1;j++){
				if(comparedata(data['gourmetlist']['array_item'][i]['bangumi'],j,0)){
					hitdata(tmpmatch1,i);
					}
				}
			}

		//食ジャンルフィルタ
		if0filter=0;for(j=0;j<op2;j++){if(keylist[1][j]==true){if0filter=1;}}//無選択＝全選択
		for(i=0;i<tmpmatch1.length;i++){
			matchchallenge:{
				for(j=0;j<op2;j++){
					var tmplst=data['gourmetlist']['array_item'][tmpmatch1[i]]['genre'].split(',');
					for(k=0;k<tmplst.length;k++){
						if((if0filter==0)||(comparedata(parseInt(tmplst[k],10),j,1))){
							hitdata(tmpmatch2,tmpmatch1[i]);
							break matchchallenge;
							}
						}
					}
				}
			}

		//キーワードフィルタ
		if0filter=0;for(j=0;j<op3;j++){if(keylist[2][j]==true){if0filter=1;}}//無選択＝全選択
		for(i=0;i<tmpmatch2.length;i++){
			matchchallenge:{
				for(j=0;j<op3;j++){
					//keyが1（＝放送1ヶ月以内判定）
					if((keylist[2][0])&&(j==0)){
						if((if0filter==0)||(conparedate(data['gourmetlist']['array_item'][tmpmatch2[i]]['oadate']))){
							hitdata(tmpmatch3,tmpmatch2[i]);
							break matchchallenge;
							}
						}
					var tmplst=data['gourmetlist']['array_item'][tmpmatch2[i]]['keywords'].split(',');
					//その他のマッチ
					for(k=0;k<tmplst.length;k++){
						if((if0filter==0)||(comparedata(parseInt(tmplst[k],10),j,2))){
							hitdata(tmpmatch3,tmpmatch2[i]);
							break matchchallenge;
							}
						}
					}
				}
			}

		//エリアフィルタ
		if0filter=0;for(j=0;j<op4;j++){if(keylist[3][j]==true){if0filter=1;}}//無選択＝全選択
		for(i=0;i<tmpmatch3.length;i++){
			matchchallenge:{
				for(j=0;j<op4;j++){
					var tmplst=data['gourmetlist']['array_item'][tmpmatch3[i]]['area'].split(',');
					for(k=0;k<tmplst.length;k++){
						if((if0filter==0)||(comparedata(parseInt(tmplst[k],10)+1,j+1,3))){
							hitdata(matchdata,tmpmatch3[i]);
							break matchchallenge;
							}
						}
					}
				}
			}

		//hitdata後処理
		if(matchdata.length==0){
			tgtdiv.innerHTML='<div id="nomatch">検索結果：0件<br />条件を変えて検索してみてください</div>';}
		else{makeresult();tgtdiv.innerHTML=resultHTML;}
		}
	}

//マッチ判定　xはentrycount　yはkeycount小リスト内ID zはkeyの項目ID
function comparedata(x,y,z){
	if((x==(y+1))&&(keylist[z][y])){return true}
	else{return false}
	}
//放送日1ヶ月以内判定 xは登録日付
function conparedate(x){
	var tmplist=x.split('.')
	if(tmplist.length>2){
		var tmpdate=new Date(parseInt(tmplist[0],10),parseInt(tmplist[1],10)-1,parseInt(tmplist[2],10));
		if(((date-tmpdate)/86400000)<32){return true;}
		else{return false;}
		}
	else return false;
	}
//ヒットさせる　xは格納するリスト変数、yは値
function hitdata(x,y){
	x[x.length]=y;
	}


//結果表示
var bangumilist=new Array();
bangumilist[0]=new Array(2);
bangumilist[1]=new Array('ソロモン流','http://www.tv-tokyo.co.jp/solomon/');
bangumilist[2]=new Array('ぶらり途中下車の旅','http://www.ntv.co.jp/burari/');
function makeresult(){
	for(i=0;i<matchdata.length;i++){
		//タイトル、番組名、O.A.日付
		resultHTML+='<div class="unit"><table cellsapcing="0"><tr><th>●';
		if(checkdetailCORE(i)){resultHTML+='<a href="javascript:popDetail(\''+data['gourmetlist']['array_item'][matchdata[i]]['detailfile']+'\');">';}
		resultHTML+=data['gourmetlist']['array_item'][matchdata[i]]['name'];
		if(checkdetailCORE(i)){resultHTML+='</a>';}
		resultHTML+='</th><td><a href="http://dogatch.jp/bin/redirect.php?url=';
		resultHTML+=bangumilist[parseInt(data['gourmetlist']['array_item'][matchdata[i]]['bangumi'],10)][1];
		resultHTML+='" target="_blank" class="tv">';
		resultHTML+=bangumilist[parseInt(data['gourmetlist']['array_item'][matchdata[i]]['bangumi'],10)][0];
		resultHTML+='</a>&nbsp;<span class="oadate">';
		resultHTML+=data['gourmetlist']['array_item'][matchdata[i]]['oadate']+'&nbsp;O.A.';
		resultHTML+='</span></td></tr></table>';

		//keyパレード
		resultHTML+='<div class="keyparade">';
		resultHTML+=paradekeys(i);
		resultHTML+='</div>';

		//詳細リンク、電話、住所、公式サイト
		resultHTML+=checkdetail(i);
		resultHTML+=checktel(i);
		resultHTML+=checkaddress(i);
		resultHTML+=checkofficial(i);

		resultHTML+='</div><div class="ptop"><a href="#pagetop"><img src="./files/searchimg/ptop.gif" width="72" height="12" alt="ページTOPへ" /></a></div>';
		}
	}

//keyパレード画像格納
var pklist=new Array('genre','keywords','area');
function paradekeys(x){
	var pk='';
	for(j=0;j<pklist.length;j++){
		var tmplst=data['gourmetlist']['array_item'][matchdata[x]][pklist[j]].split(',');
		for(k=0;k<tmplst.length;k++){
			pk+='<img src="./files/searchimg/key/'+(j+2)+'_'+tmplst[k]+'.gif" alt="" />';
			}
		}
	return pk;
	}

//詳細リンク
function checkdetail(x){
	if(checkdetailCORE(x)){return '<div class="detail"><a href="javascript:popDetail(\''+data['gourmetlist']['array_item'][matchdata[x]]['detailfile']+'\');" class="icon'+parseInt(data['gourmetlist']['array_item'][matchdata[x]]['detail'],10)+'">詳細はこちら</a></div>';}
	}
	function checkdetailCORE(x){
		var tmp=parseInt(data['gourmetlist']['array_item'][matchdata[x]]['detail'],10);
		if(tmp>0){return true;}else{return false;}
		}
//電話
function checktel(x){
	var tmp=data['gourmetlist']['array_item'][matchdata[x]]['tel'];
	if(tmp){return '<div class="tel">'+tmp+'</div>';}
	else{return '';}
	}
//住所
function checkaddress(x){
	var tmp=data['gourmetlist']['array_item'][matchdata[x]]['address'];

//map
	if(data['gourmetlist']['array_item'][matchdata[x]]['mapxy']){return '<div class="address">'+tmp+'&nbsp;(<a class="map" href="javascript:popMap(\''+data['gourmetlist']['array_item'][matchdata[x]]['mapxy']+'\')">地図はこちら</a>）</div>';}
	else{return '';}

//以下２行は仮
	if(tmp){return '<div class="address">'+tmp+'</div>';}
	else{return '';}
	}
//公式サイト
function checkofficial(x){
	var tmp=data['gourmetlist']['array_item'][matchdata[x]]['homepage'];
	if(tmp){return '<div class="officiallink"><a href="http://dogatch.jp/bin/redirect.php?url='+tmp+'" target="_blank"><span class="alt">ホームページはこちら</span></a></div>';}
	else{return '';}
	}



