
////////////////////////////////////////////////////////////////////////////////
/// 初期設定
////////////////////////////////////////////////////////////////////////////////


//特集で読み込むPHPのパス
var php_path = "../sort.php"
var UPLOAD_ROOT_PATH = "../../"

//PHPに渡す検索条件の引数
//sort:並び順　{ 0:価格の安い順　1:価格の高い順 }
//focus:絞込み　{ 0.全て　1:衣　2:食　3:住 }
var php_params = { sort:0, focus:0 }

//店舗情報で読み込むXMLのパス
var xml_path_deals = "xml/store.xml"

//現在のページ
var current_page = 1

//HTMLソース
var source  = ""
var source_pager  = ""

//読み込んだXMLをどこからでも参照できるように入れておく用
var global_xml = null

//どのXMLが読み込まれたかを記憶
var xml_category = ""






////////////////////////////////////////////////////////////////////////////////
/// おトク情報表示
////////////////////////////////////////////////////////////////////////////////


/*
XML読み込み

----------------------------------------------------------------------*/
var loadDealsXml = function(){
	
	xml_category = "Deals"
	
	$.ajax({
		url: xml_path_deals,
		type: 'POST',
		dataType: 'xml',
		timeout: 1000,
		error: function(){
			$("#check").html("<p>データの読み込みに失敗しました</p>");
		},
		
		success: function(xml){
			
			global_xml = xml
			xmlParse()
		}
	});
}


/*
アピタ表示

xml_childNodes: Xml　　おトク情報のみ抽出したxml
----------------------------------------------------------------------*/
var getDealsInfo_Apita = function(xml_childNodes){
	
	for( var i=(current_page-1)*5; i <= (current_page-1)*5+4; i++ ){
		
		var node = $(xml_childNodes)[i]
		var next_node = $(xml_childNodes)[i+1]
		
		//ノードが存在する
		if( node ){
			
			//ノード番号が5の倍数かつ次ノードが存在する場合はラインを表示
			if( (i+1) % 5 != 0 && next_node){
				source += "<dl>"
			}else{
				source += "<dl class='noLine'>"
			}
			
			getDealsInfo_Commons(node)
			
			source += "</dl>"
			
		}else{
			break;
		}
	}
	$("#data").html(source)






	for( var i=(current_page-1)*5; i <= (current_page-1)*5+40000; i++ ){
		
		var node = $(xml_childNodes)[i]
		var next_node = $(xml_childNodes)[i+1]
		
		//ノードが存在する
		if( node ){
			
			//ノード番号が5の倍数かつ次ノードが存在する場合はラインを表示
			if( (i+1) % 5 != 0 && next_node){
				source += "<dl>"
			}else{
				source += "<dl class='noLine'>"
			}
			
			getDealsInfo_Commons(node)
			
			source += "</dl>"
			
		}else{
			break;
		}
	}
	$("#data2").html(source)
}






/*
ピアゴ・ラフーズ・ユーホーム表示

xml_childNodes: Xml　　おトク情報のみ抽出したxml
----------------------------------------------------------------------*/
var getDealsInfo_Others = function(xml_childNodes){
	
	for( var i=(current_page-1)*6; i <= (current_page-1)*6+5; i++ ){
		
		var node = $(xml_childNodes)[i]
		var next_node = $(xml_childNodes)[i+1]
		var next_but_one_node = $(xml_childNodes)[i+2]
		
		//ノードが存在する
		if( node ){
			
			//次ノードが存在する
			if( next_node ){
				
				//ノード番号が2で割り切れない（左カラム）
				if( (i+1) % 2 != 0 ){
					
					//3段目または次次ノードがない場合、最下部のラインを表示しない
					if( i == (current_page-1)*6+4 || !next_but_one_node ){
						source += "<div class='block noLine'>"
					}else{
						source += "<div class='block'>"
					}
					
					// doubleをつけると中央に線が出る
					source += "<div class='double'>"
					
					source += "<div class='blockLeft'>"
					source += "<dl>"
					
					getDealsInfo_Commons(node)
					
					source += "</dl>"
					source += "</div>"  // blockLeft
					
				}else{
					source += "<div class='blockRight'>"
					source += "<dl>"
					
					getDealsInfo_Commons(node)
					
					source += "</dl>"
					source += "</div>"  // blockRight
					source += "</div>"  // double
					source += "</div>"  // block
				}
			
			//次ノードが存在しない（最後の記事）
			}else{
				
				//ノード番号が2で割り切れない（左カラムで終わる場合）
				if( (i+1) % 2 != 0 ){
				
					source += "<div class='block noLine'>"
					source += "<div class='blockLeft'>"
					source += "<dl>"
					
					getDealsInfo_Commons(node)
					
					source += "</dl>"
					source += "</div>"  // blockLeft
					source += "</div>"  // block
					
				//右カラムで終わる場合
				}else{
					
					source += "<div class='blockRight'>"
					source += "<dl>"
					
					getDealsInfo_Commons(node)
					
					source += "</dl>"
					source += "</div>"  // blockRight
					source += "</div>"  // double
					source += "</div>"  // block
				}
			}

		}else{
			break;
		}
	}
	$("#data").html(source)
}


