﻿var ROOTPATH="/";
var XML_PATH=ROOTPATH+"common/xml/";
var SEARCH_API_PATH=ROOTPATH+"search/search.cgi?";
var NO_IMAGE_PATH="http://img.7netshopping.jp/books_icn.gif";
var PRODUCT_CATEGORY_LENGTH=5; //5階層表示
//var VERSION="20090723";
//var VERSION="20090910";
var VERSION="20100406";

function imgResize(imgObject){
	imgWidth=imgObject.width;
	imgHeight=imgObject.height;

	if(imgWidth>=imgHeight){
	    imgSize=110;
	    imgObject.width=imgSize;
	    imgHeight=(imgSize/imgWidth)*imgHeight;
	    imgObject.height=imgHeight;
	}
	else{
	    imgSize=150;
	    imgObject.height=imgSize;
	    imgWidth=(imgSize/imgHeight)*imgWidth;
	    imgObject.width=imgWidth;
	}
}

//========================================
// タレント詳細ページパス
//========================================
function getTalentListPath(id){
//    return "/talent/list.php?talentid=" + id;
//    return "/talent/list.html?talentid=" + id;
    return "/talent/" + id + "/";
}

//========================================
// 番組詳細ページパス
//========================================
function getProgramListPath(id, date){
    var path="/program/list.php?";

//    path += "name="+encodeURI(id);
    path += "id="+id;

    if(date != null){
        path+="&date="+date;
    }
    
    return path;
}

//========================================
// 検索
//========================================
function search(){
    var ctrlCategory = document.getElementById('search_category');
    var ctrlSearch = document.getElementById('search_text');
	if(ctrlCategory == null || ctrlSearch == null){return false;}
    var path = "";
    var search_text = ctrlSearch.value;

    search_text = search_text.replace(/^[\s　]+/,"").replace(/[\s　]+$/,"");
    
    ctrlSearch.value = search_text;

	if(search_text == ""){
	    ctrlSearch.focus();
	    return false;
	}

	if(ctrlCategory.value == "program"){path = "/program/result.html?";}
	else if(ctrlCategory.value == "product"){path = "/shop/result.html?";}
	else if(ctrlCategory.value == "talent"){path = "/talent/result.html?";}
	else if(ctrlCategory.value == "all"){path = "/all/result.html?";}

	var href = path+"i="+encodeURI(search_text);
	location.href = href;
}

/**
 * 2つの日付の差を求める関数
 * year1 1つのめ日付の年
 * month1 1つめの日付の月
 * day1 1つめの日付の日
 * year2 2つのめ日付の年
 * month2 2つめの日付の月
 * day2 2つめの日付の日
 */
function compareDate(year1, month1, day1, year2, month2, day2) {
	var dt1 = new Date(year1, month1 - 1, day1);
	var dt2 = new Date(year2, month2 - 1, day2);
	var diff = dt1 - dt2;
	var diffDay = diff / 86400000;//1日は86400000ミリ秒
	return diffDay;
}

//========================================
// レスポンス
//========================================
var Response = {};

// HTTPクエリパラメータ取得
Response.QueryString = function()
{
    var var_keys = new Array();
    var var_values = new Array();
    var var_length = 0;
    var var_path = "";

    // HTTPクエリパラメータ取得
	var loc = location.href.split("?");
	
	var_path = loc[0];

	if (loc.length > 1){
	    var params = loc[1].split("&");
	    for(var i=0; i<params.length; i++)
	    {
	        var param = params[i].split("=");
	        var_keys.push(param[0]);
	        var_values.push(param[1].split("#")[0]);
        }
    	var_length = var_keys.length;
	};

	loc = null;

    //path
    this.path = var_path;
    //length
    this.length = var_length;
    //key
    this.key = function(index){return var_keys[index];};
    //value
    this.value = function(index){return var_values[index];};
    //valueOf
    this.valueOf = function(key){var value="";for(var i=0; i<var_keys.length; i++){if(var_keys[i]==key){value=var_values[i];break;}}return value;};
    //indexOf
    this.indexOf = function(key){var index=0;for(var i=0; i<var_keys.length; i++){if(var_keys[i]==key){index=i;break;}}return index;};
};

