//-------------------------------------------------------
//
// get_voi_all_ranking_top.js
//
// ウェブチャネルの全体ランキングXMLを取得し表示する。
// トップページ専用
//
// 要jquery.1.3.2
//
//-------------------------------------------------------


//
// WcAllRankingTop
//
// bid :string  :ランキング全体を挿入するHTMLのid
// mode:string  : bl:レディスセラー、vl:レディスアクセス、bm:メンズセラー、vm:メンズアクセス
//
//
var WcAllRankingTop = function(bid,mode){
	
	// 本番のデータパス
	// WC側サーバのXMLを参照するCGIを指定
	var h_xml        = '/cgi-bin/marui_to_voi/get_xml.cgi?mode=';
		
	// 本番時、リンク先と画像に付けるフルパス
	var fullpath     = 'http://voi.0101.co.jp';
	
	// Noの画像パス
	var img_path     = '/common/img/voi_ranking/';
	
	//jQuery.noConflict();
	//var j$   = jQuery;
	var bid  = bid;
	var mode = mode;
	var select_mode;
	
	// jQueryオブジェクト保存しておく
	var base_id = j$("#"+bid);
	
	//
	// 初回処理
	//
	// mode:初期表示ランキング（bl | vl | bm | vm）
	//
	this.write = function(){
		GetXML(mode);//初回表示
	}

	//
	// XMLの取得
	//
	var GetXML = function(mode){
		
		// アイコン画像用にmodeを保存
		select_mode = mode;
		
		// データパスの確定
		// CGI＋引数
		if(mode == "bl") data_file = h_xml + 'rank_buy_l';
		if(mode == "vl") data_file = h_xml + 'rank_view_l';
		if(mode == "bm") data_file = h_xml + 'rank_buy_m';
		if(mode == "vm") data_file = h_xml + 'rank_view_m';

		// 前回表示テーブルの削除
		base_id.empty();


		// ローディングアイコンの表示
		// div @class[rnk_systemworking] > img
		base_id
		.append(j$("<div></div").attr("id","rnk_systemworking")
		.append(j$("<img></img>").attr("src",img_path+"loader.gif").attr("width","32").attr("height","32").attr("alt","loading")
		));
		
		
		// データ読み込み	
		var xmlfile = data_file;
		j$.ajax({
			type:'GET',
			url:xmlfile,
			dataType:'xml',
			cache:false,
			success : WriteTag
		});
	}
	
	//
	// td単位のアイテム表示
	//
	var ItemTag = function(xml,n){
		
				
		// XMLの各データ取得
		var name     = j$("name"     ,xml).text();
		var category = j$("category" ,xml).text();
		var ctpam    =(mode=='bl'||mode=='bm')?"wcRankSlr":"wcRankAcs";
		var url      = fullpath + j$("url"      ,xml).text() + "&from=01_top_wcRank&from2=01_top_"+ctpam+'&cid=oio_ws_pc_grandTopRank';
		var img_url  = fullpath + j$("img_url"  ,xml).text();
		var area     = (j$("area",xml).text() == "1") ? true : false; //セール商品かどうか判別(1でセール商品)
		
		// 商品名＋ブランド
		// 文字数一定で「…」にする
		var maxlen = 30;
		
		var len1 = name.length;
		var len2 = category.length;
		var text;
		
		// nameだけでmax超える場合
		if(len1 > maxlen){
			text = '<strong>' + name.substring(0,maxlen-2) + '…</strong>';	
		}else{
			if((len1+len2) > maxlen) category = category.substring(0,maxlen-len1-1) + "…";
			text = '<strong>' + name + '</strong>／' + category;
		}
		
		// 価格：3桁ごとカンマ
		// area="1" の場合は色を赤にする
		var price1   = AddComma(j$("price",xml).text());
		var price2   = (area) ? '<span style="color:#ff0000">'+price1+'</span>' : '<span>'+price1+'</span>';
		
		
		//
		// HTMLレンダリング
		//
		var tag = j$('<td></td>');
		
		
		// No.アイコンの描画
		// span > span > img
		var icon_src = img_path + "no" + n + "_" + select_mode.charAt(1)+".gif";// レディス/メンズ振り分け
		
		tag.append(j$('<div></div>')
			.append(j$('<img>').attr("src",icon_src).attr("width","15").attr("height","16").attr("alt","no"+n).attr("class","rank-num"))
			.append(j$('<a></a>').attr("href",url).attr("target","_blank")
			.append(j$('<img>').attr("src",img_url).attr("width","100").attr("height","100").attr("alt",name))
			.append('<span>' + text + '<br>税込' + price2 + '円</span>')
			));
		
		/*
		tag.append(j$('<span></span>').css("position","relative").css("display","block").css("text-align","left")
			.append(j$('<span></span>').css("position","absolute").css("left","10px").css("top","2px")
			.append(j$('<img>').attr("src",icon_src).attr("width","15").attr("height","16").attr("alt","no"+n)
		)));
		*/
		
		// 表示領域全体の描画
		// div > a > img > strong
		/*
		tag.append(j$('<div></div>').css("text-align","center")
			.append(j$('<a></a>').attr("href",url).attr("target","_blank")
			.append(j$('<img>').attr("src",img_url).attr("width","100").attr("height","100").attr("alt",name))
			.append('<br><span style="text-align:left;display:block;margin-top:3px;">' + text + '<br>税込' + price2 + '円</span>')
		));
		*/
		
		return tag;
	}
	
	//
	// ランキング全体の表示
	//
	var WriteTag = function(xml){

		// ローディングアイコン削除
		j$("#"+bid +" .rnk_systemworking").remove();
		base_id.empty();
		
		var i = 0;
		var l = j$(xml).find("item").length;		
		
		// tableタグ描画
		var t1 = j$('<table></table>');
		var t2 = j$('<tbody>').appendTo(t1);
		var t3 = j$('<tr>').appendTo(t2);
		
		j$(xml).find("item").each(function(){
			i++;
			tdtag = ItemTag(this,i);
			tdtag.appendTo(t3);
		});
				
		base_id.append(t1);
		

	}
	
	//
	// 3桁ごとのカンマ挿入
	//
	var AddComma = function(value){
		var i;
		for(i = 0; i < value.length/3; i++){
			value = value.replace(/^([+-]?\d+)(\d\d\d)/,"$1,$2");
		}
		return value;
	}

}
