function crtXMLHttpReq(){
    var xmlHttpInst = null;
    try{
        xmlHttpInst = new XMLHttpRequest();
    }
    catch( e ){
        try{
            xmlHttpInst = new ActiveXObject( "Msxml2.XMLHTTP" );
        }
        catch( e ){
            try{
                xmlHttpInst = new ActiveXObject( "Microsoft.XMLHTTP" );
            }
            catch( e ){
                return null;
            }
        }
    }
    return xmlHttpInst;
}

function setField( param )
{
    var selectList = document.selectForm.selectbtn;
    var value;
    for( idx = 0; idx < selectList.length; idx++ ){
        if( selectList[ idx ].checked ){
            value = selectList[ idx ].value;
            break;
        }
    }

    var renderItem = "";
    var xHttpInst  = crtXMLHttpReq();
    if ( xHttpInst ){
        var sendUrl = 'http://mojalog.com/mojascript/generator/answer.xml';
        xHttpInst.onreadystatechange = function(){
            if ( xHttpInst.readyState == 4 ){
                var xmlData = xHttpInst.responseXML;
                var formList = xmlData.getElementsByTagName( "field" );
                var itemList = formList[ param ].getElementsByTagName( "description" );
                renderItem = itemList[ value ].childNodes[ 0 ].nodeValue;
            }
        }
        xHttpInst.open( "GET", sendUrl, false );
        xHttpInst.send( null );
        $( "setField" ).innerHTML = $( "setField" ).innerHTML +  '<p style="line-height: 180%;">' + renderItem + '</p><br /><br />';
    }
}

function getForm( param )
{
    // if start
    if( param == 0  ){
        $( "setField" ).innerHTML = '';
    }
    // if end
    else if( param >= 4 ){
        $( "curform" ).innerHTML = '<table><tr><td>' + 'できた（ﾟ∀ﾟ）！' + 
        '</td></tr><tr><td align="left"><input type="button" value="もう１回言い訳してみる（ﾟ３ﾟ）" onclick="getForm( 0 )" /></td></tr></table></form>';
        return;
    }

    var renderItem = "";
    var xHttpInst  = crtXMLHttpReq();
    if ( xHttpInst ){
        var sendUrl = 'http://mojalog.com/mojascript/generator/question.xml';
        xHttpInst.onreadystatechange = function(){
            if ( xHttpInst.readyState == 4 ){
                var xmlData = xHttpInst.responseXML;
                var formList = xmlData.getElementsByTagName( "form" );
                var titleVal = formList[ param ].getElementsByTagName( "title" )[ 0 ].childNodes[ 0 ].nodeValue;
                var itemList = formList[ param ].getElementsByTagName( "description" );
                var itemLen = itemList.length;
                for( idx = 0; idx < itemLen; idx++ ){
                    renderItem = renderItem + 
                    '<tr><td><input type="radio" name="selectbtn" value="' + idx + '" ' + 
                    ( ( idx == 0 ) ? 'checked="checked"' : '' ) + 
                    '/>' + itemList[ idx ].childNodes[ 0 ].nodeValue + '</td></tr>'
                }
                renderItem = '<b>Q' + ( param + 1 ) + '.' + titleVal + '</b><br /><table>'+ renderItem + '</table>';
            }
        }
        xHttpInst.open( "GET", sendUrl, false );
        xHttpInst.send( null );
        $( "curform" ).innerHTML = '<form name="selectForm"><table><tr><td>' + renderItem + 
                                    '</td></tr><tr><td align="left"><input type="button" value="＞次へ（ﾉ∀`）" ' + 
                                    'onclick="setField(' + param + ');getForm(' + ( param + 1 ) + ')"></td></tr></table></form>';
    }
}

function $( param )
{
    return document.getElementById( param );
}
