/*
*　アンケートのプログラム一式
*　/js/jkl-parsexml.js を利用
*/

/**
 * get_enquete
 * 初期状態の表示、現在のアンケート表示
 */
var getEnqueteList = function (listNum)
{
    var url = '/feed/enquete_question.xml';
    var enqueteListMaxNum = listNum ;
    var maxLength_Title = 30;
    var baseHtml_HD = '<dl><dt><ul>';
    var baseHtml_DT = '';
    var baseHtml_FT = '</ul></dt></dl>';
    baseHtml_FT += '<dl class="last">';
    baseHtml_FT += '<dt>';
    baseHtml_FT += '<a href="javascript:void(0)" onClick="setVote()"><img src="/images/index/vote_button.jpg" alt="投票する" /></a>';
    baseHtml_FT += '</dt>';
    baseHtml_FT += '</dl>';
    var httpObj = new JKL.ParseXML (url);
    var XMLdata = httpObj.parse ();
    var node_enquete = XMLdata ["rdf:RDF"]["item"];
    //
    if( node_enquete && node_enquete.length ){

        baseHtml_HD += '';

        for (var i = 0; i < node_enquete.length; i ++)
        {
            if (i < enqueteListMaxNum)
            {
                //////////////////////////////////////
                var start_date = getDateString(node_enquete [i]["dc:start_date"]);
                var end_date = getDateString(node_enquete [i]["dc:end_date"]);
                var enquete_question_id = node_enquete [i]["dc:enquete_question_id"];
                var question = node_enquete [i]["dc:question"];
                var summary = getSummaryString(node_enquete [i]["dc:summary"]);
                var answer1 = node_enquete [i]["dc:answer1"];
                var answer2 = node_enquete [i]["dc:answer2"];
                var answer3 = node_enquete [i]["dc:answer3"];
                var answer4 = node_enquete [i]["dc:answer4"];
                var title = getTitleString(node_enquete [i]["title"]);
                var date = getDateString(node_enquete [i]["dc:date"]);
                var linkUrl = node_enquete [i]["link"];
                var linkTarget = node_enquete [i]["target"];
                //////////////////////////////////////

                baseHtml_DT += '<li><input type=\"radio\" name=\"answer\" id=\"answer1\" value=\"1\">' + answer1 + '</li>';
                baseHtml_DT += '<li><input type=\"radio\" name=\"answer\" id=\"answer2\" value=\"2\">' + answer2 + '</li>';
                if( answer3 != undefined ){
                    baseHtml_DT += '<li><input type=\"radio\" name=\"answer\" id=\"answer3\" value=\"3\">' + answer3 + '</li>';
                }
                if( answer4 != undefined ){
                    baseHtml_DT += '<li><input type=\"radio\" name=\"answer\" id=\"answer4\" value=\"4\">' + answer4 + '</li>';
                }
            }
        }
    }else if( node_enquete && node_enquete ["dc:question"] )
    {

        //////////////////////////////////////
        var start_date = getDateString(node_enquete ["dc:start_date"]);
        var end_date = getDateString(node_enquete ["dc:end_date"]);
        var enquete_question_id = node_enquete ["dc:enquete_question_id"];
        var question = node_enquete ["dc:question"];
        var summary = getSummaryString(node_enquete ["dc:summary"]);
        var answer1 = node_enquete ["dc:answer1"];
        var answer2 = node_enquete ["dc:answer2"];
        var answer3 = node_enquete ["dc:answer3"];
        var answer4 = node_enquete ["dc:answer4"];
        var title = getTitleString(node_enquete ["title"]);
        var date = getDateString(node_enquete ["dc:date"]);
        var linkUrl = node_enquete["link"];
        var linkTarget = node_enquete["target"];
        //////////////////////////////////////

        baseHtml_DT += '<li><input type=\"radio\" name=\"answer\" id=\"answer1\" value=\"1\">' + answer1 + '</li>';
        baseHtml_DT += '<li><input type=\"radio\" name=\"answer\" id=\"answer2\" value=\"2\">' + answer2 + '</li>';
        if( answer3 != undefined ){
            baseHtml_DT += '<li><input type=\"radio\" name=\"answer\" id=\"answer3\" value=\"3\">' + answer3 + '</li>';
        }
        if( answer4 != undefined ){
            baseHtml_DT += '<li><input type=\"radio\" name=\"answer\" id=\"answer4\" value=\"4\">' + answer4 + '</li>';
        }
    }else{
            viewEmptyEnquete();
            return ;
        }

    setAddClass("enquete_balloon", "balloon");
    setRemoveClass("enquete_question", "fl-left");
    setRemoveClass("enquete_question", "co-pink");
    setRemoveClass("enquete_question", "center");
    setRemoveClass("enquete_head", "enqueteHead2");
    setAddClass("enquete_head", "enqueteHead");
    setAddClass("enquete_answer", "fl-left");

    //表示
    document.getElementById('enquete_answer').style.display = "block" ;
    document.getElementById('enquete_error').style.display = "none" ;

    //書き出し
    document.getElementById('enquete_question').innerHTML = question ; // + '　' + start_date + '～' + end_date ;
    document.getElementById('enquete_summary').innerHTML = summary ;
    document.getElementById('enquete_answer').innerHTML = baseHtml_HD + baseHtml_DT + baseHtml_FT ;
    document.getElementById('enquete_id').innerHTML = '<input type="hidden" name="enquete_question_id" id="enquete_question_id" value="' + enquete_question_id + '"><input type="hidden" name="question_value" id="question_value" value="' + question + '">' ;

    // 投稿した人のみ、投稿ボタン
    setNowVoteButton( enquete_question_id, question );
}


