// -----------------------------------------------------------------------------
// ニュース、障害情報、メンテナンス、FAQ
// -----------------------------------------------------------------------------
var TYPE_NEWS = 0;
var TYPE_TROUBLE = 1;
var TYPE_MAINTENANCE = 2;
var DisplayMax = 0;
var FaqResult = null;

/**
 * ニュースの取得(最新5件)
 *
 **/
function getNewsByNew(){
    var limit = 5;
    var result = Jsonrpc1.MaintenanceManager.getMaintenanceByNew(TYPE_NEWS, limit);
    var content = "";
    if(result != ""){
        for(var key in result.list){
            var line = result.list[key];
            if(key.match(/^[0-9]/g)){
                content += "                <div style=\"width:190px;font-size:9pt;color:#FF0000;margin-bottom:10px;\">\n"+
                           "                    <div style=\"color:#000000;font-weight:bold;\">"+line.date.replace(/-/, "年").replace(/-/, "月")+"日:</div>\n"+
                           "                    "+nl2br(line.content)+"\n"+
                           "                </div>\n";
            }
        }
    } else {
        content = "            <div>ニュースはありません</div>\n";
    }
    if($("sideNewsList")){
        $("sideNewsList").innerHTML = content;
    }
}

/**
 * 障害情報の取得(最新5件)
 *
 **/
function getTroubleByNew(){
    var limit = 5;
    var result = Jsonrpc1.MaintenanceManager.getMaintenanceByNew(TYPE_TROUBLE, limit);
    var content = "";
    if(result != "" && result.list != ""){
        for(var key in result.list){
            var line = result.list[key];
            if(key.match(/^[0-9]/g)){
                content += "<div style=\"margin-bottom:10px;\">\n"+
                           "    <div style=\"font-weight:bold;\">"+line.date.replace(/-/g, "/")+"：</div>\n"+
                           "    <div style=\"font-size:12pt;\"><a href=\"#\" onClick=\"visibleDetail('troubleList_"+line.id+"');return false\">"+line.title+"</a></div>\n"+
                           "    <div style=\"background-color:#FFFFFF;border:1px solid #CCCCCC;padding:2px;display:none;\" id=\"troubleList_"+line.id+"\">"+nl2br(line.content)+"</div>\n"+
                           "</div>\n";
            }
        }
    } else {
        content = "            <div>現在 障害はございません</div>\n";
    }
    if($("troubleList")){
        $("troubleList").innerHTML = content;
    }
}

/**
 * メンテナンス情報の取得(最新5件)
 *
 **/
function getMaintenanceByNew(){
    var limit = 5;
    var result = Jsonrpc1.MaintenanceManager.getMaintenanceByNew(TYPE_MAINTENANCE, limit);
    var content = "";
    if(result != "" && result.list != ""){
        for(var key in result.list){
            var line = result.list[key];
            if(key.match(/^[0-9]/g)){
                content += "<div style=\"margin-bottom:10px;\">\n"+
                           "    <div style=\"font-weight:bold;\">"+line.date.replace(/-/g, "/")+"：</div>\n"+
                           "    <div style=\"font-size:12pt;\"><a href=\"#\" onClick=\"visibleDetail('troubleList_"+line.id+"');return false\">"+line.title+"</a></div>\n"+
                           "    <div style=\"background-color:#FFFFFF;border:1px solid #CCCCCC;padding:2px;display:none;\" id=\"troubleList_"+line.id+"\">"+nl2br(line.content)+"</div>\n"+
                           "</div>\n";
            }
        }
    } else {
        content = "            <div>現在 メンテナンスの予定はございません</div>\n";
    }
    if($("maintenanceList")){
        $("maintenanceList").innerHTML = content;
    }
}

/**
 * FAQの取得
 *
 **/
function getFaq(){
    DisplayMax = 10;
    FaqResult = Jsonrpc1.FaqManager.getFaq();
    drawScreenFaq($("FaqForm").page.value);
}