/*
おトク情報　共通部分表示

node: Xml　　表示する1件分のxmlノード
----------------------------------------------------------------------*/
var getDealsInfo_Commons = function(node){
	
	source += "<dt>" + $(node).find('title').text()
		
	if($(node).attr("newf") == "1"){
		source += "<img src='../../images_cst/common/i_new.gif' alt='NEW' width='27' height='11' />";
	}
	source += "</dt>"
	source += "<dd class='date'>"+ $(node).find('startdate').text()
			
	if( $(node).find('enddate').text() ){
		source += "<img src='../../images_cst/common/i_arrow_gray.gif' alt='から' width='3' height='5' />"+ $(node).find('enddate').text()
	}
	source += "<dd class='ex'>"
	
	if( $(node).find('imgsrc').text() ){
		//source += "<img src='/" + $(node).find('imgsrc').text() + "' alt='' />"
		source += "<img src='" + UPLOAD_ROOT_PATH + $(node).find('imgsrc').text() + "' alt='" + $(node).find('imgalt').text() + "' class='thum' />"
	}
	source += $(node).find('text').text() + "</dd>"
	
	if( $(node).find('spstoreId').text() ){
		source += "<dd class='coupon'><a href='specialty_shop/" + $(node).find('spstoreId').text() + ".html#" + $(node).attr("id") + "'><img src='../../images_cst/shop/api_b_coupon.gif' alt='クーポンはこちらから' width='126' height='28' /></a></dd>"
	}
	
	if( $(node).find('free').text() ){
		source += "<div class='freespace'>" + $(node).find('free').text() + "</div>"
	}
}




////////////////////////////////////////////////////////////////////////////////
/// 特集　商品ラインナップ表示
////////////////////////////////////////////////////////////////////////////////


/*
XML読み込み

paramobj: Xml　　検索条件のハッシュ
----------------------------------------------------------------------*/
var loadFeatureXml = function(paramobj){
	
	xml_category = "Feature"
	
	//引数として受け取ったハッシュの値をphp_paramsに代入
	for (var a in paramobj) {
		php_params[a] = paramobj[a];
	}
	// 特集のIDをセット
	php_params.featureId = featureId;
	
	attachSubstitutionBtn()
	
	$.ajax({
		url: php_path,
		type: 'POST',
		data: $.param(php_params), 
		dataType: 'xml',
		timeout: 1000,
		error: function(){
			$("#check").html("<p>データの読み込みに失敗しました</p>");
		},
		
		success: function(xml){
			
			global_xml = xml
			xmlParse()
		}
	});
}


