/*
*　大会情報のプログラム一式
*　/js/jkl-parsexml.js を利用
*/
//先に選ばれたIDを保持しておく変数
var table_class_select_id = "";

/**
 * 今月のリストを表示
 */
var getCompetitionList = function(pagenation)
{
    var url = apl_server + '/competitionlist';


    var date = document.compatition_search.date.value ;
    var mode = document.compatition_search.mode ;
    for (var i = 0; i < mode.length; i++){
        if(mode[i].checked == true){
            var mode_value = mode[i].value;
            break ;
        }
    }
    var pref = document.compatition_search.pref.value ;
    if(! pagenation){
        pagenation = "";
    }

    url = url + '/' + date + '/' + mode_value + '/' + pref + '/' + pagenation ;

//alert(url);

    var httpObj = new JKL.ParseXML (url);
    var XMLdata = httpObj.parse ();
    var node = XMLdata["competitions"]["event"];

    var html = '';
    html += '        <table class="ptt01" width="442">';
    html += '          <tr>';
    html += '            <th width="110">開催日</th>';
    html += '            <th width="110">締め切り日</th>';
    html += '            <th width="63">開催地</th>';
    html += '            <th width="155">大会名</th>';
    html += '          </tr>';

    if( node && node.length ){
        for (var i = 0; i < node.length; i ++)
        {
            if(i==0){ var defalut_id = node[i]["id"];}
            html += getEntoryListTable(node[i],i);
        }
        html += '        </table>';
    }else if( node && node["event_date"] ){
        var defalut_id = node["id"];
        html += getEntoryListTable(node,0);
        html += '        </table>';
    }else{
        var defalut_id = 0;
        html += '        </table>';
        html += '          <h4>【データがありません】</h4>';
    }



    document.getElementById('entryListTable').innerHTML = html ;

    viewPagenation(XMLdata["competitions"]["pagenation"]);

    getCompetitionData(defalut_id);
}

function viewPagenation(datas)
{
    if(! datas){
        document.getElementById('pagination').innerHTML = '' ;
        return false ;
    }

    // pagenation
    offset_count = datas['offset_count'] ;
    limit_count = datas['limit_count'] ;
    last_count = datas['last_count'];
    data_count =  datas['data_count'];
    total_count = datas['total_count'];

    html = "";
    html += '          <ul class="pagination">';

    if( total_count > limit_count && offset_count > 0 ){
        if( parseInt(offset_count) - parseInt(limit_count) <= 0){
            var offset_num = 1 ;
        }else{
            var offset_num = offset_count - limit_count ;
        }
        var limit_num = limit_count ;
        html += '            <li class="p-first"><a href="javascript:void(0)" onClick="getCompetitionList(\''+offset_num+'/'+limit_num+'\')">PREV</a></li>';
    }

    var i = 1;
    var j = 1;
    while( i <= total_count){
        var offset_num = i ;
        var limit_num = limit_count ;
        i = parseInt(offset_num) + parseInt(limit_num) ;
        if( offset_num <= offset_count && offset_count < i ){
            html += '            <li><strong><a href="javascript:void(0)" onClick="getCompetitionList(\''+offset_num+'/'+limit_num+'\')">'+j+'</a></strong></li>';
        }else{
            html += '            <li><a href="javascript:void(0)" onClick="getCompetitionList(\''+offset_num+'/'+limit_num+'\')">'+j+'</a></li>';
        }
        j++ ;
    }

    if( parseInt(offset_count) + parseInt(data_count) < total_count ){
        var offset_num = parseInt(offset_count) + parseInt(limit_count) ;
        var limit_num = limit_count ;
        html += '            <li class="p-last"><a href="javascript:void(0)" onClick="getCompetitionList(\''+offset_num+'/'+limit_num+'\')">NEXT</a></li>';
    }

    html += '          </ul>';

    document.getElementById('pagination').innerHTML = html ;
}

/**
 * 詳細データを表示
 */
