
AddEventListener(window,'load',function(){
	
	
	var fObj = new feed({
			setUrl:"getFeed.php",
			sitePath: "",
			displayAreaId: "feedArea",
			lordingImg : "asset/img/parts/icon/loading.gif",
			displayNo:"5",
			testid:"a02"
	});
	

});

var feed = function(){
	   this.init.apply(this, arguments);
}

feed.prototype = {
	init: function(setDataObj){
		
		this.data = {};
		var dataObj= this.data;
		
		dataObj.setUrl = (setDataObj.setUrl)? setDataObj.setUrl:"";
		dataObj.sitePath  = (setDataObj.sitePath)? setDataObj.sitePath:"";
		dataObj.displayAreaId = (setDataObj.displayAreaId)? setDataObj.displayAreaId:"feedArea";
		dataObj.lordingImg = (setDataObj.lordingImg)? setDataObj.lordingImg:"asset/img/parts/icon/loading.gif";
		dataObj.displayNo = (setDataObj.displayNo)? setDataObj.displayNo:"5";
		
		dataObj.testid = (setDataObj.testid)? setDataObj.testid:"";
		dataObj.xmlObj = (setDataObj.xmlObj)? setDataObj.xmlObj:"";
		
		this.startFunc();
		
		var self = this;
		var xmlObj= new ajax({
			setUrl:self.data.setUrl,
			success_function: function(xmlObj){ self.successFunc(xmlObj) },
			method:"GET",
			testid:self.data.testid
			
		});
	},
		
	/* データ */
	data:{},
	
	
	successFunc : function(xmlObj){
			var dataObj = this.data;
			var displayNo = dataObj.displayNo;		//表示件数
			
			/* XMLデータ取得 */
			var itemObjs = xmlObj.responseXML.getElementsByTagName("item");
			var itemData = [];
			for (var i = 0; i < itemObjs.length; i++){
				itemData[i] = {};
				itemData[i].title = itemObjs[i].getElementsByTagName("title")[0].childNodes[0].data;
				itemData[i].link = itemObjs[i].getElementsByTagName("link")[0].childNodes[0].data;
				itemData[i].date = itemObjs[i].getElementsByTagName("pubDate")[0].childNodes[0].data;
				itemData[i].cate = itemObjs[i].getElementsByTagName("category")[0].childNodes[0].data;
			}
		
			/* 表示エリア取得 */
			var areaId = dataObj.displayAreaId;
			var displayArea = {};
			displayArea = document.getElementById(areaId);
	
			/* 日付加工 */
			var displayDate = [];
			for (var i = 0; i < itemData.length; i++){
				
				pre_pubDate = itemData[i].date;
				var pubDate = new Date(pre_pubDate);
				var pubDateM = pubDate.getMonth()+1;
				pubDate = pubDate.getFullYear() + "年" + pubDateM + "月" + pubDate.getDate() + "日";
				
				displayDate[i] = pubDate;
				
			}
			
			/* 表示件数よりデータが少ない場合、表示件数を調整 */
			if(itemData.length < displayNo){
				displayNo = itemData.length;
			}
			
			/* --DOM出力------------------------------------------------------------------------ */
			/*	<table cellspacing="0" class="table_news">
			/*	<tr>
			/*	<th><p class="category">●●●</p></th>
			/*	<td><span class="date">●/●/●</span><a href="#" target="_blank">●●●●</a></td>
			/*	</tr>
			/*	</table>
			/* --------------------------------------------------------------------------------- */
			var tableObj=document.createElement('table');
			tableObj.setAttribute('cellspacing','0');
			tableObj.className='table_news';
			var tbody1=document.createElement('tbody');
			tableObj.appendChild(tbody1);
			for (var i = 0; i < displayNo; i++){
				var tr1=document.createElement('tr');
				tbody1.appendChild(tr1);
				var th1=document.createElement('th');
				tr1.appendChild(th1);
				var txt3=document.createTextNode(displayDate[i]);
				th1.appendChild(txt3);
				var td1=document.createElement('td');
				tr1.appendChild(td1);
				var a1=document.createElement('a');
				a1.setAttribute('href',itemData[i].link);
				a1.setAttribute('target','_blank');
				a1.className='icon_arrow_r';
				td1.appendChild(a1);
				var txt6=document.createTextNode(itemData[i].title);
				a1.appendChild(txt6);
			}
			displayArea.innerHTML = "";
			displayArea.appendChild(tableObj);
	},
	

	startFunc: function (){
			var dataObj = this.data;
			var areaId = dataObj.displayAreaId;
			var lordingImgPath = dataObj.sitePath + dataObj.lordingImg;
			
			var displayArea = {};
			displayArea = document.getElementById(areaId);
			
			var pObj = {};
			pObj = document.createElement('p');
			pObj.className = 'a_center';
			var imgObj = {};
			imgObj = document.createElement('img');
			imgObj.setAttribute('src',lordingImgPath);
			pObj.appendChild(imgObj);
			
			displayArea.innerHTML = "";
			displayArea.appendChild(pObj);
		

	}
	
	
	
}


