﻿//========================================
// ランキング
//========================================

function contents_ranking(){

    //集計グループコードを選択
    var count = 2;
    var index = Math.floor(Math.random()*count);
    var summaryGroupCode = "";
    
    if(index==0){
        summaryGroupCode = "1"; //売上ランキング
    }
    else if(index==1){
        summaryGroupCode = "2"; //予約ランキング
    }

    //集計期間を選択
    var summarySpanCode = "daily";
    
    //カテゴリIDを選択
    var category_id1 = "";
    var category_id2 = "";

    var req = new XmlRequest("/common/xml/Ranking-Index-" + summarySpanCode + ".xml?ver=" + VERSION);

    if(req.ok){

    	var aData = req.getDocumentElement();
    	var groups = aData.getElementsByTagName("SummaryGroup");
    	var data1 = null;
    	var data2 = null;
        var index1 = 0;
        var index2 = 0;
    	
    	for(var i=0; i<groups.length; i++){
    	    if(groups[i].getAttribute("SummaryGroupCode")==summaryGroupCode){
    	        data1 = groups[i].getElementsByTagName("Category");
    	        break;
    	    }
    	}

        //カテゴリ1を選択    	
        index1 = Math.floor(Math.random()*data1.length);
        category_id1 = data1[index1].getAttribute("id");
        
        //カテゴリ2を選択    	
        data2 = data1[index1].getElementsByTagName("SubCategory");
        index2 = Math.floor(Math.random()*data2.length);
        category_id2 = data2[index2].getAttribute("id");
        
    }
    
    req = null;
    
    var query_token = "";

    //集計グループコード
    query_token += "_TEXT/EQ/25000/"+summaryGroupCode;

    //カテゴリ1
    query_token += " AND ";
    query_token += "_INT/EQ/21000/"+category_id1;

    //カテゴリ2
    query_token += " AND ";
    query_token += "_INT/EQ/21001/"+category_id2;

    //集計期間
    query_token += " AND ";
    query_token += "_TEXT/EQ/25002/"+summarySpanCode;

    //順位
    query_token += " AND ";
    query_token += "_INT/LT/21002/6";   //5位まで

    var fields = "text-1,text-2,text-4,text-5,text-7,int-8,int-9,int-10,text-11,text-12,int-13,text-15,text-16,text-17,text-18,int-19,int-20";

    var sort_order = "int-8:a,int-20:a,int-13:a";    //購買者属性、カテゴリ№、順位

    var params = "service=ranking&search="+query_token+"&result-fields="+fields+"&sort-order="+sort_order+"&result-count=5&result-page=1&show-results&result-info=all&result-format=xml";

    SearchIssueRequest(params, handleContentsRanking);

}

