Event.observe(window, 'load', function(){searchNews()});

//---------------------
//初期設定
//---------------------
var JSON;

var jsonFILE = '';

var CATEGORY = '0';

Ctgry = {
	'1': '商品情報',
	'2': '店舗情報',
	'3': 'サイト情報',
	'4': 'トピックスヘッド'
}


//------------------------------------------------
//ページ初期表示時 ＆ 検索処理実行
//※検索時も初期表示時もこの処理を通してフォームの状態を取得する
//------------------------------------------------
function searchNews(){
	//※検索データをオブジェクトにまとめて表示関数に渡す
	//検索用Obj初期化
	searchObj = new Object();
	
	//フォームのデータ取得
	formData = Form.serialize("searchForm");
	
	//フォームデータ整形
	searchData = formData.split("&");
	for(i=0; i<searchData.length; i++){
		tmp = searchData[i].split('=');
		searchObj[tmp[0]] = decodeURI(tmp[1]);
	}
	
	readNews(searchObj);
}


//----------------------------------
//ニュース記事のJSONデータ取得
//----------------------------------
function readNews(searchObj){
	
	//フォームからJSONデータファイルを決定
	jsonFILE = 'news' + searchObj.year + '.json';
	
	//表示するカテゴリを指定
	CATEGORY = searchObj.category;
	
	new Ajax.Request(
		jsonFILE
		,
		{
			method: 'get'
			//method: 'post'
			,
			onSuccess: function(obj){
				//JSONデータ取得・評価
				JSON = eval("(" + obj.responseText + ")");
				
				//不要なデータは削除しておく
				delete(JSON['']);
				
				//------------------------------------------------【検索処理】開始！
				/* CHECK*/
				//for(i in searchObj){ alert(i+'=>'+searchObj[i]);	}
				
				//------------------------------------------------【検索処理】検索ObjにカテゴリAの指定があった場合
				if(searchObj.category != '0'){
					//alert('カテゴリ検索'+searchObj.category);
					for(i in JSON){
						if(JSON[i].category != searchObj.category){
							delete(JSON[i]);	
						}
					}
				}
				
				//------------------------------------------------【検索処理】検索Objに検索キーワードが含まれている場合
				if(searchObj.keyword != ''){
					//ANDキーワードを分割
					searchWord = searchObj.keyword.replace(/\s/g, "CUT");
					myWord = searchWord.split('CUT');
					
					for(i in JSON){
						chk = 0;
						for(j=0; j<myWord.length; j++){
							if(JSON[i].description.indexOf(myWord[j]) <= -1){ chk = 1; continue; }
						}
						if(chk)delete(JSON[i]);
					}
				}
				//------------------------------------------------【検索処理】終了！
				
				//HTML表示関数へ
				displayNews();
			}
		}
	);
}

//----------------------------------
//データをソートしてHTML表示
//----------------------------------
function displayNews(){

	var line = '';
	
	//トピックス表示のときのみ注釈を入れる。
	if(CATEGORY == '4'){
		line += '<p>※トピックス情報はここではヘッダのみ表示しております。</p>';
	}
	
	//--------------------【サンプル】目的のオブジェクトプロパティ値でソートさせる
	/*
	//ソートしたターゲットの指定
	var sortTarget = 'dummy';
	//ソート用配列の準備
	key = myJsonSort2(sortTarget);
	//ソート
	key.sort();
	//HTMLラインの生成
	for(i=0; i<key.length; i++){
		nowKey = key[i][1];
		line += htmlline(JSON[nowKey].description);
	}
	*/
	
	//--------------------【サンプル】オブジェクトキー値でソートさせる
	//ソート用配列の準備
	/*
	key = myJsonSort();
	//ソート
	key.sort();
	//HTMLラインの生成
	for(i=0; i<key.length; i++){
		var nowKey = key[i];
		line += htmlline(nowKey, JSON[nowKey].description, JSON[nowKey].category);
	}
	*/
	
	//--------------------【サンプル】ソートさせない場合
	for(i in JSON){
		
		//公開フラグを取得
		var public = JSON[i].public;
		
		//日付データ取得
		var date = Date.parse(JSON[i].pubDate);
		var today = (new Date()).getTime();
		//alert('今日は'+today+'／ニュース日付は'+date+'／差＝'+(today-date));
		
		//公開フラグがオフ、もしくは日付が未来のものは表示しない
		if((public == '0') || ((today - date) < 0)){continue;}
		
		line += htmlline(i, JSON[i].description, JSON[i].category);
	}
	
	//HTML表示
	$("NEWS").innerHTML = line;
}

//------------------------------------------------
//【サンプル】オブジェクトキー値でソートできるようにソート用配列を作る（1次元配列）
//------------------------------------------------
function myJsonSort(){
	//ソート用配列格納変数
	myKey = [];

	for(i in JSON){
		myKey.push(i);
	}
	return myKey;
}

//------------------------------------------------
//【サンプル】オブジェクトプロパティの値でソートできるようにソート用配列を作る（2次元配列）
//------------------------------------------------
//※ソート用配列 ＝ [ ソートしたプロパティの値 , オブジェクトのキー値 ]
function myJsonSort2(sortTarget){
	
	//ソート用配列格納変数
	myKey = [];
	
	for(i in JSON){
		//ソートしたいターゲットのプロパティ値
		var h = JSON[i][sortTarget];
		//ターゲットプロパティ値とキー値を一緒に格納。文字列ソートさせるためターゲット値を前に持ってきている。
		array = [h,i];
		myKey.push(array);
	}
	return myKey;
}

//------------------------------------------------
//HTMLライン生成
//------------------------------------------------
function htmlline(key, data, category){
	var line = '';
	
	//key（日付データ）を整形「yyyy/mm/dd」
	var myDate = key.substr(0,10);
	
	//HTMLのID用にkeyを整形（「/」を削除）
	var myID = key.split('/').join('');
	
	//カテゴリ画像用HTMLを生成
	var categoryMark = '<img src="image-cmn/icon-news0' + category + '.gif" />';
	
	//記事HTMLを生成
	line += '<dl id="news' + myID + '">';
	line += '<dt class="news0' + category + '">' + myDate + categoryMark + '</dt>';
	line += '<dd>' + data + '</dd>';
	line += '</dl>' + '\n';
	return line;
}