/**
 * リクエストthanks画面
 *
 */
var viewEmptyEnquete = function()
{
        setRemoveClass("enquete_head", "enqueteHead");
        setAddClass("enquete_head", "enqueteHead2");
        setRemoveClass("enquete_balloon", "balloon");
        setRemoveClass("enquete_question", "fl-left");
        setAddClass("enquete_question", "co-pink");
        setAddClass("enquete_question", "center");
        setRemoveClass("enquete_answer", "fl-left");
        //表示
        document.getElementById('enquete_answer').style.display = "none" ;
        document.getElementById('enquete_error').style.display = "none" ;
        document.getElementById('enquete_question').innerHTML = '現在アンケートはおこなわれておりません。<p style="padding:0 0 30px 0;">&nbsp</p>' ;
        document.getElementById('enquete_summary').innerHTML = '' ;
}


/**
 * 過去のアンケートのタイトルのみ取得
 * --get_past_title
 *
 */
var getPastTitle = function ()
{
    var url = '/feed/enquete_past_result.xml';
    var httpObj = new JKL.ParseXML (url);
    var XMLdata = httpObj.parse ();
    var node_enquete = XMLdata ["rdf:RDF"]["item"];
    //
    if( node_enquete && node_enquete ["dc:question"] )
    {
        var title = getTitleString(node_enquete ["dc:question"]);
        document.getElementById('enquete_past_div').innerHTML = '<p>前回の投票結果を見る：<br /><a href="javascript:void(0)" onClick="getPastResult()" id="enquete_past">' + title + '</a></p>';
    }
}


/**
 * 過去のアンケート結果表示
 * --get_past_result
 *
 */