//========================================
// XMLリクエスト
//========================================
var XmlRequest = function(url)
{
    var var_xmlHttp = null;
    var var_xmlDoc = null;
    var var_status_ok = false;
    var var_ok = false;

    if(window.ActiveXObject){
        try {
            var_xmlHttp = new ActiveXObject('Msxml2.XMLHTTP');
        } catch (e) {
            var_xmlHttp = new ActiveXObject('Microsoft.XMLHTTP');
        }
    }
    else if(window.XMLHttpRequest){
        var_xmlHttp = new XMLHttpRequest();
//        var_xmlHttp.overrideMimeType('text/xml');
    }

	var_xmlHttp.open("GET", url, false);

//	var_xmlHttp.onreadystatechange = function() {}

	var_xmlHttp.send(null);
	
	var_status_ok = (var_xmlHttp.readyState == 4 && var_xmlHttp.status == 200);
	
	if(var_status_ok){
	    var_xmlDoc = var_xmlHttp.responseXML.documentElement;
	    if(var_xmlDoc != null){
	        var_ok = true;
	    }
	}

    //リクエスト結果
    this.ok = var_ok;
    //HTTP ステータス
    this.status = var_xmlHttp.status;
    //レスポンス ドキュメントエレメント取得
    this.getDocumentElement = function(){
        if(!var_ok){return null;}
        if(var_xmlHttp.responseXML != null){
            return var_xmlHttp.responseXML.documentElement;
        }
        return null;
    };
    //レスポンス XML取得
    this.getResponseXML = function(){
        if(!var_ok){return null;}
        return var_xmlHttp.responseXML;
    };
    //レスポンス テキスト取得
    this.getResponseText = function(){
        if(var_status_ok){
            return var_xmlHttp.responseText;
        }
        else{
            return this.status+" "+var_xmlHttp.statusText;
        }
    };

};

//========================================
// XMLリクエスト（非同期）
//========================================
var XmlIssueRequest = function(url, callback)
{
    var xmlHttp = null;
    var xmlDocument = null;
    var blnStatus = false;
    var txtResponseMessage = "";

    if(window.ActiveXObject){
        try {
            xmlHttp = new ActiveXObject('Msxml2.XMLHTTP');
        } catch (e) {
            xmlHttp = new ActiveXObject('Microsoft.XMLHTTP');
        }
    }
    else if(window.XMLHttpRequest){
        xmlHttp = new XMLHttpRequest();
//        xmlHttp.overrideMimeType('text/xml');
    }

	xmlHttp.open("GET", url, true);

	xmlHttp.onreadystatechange = function() {

	    if(xmlHttp.readyState == 4){

	        if(xmlHttp.status == 200){
  	            xmlDocument = xmlHttp.responseXML.documentElement;
                blnStatus = (xmlDocument != null);
	        }

            txtResponseMessage = xmlHttp.status+" "+xmlHttp.statusText;

            callback(xmlDocument, blnStatus, txtResponseMessage);

	    }

	}

	xmlHttp.send(null);

};

//========================================
// 検索リクエスト
//========================================
var SearchRequest = function(params)
{
    var var_xmlHttp = null;
    var var_xmlDoc = null;
    var var_status_ok = false;
    var var_ok = false;
    var var_totalhits = 0;
    var var_error = "";

    if(window.ActiveXObject){
        try {
            var_xmlHttp = new ActiveXObject('Msxml2.XMLHTTP');
        } catch (e) {
            var_xmlHttp = new ActiveXObject('Microsoft.XMLHTTP');
        }
    }
    else if(window.XMLHttpRequest){
        var_xmlHttp = new XMLHttpRequest();
//        var_xmlHttp.overrideMimeType('text/xml');
    }

	var_xmlHttp.open("GET", SEARCH_API_PATH+params, false);

	var_xmlHttp.onreadystatechange = function() {}

	var_xmlHttp.send(null);
	
	var_status_ok = (var_xmlHttp.readyState == 4 && var_xmlHttp.status == 200);
	
	if(var_status_ok){
	    var_xmlDoc = var_xmlHttp.responseXML.documentElement;
	    if(var_xmlDoc != null){
	        var totalhits = getXmlNodeValue(var_xmlDoc, "totalhits");
        	if(totalhits.length > 0){
        	    var_totalhits = parseInt(totalhits);
    	        var_ok = true;
        	}
        	else{
            	var_error = getXmlNodeValue(var_xmlDoc, "error");
        	};
	    }
	}

    //リクエスト結果
    this.ok = var_ok;
    //HTTP ステータス
    this.status = var_xmlHttp.status;
    //ドキュメントエレメント
    this.documentElement = var_xmlDoc;
    //ヒット数
    this.totalhits = var_totalhits;
    //recordエレメント取得
    this.getRecordElement = function(){
        if(!var_ok){return null;}
        return var_xmlDoc.getElementsByTagName("record");
    };
    //レスポンス XML取得
    this.getResponseXML = function(){
        if(!var_ok){return null;}
        return var_xmlHttp.responseXML;
    };
    //レスポンス テキスト取得
    this.getResponseText = function(){
        if(var_status_ok){
            if(var_error.length>0){
                return var_error;
            }
            return var_xmlHttp.responseText;
        }
        else{
            return this.status+" "+var_xmlHttp.statusText;
        }
    };

};

