//问卷
//李志杰 2007.9 
//wuchang@guet.edu.cn

var sfPageIndex = 0;
var domPages =null;     //页
var domQuestions =null; //问题
var domQuestionsTypes =null;    //问题类型hide域

//上一页
function btnSurveyPrevPage_click( sender )
{    
    //sfjqPages
    $(domPages[sfPageIndex]).hide();
    $(domPages[--sfPageIndex]).show();

    if( sfPageIndex ==0 )
    {
        sender.disabled = true;
    } 
    $('#btnSurveyNextPage').get(0).disabled = false;
    
    if( window.scrollTo )
    {
        window.scrollTo(0,0);
    }
}
//下一页
function btnSurveyNextPage_click( sender )
{
    $(domPages[sfPageIndex]).hide();
    $(domPages[++sfPageIndex]).show();
    
    if( sfPageIndex >= domPages.length-1 )
    {
        sender.disabled = true;
    }    
    $('#btnSurveyPrevPage').get(0).disabled = false;
    
    if( window.scrollTo )
    {
        window.scrollTo(0,0);
    }
}

//获取页、问题、问题类型等对象
//显示第一页
$(function(){
    domPages = $('.surveyPage').get() 
    domQuestions = $('.question').get() ;
    domQuestionsTypes = $('.txtQuestionType').get();
    
    
    $( domPages[0] ).show();
    
    //如果只有1页，则隐藏分页按钮
    if( domPages.length >1 )
    {
        $('#btnSurveyNextPage').attr('disabled',false);
        $('#btnSurveyNextPage').show();
        $('#btnSurveyPrevPage').show();
    }else
    {
        $('#btnSurveyNextPage').hide();
        $('#btnSurveyPrevPage').hide();
    }
    
});

function showMsg(msg )
{
    $('#msg').html( msg );
}


var feedback;

function btnSurveySubmit_click(sender)
{
    
    sender.disabled = true;
    //sender.value = '正在提交，请稍候...';
    feedback   = new Object();
    feedback.surveyFormGuid  = $('#txtSurveyFormGuid').val();
    feedback.questions  = new Array();
    //feedback.questions.items = new Array();
    
    checkResult(0);
}
function checkResult( index )
{
    showMsg( ['正在验证输入：',
        (index+1),
        ' / ',
        domQuestions.length,
        domQuestionsTypes[index].value
         ].join('')
    );
    
    var qType = domQuestionsTypes[index].value;
    var domQ = domQuestions[index];
    var jqQ = $( domQ );
    var isVal=false;
    
//    var qFeedback = new Object();
//    qFeedback.answers = new Object();
//    qFeedback.answers.items = new Array();
    var qFeedback = new Object();
    qFeedback.answers = new Array();
    
    try
    {
        //if( /CHOICE_RADIO|CHOICE_CHECKBOX/ig.test(qType)  )
        if( 'CHOICE_RADIO' == qType || 'CHOICE_CHECKBOX' == qType  )
        {
            jqQ.find('.surveyChoices').each( function(i){
                if( this.checked ) isVal = true;
                qFeedback.answers.push( this.checked?1:0 );
            });
           
        }else if( 'CHOICE_DROPDOWN' == qType )
        {
            var sel = jqQ.find('.surveyChoices').get(0);
            var ops = sel.options;
            for( var i=1,len = ops.length; i<len; i++)
            {
                if( ops[i].selected ) isVal = true;
                qFeedback.answers.push( ops[i].selected ?1:0 );
            }
            
        }else  if( 'TEXT' == qType )
        {
            var txt = $.trim( $('.inputText').val()  );
            isVal = txt.length>0;
            qFeedback.text= txt ;
        }else if( 'MAXTRIX_RADIO' == qType || 'MAXTRIX_CHECKBOX' == qType)
        {
            var rowCount = Number( jqQ.find('.txtMaxtrixRowCount').val() );
            if( isNaN( rowCount ) )
            {
                throw new Error( ['矩阵行数域出错。题目：',(index+1)].join(''));
            }
            for( var i=0; i< rowCount; i++)
            {
                isVal = false;
                var row = new Object();
                row.cols = new Array();
                jqQ.find( 'input[@name=q_a_'+index+'_'+i+']').each( function(){
                    row.cols.push( this.checked ? 1:0  ) 
                    isVal = this.checked || isVal;
                });
                
                qFeedback.answers.push( row );
                
                if( isVal== false )
                {
                    throw new Error(['第',(index+1),'题，第',(i+1),'行未选择!'].join(''));
                }
            }
        }else
        {
            throw new Error(['第',(index+1),'题，未知题目类型：',qType].join(''));
            return;
        }
        
        if( isVal== false )
        {
            throw  new Error(['第',(index+1),'题未选择!'].join(''));
        }
        
    }catch( ex )
    {   
        alert('出错：\n' + ex.message);
        $('#btnSurveySubmit').get(0).disabled = false;
        return ;
    }
    
    
    
    var jqAdditionalAnswer = jqQ.find('.inputAdditionalAnswer');
    if( jqAdditionalAnswer.length >0 )
    {
        var txt = $.trim( jqAdditionalAnswer.val() );
        if( txt.length>0)
        {
            qFeedback.text= $.trim( jqAdditionalAnswer.val() ); 
        }
    }
    
//    if( isVal==false)
//    {
//        alert( '第 ' + (index+1).toString() + ' 未选择。');
//        return false;
//    }
     
    feedback.questions.push(qFeedback);
    
    
    index++;
    if( index < domQuestions.length)
    {
        window.setTimeout(function(){
             checkResult(index);
        },0);
    }else
    {
        var obj = new Object();
        obj.feedback = feedback;
        var data = wuchang.toJSON( obj );
        //Sys.Debug.trace( data );
        $('#btnSurveySubmit').get(0).disabled = true;
        $.ajax( {url:'Submit.ashx',
            type:'Post',
            cache: false,
            async:false,
            data:'data='+ data ,
            error :function( request )
            {
				$('#btnSurveySubmit').get(0).disabled = false;
                var text = request.responseText;
                //text = text.split('</html>')[1];
                //Sys.Debug.trace('statusText:\n' + '(' + text + ')');
				showMsg( '提交出错，不能重复提交。' );
				var error = eval( '(' + text + ')' );
                var error = alert(error.Message);
                Sys.Debug.traceDump( error,'error' );
            },
            success:function( result )
            {
				$('#btnSurveySubmit').get(0).disabled = false;
                //Sys.Debug.trace('success:' + result );
				showMsg( '提交成功。谢谢参与！');
                alert("提交成功，感谢您的参与。");
                window.close();
            }
        });
//        try{
//            Sys.Debug.traceDump(feedback,'feedback');
//        }catch(e)
//        {
//        }
    }            
}











