var newsFormatResult = "";
var newsFormatPage = "";

var resultInfoNews = "";
var currentTypeValueNews = "";
var currentTypeFieldNews = "";
var currentCategoryValueNews = "";
var currentCategoryFieldNews = "";
//var currentPageNews = 0;



function initNews(){
	
	var form = document.formNews;
	
	var id = form.id.value;
	
	newsFormatResult = 
		$("shopnews_list").innerHTML;
	
	if($("news_page")){
		newsFormatPage =
				$("news_page").innerHTML;	
	}
	
	requestServerNews(currentTypeValueNews,currentTypeFieldNews,currentCategoryValueNews,currentCategoryFieldNews,1);
	
}

function createHtmlNews(data){
	
	
	var result = newsFormatResult;

	
	for(var i = 0;i < NEWS_ELEMENTS.length;i++){
		var regExp = new RegExp("\\$\\$" + NEWS_ELEMENTS[i]["name"] + "\\$\\$","g");
		
		var expData = data[NEWS_ELEMENTS[i]["name"]];
		
		
		
		if(NEWS_ELEMENTS[i]["useHtml"] == "on"){
			expData = expData.replace("&lt;","<");
			expData = expData.replace("&gt;",">");
		}
		
		
		result = result.replace(regExp,expData);
	
		
	}
	
	
	return result;
}


function requestServerNews(typeValue,typeField,categoryValue,categoryField,page){
	
	$("shopnews_list").style.visibility = "hidden";
	
	$("shopnews_list").style.visibility = "visible";
	$("shopnews_list").innerHTML = 
		"<h1>お待ちください。</h1>" +
		"<h2>&nbsp;</h2>";
	
	var paramHash = {};
	paramHash["md"] = CONTENTS_MODE;
	paramHash["tv"] = typeValue;
	paramHash["tf"] = typeField;
	paramHash["cv"] = categoryValue;
	paramHash["cf"] = categoryField;
	paramHash["md"] = CONTENTS_MODE;
	paramHash["pg"] = page;
	//alert("news");
	
	service = new WebServiceRequest();
	var parameters = service.createRequest(paramHash);
		service.requestWebService(NEWS_URL,parameters,onResponseNews,onResponseNewsError);
}

function createPagenateNews(pageCount,currentPage){
	var prev = "";
	var next = "";
	var pageLink = "";
	
	for(var i = 1;i <= parseInt(pageCount);i++){
		if(i != currentPage){
			pageLink += 
				"&nbsp;<a href=\"javascript:requestServerNews('" + 
				currentTypeValueNews + "','" + 
				currentTypeFieldNews + "','" +
				currentCategoryValueNews + "','" +
				currentCategoryFieldNews + "'," +
				i +
				")\">" + i + "</a>";
		}else{
			pageLink += "&nbsp;" + i;
		}
	}
	
	
	if(parseInt(currentPage) > 1){
		
		prev = "<a href=\"javascript:requestServerNews('" + 
				currentTypeValueNews + "','" + 
				currentTypeFieldNews + "','" +
				currentCategoryValueNews + "','" +
				currentCategoryFieldNews + "'," +
				(parseInt(currentPage) - 1) +
				")\">前のページへ</a>";	
	}
	
	if(parseInt(currentPage) < parseInt(pageCount)){
		next = "&nbsp;<a href=\"javascript:requestServerNews('" + 
				currentTypeValueNews + "','" + 
				currentTypeFieldNews + "','" +
				currentCategoryValueNews + "','" +
				currentCategoryFieldNews + "'," +
				(parseInt(currentPage) + 1) +
				")\">次のページへ</a>";	
	}
	
	var returnValue = prev + pageLink + "&nbsp;" + next;
	return returnValue;
	
}

function parseResponseXmlNews(xmlDoc){
	
	
	if(!xmlDoc){
		doErrorNews();
		return;
	}
	
	if(xmlDoc.getElementsByTagName("error").item(0)){
		doErrorNews();
		return;	
	}
	
	var pageCount = 0;
	var currentPage = 0;
	
	
	var pageCountElem = xmlDoc.getElementsByTagName("PageCount");
	if(pageCountElem.item(0).childNodes[0]){
		pageCount = pageCountElem.item(0).childNodes[0].nodeValue;
	}
	
	var currentPageElem = xmlDoc.getElementsByTagName("CurrentPage");
	if(currentPageElem.item(0).childNodes[0]){
		currentPage = currentPageElem.item(0).childNodes[0].nodeValue;
	}
	
	var pagenate;
	if($("news_page") || $("news_page2")){
		pagenate = createPagenateNews(pageCount,currentPage); 
	}
	
	var result = xmlDoc.getElementsByTagName("Result");
	
	if(!result){
		doErrorNews();
		return;
	}

	if(result.length <= 0){
		doErrorNews();
		return;
	}
	
	
	var resultList = "";
	var extendedData = Array();
	for(var i = 0;i < result.length;i++){
		var data = {};
		for(var ii = 0;ii < NEWS_ELEMENTS.length;ii++){
			

			var valueElem = result.item(i).getElementsByTagName(NEWS_ELEMENTS[ii]["name"]);
			var elemValue = "";
			
			
			if(valueElem.item(0).childNodes[0]){
				elemValue = valueElem.item(0).childNodes[0].nodeValue;
			}
			if(elemValue.length <= 0){
				elemValue = NEWS_ELEMENTS[ii]["defaultValue"];
			}else{
				if(NEWS_ELEMENTS[ii]["format"]){
					var format = NEWS_ELEMENTS[ii]["format"];
			
					elemValue = format.replace("_value_",elemValue);
			
				}
			}
			
			data[NEWS_ELEMENTS[ii]["name"]] = elemValue;
			
		}		

			
		resultList += createHtmlNews(data);

	}
	

//alert(resultList);
	
	$("shopnews_list").style.visibility = "visible";
	$("shopnews_list").innerHTML = resultList;
	if($("news_page")){
		$("news_page").style.visibility = "visible";
		$("news_page").innerHTML = pagenate;
	}
	

	
	if($("news_page2")){
		$("news_page2").style.visibility = "visible";
		$("news_page2").innerHTML = pagenate;
	}
	
	

	
	
}

function doErrorNews(){
	$("shopnews_list").innerHTML = "<h1>現在最新ニュースはありません。</h1>" +
		"<h2>&nbsp;</h2>";
		
	
}

function onResponseNews(rec){
	
	//alert(rec.responseText);
	//alert("responsed");
	
	var xmlDoc = service.createXmlDocument(rec.responseText);
	
	if(!xmlDoc){
		alert("検索できませんでした。");
		doError();
		return;
	}else{
		parseResponseXmlNews(xmlDoc);		
		
	}
	
	
	return;
			
}

function onResponseNewsError(){
	//alert("WebServiceエラーです。");
	doErrorNews();
	//controllerObj.afterResponseErrorXmlHttp();
	return;
}