//========================================
// 検索リクエスト（非同期）
//========================================
var SearchIssueRequest = function(url, callback, getcategories)
{
    var xmlHttp = null;
    var xmlDocument = null;
    var xmlRecord = null;
    var xmlCategory = null;
    var blnStatus = false;
    var txtResponseMessage = "";
    var intTotalhits = 0;

    if(window.ActiveXObject){
        try {
            xmlHttp = new ActiveXObject('Msxml2.XMLHTTP');
        } catch (e) {
            xmlHttp = new ActiveXObject('Microsoft.XMLHTTP');
        }
    }
    else if(window.XMLHttpRequest){
        xmlHttp = new XMLHttpRequest();
//        xmlHttp.overrideMimeType('text/xml');
    }

	xmlHttp.open("GET", SEARCH_API_PATH+url, true);

	xmlHttp.onreadystatechange = function() {

	    if(xmlHttp.readyState == 4){
	        if(xmlHttp.status == 200){
	            xmlDocument = xmlHttp.responseXML.documentElement;
	            if(xmlDocument != null){
	                var totalhits = getXmlNodeValue(xmlDocument, "totalhits");
        	        if(totalhits.length > 0){
    	                blnStatus = true;
    	                intTotalhits = parseInt(totalhits);
    	                xmlRecord = xmlDocument.getElementsByTagName("record");
    	                if(getcategories){
                            var categoryresults = xmlDocument.getElementsByTagName("categoryresults");
                            if(categoryresults.length > 0){
            	                xmlCategory = categoryresults[0].getElementsByTagName("category");
                            }
    	                }
        	        }
        	        else{
            	        txtResponseMessage = getXmlNodeValue(xmlDocument, "error");
        	        };
	            }
	            else{
    	            txtResponseMessage = xmlHttp.responseText;
	            }
	        }
	        else{
	            txtResponseMessage = xmlHttp.status+" "+xmlHttp.statusText;
	        }

	        if(getcategories){
                callback(intTotalhits, xmlRecord, xmlCategory, blnStatus, txtResponseMessage);
	        }
	        else{
                callback(intTotalhits, xmlRecord, blnStatus, txtResponseMessage);
	        }

	    }
	
	}

	xmlHttp.send(null);

};

//========================================
// XML ノード取得
//========================================
function getXmlNodeValue(objElements, strTagName)
{
    var value = "";
    try {
        if(objElements == null || strTagName == null){return null;}
        if(objElements.getElementsByTagName(strTagName).length > 0){
            value = objElements.getElementsByTagName(strTagName).item(0).firstChild.nodeValue;
        }
    } catch(e) {
        return null;
    }
    return value;
}

function getXmlNodeDate(objElements, strTagName)
{
    var value = getXmlNodeValue(objElements, strTagName);
    if(value==null){return null;}    

    var values = value.split(" ");
    
    if(values.length>0){
        value = values[0].replace(/-/g, "/");
//        var y = values[0].substr(0, 4);
//        var m = values[0].substr(5, 2);
//        var d = values[0].substr(8, 2);
//        value = y+"/"+m+"/"+d;
    }

    return value;
};

function getXmlNodeInt(objElements, strTagName)
{
    var value = getXmlNodeValue(objElements, strTagName);
    if(value==null){return 0;}
    if(isNaN(value)){return null;}
    return parseInt(value);
};

//========================================
// 数値フォーマット変換
//========================================
function formatNumber(value)
{
    value += "";
    var i;
    for(i = 0; i < value.length/3; i++){
        value = value.replace(/^([+-]?\d+)(\d\d\d)/,"$1,$2");
    }
    return value;
};