var getPastResult = function ()
{
    var url = '/feed/enquete_past_result.xml';
    var enqueteListMaxNum = 1;
    var maxLength_Title = 30;
    var baseHtml_HD = '<dl class="first"><dd>';
    var baseHtml_DT = '';
    var baseHtml_FT = '</ul></dd></dl>';

    //////////////////////////////////////
    var httpObj = new JKL.ParseXML (url);
    var XMLdata = httpObj.parse ();
    var node_enquete = XMLdata ["rdf:RDF"]["item"];
    //
    if( node_enquete && node_enquete ["title"] )
    {

        baseHtml_HD += '<h4>投票結果</h4>';
        //////////////////////////////////////
        var start_date = getDateString(node_enquete ["dc:start_date"]);
        var end_date = getDateString(node_enquete ["dc:end_date"]);
        var question = node_enquete ["dc:question"];
        var summary = getSummaryString(node_enquete ["dc:summary"]);
        var answer1 = node_enquete ["dc:answer1"];
        var answer2 = node_enquete ["dc:answer2"];
        var answer3 = node_enquete ["dc:answer3"];
        var answer4 = node_enquete ["dc:answer4"];
        var answer1_count = node_enquete ["dc:answer1_count"];
        var answer2_count = node_enquete ["dc:answer2_count"];
        if( answer3 != undefined ){
            var answer3_count = node_enquete ["dc:answer3_count"];
        }else{
            var answer3_count = 0 ;
        }
        if( answer4 != undefined ){
            var answer4_count = node_enquete ["dc:answer4_count"];
        }else{
            var answer4_count = 0 ;
        }

        var title = getTitleString(node_enquete ["title"]);
        var date = getDateString(node_enquete ["dc:date"]);
        var linkUrl = node_enquete ["link"];
        var linkTarget = node_enquete ["target"];
        //////////////////////////////////////
        //
        answer_count = eval(answer1_count + "+" + answer2_count + "+" + answer3_count + "+" + answer4_count) ;
        baseHtml_DT += '<p>合計:' + answer_count + '票</p>';
        baseHtml_DT += '</dd></dl><dl><dd><ul class="right">';
        baseHtml_DT += '<li>' + answer1 + ' <span class="co-pink">' + answer1_count + '票</span></li>';
        baseHtml_DT += '<li>' + answer2 + ' <span class="co-pink">' + answer2_count + '票</span></li>';
        if( answer3 != undefined ){
            baseHtml_DT += '<li>' + answer3 + ' <span class="co-pink">' + answer3_count + '票</span></li>';
        }
        if( answer4 != undefined ){
            baseHtml_DT += '<li>' + answer4 + ' <span class="co-pink">' + answer4_count + '票</span></li>';
        }
                baseHtml_DT += '                <a href="javascript:void(0)" onClick="getEnqueteList()"><img class="rollover" style="margin-top: 20px" src="/images/common/btn_enquete2.jpg" alt="アンケートへ戻る" /></a>';
    }
    //
    setAddClass("enquete_balloon", "balloon");
    setRemoveClass("enquete_question", "fl-left");
    setRemoveClass("enquete_question", "co-pink");
    setRemoveClass("enquete_question", "center");
    setRemoveClass("enquete_head", "enqueteHead2");
    setAddClass("enquete_head", "enqueteHead");
    setAddClass("enquete_answer", "fl-left");

    //表示
    document.getElementById('enquete_answer').style.display = "block" ;
    document.getElementById('enquete_error').style.display = "none" ;

    //書き出し
    document.getElementById('enquete_question').innerHTML = question ; //+ '　' + start_date + '～' + end_date ;
    document.getElementById('enquete_summary').innerHTML = summary ;
    document.getElementById('enquete_answer').innerHTML = baseHtml_HD + baseHtml_DT + baseHtml_FT ;

}

/**
 * アンケート投票
 *
 */
var setVote = function()
{
    var answer = document.enquete_form.answer ;
    for (var i = 0; i < answer.length; i++){
        if(answer[i].checked == true){
            var answer_value = answer[i].value;
            break ;
        }
    }

    if( answer_value == undefined ){
        viewNullVote();
        return false ;
    }

    var enquete_question_id = $F('enquete_question_id') ;

    var cookies = getCookie();
    //alert(cookies);

    if( cookies ){
        if( cookies[0] == enquete_question_id ){
            viewDoubleVote();
            return false ;
        }
    }

    var url = apl_server + "/enquete/" + enquete_question_id + "/" + answer_value;

    var httpObj = new JKL.ParseXML (url);
    var XMLdata = httpObj.parse ();
    viewVoteResult(XMLdata);

    setCookie(enquete_question_id);

    // 投稿した人のみ、投稿ボタン
    setNowVoteButton(enquete_question_id);
}