function drawScreenFaq(page){
    var question = "";
    var queryStr = "";
    var query = window.location.search.substring(1);
    if(query){
        var parms = query.split("&");
        for (var i=0; i<parms.length; i++) { 
            var attr = parms[i].split("=");
            // page
            if(attr[0] == "page"){
                page = attr[1] - 0;
            }
            // question
            if(attr[0] == "question"){
                question = decodeURI(attr[1]);
            }
        }
    }

    var total = 0;
    var start = (page * DisplayMax) - DisplayMax + 1;
    var end = start + DisplayMax - 1;
    var idx = 1;
    var qlist = "";
    var content = "";
    if(FaqResult != ""){
        qlist += "           <div style=\"padding:20px 0px 20px 6px;\">\n";
        for(var key in FaqResult.list){
            var display = "none";
            var line = FaqResult.list[key];
            if(key.match(/^[0-9]/g)){
                total++;
                if(idx >= start && idx <= end){
                    // query string
                    queryStr = "?question=" + idx;
                    if(page > 1){
                        queryStr += "&page=" + page;
                    }
                    var link = "                   "+idx+". <a href=\""+queryStr+"\">"+nl2br(line.question)+"</a>\n";
                    if(question == idx){
                        display = "block";
                        link = "                   "+idx+". "+nl2br(line.question)+"\n";
                    }
                    qlist += "               <div style=\"margin-bottom:5px;line-height:1.5em;\">\n"+
//                             "                   "+idx+". <a href=\"?id="+line.id+"\" onclick=\"displayBlock('"+line.id+"');\">"+nl2br(line.question)+"</a>\n"+
                             link+
                             "               </div>\n";
                    content += "           <div id=\"faq_detail_"+line.id+"\" style=\"padding:20px 25px 50px 6px;display:"+display+";\">\n"+
                               "               <div style=\"font-weight:bold;font-size:1.5em;color:#339933;\">\n"+
                               "                   Q. "+nl2br(line.question)+"\n"+
                               "               </div>\n"+
                               "               <div style=\"border:1px solid #999999;background-color:#FFFFFF;padding:4px;margin:5px 0px 0px 2px;font-size:1.2em;\">\n"+
                               "                   A. "+nl2br(line.answer)+"\n"+
                               "               </div>\n"+
                               "           </div>\n";
                }
                idx++;
            }
        }
        qlist += "           </div><hr>\n";
    }
    var pager = "";
    if(total == 0){
        qlist = "            <div style=\"margin-top:10px;\">FAQはまだ作成されていません</div>\n";
    } else {
        // ページャー作成
        pager = getPagerFaq(page, total) + "<hr>";
    }
    $("faqList").innerHTML = pager + qlist + content;
}

function getPagerFaq(now, total){
    var pager = "<table style=\"border:0;\" width=\"600\">\n"+
                "<tr>\n"+
                "    <td style=\"border:0;\" width=\"30%\">総件数：" + total + "件</td>\n"+
                "    <td style=\"border:0;\" width=\"70%\" align=\"right\">\n";
    if(total <= DisplayMax){
        // ページャー無し
        pager += "        <span class=\"pager_num\">1</span>";
    } else {
        // 前に戻る
        if(now > 1){
            pager += "        <span class=\"pager_num\"><a href=\"?page="+(now - 1)+"\">＜</a></span>\n";
        } else {
            pager += "        <span class=\"pager_num\">＜</span>\n";
        }
        var pageNum = Math.ceil((total / DisplayMax));
        for(i=1;i<pageNum+1;i++){
            if(now == i){
                pager += "        <span class=\"pager_num\"><b id=\"caution\">" + i + "</b></span>";
            } else {
                pager += "        <span class=\"pager_num\"><a href=\"?page="+i+"\">" + i + "</a></span>";
            }
        }
        // 次に進む
        if(now < pageNum){
            pager += "        <span class=\"pager_num\"><a href=\"?page="+(now + 1)+"\">＞</a></span>\n";
        } else {
            pager += "        <span class=\"pager_num\">＞</span>\n";
        }
    }
    pager += "    </td>\n"+
             "</tr>\n"+
             "</table>\n"+
             "</div>\n";
    return pager;
}

function nextPageFaq(page){
    $("FaqForm").page.value = page;
    drawScreenFaq(page);
}

function displayBlock(id){
    var elements = document.getElementsByTagName("div");
    for(var k in elements){
        if(elements[k] && elements[k].id && elements[k].id.match(/^faq_detail_/)){
            elements[k].style.display = "none";
        }
    }
    $("faq_detail_"+id).style.display = "block";
}

function visibleDetail(id){
    if($(id) && $(id).style){
        if($(id).style.display == "none"){
            $(id).style.display = "block";
        } else {
            $(id).style.display = "none";
        }
    }
}

function nl2br(str){
    str = str.replace(/\r/g, "");
    return str.replace(/\n/g, "<br>");
}