//========================================
// テレビ局名
//========================================
var Stations = function()
{
    var valueList = new Array("NTV", "TBS", "CX", "EX", "TX", "NHK", "教育");
    var fullTextList = new Array("日本テレビ", "TBSテレビ", "フジテレビ", "テレビ朝日", "テレビ東京", "NHK総合", "NHK教育");
    var shortTextList = new Array("日テレ", "TBS", "フジ", "テレ朝", "テレ東", "NHK総合", "NHK教育");

    this.value = function(index){return valueList[index];};
    this.fullText = function(index){return fullTextList[index];};
    this.shortText = function(index){return shortTextList[index];};
    this.length = valueList.length;
    this.fullTextOf = function(value){var text="";for(i=0; i<valueList.length; i++){if(valueList[i]==value){text=fullTextList[i];break;}}return text;};
    this.shortTextOf = function(value){var text="";for(i=0; i<valueList.length; i++){if(valueList[i]==value){text=shortTextList[i];break;}}return text;};
    this.indexOf = function(value){var index=0;for(i=0; i<valueList.length; i++){if(valueList[i]==value){index=i;break;}}return index;};
};

//========================================
// 日付/時刻フォーマット変換
//========================================
function formatDateTime(datetime, hh, mi, style)
{
    var format = datetime;
    var dateObj = new Date(datetime);
    
    if(dateObj != "NaN"){
        var dayList = new Array("日", "月", "火", "水", "木", "金", "土");    
        var y = dateObj.getFullYear();
        var mm = dateObj.getMonth() + 1;
        var dd = dateObj.getDate();
        if(mm<10){mm="0"+mm;}
        if(dd<10){dd="0"+dd;}

        var format = "";

        if(style==null){
            format = y+"/"+mm+"/"+dd+"("+dayList[dateObj.getDay()]+") "+hh+":"+mi;
        }
        else if(style==1){
            format = mm+"/"+dd+"("+dayList[dateObj.getDay()]+") "+hh+":"+mi;
        }
        else if(style==2){
            format = y+"/"+mm+"/"+dd+"("+dayList[dateObj.getDay()]+") "+hh+":"+mi;
        }
        else{
            format = y+"/"+mm+"/"+dd+"("+dayList[dateObj.getDay()]+") "+hh+":"+mi;
        }

    }
    
    return format;
}

function formatDate(datetime, style)
{
//alert(datetime);
    var format = datetime;
    var dateObj = new Date(datetime);
    
    if(dateObj != "NaN"){
        var dayList = new Array("日", "月", "火", "水", "木", "金", "土");    
        var y = dateObj.getFullYear();
        var mm = dateObj.getMonth() + 1;
        var dd = dateObj.getDate();
        var format = "";

        if(style==null){
            format = y+"/"+mm+"/"+dd+"("+dayList[dateObj.getDay()]+") ";
        }
        else if(style==1){
            format = mm+"/"+dd+"("+dayList[dateObj.getDay()]+") ";
        }
        else if(style==2){
            format = y+"/"+mm+"/"+dd+"("+dayList[dateObj.getDay()]+") ";
        }
        else if(style==3){
            format = y+"年"+mm+"月"+dd+"日";
        }
        else{
            format = y+"/"+mm+"/"+dd+"("+dayList[dateObj.getDay()]+") ";
        }

    }
    
    return format;
}

//========================================
// 商品カテゴリ一覧へ
//========================================
function goCagegoryList(link, option){

    var query_token="25000:商品,"+link;
    var params = "service=product-category&search="+encodeURI(query_token)+"&result-count=1&show-results&result-info=all&result-format=xml";
    var req = new SearchRequest(params);
    var href = "";

	if (req.ok) {
	    if(req.totalhits>0){
    	    var data = req.getRecordElement();
	        genreID = getXmlNodeValue(data[0], "int-2");
	        href = "/shop/result.html?c="+genreID;
	        if(option != null){href += option;}
            location.href = href;
	    }
	}
	
	req = null;
}

//========================================
// 並び替えアイコン情報
//========================================

var SortIcons = {};

SortIcons.text = function(order){
// order    0:昇順, 1:降順

    if(order==1){
        return "降順";
    }
    else{
        return "昇順";
    }
};