/**
 * 投稿多重投稿
 *
 */
var viewDoubleVote = function()
{
    var html = '';

    html +=  "<br>投稿は一回までになっています。<br>\n" ;
    html += '<a href="javascript:void(0)" onClick="setDisplayEnquete()"><img class="rollover" style="margin-top: 20px" src="/images/common/btn_enquete.jpg" alt="アンケートへ戻る" /></a>';

    document.getElementById('enquete_answer').style.display = "none" ;
    document.getElementById('enquete_error').style.display = "block" ;
    document.getElementById('enquete_error').innerHTML = html ;
}


/**
 * 空投稿
 *
 */
var viewNullVote = function()
{
    var html = '';

    html +=  '<p class="center">項目を選択してください。</p>' ;
    html += '<p class="center"><a href="javascript:void(0)" onClick="setDisplayEnquete()"><img class="rollover" tyle="margin-top: 20px" src="/images/common/btn_enquete.jpg" alt="アンケートへ戻る" /></a></p>';

    document.getElementById('enquete_answer').style.display = "none" ;
    document.getElementById('enquete_error').style.display = "block" ;
    document.getElementById('enquete_error').innerHTML = html ;
}


/**
 * 現在の結果
 * ---get_now_result
 *
 */
var getNowResult = function()
{
    var enquete_question_id = $F('enquete_question_id') ;
    var url = apl_server + '/enquetenow/' + enquete_question_id;

    var httpObj = new JKL.ParseXML (url);
    var XMLdata = httpObj.parse ();
    viewVoteResult(XMLdata);
}

/**
 * 投票の結果
 *
 */
var viewVoteResult = function(XMLdata)
{
    //put returned XML in the textarea
//	$('request').value = originalRequest.responseText;

    var baseHtml_HD = '<dl class="first"><dd>';
    var baseHtml_DT = '';
    var baseHtml_FT = '</ul></dd></dl>';

    var node_enquete = XMLdata ["rdf:RDF"]["item"];
    //
    if( node_enquete && node_enquete ["title"] )
    {

        baseHtml_HD += '<h4>投票結果</h4>';

        //////////////////////////////////////
        var start_date = getDateString(node_enquete ["dc:start_date"]);
        var end_date = getDateString(node_enquete ["dc:end_date"]);
        var question = node_enquete ["dc:question"];
        var summary = getSummaryString(node_enquete ["dc:summary"]);
        var answer1 = node_enquete ["dc:answer1"];
        var answer2 = node_enquete ["dc:answer2"];
        var answer3 = node_enquete ["dc:answer3"];
        var answer4 = node_enquete ["dc:answer4"];
        var answer1_count = node_enquete ["dc:answer1_count"];
        var answer2_count = node_enquete ["dc:answer2_count"];
        if( answer3 != undefined ){
            var answer3_count = node_enquete ["dc:answer3_count"];
        }else{
            var answer3_count = 0 ;
        }
        if( answer4 != undefined ){
            var answer4_count = node_enquete ["dc:answer4_count"];
        }else{
            var answer4_count = 0 ;
        }

        var title = getTitleString(node_enquete ["title"]);
        var date = getDateString(node_enquete ["dc:date"]);
        var linkUrl = node_enquete ["link"];
        var linkTarget = node_enquete ["target"];
        //////////////////////////////////////
        //
        answer_count = eval(answer1_count + "+" + answer2_count + "+" + answer3_count + "+" + answer4_count) ;
        baseHtml_DT += '<p>合計:' + answer_count + '票</p>';
        baseHtml_DT += '</dd></dl><dl><dd><ul class="right">';
        baseHtml_DT += '<li>' + answer1 + ' <span class="co-pink">' + answer1_count + '票</span></li>';
        baseHtml_DT += '<li>' + answer2 + ' <span class="co-pink">' + answer2_count + '票</span></li>';
        if( answer3 != undefined ){
            baseHtml_DT += '<li>' + answer3 + ' <span class="co-pink">' + answer3_count + '票</span></li>';
        }
        if( answer4 != undefined ){
            baseHtml_DT += '<li>' + answer4 + ' <span class="co-pink">' + answer4_count + '票</span></li>';
        }
                baseHtml_DT += '                <a href="javascript:void(0)" onClick="getEnqueteList()"><img class="rollover" style="margin-top: 10px" src="/images/common/btn_enquete2.jpg" alt="アンケートへ戻る" /></a>';
    }
    //
    setAddClass("enquete_balloon", "balloon");
    setRemoveClass("enquete_question", "fl-left");
    setRemoveClass("enquete_question", "co-pink");
    setRemoveClass("enquete_question", "center");
    setRemoveClass("enquete_head", "enqueteHead2");
    setAddClass("enquete_head", "enqueteHead");
    setAddClass("enquete_answer", "fl-left");

    //表示
    document.getElementById('enquete_answer').style.display = "block" ;
    document.getElementById('enquete_error').style.display = "none" ;

    //書き出し
    document.getElementById('enquete_question').innerHTML = question ; //+ '　' + start_date + '～' + end_date ;
    document.getElementById('enquete_summary').innerHTML = summary ;
    document.getElementById('enquete_answer').innerHTML = baseHtml_HD + baseHtml_DT + baseHtml_FT ;
}