/*
検索条件ボタンのフォーカスを設定

----------------------------------------------------------------------*/
var attachSubstitutionBtn = function(){
	
	current_page = 1
	
	switch( php_params['sort'] ){
		
		case 0:
			$("#lower").html("価格の安い順");
			$("#higher").html("<a href=\"javascript:void(0);\" onclick=\"loadFeatureXml({sort:1});\">価格の高い順</a>");
			break;
		case 1:
			$("#lower").html("<a href=\"javascript:void(0);\" onclick=\"loadFeatureXml({sort:0});\">価格の安い順</a>");
			$("#higher").html("価格の高い順");
			break;
	}
	switch( php_params['focus'] ){
		
		case 0:
			$("#all").html("全て");
			$("#fashion").html("<a href=\"javascript:void(0);\" onclick=\"loadFeatureXml({focus:1});\">衣</a>");
			$("#food").html("<a href=\"javascript:void(0);\" onclick=\"loadFeatureXml({focus:2});\">食</a>");
			$("#life").html("<a href=\"javascript:void(0);\" onclick=\"loadFeatureXml({focus:3});\">住</a>");
			break;
		case 1:
			$("#all").html("<a href=\"javascript:void(0);\" onclick=\"loadFeatureXml({focus:0});\">全て</a>");
			$("#fashion").html("衣");
			$("#food").html("<a href=\"javascript:void(0);\" onclick=\"loadFeatureXml({focus:2});\">食</a>");
			$("#life").html("<a href=\"javascript:void(0);\" onclick=\"loadFeatureXml({focus:3});\">住</a>");
			break;
		case 2:
			$("#all").html("<a href=\"javascript:void(0);\" onclick=\"loadFeatureXml({focus:0});\">全て</a>");
			$("#fashion").html("<a href=\"javascript:void(0);\" onclick=\"loadFeatureXml({focus:1});\">衣</a>");
			$("#food").html("食");
			$("#life").html("<a href=\"javascript:void(0);\" onclick=\"loadFeatureXml({focus:3});\">住</a>");
			break;
		case 3:
			$("#all").html("<a href=\"javascript:void(0);\" onclick=\"loadFeatureXml({focus:0});\">全て</a>");
			$("#fashion").html("<a href=\"javascript:void(0);\" onclick=\"loadFeatureXml({focus:1});\">衣</a>");
			$("#food").html("<a href=\"javascript:void(0);\" onclick=\"loadFeatureXml({focus:2});\">食</a>");
			$("#life").html("住");
			break;
	}
}


/*
商品ラインナップ表示

xml_childNodes: Xml　　商品のみ抽出したxml
----------------------------------------------------------------------*/
var getProductLineup = function(xml_childNodes){
	
	for( var i=(current_page-1)*20; i <= (current_page-1)*20+19; i++ ){
		
		var node = $(xml_childNodes)[i]
		var next_node = $(xml_childNodes)[i+1]
		
		//ノードが存在する
		if( node ){
			
			
			if( i == (current_page-1)*20 ){
				source += "<div class='lineups firstChild'>"
			}else if( (i+1) % 5 == 1 ){
				source += "<div class='lineups'>"
			}
			
			if( (i+1) % 5 == 1 ){
				source += "<dl class='firstChild'>"
			}else if( (i+1) % 5 == 0 ){
				source += "<dl class='lastChild'>"
			}else{
				source += "<dl>"
			}
			
			source += "<dt><a href='"+$(node).attr("id")+".html?"+ $.param(php_params) +"'><img src='../../"+$(node).find('imgsrc').text()+"' alt='"+$(node).find('name').text()+"' /></a></dt>"
			source += "<dd><a href='"+$(node).attr("id")+".html?"+ $.param(php_params) +"'>"+$(node).find('brand').text()+"<br />"+$(node).find('name').text()+"<br />"+$(node).find('price').text()+"</a></dd>"
			source += "<dd class='centered'>"
			source += "<ul>"
			
			if( $(node).find('storeBrand').attr("apita") == 1 ){
				source +=  "<li><img src='../../images_cst/common/i_apita.gif' alt='アピタ' width='39' height='13' /> </li>"
			}
			if( $(node).find('storeBrand').attr("piago") == 1 ){
				source +=  "<li><img src='../../images_cst/common/i_piago.gif' alt='ピアゴ' width='39' height='13' /> </li>"
			}
			if( $(node).find('storeBrand').attr("lafoods") == 1 ){
				source +=  "<li><img src='../../images_cst/common/i_lafoodscore.gif' alt='ウェブ' width='39' height='13' /> </li>"
			}
			if( $(node).find('storeBrand').attr("uhome") == 1 ){
				source +=  "<li><img src='../../images_cst/common/i_uhome.gif' alt='ユーホーム' width='39' height='13' /> </li>"
			}
			
			source += "</ul>"
			source += "</dd>"
			source += "</dl>"
			
			if( (i+1) % 5 == 0 ){
				source += "</div>"
			}
			
		}else{
			break;
		}
	}
	$("#data").html(source)
}