SortIcons.imageTag = function(order){
// order    0:昇順, 1:降順

    var text = SortIcons.text(order);
    var img = "";

    if(order==1){
        img = "arrow_sort-down.gif";
    }
    else{
        img = "arrow_sort-up.gif";
    }

    return "<img src=\"/common/misc/img/"+img+"\" alt=\""+text+"\" style=\"margin-right: 3px;\" />";
};

//========================================
// 検索結果一覧 ページング HTML 生成
//========================================
function PagingHTML(hitCount, currentPage, pageCount, pageBreakCount)
{
	var pagingHtml = "";
	var startPage = 1;
	var endPage  = 1;
	var hits = hitCount;
    var title = "";

    //開始ページ番号を算出
    var n = pageBreakCount / 2;
    n = Math.floor(n);
    startPage = currentPage - n + 1;

    if(startPage < 1){
        startPage = 1;
    }
	
	var lastPage = Math.ceil(hits / pageCount);
	var totalPage = lastPage;
	
	if(lastPage==0){lastPage=1;}
	
    //ページ数制限	
	if(lastPage>100){
	    lastPage=100;
	}

	endPage = startPage + pageBreakCount - 1;

	if(endPage > lastPage){endPage = lastPage;}


    //ページ番号出力
	for (var p = startPage; p <= endPage; p++)
	{
	
	    if(p > startPage){pagingHtml += "｜";}
	
	    if(p == currentPage){
		    pagingHtml += "<strong>"+p+"</strong>";
	    }else{
		    pagingHtml += "<a href=\"javascript:newPage("+p+");\" >"+p+"</a>";
	    }

	}

    var nextPageHTML = "";
    var backPageHTML = "";

	if(1 < currentPage){
        backPageHTML = "<a href=\"javascript:newPage("+(currentPage - 1)+");\" title=\"前へ\" style=\"margin-right: 10px;\">&lt;前へ</a>";
    }

	if(lastPage > currentPage){
        nextPageHTML += "<a href=\"javascript:newPage("+(currentPage + 1)+");\" title=\"次へ\" style=\"margin-left: 10px;\">次へ&gt;</a>";
	}

    var pageHeaderHtml = "";
    
    pageHeaderHtml += "<strong>";
    pageHeaderHtml += formatNumber(totalPage);
    pageHeaderHtml += "</strong>ページ中<strong>";
    pageHeaderHtml += formatNumber(currentPage);
    pageHeaderHtml += "</strong>ページ目を表示（合計：";
    pageHeaderHtml += formatNumber(hitCount);
    pageHeaderHtml += "点）";

    // xxページ中xxページ目を表示（合計：xx点）
    this.pageHeader = pageHeaderHtml;
    // ページ番号
    this.paging = backPageHTML + pagingHtml + nextPageHTML;
    // [前のxx件｜次のxx件]
    this.nextPage = "";
}

//========================================
// 商品ランキングページ情報
//========================================

var ShopRanking = {};

ShopRanking.Category = function(summaryGroupCode)
{

    //XMLからデータを読み込む
    var valueList = new Array();
    var textList = new Array();
    
    var req = new XmlRequest("/common/xml/Ranking-Categories.xml?ver=" + VERSION);

    if(req.ok){

    	var aData = req.getDocumentElement();
    	var groups = aData.getElementsByTagName("RankingCategory");
    	var data = null;
    	
    	for(var i=0; i<groups.length; i++){
    	    if(groups[i].getAttribute("SummaryGroupCode")==summaryGroupCode){
    	        data = groups[i].getElementsByTagName("Category");
    	        break;
    	    }
    	}
    	
        for (var i = 0; i < data.length; i++) {
    	    var id = data[i].getAttribute("id");
    	    var name = data[i].getAttribute("name");
            var active = (data[i].getAttribute("active")=="1");

            if(active){
    	        valueList.push(id);
    	        textList.push(name);
            }

        }
    }
    
    req = null;

    this.value = function(index){return valueList[index];};
    this.text = function(index){return textList[index];};
    this.length = valueList.length;
    this.textOf = function(value){var text="";for(i=0; i<valueList.length; i++){if(valueList[i]==value){text=textList[i];break;}}return text;};
    this.indexOf = function(value){var index=0;for(i=0; i<valueList.length; i++){if(valueList[i]==value){index=i;break;}}return index;};
    this.indexOfText = function(text){var index=0;for(i=0; i<textList.length; i++){if(textList[i]==text){index=i;break;}}return index;};
};