var getCompetitionData = function ( id )
{
    if(! id){
        document.getElementById('competitionDetail').innerHTML = '' ;
        return ;
    }

    var url = apl_server + '/competitiondata';

    url = url + '/' + id ;

//alert(url);

    var httpObj = new JKL.ParseXML (url);
    var XMLdata = httpObj.parse ();
    var node = XMLdata ["competitions"]["event"];

    var html = '';
    if( node ){
        var name = node["name"] ? node["name"] : '　' ;
        var event_date = '';
        var event_day_of_week = '';
        var event_date_button = '';
        if (node["event_date"]) {
            event_date = node["event_date"].substr(0,10);
            event_date_button = event_date ; // ボタン表示用比較
            if(event_date.charAt("8") == 0){
                event_date = event_date.substr(0,8) + event_date.substr(9);
            }
            if(event_date.charAt("5") == 0){
                event_date = event_date.substr(0,5) + event_date.substr(6);
            }
            event_date = event_date.replace(/-/,"年");
            event_date = event_date.replace(/-/,"月") + "日";
            if (node["event_day_of_week"]){
                event_day_of_week = '（'+node["event_day_of_week"]+'）';
            }
        }

        var prefecture = node["prefecture"] ? node["prefecture"] : '　' ;
        var place = node["place"] ? node["place"] : '　' ;
        var application_start_date = '';
        var application_start_date_of_week = '';
        var application_start_date_button = '';
        if (node["application_start_date"]){
            application_start_date = node["application_start_date"].substr(0,10);
            application_start_date_button = application_start_date ; // ボタン表示用比較
            if(application_start_date.charAt("8") == 0){
                application_start_date = application_start_date.substr(0,8) + application_start_date.substr(9);
            }
            if(application_start_date.charAt("5") == 0){
                application_start_date = application_start_date.substr(0,5) + application_start_date.substr(6);
            }
            application_start_date = application_start_date.replace(/-/,"年");
            application_start_date = application_start_date.replace(/-/,"月") + "日";
            if (node["application_start_date_of_week"]) {
                application_start_date_of_week = '（'+node["application_start_date_of_week"]+'）';
            }
        }

        var application_end_date = '';
        var application_end_date_of_week = '';
        var application_end_date_button = '';
        if (node["application_end_date"]){
            application_end_date = node["application_end_date"].substr(0,10);
            application_end_date_button = application_end_date ; // ボタン表示用比較
            if(application_end_date.charAt("8") == 0){
                application_end_date = application_end_date.substr(0,8) + application_end_date.substr(9);
            }
            if(application_end_date.charAt("5") == 0){
                application_end_date = application_end_date.substr(0,5) + application_end_date.substr(6);
                application_end_date = application_end_date.replace(/-/,"年");
                application_end_date = application_end_date.replace(/-/,"月") + "日";
            }
            if (node["application_end_date_of_week"]) {
                application_end_date_of_week = '（'+node["application_end_date_of_week"]+'）';
            }
        }

        var printing_fee_text = node["printing_fee_text"] ? node["printing_fee_text"] : '　' ;
        var commendation_others = node["commendation_others"] ? node["commendation_others"] : '　' ;
        var application_place = node["application_place"] ? node["application_place"] : '　' ;
        var application_address = node["application_address"] ? node["application_address"] : '　' ;
        var event_type_info_word = node["event_type_info_word"] ? node["event_type_info_word"] : '　' ;
        var event_types = node["event_types"] ? node["event_types"] : '　' ;
        var event_type_distance1 = node["event_type_distance1"] ? node["event_type_distance1"] + 'km' : '　' ;
        var starting_place = node["starting_place"] ? node["starting_place"] : '　' ;
        var ending_place = node["ending_place"] ? node["ending_place"] : '　' ;
        var transport_description = node["transport_description"] ? node["transport_description"] : '　' ;
        var id = node["id"] ? node["id"] : '　' ;
        if( node["event_type_info"] == 3){
            var mode = 'bike';
        }else{
            var mode = 'run';
        }
        var type_id = node["type_id"] ? node["type_id"] : '　' ;

        html += '        <h4 class="'+mode+'">'+name+'</h4>';
        html += '        <dl>';
        html += '          <dt>開催日</dt>';
        html += '          <dd>'+event_date+event_day_of_week+'</dd>';
        html += '          <dt>開催地</dt>';
        html += '          <dd>'+prefecture+'('+place+')</dd>';
        html += '          <dt>エントリー期間</dt>';
        html += '          <dd>'+application_start_date+application_start_date_of_week+' ～ '+application_end_date+application_end_date_of_week+'</dd>';
        html += '          <dt>参加費用</dt>';
        html += '          <dd>'+printing_fee_text+' ※'+commendation_others+'</dd>';
        html += '          <dt>受付場所</dt>';
        html += '          <dd>'+application_place+'</dd>';
        html += '          <dt>受付場所住所</dt>';
        html += '          <dd>'+application_address+'</dd>';
        html += '          <dt>競技種目</dt>';
        html += '          <dd>'+event_type_info_word+'</dd>';
        html += '          <dt>距離</dt>';
        html += '          <dd>' +event_types+'</dd>';
        html += '          <dt>スタート地点</dt>';
        html += '          <dd>'+starting_place+'</dd>';
        html += '          <dt>ゴール地点</dt>';
        html += '          <dd>'+ending_place+'</dd>';
        html += '          <dt>交通機関</dt>';
        html += '          <dd>'+transport_description+'</dd>';
        html += '        </dl>';

        // today
        var day = new Date();
        var today = day.getTime() ;
        var day = new Date(event_date_button.substr(0,4),event_date_button.substr(5,2)-1,event_date_button.substr(8,2));
        event_date_button = day.getTime();
        var day = new Date(application_start_date_button.substr(0,4),application_start_date_button.substr(5,2)-1,application_start_date_button.substr(8,2));
        application_start_date_button = day.getTime();
        var day = new Date(application_end_date_button.substr(0,4),application_end_date_button.substr(5,2)-1,application_end_date_button.substr(8,2));
        application_end_date_button = day.getTime();
        if(event_date_button <= today ){
            html += '        <p class="center fontS"><a href="/cgi/runnetCntRes.php?id='+id+'" target="_blank"><img class="rollover" src="/images/competition/btn_result.jpg" alt="大会結果ページ" /></a><br />';
            html += '        <p class="center fontS"><a href="/cgi/runnetCntRep.php?id='+id+'" target="_blank"><img class="rollover" src="/images/competition/btn_report.jpg" alt="大会レポートページ" /></a><br />';
            html += '          ※「RUNNET」サイトへリンクします。</p>';
        }else if( application_start_date_button <= today && today <= application_end_date_button ){
            html += '        <p class="center fontS"><a href="/cgi/runnetCntEnt.php?id='+id+'&type_id='+type_id+'" target="_blank"><img class="rollover" src="/images/competition/btn_entry.jpg" alt="エントリーはこちら" /></a><br />';
            html += '          ※「RUNNET」サイトへリンクします。</p>';
        }

    }

    document.getElementById('competitionDetail').innerHTML = html ;

    //右側のテーブルにクラスを追加
    if(table_class_select_id){
        var table_id = 'table'+table_class_select_id;
        if ( Element.hasClassName(document.getElementById(table_id), 'select')) {
            Element.removeClassName(document.getElementById(table_id), 'select');
        }
    }
    var table_id = 'table'+id;
    if (! Element.hasClassName(document.getElementById(table_id), 'select')) {
        Element.addClassName(document.getElementById(table_id), 'select');
    }
    table_class_select_id = id ;
}