function handleContentsRanking(totalhits, data, status_ok, responseMessage){

    var ctrl = document.getElementById('contents_ranking');
//    var ctrl = document.getElementById('ranking_new_arrival');

    if(ctrl == null){return false;}

    if(!status_ok){
        ctrl.innerHTML = "<div style=\"margin-left: 10px;\">只今、検索が行えません</div><br /><div>"+responseMessage+"</div>";
	    return false;
    }

	var RankingCategories = function(){

        var req = new XmlRequest("/common/xml/Ranking-Categories.xml?ver=" + VERSION);
        var data = req.getDocumentElement();
        var groups = data.getElementsByTagName("RankingCategory");

        this.daily = "0";
        this.weekly = "0";
        this.monthly = "0";

        this.loadSummaySpan = function(summary_code, category_id1, category_id2){

            this.daily = "0";
            this.weekly = "0";
            this.monthly = "0";

            var categoryData = null;

            for(var i=0; i<groups.length; i++){
                if(groups[i].getAttribute("SummaryGroupCode")==summary_code){
                    categoryData = groups[i].getElementsByTagName("Category");
                    break;
                }
            }

            for (var mainIndex = 0; mainIndex < categoryData.length; mainIndex++) {
            
                if(categoryData[mainIndex].getAttribute("id")==category_id1){
                
                    if(category_id2 > 0){
                        var subdata = categoryData[mainIndex].getElementsByTagName("SubCategory");
                        for (var subIndex = 0; subIndex < subdata.length; subIndex++) {
                            if(subdata[subIndex].getAttribute("id")==category_id2){
                                this.daily = subdata[subIndex].getAttribute("daily");
                                this.monthly = subdata[subIndex].getAttribute("monthly");
                                this.weekly = subdata[subIndex].getAttribute("weekly");
                                break;
                            }
                        }
                    }
                    else{
                        this.daily = categoryData[mainIndex].getAttribute("daily");
                        this.monthly = categoryData[mainIndex].getAttribute("monthly");
                        this.weekly = categoryData[mainIndex].getAttribute("weekly");
                        break;

                    }
                
                }

            }

        }   //loadSummaySpan

	}

    var ranking_page = "";
    var ranking_href = "";
	var contents = "";
	var contents_header = "";
	var contents_footer = "";
    
	var sites = new ShopRanking.Sites();
	var sum = new ShopRanking.Summary();
    var categories = new RankingCategories();

	// データ行読み込み
	for (var i = 0; i < data.length; i++) {
	    
        var articleName = getXmlNodeValue(data[i], "title");
        var summaryDate = getXmlNodeDate(data[i], "date");
        var price = getXmlNodeInt(data[i], "price");
        var url = getXmlNodeValue(data[i], "text-1");
        var thumbnailURL = getXmlNodeValue(data[i], "text-2");
        var summaryGroupCode = getXmlNodeValue(data[i], "text-4");
        var summaryGroupName = getXmlNodeValue(data[i], "text-5");
        var summaryType = getXmlNodeValue(data[i], "text-6");
        var summaryTypeName = getXmlNodeValue(data[i], "text-7");
        var categoryID1 = getXmlNodeInt(data[i], "int-9");
        var categoryID2 = getXmlNodeInt(data[i], "int-10");
        var categoryName1 = getXmlNodeValue(data[i], "text-11");
        var categoryName2 = getXmlNodeValue(data[i], "text-12");
        var rank = getXmlNodeInt(data[i], "int-13");
        var remarks1 = getXmlNodeValue(data[i], "text-15");
        var remarks2 = getXmlNodeValue(data[i], "text-16");
        var remarks3 = getXmlNodeValue(data[i], "text-17");
        var summarySpanCode = getXmlNodeValue(data[i], "text-18");
        var siteID = getXmlNodeInt(data[i], "int-19");
        var programCount = getXmlNodeInt(data[i], "int-21");
        var talentCount = getXmlNodeInt(data[i], "int-25");
        var onclick = "";
        var filter_subcategory = 0;
        
        if(url.length > 0){
            onclick = "javascript:w=window.open('"+url+"', '_blank');w.focus();return false;";
        }

        if(i == 0){

            //----------------------------------------
            // ヘッダー
            //----------------------------------------

            //タイトル編集
            var title1 = "";
            var title2 = "";

            if(summaryGroupCode=="1"){  //売上ランキング
                title1 += "<img src=\"/shop/ranking/img/category01.gif\" alt=\"売上ランキング\" width=\"135\" height=\"21\" />";

                ranking_page = "sales.html";
            }
            else if(summaryGroupCode=="2"){  //予約ランキング
                title1 += "<img src=\"/shop/ranking/img/category02.gif\" alt=\"予約ランキング\" width=\"135\" height=\"21\" />";

                ranking_page = "reserved.html";
            }

            title2 += sum.textOf(summarySpanCode);
            title2 += " ＜";
            title2 += categoryName1;
            if(categoryName2.length>0){title2 += " - " + categoryName2;}
            title2 += "＞";

            contents_header += "<div class=\"newRankingBlock clearFix\" id=\"ranking_new_arrival\">";

            contents_header += "<div class=\"imgAndText01\">";
            contents_header += "<h3>"+title1+"</h3>";
            contents_header += "<h4>"+title2+"</h4>";
            contents_header += "<p class=\"dateSearch\">（"+sites.textOf(siteID)+"　"+ShopRanking.getSummaryDate(summaryDate, summarySpanCode)+"調べ）</p>";
            contents_header += "</div>";

            contents_header += "<div class=\"newRankingLeftBlock\">";

            //----------------------------------------
            // 1位
            //----------------------------------------

            //画像URL設定
            if(thumbnailURL.length == 0){thumbnailURL = NO_IMAGE_PATH;}

            //付加情報設定
            var remarks = "";

            if(remarks1.length > 0){
                if(remarks.length > 0){remarks += "<br />";}
                
                var categoryID;

                if(categoryID2 > 0){
                    categoryID = categoryID2;
                }
                else{
                    categoryID = categoryID1;
                }

                remarks += "<a href=\"/shop/result.html?i="+encodeURI(ShopRanking.replaceWord(remarks1))+"&c="+categoryID+"\">"+remarks1+"</a>";
            }

            //

            contents_header += "<div class=\"rankingNo1 clearFix\">";
            contents_header += "<p class=\"imgItem\">";

            if(url.length > 0){
                contents_header += "<a href=\"\" onclick=\""+onclick+"\"><img src=\""+thumbnailURL+"\" alt=\""+articleName+"\" style=\"width:93px;\" /></a>";
            }
            else{
                contents_header += "<img src=\""+thumbnailURL+"\" alt=\""+articleName+"\" style=\"width:100px;\"/>";
            }

            contents_header += "</p>";

            contents_header += "<div class=\"textBlock\">";
            contents_header += "<dl>";
            contents_header += "<dt><img src=\"/shop/ranking/img/rankinng_no01.gif\" alt=\"1位\" width=\"26\" height=\"28\" /></dt>";

            contents_header += "<dd class=\"itemName\">";

            if(url.length > 0){
                contents_header += "<a href=\"\" title=\""+articleName+"\" onclick=\""+onclick+"\">"+articleName+"</a> ";
            }
            else{
                contents_header += articleName + " ";
            }

            contents_header += "</dd>";

            contents_header += "<dd>"+remarks+"<br />";
            contents_header += formatNumber(price)+"円</dd>";

            contents_header += "</dl>";
            contents_header += "</div>";    //textBlock
            contents_header += "</div>";    //rankingNo1
            
            //

            contents_header += "<dl class=\"rankingColumn02\">";

            //----------------------------------------
            // フッター
            //----------------------------------------

            //もっと見るの参照URLを設定
            ranking_href = "/shop/ranking/"+ranking_page+"?c="+categoryID1;

            if(categoryID2 > 0){
                var sub = new ShopRanking.SubCategory(categoryID1, summaryGroupCode);
                filter_subcategory = sub.indexOf(categoryID2);
                ranking_href += "&filter_subcategory="+filter_subcategory;
            }

            contents_footer += "</dl>"; //rankingColumn02

            contents_footer += "<p class=\"rankingBtn01\"><a href=\""+ranking_href+"\" title=\"一覧へ\"><img src=\"/common/misc/img/btn_list01.gif\" alt=\"一覧へ\" /></a></p>";

            contents_footer += "</div>";   //newRankingLeftBlock

//            contents_footer += "</div>"; //newRankingBlock


            //----------------------------------------
            // 更新したばかりのランキングはこちら
            //----------------------------------------
            
            var summaryCodes = new Array("1", "3", "4", "5", "2")
            var summaryNames = new Array("売上ランキング", "男女別ランキング", "世代別ランキング", "地域別ランキング", "予約ランキング")
            var summaryClasses = new Array("ranking01", "ranking02", "ranking03", "ranking04", "ranking05")
            var summaryPages = new Array("sales.html", "sex.html", "age.html", "area.html", "reserved.html")

            contents_footer += "<div class=\"newRankingRightBlock\">";
            contents_footer += "<h4>更新したばかりのランキングはこちら</h4>";

            //2008-09-05「更新したばかりのランキングはこちら」クリッカブル対応
//            var dateObj = new Date();
//            var d = dateObj.getDate();
//            var day = dateObj.getDay();
//            var newArrivalsHref = ""
//            var newArrivalsTitle = "更新したばかりのランキングはこちら"
//            
//            if(day == 1){       //毎週月曜
//                if(summaryGroupCode=="1"){  //売上ランキング
//                    newArrivalsHref = "./"+summaryPages[0];
//                }
//                else if(summaryGroupCode=="2"){  //予約ランキング
//                    newArrivalsHref = "./"+summaryPages[4];
//                }

//                newArrivalsHref += "?c="+categoryID1;
//                if(filter_subcategory > 0){newArrivalsHref += "&filter_subcategory="+filter_subcategory;}

//                newArrivalsHref += "&filter_summary=1";
//            }
//            else if(d == 1){    //毎月1日

//                if(summaryGroupCode=="1"){  //売上ランキング
//                    newArrivalsHref = "./"+summaryPages[0];
//                }
//                else if(summaryGroupCode=="2"){  //予約ランキング
//                    newArrivalsHref = "./"+summaryPages[4];
//                }

//                newArrivalsHref += "?c="+categoryID1;
//                if(filter_subcategory > 0){newArrivalsHref += "&filter_subcategory="+filter_subcategory;}

//                newArrivalsHref += "&filter_summary=2";
//            }

//            if(newArrivalsHref.length > 0){
//                contents_footer += "<h4><a href=\""+newArrivalsHref+"\" title=\""+newArrivalsTitle+"\" style=\"color:#FFF;\">"+newArrivalsTitle+"</a></h4>";
//            }
//            else{
//                contents_footer += "<h4>"+newArrivalsTitle+"</h4>";
//            }

            contents_footer += "<div class=\"newRankingRightBlockInner\">";

            contents_footer += "<p class=\"updateTime\">"+ShopRanking.getUpdatedDate(summaryDate)+"</p>";

            for(var sumIndex=0; sumIndex<summaryCodes.length; sumIndex++){
            
                //集計期間情報を読み込む
                categories.loadSummaySpan(summaryCodes[sumIndex], categoryID1, categoryID2);
            
                var summary_href = "/shop/ranking/"+summaryPages[sumIndex]+"?c="+categoryID1;
            
                if(filter_subcategory > 0){
                    summary_href += "&filter_subcategory="+filter_subcategory;
                }

                contents_footer += "<dl class=\""+summaryClasses[sumIndex]+"\">";
                contents_footer += "<dt>";

                if(categories.daily=="1" || categories.weekly=="1" || categories.monthly=="1"){
                    contents_footer += "<a href=\""+summary_href+"\">"+summaryNames[sumIndex]+"</a>";
                }
                else{
                    contents_footer += "<span class=\"disable\">"+summaryNames[sumIndex]+"</span>";
                }

                contents_footer += "</dt>";
                contents_footer += "<dd>";
                contents_footer += "<ul class=\"ClearFix\">";

                contents_footer += "<li>";

                if(categories.daily=="1"){
                    contents_footer += "<a href=\""+summary_href+"&filter_summary=0\">デイリー</a>";
                }
                else{
                    contents_footer += "<span class=\"disable\">デイリー</span>";
                }

                contents_footer += "</li>";
                contents_footer += "<li>";

                if(categories.weekly=="1"){
                    contents_footer += "<a href=\""+summary_href+"&filter_summary=1\">ウィークリー</a>";
                }
                else{
                    contents_footer += "<span class=\"disable\">ウィークリー</span>";
                }

                contents_footer += "</li>";
                contents_footer += "<li class=\"lastItem\">";

                if(categories.monthly=="1"){
                    contents_footer += "<a href=\""+summary_href+"&filter_summary=2\">マンスリー</a>";
                }
                else{
                    contents_footer += "<span class=\"disable\">マンスリー</span>";
                }

                contents_footer += "</li>";
                contents_footer += "</ul>";
                contents_footer += "</dd>";
                contents_footer += "</dl>";

            }

            contents_footer += "</div>";    //newRankingRightBlockInner

            contents_footer += "<p class=\"updateTiming\">更新タイミングについて<br />1日1回(午後12時）、ウイークリーは、毎週月曜、マンスリーは、毎月1日更新です。</p>";

            contents_footer += "</div>";    //newRankingRightBlock

        }
        else{

            //----------------------------------------
            // 2位～5位
            //----------------------------------------

            if(rank==2){
                contents += "<dt><img src=\"/shop/ranking/img/rankinng_no02.gif\" alt=\"2位\" width=\"15\" height=\"14\" />"+rank+"位</dt>";
            }
            else if(rank==3){
                contents += "<dt><img src=\"/shop/ranking/img/rankinng_no03.gif\" alt=\"3位\" width=\"15\" height=\"14\" />"+rank+"位</dt>";
            }
            else{
                contents += "<dt class=\"other\">"+rank+"位</dt>";
            }

            contents += "<dd>";

            if(url.length > 0){
                contents += "<a href=\"\" title=\""+articleName+"\" onclick=\""+onclick+"\">"+articleName+"</a>";
            }
            else{
                contents += "<strong>"+articleName+"</strong>";
            }

            contents += "</dd>";
           
        }


	}

    //検索結果出力
    if(data.length > 0){
//    	MessageWindow(contents_header + contents + contents_footer, "contents_ranking (人気商品ランキング)");
        ctrl.innerHTML = contents_header + contents + contents_footer;
    }
    else{
        ctrl.innerHTML = "<div style=\"margin-left: 10px;\">検索結果がありません</div><br /><div>"+responseMessage+"</div>";
    }

}