/**
 * エラー画面から戻った場合
 *
 */
var setDisplayEnquete = function()
{
    document.getElementById('enquete_answer').style.display = "block" ;
    document.getElementById('enquete_error').style.display = "none" ;
}


/**
 * cookieを保存 private
 *
 */
var setCookie = function( enquete_question_id )
{
    var cookies = new Array();
    cookies[0] = enquete_question_id ;

    //alert(ckary[0]+'　'+ckary[1]+'　'+ckary[2]);

    exp = new Date();

    // 現在時間に、7日分（JavaScriptの時間単位は1/1000秒）足す。
    exp.setTime(exp.getTime()+1000*60*60*24*7);

    ckstr = escape(cookies[0]);

    i = 1;
    //%00はnull
    while (cookies[i]){
        ckstr += "%00" + escape(ckary[i]);
        i++;
    }

    //alert(ckstr);
    document.cookie = "au-run=" + ckstr + "; path=/ ; expires=" + exp.toGMTString();
}


/**
 * cookieを呼び出したりする関数getck()の宣言
 *
 */
var getCookie = function()
{

//	cklng = document.cookie.length ;
    var cookies = document.cookie.split("; ");

    var ckstr = "";


    i = 0;
    while (cookies[i]){
        if (cookies[i].substr(0,7) == "au-run="){
            ckstr = cookies[i].substr(7,cookies[i].length);
            break;
        }
        i++;
    }

    //alert(cookies[i]);

    cookies = ckstr.split("%00");

    return cookies ;
}


/**
 * 日付の整形 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);
    }
}


/**
 *投稿した人のみ、投稿ボタン
 *
 */
function setNowVoteButton( enquete_question_id, question )
{
    if( enquete_question_id == undefined ){
        return ;
    }
    if( question == undefined ){
        var question = $F('question_value') ;
    }

    // 投稿した人のみ、投稿ボタン
    var cookies = getCookie();
    if( cookies ){
        if( cookies[0] == enquete_question_id ){
            document.getElementById('enquete_result').innerHTML = '<p>現在の投票結果を見る：<br /><a href="javascript:void(0)" onClick="getNowResult()">' + question + '</a></p>';
        }
    }
}


function CHK_STRLength(strLine,strLenCnt){
    var ix_str,strcnt=0;
    for(ix_str=0;ix_str<strLine.length;ix_str++){
        if(escape(strLine.charAt(ix_str)).length >= 4 ) strcnt+=2;
        else strcnt++;
    }

    //文字数オーバー？
    if(strcnt>strLenCnt){
        return false;
    }else{
        return true;
    }
}

