/*
 * 【voice.js】
 *  お客様の声
 */

$(function(){
	var count = 0;
	var current = 0;
	var carouselWidth = 680;
	var xmlObj;
	
	$.ajax({
		url:'voice.xml',
		dataType:'xml',
		success:function(data){
			xmlObj = data;
			
			//データ整列
			$("item",data).each(function(){
				count++;
			});
			
			var ranArr = generateRandomInt(count);
			for (i=0; i < count; i++) {
				var ranId = ranArr[i];
				var thisObj = $("item",xmlObj)[ranId];
				var image = $("image",thisObj).text();
				var categoryLink = $("categoryLink",thisObj).text();
				var category = $("category",thisObj).text();
				var dateName = $("dateName",thisObj).text();
				var description = $("description",thisObj).text();
				var detailLink = $("detailLink",thisObj).text();
				var tagStr = "<div class='Left_box'> <img src='"+ image +"' alt='"+ dateName +"' class='img_Left' />"
												+"<p>[ <a href='"+ categoryLink +"'>"+ category +"</a> ]<br />"
												+ dateName +"<br /></p><div class='desc'><p>"+ description +"</p></div>"
												+"<p class='A_Right'><a href='"+ detailLink +"'>詳しく見る</a></p></div>";
				var idNum = Math.floor(i/4);
				var idStr = "column_" + idNum;
				if(i%4 == 0) {
					$("#carouselInner").append("<div class='column' id='"+ idStr +"'>" + tagStr);
				}else if(i%4 == 3) {
					$("#"+idStr).append(tagStr);
					$("#carouselInner").append("</div>");
				}else{
					$("#"+idStr).append(tagStr);
				}
			}
			
			//最大ページ
			var maxPage = Math.ceil(count/4);
			
			//ページコントロール追加
			var prevBtnStr = "<p class='btn_prev' id='carouselPrev'><a href='javascript:void(0)'>前へ</a></p>";
			var nextBtnStr = "<p class='btn_next' id='carouselNext'><a href='javascript:void(0)'>次へ</a></p>";
			var pageNumStr = "";
			for (i=0; i < maxPage; i++) {
				var thisNum = i+1;
				pageNumStr += "<a href='javascript:void(0)'>"+thisNum+"</a> ";
			}
			$("#voice2").append("<div class='page'>"+ prevBtnStr + nextBtnStr 
														+ "<div class='pagenamber'>" + pageNumStr + "</div></div>");
			var pageKankaku = 80;
			$(".page").css({"width":pageKankaku*maxPage+"px"});
			$(".pagenamber").css({"width":pageKankaku*maxPage-80+"px"});
			$("#carouselPrev").hide();
			$("#carouselInner").css("width",carouselWidth*$("#carouselInner .column").size()+"px");
			$(".pagenamber a:first-child").addClass("selected");
			
			//NUMBERボタン
			$(".pagenamber a").click(function(){
				var num = parseInt($(this).text());
				current = num-1;
				$("[class='selected']").removeClass("selected");//選択された以外
				$(this).addClass("selected");
				if(current <= 0){
					$("#carouselPrev").hide();
					$("#carouselNext").show();
				}else if(current >= maxPage - 1){
					$("#carouselNext").hide();
					$("#carouselPrev").show();
				}else{
					$("#carouselPrev").show();
					$("#carouselNext").show();
				}
				$("#carouselInner").animate({
					marginLeft : current*-carouselWidth+"px"
				},"slow","swing");
				return false;
			});
			
			//PREVボタン
			$("#carouselPrev a").click(function(){
				current--;
				if(current <= 0){
					$("#carouselPrev").hide();
					$("#carouselNext").show();
				}else{
					$("#carouselNext").show();
				}
				
				var num = current+1;
				$("[class='selected']").removeClass("selected");
				$(".pagenamber a:nth-child("+num+")").addClass("selected");
				$("#carouselInner").animate({
					marginLeft : current*-carouselWidth+"px"//current*carouselWidth+"px"
				},"slow","swing");
				return false;
			});
			
			//NEXTボタン
			$("#carouselNext a").click(function(){
				current++;
				if(current >= maxPage - 1){
					$("#carouselNext").hide();
					$("#carouselPrev").show();
				}else{
					$("#carouselPrev").show();
				}
				
				var num = current+1;
				$("[class='selected']").removeClass("selected");
				$(".pagenamber a:nth-child("+num+")").addClass("selected");
				
				$("#carouselInner").animate({
					marginLeft : current*-carouselWidth+"px"
				},"slow","swing");
				return false;
			});
		}
	});
	
	//指定範囲内の重複しない整数を発生させ配列で返す関数
	function generateRandomInt(maxN) {
		int_a = [];
		int_b = [];
		for (i=0; i<maxN; i++) {
			int_a[i] = i;
		}
		j = 0;
		a_length = int_a.length;
		while (a_length) {
			int_r = Math.floor(Math.random()*(maxN-j));
			int_b[j] = int_a.splice(int_r, 1);
			j++;
			a_length = int_a.length;
		}
		return int_b;
	}
});