////////////////////////////////////////////////////////////////////////////////
/// XMLパース
////////////////////////////////////////////////////////////////////////////////

/*
ブランド別にXMLを成形し直して各ファンクションへ渡す

page: Number　　ページャーからページ番号を受け取る
----------------------------------------------------------------------*/
var xmlParse = function(page){
	
	//ページが引数で指定された場合、それを現在のページ番号に
	if( page ){
		current_page = page
	}
	
	source  = ""
	source_pager  = ""
	var xml_childNodes = ""
			
	//ブロックを非表示
	$("#data").css( { opacity:"0" } )
	
	if( xml_category == "Deals" ){
	
		if( $(global_xml).find('brand').text() == 1 ) {
			
			//ブランド別に読み込むxmlノードを指定
			xml_childNodes = $(global_xml).find('otokuSp otoku')
			
			//アピタ表示
			getDealsInfo_Apita(xml_childNodes)

			if(xml_childNodes.length != 0) {
				//ページ遷移ボタンを作成
				attachPager(xml_childNodes,5)
			}else{
				$("#data").html("<p class='nodata'>次回のおトク情報をご期待ください。</p>")
			}
			
		}else{
			xml_childNodes = $(global_xml).find('otokuAll otoku')
			
			//ピアゴ・ラフーズ・ユーホーム表示
			getDealsInfo_Others(xml_childNodes)
			
			//ページ遷移ボタンを作成
			attachPager(xml_childNodes,6)
		}
	}else if( xml_category == "Feature" ){
	
		xml_childNodes = $(global_xml).find('item')
			
		//商品ラインナップ表示
		getProductLineup(xml_childNodes)
		
		//ページ遷移ボタンを作成
		attachPager(xml_childNodes,20)
	}
	
	//ブロックを表示
	$("#data").animate( { opacity:"1" }, { duration:"normal", easing:"linear" } )
}


////////////////////////////////////////////////////////////////////////////////
/// ページ遷移ボタンの生成
////////////////////////////////////////////////////////////////////////////////

/*
ページ遷移ボタン

xml_childNodes: Xml　　おトク情報のみ抽出したxml
showNumber: Number　　1ページのデータ表示上限件数
----------------------------------------------------------------------*/
var attachPager = function(xml_childNodes, showNumber){
	
	//データが表示上限件数以上存在する
	//if( $(xml_childNodes).length > showNumber ){
		
		source_pager += "<div class='pageNumber'>"
		source_pager += "<ul>"
		
		//現在のページが1ページ目以外なら戻るボタンにリンクを設定
		if( current_page != 1 ){
			source_pager += "<li class='prev'><a href='javascript:void(0)' onclick=\"xmlParse(" + parseInt(current_page-1) + ")\">前の5件</a></li>"
		}else{
			source_pager += "<li class='prev'><p>前の5件</p></li>"
		}
		
		//総ページ数
		var page_num = Math.ceil( $(xml_childNodes).length / showNumber )
		
		for( var i=1; i <= page_num; i++ ){
			
			//現在のページならliタグにクラスを設定する
			if( current_page == i ){
				source_pager += "<li class='current'><a href='javascript:void(0)' onclick=\"xmlParse(" + i + ")\">" + i + "</a></li>"
			}else{
				source_pager += "<li><a href='javascript:void(0)' onclick=\"xmlParse(" + i + ")\">" + i + "</a></li>"
			}
		}
		
		//現在のページが最終ページ以外なら次のボタンにリンクを設定
		if( current_page != page_num ){
			source_pager += "<li class='next'><a href='javascript:void(0)' onclick=\"xmlParse(" + parseInt(current_page+1) + ")\">次の5件</a></li>"
		}else{
			source_pager += "<li class='next'><p>次の5件</p></li>"
		}
		
		source_pager += "</ul>"
		source_pager += "</div>"
	//}
	$(".pager").html(source_pager)
}




