var ResultList = (function(){
    var url = '';
    var resulturl = '';
    var time = 0;
    var page = 1;
    return {
        setUrl : function(v){
            url = v;
        },
        setResultUrl : function(v){
            resulturl = v;
        },
        setPage : function(v){
            page = v;
            ResultList.getData(true);
        },
        goBack : function(v){
            page--;
            if (page < 1) {
                page = 1;
            }
            ResultList.getData(true);
        },
        goNext : function(v){
            page++;
            ResultList.getData(true);
        },
        selectNums : function(){
            var num = document.getElementById('num');
            if(num.checked == true){
                ResultList.getData();
            } else {
                ResultList.getData(true);
            }
        },
        selectSet : function(){
            var set = document.getElementById('set');
            if(set.checked == true){
                ResultList.getData();
            } else {
                ResultList.getData(true);
            }
        },
        getData : function(reset){
            var now = (new Date()).getTime();
            if (now - time < 400) {
                return false;
            }
            time = now;
            
            var numlist = document.getElementById('numlist');
            var setlist = document.getElementById('setlist');
            
            var nums = [];
            for(i = 0; i < numlist.length; i++){
                if (numlist.options[i].selected) nums.push(numlist.options[i].text);
            }
            var numlists = nums.join(",");
            
            var setballs = [];
            for(i = 0; i < setlist.length; i++){
                if (setlist.options[i].selected) setballs.push(setlist.options[i].text);
            }
            var setball = setballs.join(",");
            
            if (!reset) {
                page = 1;
            }
            
            var param = '';
            
            param += 'limit=' + document.getElementById('limit').value;
            param += '&page=' + page;
            param += '&order=' + document.getElementById('order').value;
            param += '&order_type=' + document.getElementById('order_type').value;
            param += '&set_type=' + document.getElementById('set_type').value;
            param += '&view_type=' + document.getElementById('view_type').value;
            
            param += '&odd=' + document.getElementById('odd').checked;
            param += '&co=' + document.getElementById('co').checked;
            param += '&max=' + document.getElementById('max').checked;
            param += '&continue=' + document.getElementById('continue').checked;
            
            param += '&num=' + document.getElementById('num').checked;
            param += '&set=' + document.getElementById('set').checked;
            param += '&numlist=' + numlists;
            param += '&setball=' + setball;
                    
            $.ajax({
                url: url,
                async: false,
                dataType: 'json',
                data: param,
                beforeSend : function (){
                    $('#display').html('<img src="/images/loading.gif" />データ取得中…');
                },
                error : function(){
                    alert('エラーが発生しました。');
                    $('#display').html('エラーが発生しました。');
                },
                success: function (data) {
                    setTimeout(function(){
                    var html = '<table id="resultlist">';
                    html += '<colgroup class="result_id"></colgroup>';
                    html += '<colgroup class="result_n1"></colgroup>';
                    html += '<colgroup class="result_n2"></colgroup>';
                    html += '<colgroup class="result_n3"></colgroup>';
                    html += '<colgroup class="result_n4"></colgroup>';
                    html += '<colgroup class="result_n5"></colgroup>';
                    html += '<colgroup class="result_n6"></colgroup>';
                    html += '<colgroup class="result_nbo"></colgroup>';
                    html += '<colgroup class="result_set"></colgroup>'
                    html += '<colgroup class="result_sum"></colgroup>';
                    html += '<tr>';
                    html += '<th>回</th>';
                    html += '<th colspan="6">本数字</th>';
                    html += '<th>ボ数字</th>';
                    html += '<th>セット球</th>';
                    html += '<th>合計</th>';
                    html += '</tr>';
                    
                    var status;
                    if (data.length > 0) {
                        status = data[0];
                        delete(data[0]);
                        for (var i in data) {
                            html += '<tr>';
                            html += '<td class="' + data[i].class_id + '"><a href="' + resulturl + '/' + data[i].id + '">第' + data[i].id + '回</td>';
                            html += '<td class="' + data[i].class_n1 + '">' + data[i].n1 + '</td>';
                            html += '<td class="' + data[i].class_n2 + '">' + data[i].n2 + '</td>';
                            html += '<td class="' + data[i].class_n3 + '">' + data[i].n3 + '</td>';
                            html += '<td class="' + data[i].class_n4 + '">' + data[i].n4 + '</td>';
                            html += '<td class="' + data[i].class_n5 + '">' + data[i].n5 + '</td>';
                            html += '<td class="' + data[i].class_n6 + '">' + data[i].n6 + '</td>';
                            html += '<td class="' + data[i].class_nbo + '">' + data[i].nbo + '</td>';
                            html += '<td class="' + data[i].class_set + '">' + data[i].set + '</td>';
                            html += '<td>' + data[i].sum + '</td>';
                            html += '</tr>';
                        }
                    } else {
                        html += '<tr>';
                        html += '<td colspan="10">該当する結果がありません。</td>';
                        html += '</tr>';
                    }
                    html += '</table>';
                    
                    if (status) {
                        var pager = '<table class="pager"><tr>';
                        if (status.page != 1) {
                            pager += '<td class="prev"><input type="button" id="back" value="最初" onClick="ResultList.setPage(1);this.blur()"></td>';
                        } else {
                            pager += '<td class="prev"></td>';
                        }
                        if (status.page != 1) {
                            pager += '<td class="prev"><input type="button" id="back" value="前へ" onClick="ResultList.goBack();this.blur()"></td>';
                        } else {
                            pager += '<td class="prev"></td>';
                        }
                        if (status.all != status.page) {
                            pager += '<td class="next"><input type="button" id="next" value="次へ" onClick="ResultList.goNext();this.blur()"></td>';
                        } else {
                            pager += '<td class="next"></td>';
                        }
                        if (status.all != status.page) {
                            pager += '<td class="next"><input type="button" id="next" value="最後" onClick="ResultList.setPage(' + status.all + ');this.blur()"></td>';
                        } else {
                            pager += '<td class="next"></td>';
                        }
                        pager += '</tr></table>';
                        html = pager + html + pager;
                    }
                    $('#display').html(html);
                    }, 300);
                }
            });
        }
    }
})();