ShopRanking.SubCategory = function(categoryID, summaryGroupCode)
{
    var valueList = new Array("0");
    var textList = new Array("指定しない");

    var req = new XmlRequest("/common/xml/Ranking-Categories.xml?ver=" + VERSION);

    if(req.ok){

    	var aData = req.getDocumentElement();
    	var groups = aData.getElementsByTagName("RankingCategory");
    	var data = null;
    	
    	for(var i=0; i<groups.length; i++){
    	    if(groups[i].getAttribute("SummaryGroupCode")==summaryGroupCode){
    	        data = groups[i].getElementsByTagName("Category");
    	        break;
    	    }
    	}
    	
    	var data2 = null;
    	
    	if(categoryID==null){
    	    data2 = data[0].getElementsByTagName("SubCategory");
    	}
    	else{
    	    var id = categoryID + "";
            for (var i = 0; i < data.length; i++) {
                if(data[i].getAttribute("id") == id){
                    data2 = data[i].getElementsByTagName("SubCategory");
                    break;
                }
            }
    	}

        for (var i=0; i < data2.length; i++) {
    	    var id = data2[i].getAttribute("id");
    	    var name = data2[i].getAttribute("name");

    	    valueList.push(id);
    	    textList.push(name);
        }
    }
    
    req = null;

    this.value = function(index){return valueList[index];};
    this.text = function(index){return textList[index];};
    this.length = valueList.length;
    this.textOf = function(value){var text="";for(i=0; i<valueList.length; i++){if(valueList[i]==value){text=textList[i];break;}}return text;};
    this.indexOf = function(value){var index=0;for(i=0; i<valueList.length; i++){if(valueList[i]==value){index=i;break;}}return index;};
    this.indexOfText = function(text){var index=0;for(i=0; i<textList.length; i++){if(textList[i]==text){index=i;break;}}return index;};
};

ShopRanking.Summary = function()
{
    var valueList = new Array("daily", "weekly", "monthly");
    var textList = new Array("デイリー", "ウィークリー", "マンスリー");
    var commentList = new Array("毎日更新", "毎週月曜日更新", "毎月１日更新");

    this.value = function(index){return valueList[index];};
    this.text = function(index){return textList[index];};
    this.comment = function(index){return commentList[index];};
    this.length = valueList.length;
    this.textOf = function(value){var text="";for(i=0; i<valueList.length; i++){if(valueList[i]==value){text=textList[i];break;}}return text;};
    this.indexOf = function(value){var index=0;for(i=0; i<valueList.length; i++){if(valueList[i]==value){index=i;break;}}return index;};
};

ShopRanking.RankOrder = function(totalhits)
{
    var hits = 100;
    var valueList = new Array("1");
    var textList = new Array("1位～20位");
    
    if(totalhits >= 0){
        if(hits > totalhits){hits = totalhits;}
    }
    
    if(hits > 20){
        valueList.push("2");
        textList.push("21位～40位");
    }

    if(hits > 20){
        valueList.push("3");
        textList.push("41位～60位");
    }

    if(hits > 20){
        valueList.push("4");
        textList.push("61位～80位");
    }

    if(hits > 20){
        valueList.push("5");
        textList.push("81位～100位");
    }

    this.value = function(index){return valueList[index];};
    this.text = function(index){return textList[index];};
    this.length = valueList.length;
    this.textOf = function(value){var text="";for(i=0; i<valueList.length; i++){if(valueList[i]==value){text=textList[i];break;}}return text;};
    this.indexOf = function(value){var index=0;for(i=0; i<valueList.length; i++){if(valueList[i]==value){index=i;break;}}return index;};
};

