// prepare the form when the DOM is ready 
$(document).ready(function() {
	var siteURL = $('#survey-url').text() ;

	if (siteURL == '/')
	{
		siteURL = '' ;
	}

    var options = { 
        target:        '#survey',   // target element(s) to be updated with server response 
 		beforeSubmit:  showRequest,  // pre-submit callback 
        success:       showResponse  // post-submit callback 
 
        // other available options: 
        //url:       url         // override for form's 'action' attribute 
        //type:      type        // 'get' or 'post', override for form's 'method' attribute 
        //dataType:  null        // 'xml', 'script', or 'json' (expected server response type) 
        //clearForm: true        // clear all form fields after successful submit 
        //resetForm: true        // reset the form after successful submit 
 
        // $.ajax options can be used here too, for example: 
        //timeout:   3000 
    }; 
 
    // bind to the form's submit event 
    $('#survey-form').submit(function() { 
        // inside event callbacks 'this' is the DOM element so we first 
        // wrap it in a jQuery object and then invoke ajaxSubmit
        
        $(this).ajaxSubmit(options); 
 
        // !!! Important !!! 
        // always return false to prevent standard browser submit and page navigation 
        return false; 
    });
    
    $('#survey-reset').click(function(){
    	processRequest(
    		siteURL + '/survey/reset/' + $(this).attr('name')
    	) ;
    }) ;
    
    $('#survey-result').click(function(){
    	processRequest(
    		siteURL + '/survey/result/' + $(this).attr('name')
    	) ;
    }) ;
    
    if ($('#survey-id').attr('value'))
    {
     processRequest(
    		siteURL + '/survey/post/' + $('#survey-id').attr('value')
    	) ;
    }
});

function showRequest(formData, jqForm, options) { 
   
   	$('#survey').hide();
	$('#loading').show();
	
	return true; 
} 

function showResponse(responseText, statusText)  {
	$('#loading').hide();
	$('#survey').show();
} 

function processRequest(uri)
{
	empty = '';

	$().ajaxSend(function(){
		$('#survey').hide(); 
		$('#loading').show();
	});  
   
	$().ajaxStop(function(){  
		$('#loading').hide();  
	});

	$.ajax({
		url: uri,
		success: function(result){
			$('#survey').html(result) ;
			$('#survey').show();
     		},
     	error: function(){
     		$('#loading').hide();
     		$('#survey').text(empty);
     	}
	}) ;
}