function randomChoice()
{
//    var q =$([
//    '<surveyForm>',
//	'    <version>1.0</version>',
//	'    <name>学生活动调查问卷</name>',
//	'    <description>为了给你的课余生活增添一分轻松和快乐，将上海地区网上人大的学生活动搞得有声有色，使同学们在网上人大快乐的学习，上海教学服务中心草拟了学生活动调查，请同学们认真填写。</description>',
//	'    <guid>0ea9f5be-b876-4981-bc2d-8ac85d313ddf</guid>',
//	'    <startDate>2007-09-28 22:40:02</startDate>',
//	'    <endDate>2007-10-28 22:40:02</endDate>',
//	'    <pages>',
//    '</surveyForm>',
//    ].join(''))
//    
//    Sys.Debug.trace( q.fin('name').text() );
//    return ;
    
    for( var index=0,len= domQuestions.length ; index<len; index++)
    {
        var qType = domQuestionsTypes[index].value;
        var domQ = domQuestions[index];
        var jqQ = $( domQ );
        
        if( 'CHOICE_RADIO' == qType  )
        {
            var jqc = jqQ.find('.surveyChoices')
            jqc.get( parseInt(jqc.length*Math.random()) ).checked = true;
        }if( 'CHOICE_CHECKBOX' == qType  )
        {
            var jqc = jqQ.find('.surveyChoices')
            var dom = jqc.get( parseInt(jqc.length*Math.random()) )
            dom.checked = !dom.checked
        }else if( 'CHOICE_DROPDOWN' == qType )
        {
            var jqc = jqQ.find('.surveyChoices')
            jqc.get(0).options[ parseInt( (jqc.length -1)*Math.random()) +1].selected = true;
        }else  if( 'TEXT' == qType )
        {
            //var d = new Date();
            //d.toLocaleString();
            $('.inputText').val(  'random value ' + parseInt( Math.random() *100) +' ' + (new Date()).toLocaleString() );
        }else if( 'MAXTRIX_RADIO' == qType )
        {
            var rowCount = Number( jqQ.find('.txtMaxtrixRowCount').val() );
            for( var i=0; i< rowCount; i++)
            {
                var jqc = jqQ.find( 'input[@name=q_a_'+index+'_'+i+']');
                jqc.get( parseInt( jqc.length*Math.random() ) ).checked = true;
            }
       
        }else if(  'MAXTRIX_CHECKBOX' == qType)
        {
            var rowCount = Number( jqQ.find('.txtMaxtrixRowCount').val() );
            for( var i=0; i< rowCount; i++)
            {
                var jqc = jqQ.find( 'input[@name=q_a_'+index+'_'+i+']');
                var pos = parseInt( jqc.length*Math.random() );
                jqc.get( pos  ).checked = !jqc.get( pos ).checked
            }
        }
    }  
    
    $('input.inputAdditionalAnswer').each(function(i){
        this.value =  'random value ' + parseInt( Math.random() *100) +' ' + (new Date()).toLocaleString()
    });      
}