ShopRanking.SummaryType = function(summaryGroupCode)
{

    //XMLからデータを読み込む
    var valueList = new Array("0");
    var textList = new Array("すべて");

    var req = new XmlRequest("/common/xml/Ranking-SummaryType.xml?ver=" + VERSION);

    if(req.ok){

    	var aData = req.getDocumentElement();
    	var data = aData.getElementsByTagName("RankingSummaryType");
    	var data2 = null;
    	
	    var code = summaryGroupCode + "";
        for (var i = 0; i < data.length; i++) {
            if(data[i].getAttribute("SummaryGroupCode") == code){
                data2 = data[i].getElementsByTagName("SummaryType");
                break;
            }
        }

        for (var i = 0; i < data2.length; i++) {
    	    var code = data2[i].getAttribute("Code");
    	    var name = data2[i].childNodes[0].nodeValue;

    	    valueList.push(code);
    	    textList.push(name);
        }
    }
    
    req = null;

    this.value = function(index){return valueList[index];};
    this.text = function(index){return textList[index];};
    this.length = valueList.length;
    this.textOf = function(value){var text="";for(i=0; i<valueList.length; i++){if(valueList[i]==value){text=textList[i];break;}}return text;};
    this.indexOf = function(value){var index=0;for(i=0; i<valueList.length; i++){if(valueList[i]==value){index=i;break;}}return index;};
    this.indexOfText = function(text){var index=0;for(i=0; i<textList.length; i++){if(textList[i]==text){index=i;break;}}return index;};
};

ShopRanking.Sites = function()
{
    var valueList = new Array("0", "1");
    var textList = new Array("", "セブンネットショッピング");

    this.value = function(index){return valueList[index];};
    this.text = function(index){return textList[index];};
    this.length = valueList.length;
    this.textOf = function(value){var text="";for(i=0; i<valueList.length; i++){if(valueList[i]==value){text=textList[i];break;}}return text;};
    this.indexOf = function(value){var index=0;for(i=0; i<valueList.length; i++){if(valueList[i]==value){index=i;break;}}return index;};
};

ShopRanking.getSummaryDate = function(summaryDate, summarySpanCode)
{
    var dateObj = new Date(summaryDate);

    if(summarySpanCode=="daily"){
        dateObj.setDate(dateObj.getDate() + 1);
    }
    else if(summarySpanCode=="weekly"){
        dateObj.setDate(dateObj.getDate() + 7);
    }
    else if(summarySpanCode=="monthly"){
        dateObj.setMonth(dateObj.getMonth() + 1);
    }
    
    var y = dateObj.getFullYear();
    var mm = dateObj.getMonth() + 1;
    var dd = dateObj.getDate();

    var format = y+"年"+mm+"月"+dd+"日";

    return format;
}

ShopRanking.getUpdatedDate = function(summaryDate)
{
    var dateObj = new Date(summaryDate);

    dateObj.setDate(dateObj.getDate() + 1);  

    var y = dateObj.getFullYear();
    var mm = dateObj.getMonth() + 1;
    var dd = dateObj.getDate();

    var format = mm+"月"+dd+"日 ： 12：00 更新";

    return format;
}

ShopRanking.SummaryGroups = function()
{
    var valueList = new Array("1", "3", "4", "2");
    var textList = new Array("売上ランキング", "男女別ランキング", "世代別ランキング", "予約ランキング");
    var pageList = new Array("sales.html", "sex.html", "age.html", "reserved.html");

    this.value = function(index){return valueList[index];};
    this.text = function(index){return textList[index];};
    this.length = valueList.length;
    this.textOf = function(value){var text="";for(i=0; i<valueList.length; i++){if(valueList[i]==value){text=textList[i];break;}}return text;};
    this.indexOf = function(value){var index=0;for(i=0; i<valueList.length; i++){if(valueList[i]==value){index=i;break;}}return index;};
    this.urlOf = function(value){
        var text="";
        for(i=0; i<valueList.length; i++){
            if(valueList[i]==value){
                text = "/shop/ranking/"+pageList[i];
                break;
            }
        }
        return text;
    };
};

// 検索文字列置換
ShopRanking.replaceWord = function(value)
{
    var values = value.split("／");
    var words = ""
    
    for(var i=0; i<values.length; i++){
        var pass = false;
        if(values[i]=="著" || values[i]=="〔著〕" || values[i]=="画" || values[i]=="作" || values[i]=="訳"){
            pass = true;
        }
        if(!pass){
            if(words.length>0){words += " ";}
            words += values[i];
        }
    }
    return words;
};

// スペース削除
function deleteSpace(value){
    return value.replace(/ /g, "").replace(/　/g, "");
}

//========================================
// メッセージウィンドウ
//========================================
function MessageWindow(message, displayTitle) {
    if(displayTitle == null){displayTitle = "無題";}
    var w = window.open("/common/html/MessageBox.html", "_blank", "width=550, height=420, directories=0, location=0, resizable=0, status=0, menubar=0, titlebar=0, toolbar=0");
    with (w.document) {
        title = displayTitle;
        getElementById("message_box").value = message;
    }
    return;
}