/*
*
*
*
*/
var ajax = function(){
	 this.init.apply(this, arguments);
}
ajax.prototype = {
	init: function(setDataObj){
		this.data = {};
		var dataObj= this.data;

		dataObj.reqObj = {};
		dataObj.timerId = "";
		dataObj.timeout_sec = "10";
		
		dataObj.method = (setDataObj.method)? setDataObj.method:"GET";
		dataObj.setUrl = (setDataObj.setUrl)? setDataObj.setUrl:"";
		
		dataObj.success_function = (setDataObj.success_function)? setDataObj.success_function:"";
		
		dataObj.sendData = null;
		
		dataObj.testid = (setDataObj.testid)? setDataObj.testid:"";
		dataObj.argDataObj = "";
		
		try {
			dataObj.reqObj = this.getXMLHttpRequest();
		} catch(e){
			dataObj.reqObj = false;
		}
		if(!dataObj.reqObj){
			this.httpObjGenerateFail();
			return false;
		}
		
		/* timer */
		var self=this;
		dataObj.timerId = setInterval(function(){self.timeoutCheck()},1000);
		dataObj.reqObj.open(dataObj.method,dataObj.setUrl,true);
		

//関数化
		var s_func = this.success_func;
		dataObj.reqObj.onreadystatechange = function(){
	
		
			if(dataObj.reqObj.readyState == 4){

				if(dataObj.reqObj.status == 200){
					clearInterval(dataObj.timerId);	
					( dataObj.success_function )? dataObj.success_function(dataObj.reqObj): "";
				} else if(dataObj.reqObj.status == 404){
					
					alert("xmlファイルが見つかりません。");　//dataObj.error_func("xmlファイルが見つかりません。");
					return false;
				} else {
					
					alert(dataObj.reqObj.status + ':' + dataObj.reqObj.statusText);　//dataObj.error_func(dataObj.reqObj.status + ':' + dataObj.reqObj.statusText);
					return false;
				}
			}
		}
		
		dataObj.reqObj.send(dataObj.sendData);


	},
	
	
	
	/* データ */
	data:{
	},
	
	success_func : function(){

		var dataObj= this.data;
		( dataObj.success_function )? dataObj.success_function(dataObj.reqObj): "";
		
		
	},
	
	checkStatus:  function(){
		var dataObj= this.data;
		
		if(dataObj.reqObj.readyState == 4){

			if(dataObj.reqObj.status == 200){
				this.success_func(); //
			} else if(dataObj.reqObj.status == 404){
				
				alert("xmlファイルが見つかりません。");　
				return false;
			} else {
				
				alert(dataObj.reqObj.status + ':' + dataObj.reqObj.statusText);　
				return false;
			}
		}
	},
	
	/* データセット用　*/
	setData : function(){
		
		var setDataObj = this.data.argDataObj;
		for (var key in this.data){
			for (var key2 in setDataObj){
				if(key == key2){
					this.data[key] = setDataObj[key2];
				}
			}
		};
	},
	
	
	/* XHRオブジェクトを作成 */
	getXMLHttpRequest: function() {

        var xhr;
        var tryThese = [
            function () { return new XMLHttpRequest(); },
            function () { return new ActiveXObject('Msxml2.XMLHTTP'); },
            function () { return new ActiveXObject('Microsoft.XMLHTTP'); },
            function () { return new ActiveXObject('Msxml2.XMLHTTP.4.0'); },
        ];
        for (var i = 0; i < tryThese.length; i++) {
            var func = tryThese[i];
            try {
                xhr = func;
                return func();
            } catch (e) {
            }
        }

        return xhr;
    },

	
	/* オブジェクト作成失敗時 */
	httpObjGenerateFail: function (){
		alert('ご利用のブラウザーでは、当サイトの新着情報は見られません。');
		return false;
	},
	

	/* タイマーチェック　*/
	timeoutCheck : function (){
		var dataObj= this.data;
		
		dataObj.timeout_sec --;
		if(dataObj.timeout_sec <= 0){
			//タイマーをストップする
			clearInterval(dataObj.timerId);
			
			//HTTPリクエストを中断する
			dataObj.reqObj.abort();
			
			//エラーダイアログを表示
			alert('タイムアウトです.');
			//console.log('タイムアウトです' + dataObj.testid);
			
			return false;
		}
	}


}