/**
 * リスト表示
 * @param datas リストデータの配列
 * @return html 表示用リスト
 */
function getEntoryListTable(datas,i)
{
    var event_date = '';
    var event_day_of_week = '';
    if (datas["event_date"]) {
        event_date = datas["event_date"].substr(0,10);
        event_date = event_date.replace(/-/g,"/");
        if(event_date.charAt("8") == 0){
            event_date = event_date.substr(0,8) + event_date.substr(9);
        }
        if(event_date.charAt("5") == 0){
            event_date = event_date.substr(0,5) + event_date.substr(6);
        }
        if (datas["event_day_of_week"]){
            event_day_of_week = '（'+datas["event_day_of_week"]+'）';
        }
    }

    var application_end_date = '';
    var application_end_date_of_week = '';
    if (datas["application_end_date"]) {
        application_end_date = datas["application_end_date"].substr(0,10);
        application_end_date = application_end_date.replace(/-/g,"/");
        if(application_end_date.charAt("8") == 0){
            application_end_date = application_end_date.substr(0,8) + application_end_date.substr(9);
        }
        if(application_end_date.charAt("5") == 0){
            application_end_date = application_end_date.substr(0,5) + application_end_date.substr(6);
        }
        if (datas["application_end_date_of_week"]){
            application_end_date_of_week = '（'+datas["application_end_date_of_week"]+'）';
        }
    }

    var prefecture = datas["prefecture"];
    var place = datas["place"];
    var id = datas["id"];
    var name = datas["name"];
    var class_name = '';
    if(i % 2 == 0){
        class_name = 'white';
    }
    var html = '';
    html += '          <tr id="table'+id+'" class="'+class_name+'">';
    html += '            <td>'+event_date+event_day_of_week+'</td>';
    html += '            <td>'+application_end_date+application_end_date_of_week+'</td>';
    html += '            <td>'+prefecture+'<br />';
    html += '              ('+place+')</td>';
    html += '            <td><a href="javascript:void(0)" onClick="getCompetitionData('+id+')">'+name+'</a></td>';
    html += '          </tr>';

    return html ;
}


/**
 * 日付の整形 YYYY.MM.DD にする
 * @param string date 2008-05-16T21:49:10+09:00 の形の日付
 * @return string 変換された日付
 */
function getDateString( date )
{
    var dS = date.split ("-");
    var dSd = dS [2].split ("T");
    date = dS [0] + "." + dS [1] + "." + dSd [0];
    return date ;
}


/**
 * タイトルの整形 全角空白２つを <br />に変換
 * @param string title
 * @return string 変換された日付
 */
function getTitleString( title )
{
    title = title.replace("　　", "<br />");
    return title ;
}


/**
 * サマリーの整形 全角空白２つを <br />に変換
 * @param string summary
 * @return string 変換された日付
 */
function getSummaryString( summary )
{
    summary = summary.replace(/\r\n/g, "<br />");
    summary = summary.replace(/\r/g, "<br />");
    summary = summary.replace(/\n/g , "<br />");
    return summary ;
}


/**
 * clsss が無ければ設定
 * @param string id_name ID名
 * @param string class_name クラス名
 */
function setAddClass( id_name, class_name )
{
    if (! Element.hasClassName(document.getElementById(id_name), class_name)) {
        Element.addClassName(document.getElementById(id_name), class_name);
    }
}

/**
 * clsss を削除
 * @param string id_name ID名
 * @param string class_name クラス名
 */
function setRemoveClass( id_name, class_name )
{
    if ( Element.hasClassName(document.getElementById(id_name), class_name)) {
        Element.removeClassName(document.getElementById(id_name), class_name);
    }
}



