﻿/* 投票时，获取单选和多选值，获取值时，不做未选提示 */
function GetChkBoxValues(){
    var names = '';
    var chks = document.getElementsByName('chkbox');
    for(i=0; i<chks.length; i++){
        if(chks[i].checked){
            names += ','+ chks[i].value;
        }
    }
    return names;
}

function GetRadioValues(qids){
    var names = '';
    if(qids.indexOf(',') != -1){
        qids = qids.substring(1, qids.length);
    }
    var qidsSplit = qids.split(',');
    for(var j=0; j<qidsSplit.length; j++){
        var rdName = 'rd_' + qidsSplit[j];  
        var rds = document.getElementsByName(rdName);
        for(var i=0; i<rds.length; i++){
            if(rds[i].checked){
                names += ','+ rds[i].value;
            }
        }
    }
    return names;
}
// 获取问题ID集合
function GetQuestionIds(){
    // 获取问题属性列表
    // 0：问题ID、1：问题类型、2：是否必答
    var ids = '';
    var questionIds = document.getElementsByName('hdQuestion');
    for(var i=0; i<questionIds.length; i++){
        var questionIdsSplit = questionIds[i].value.split(',');
        ids += ',' + questionIdsSplit[0];
    }
    return ids;
}

function CheckVote(o){
    var Survey_IncompleteAnswer = GetResources('Survey_IncompleteAnswer');
    var chkV = GetChkBoxValues();                                            //获取所有复选框值
    var qIds = GetQuestionIds();
    var rdV = GetRadioValues(qIds);                                          //获取所有单选按钮值
    var questions = document.getElementsByName('hdQuestion');                //获取问题属性列表；0：问题ID、1：问题类型、2：是否必答
    var voteValue = '';

    for(var i=0; i<questions.length; i++){
        var index = '';
        var questionsSplit = questions[i].value.split(',');
        var hdName = 'hdRequired_' + questionsSplit[0];                   
        var required = document.getElementsByName(hdName);
        for(var j=0; j<required.length; j++){                                //检查答案ID，是否在已选值中
            switch (questionsSplit[1]){
                case '1':
                    index += ',' + rdV.indexOf(required[j].value);          
                    break;
                case '2':
                    index += ',' + chkV.indexOf(required[j].value);
                    break;
            }
        }
        if(o != 'front'){
            if(questionsSplit[2] == 'True'){                                 //当为必答时，检查每个问题下是否有一个答案
                switch (questionsSplit[1]){
                    case '1':
                    case '2':
                        var counts = 0;
                        var indexSplit = index.split(',');
                        for(var k=1; k<indexSplit.length; k++){
                            if(indexSplit[k] != '-1'){
                                counts++;
                            }
                        }
                        break;
                    case '3':
                    case '4':                                                   //检查输入值是否为空
                        var clength = document.getElementById('tbContent_' + questionsSplit[0]).value.length;
                        var lenCounts = 0;
                        if(clength > 0){
                            lenCounts++;
                        }
                        break;
                }
            }
        }else{
            switch (questionsSplit[1]){
                case '1':
                case '2':
                    var counts = 0;
                    var indexSplit = index.split(',');
                    for(var k=1; k<indexSplit.length; k++){
                        if(indexSplit[k] != '-1'){
                            counts++;
                        }
                    }
                    break;
                case '3':
                case '4':                                                   //检查输入值是否为空
                    var clength = document.getElementById('tbContent_' + questionsSplit[0]).value.length;
                    var lenCounts = 0;
                    if(clength > 0){
                        lenCounts++;
                    }
                    break;
            }
        }
    }
    
    voteValue = chkV + rdV;
    
    if(counts > 0){
        voteValue = voteValue.substring(1);
        return voteValue;
    }else if(lenCounts > 0){
        return true;
    }else{
        return false;
    }
}

function CheckItem(){
    var items = document.getElementsByName('hdPropertyItemId');
    var Survey_PropertyItemIsNull = GetResources('Survey_PropertyItemIsNull');
    var Base_OutOfData = GetResources("Base_OutOfData");
    for(var i=0; i<items.length; i++){
        var itemsSplit = items[i].value.split(',');
        var itemContent = document.getElementById("tbProperty_" + itemsSplit).value;
        var valueRegex = document.getElementById("hdValueRegex_" + itemsSplit).value;
        var alertConetnt = document.getElementById("hdAlertContent_" + itemsSplit).value;
        
        if(itemContent.length == 0){
            alert(Survey_PropertyItemIsNull);
            document.getElementById("tbProperty_" + itemsSplit).select();
            document.getElementById("tbProperty_" + itemsSplit).focus();
            return false;
        }else{
            if(valueRegex.length > 0){
                var p = eval(valueRegex);
                if(!p.test(itemContent)){
                    switch (alertConetnt){
                        case 'num':
                           alertConetnt =  GetResources("Base_NumberError");
                           break;
                        case 'email':
                           alertConetnt =  GetResources("Base_EmailError");
                           break;
                        case 'phone':
                        case 'mobile':
                           alertConetnt =  GetResources("Base_TelError");
                           break;
                    }
                    alert(alertConetnt);
                    document.getElementById("tbProperty_" + itemsSplit).select();
                    document.getElementById("tbProperty_" + itemsSplit).focus();
                    return false;
                }
            }
        }
    }
    return true;
}

