function configureExportButton( element )
{
    var form = element.form;

    var checkCount = 0;
    var radioCount = 0;
    for ( var i = 0; i < form.elements.length; i++ )
        if ( form.elements[i].type == "checkbox" && form.elements[i].checked )
            checkCount++;
        else if ( form.elements[i].type == "radio" && form.elements[i].checked )
            radioCount++;
    form.elements['exportButton'].disabled = (checkCount == 0 || radioCount == 0);
}

function startDownload( exportFile )
{
    window.location.replace( exportFile );
}

var exportTimer = null;

function exportProgress()
{
    var tickerText = $('exportProgressTicker').get('text');
    if ( tickerText.length < 1 || tickerText.length > 4 )
        $('exportProgressTicker').set( 'text', '.' );
    else
        $('exportProgressTicker').appendText( '.' );
}

function exportResponse( respObj, respText )
{
    window.location.replace( thisUrl+'?view='+currentView+'&'+eidParm+'&exportFile='+respObj.exportFile+'&generated='+((respObj.result=='Ok')?1:0) );
}

function exportEvent( form )
{
    var parms = 'view=request&request=event&action=export';
    parms += '&'+$(form).toQueryString();
    var query = new Request.JSON( { url: thisUrl, method: 'post', data: parms, onSuccess: exportResponse } );
    query.send();
    $('exportProgress').removeClass( 'hidden' );
    $('exportProgress').setProperty( 'class', 'warnText' );
    $('exportProgressText').set( 'text', exportProgressString );
    exportProgress();
    exportTimer = exportProgress.periodical( 500 );
}

function initPage()
{
    configureExportButton( $('exportButton') );
    if ( exportReady )
    {
        startDownload.pass( exportFile ).delay( 1500 );
    }
}

window.addEvent( 'domready', initPage );
