

//*****************************************************************
//
// home_hensei.js : トップページ　みどころxml解析
//
//*****************************************************************


// ブラウザ情報 1:opera,safari,mozes 2:IE等
var int_NavAgent = 0;

function hensei(){

    hensei_obj = createXMLHttpRequest();

    // ブラウザ判定
    int_NavAgent = getNavigatorAgent();

    if (hensei_obj){
        if (int_NavAgent == 1) {
            hensei_obj.onload = function() {
                                    fc_hensei_data_get(hensei_obj);
                                }
        }
        else {
            hensei_obj.onreadystatechange = function() {
                                                if ((hensei_obj.readyState == 4) && (hensei_obj.status == 200)) {
                                                    fc_hensei_data_get(hensei_obj);
                                                }
                                            }
        }
    }

    if (hensei_obj){
        hensei_obj.open('GET', 'bangumiinfo/hensei.xml',false);
        hensei_obj.send(null);
    }
}

//++++++++++++++++++++++++++++++++++++
// 文字装飾設定
// 引数 hensei_data : XMLオブジェクト
//      str_cellsyleid : 文字装飾ID
//      str_dispstring : 表示文字列
// 戻り値 装飾済み文字列
//++++++++++++++++++++++++++++++++++++
function fc_font_data_get(hensei_data, str_cellstyleid, str_dispstring) {

    var str_beforeTag = '';
    var str_afterTag = '';
    var str_styleid = '';
    var str_fontcolor = '';
    var i = 0;
    var j = 0;
    var int_childcnt = 0;
    var str_childnodename = '';

    var obj_styleTag = hensei_data.getElementsByTagName('Style');
    var int_styleTagLen = obj_styleTag.length;

    for (i = 0; i < int_styleTagLen; i++) {

        // 文字装飾id値取得
        str_styleid = obj_styleTag[i].attributes[0].value;

        // 表示文字と装飾idが同じかチェック
        if ( str_cellstyleid == str_styleid) {

            // 子ノードの数取得
            int_childcnt = obj_styleTag[i].childNodes.length;

            for (j = 0; j < int_childcnt; j++) {

                // 子ノード名取得
                str_childnodename = obj_styleTag[i].childNodes.item(j).nodeName;

                if (str_childnodename == 'Font') {

                    // 太字設定
                    if (obj_styleTag[i].childNodes.item(j).getAttribute('ss:Bold') != null) {
                        str_beforeTag += '<strong>';
                        str_afterTag = '</strong>';
                    }

                    // 斜体設定
                    if (obj_styleTag[i].childNodes.item(j).getAttribute('ss:Italic') != null) {
                        str_beforeTag += '<em>';
                        str_afterTag = '</em>' + str_afterTag;
                    }

                    // 色設定
                    if (obj_styleTag[i].childNodes.item(j).getAttribute('ss:Color') != null) {

                        str_fontcolor = obj_styleTag[i].childNodes.item(j).getAttribute('ss:Color');

                        // 赤
                        if (str_fontcolor == '#FF0000') {

                            str_beforeTag += '<red>';
                            str_afterTag = '</red>' + str_afterTag;

                        }

                        // 青
                        if (str_fontcolor == '#0066CC'){

                            str_beforeTag += '<blue>';
                            str_afterTag = '</blue>' + str_afterTag;

                        }

                        // 青
                        if (str_fontcolor == '#0070C0'){

                            str_beforeTag += '<blue>';
                            str_afterTag = '</blue>' + str_afterTag;

                        }
                    }

                    break;

                }

            }

            break;
        }
    }

    return(str_beforeTag + str_dispstring + str_afterTag);

}

//++++++++++++++++++++++++++++++++++++
// 表示文字編集詳細
// 引数 hensei_data : XMLオブジェクト
//      str_dispstring : 表示文字
//      obj_cellTag : Cellタグオブジェクト
//      int_editcnt : 使用タグ番号
// 戻り値 表示文字列
//++++++++++++++++++++++++++++++++++++
function fc_dispstring_edit_detail(hensei_data, str_dispstring, obj_cellTag, int_editcnt) {

    var str_wk = '';
    var str_cell = '';

    // 装飾情報あり
    if (obj_cellTag[int_editcnt].getAttribute('ss:StyleID') != null) {

        str_cell = obj_cellTag[int_editcnt].attributes[0].value;

        // 文字装飾タグ追加
        str_wk = fc_font_data_get(hensei_data, str_cell, str_dispstring) + '<br />';

    }
    else {

        str_wk = str_dispstring + '<br />';
    }

    return(str_wk);

}

//++++++++++++++++++++++++++++++++++++
// 表示文字編集
// 引数 hensei_data : XMLオブジェクト
//      obj_dataTag : Dataタグオブジェクト
//      obj_cellTag : Cellタグオブジェクト
//      int_editcnt : 使用タグ番号
// 戻り値 表示文字列
//++++++++++++++++++++++++++++++++++++
function fc_dispstring_edit(hensei_data, obj_dataTag, obj_cellTag, int_editcnt) {

    var str_wk = '';
    var str_dispstring = '';

    str_dispstring = '○' + obj_dataTag[int_editcnt].childNodes[0].nodeValue;

    str_wk += fc_dispstring_edit_detail(hensei_data, str_dispstring, obj_cellTag, int_editcnt);

    // ++番組内容++
    if (obj_dataTag[int_editcnt + 1].childNodes[0].nodeValue != '*') {

        str_dispstring = obj_dataTag[int_editcnt + 1].childNodes[0].nodeValue;

        str_wk += fc_dispstring_edit_detail(hensei_data, str_dispstring, obj_cellTag, (int_editcnt + 1));
    }

    return(str_wk);

}

//++++++++++++++++++++++++++++++++++
// おすすめ情報画面表示
//++++++++++++++++++++++++++++++++++
function fc_hensei_data_get(hensei_obj) {

    var str_DispDate = '';
    var str_FromTime = '';
    var str_ToTime = '';
    var str_hensei = '';
    var i = 0;

    // 編成データオブジェクト作成
    hensei_data = hensei_obj.responseXML;

    var obj_tableTag = hensei_data.getElementsByTagName('Table');
    var int_cellW = obj_tableTag[0].attributes[0].value;
    var int_cellH = obj_tableTag[0].attributes[1].value;
    var obj_dataTag = hensei_data.getElementsByTagName('Data');
    var obj_cellTag = hensei_data.getElementsByTagName('Cell');

    // 現在時刻取得
    nowDate_obj = new Date();

    // 入力行数ループ
    for (i = 0; i < int_cellH; i++) {

        // 表示日・表示期間From～To取得
        str_DispDate = '';
        str_FromTime = '';
        str_ToTime = '';
        str_DispDate = obj_dataTag[i * int_cellW].childNodes[0].nodeValue;
        str_FromTime = obj_dataTag[i * int_cellW + 1].childNodes[0].nodeValue;
        str_ToTime = obj_dataTag[i * int_cellW + 2].childNodes[0].nodeValue;

        // 表示条件あり
        if (str_DispDate != '0') {

            var str_DispDateSplit = str_DispDate.split('/');
            var str_FromSplit = str_FromTime.split(':');
            var str_ToSplit = str_ToTime.split(':');

            // 時刻データに変換
            var obj_FromTime = new Date(str_DispDateSplit[0], (str_DispDateSplit[1] - 1), str_DispDateSplit[2], str_FromSplit[0], str_FromSplit[1], '00');
            var obj_ToTime = new Date(str_DispDateSplit[0], (str_DispDateSplit[1] - 1), str_DispDateSplit[2], str_ToSplit[0], str_ToSplit[1], '00');

            // 現在時刻と比較し、表示期間内かチェック
            if ((nowDate_obj >= obj_FromTime) && (nowDate_obj <= obj_ToTime)) {

                // 表示文字編集
                str_hensei += fc_dispstring_edit(hensei_data, obj_dataTag, obj_cellTag, (i * int_cellW + 3));

            }
        }

        // Default表示
        else {

            // 表示文字編集
            str_hensei += fc_dispstring_edit(hensei_data, obj_dataTag, obj_cellTag, (i * int_cellW + 3));

        }
    }

    // 画面出力
    document.getElementById('hensei').innerHTML = str_hensei;

}


