/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

var surveyQuestions = {
    currentNextButton: null,
    currentQuestion: 0,
    currentStep: 0,
    postThankYou: function(newWindow, notrack){
        
        /* Count questions answered with yes */
		
		var lastQuestion = parseInt(this.currentQuestion) + 1;
		var totalYesValues = 0;
		for(var i=1; i <= lastQuestion; i++) {
			jQuery('[name="vraag'+i+'"]').each(function() {
				var elementTag = jQuery(this).prop("tagName");
				var elementType = jQuery(this).attr("type");

				if(elementTag == "INPUT" && (elementType == "radio" || elementType == "checkbox")) {
					if(jQuery(this).is(':checked') && jQuery(this).val().toLowerCase().substring(0, 2) == "ja") {
						totalYesValues += 1;
					}
				}
				else {
					if(jQuery(this).val().toLowerCase().substring(0, 2) == "ja") {
						totalYesValues += 1;
					}
				}
			});			
		}

		
		var thankyouForm = jQuery('<form />').attr('method','post').attr('action','/enquetes/bedankpagina/index.php?id='+idNumberEnquete);
        
        if(newWindow){
            jQuery(thankyouForm).attr('target','_blank');
        }else{
            jQuery(window).unbind("beforeunload");
        }
        
        jQuery('<div />').css({'display':'none'}).append(thankyouForm).appendTo('body');
        if(notrack == true){
            jQuery('<input />').attr('type','hidden').attr('name','notracking').val('1').appendTo(thankyouForm);
        }
        jQuery("form[name='formStep1'] input").appendTo(thankyouForm);
        jQuery("form[name='formStep1'] select").appendTo(thankyouForm);

        jQuery("form[name='formStep2'] input").appendTo(thankyouForm);
        jQuery("form[name='formStep2'] select").appendTo(thankyouForm);
        
        jQuery("form[name='formStepExtraData'] input").appendTo(thankyouForm);

		jQuery('<input />').attr('type', 'hidden').attr('name', 'totalYesValues').val(totalYesValues).appendTo(thankyouForm);

        jQuery(thankyouForm).submit();
        
    },
    
    
    nextQuestion: function(){
        jQuery(window).unbind("beforeunload").bind("beforeunload",function(e){
//            var exitPageText = "Uw deelname is bevestigd.",
//            $_GET = getGetRequest();
//                  
//            if( $_GET["dtg"] == 'ja2' ) {
            var advertisers = collectAdvertisers(),
                coregsStep1 = collectCoregs(1),
                coregsStep2 = collectCoregs(2);
exitPageText = "Hartelijk dank voor uw bezoek aan onze website.\n\
Indien u een prijs heeft gewonnen zullen we contact met u opnemen.\n\
\n\
De door u in de enqu\u00EAte ingevulde persoonsgegevens worden opgeslagen in het bestand van Scoot. De persoonsgegevens zullen in overeenstemming met het Privacystatement worden verwerkt.\n\
In de enqu\u00EAte heeft u aangegeven dat u van de volgende adverteerders informatie wenst te ontvangen: \n\
\n\
"+coregsStep1+"\n\
"+coregsStep2+"\n\n\
"+advertisers;
//            }
            
            alert(exitPageText);
        });
        var widget = this;    
        
        //only one page?
        if(jQuery('#questionsContainer > div').length-1 == 0){
            var arrLocalQuestions = jQuery.unique(
            jQuery("#question"+parseInt(this.currentQuestion+1)+"Container").find('input[name^="vraag"]').filter(function() {
               return jQuery(this).attr("name").match(/^vraag\d+$/); 
            }).map(function(){
               return parseInt(jQuery(this).attr("name").replace('vraag',''));
            }).get()).sort();
            
            var wrong = 0;
                
            for(var i = 0; i < arrLocalQuestions.length;i++ ){
                if(this.validateQuestion(arrLocalQuestions[i])){
                    jQuery('#question'+arrLocalQuestions[i]).css ({'color': ''});
                    if( wrong != 1 )
                        wrong = 0;
            }else{
                //show errors
                    jQuery('#question'+arrLocalQuestions[i]).css ({'color': '#FF3333'});
                    wrong = 1; 
                }
            };
                 
            if(wrong == 1) {
                 jQuery('#buttonNextQuestion'+parseInt(this.currentQuestion+1)).tooltip('La question n\u00B4a pas \u00E9t\u00E9 enti\u00E8rement compl\u00E9t\u00E9e.');
                 resetClickButton();
                 widget.registerNextEvent();
                 
                 return false;
            }
        }
        
        if(jQuery('#questionsContainer > div').length-1 == this.currentQuestion){
            var arrLocalQuestions = jQuery.unique(
            jQuery("#question"+parseInt(this.currentQuestion+1)+"Container").find('input[name^="vraag"]').filter(function() {
               return jQuery(this).attr("name").match(/^vraag\d+$/); 
            }).map(function(){
               return parseInt(jQuery(this).attr("name").replace('vraag',''));
            }).get()).sort();
            
            var wrong = 0;
                
            for(var i = 0; i < arrLocalQuestions.length;i++ ){
                if(this.validateQuestion(arrLocalQuestions[i])){
                    jQuery('#question'+arrLocalQuestions[i]).css ({'color': ''});
                    if( wrong != 1 )
                        wrong = 0;
            }else{
                //show errors
                    jQuery('#question'+arrLocalQuestions[i]).css ({'color': '#FF3333'});
                    wrong = 1; 
                }
            };
                 
            if(wrong == 1) {
                 jQuery('#buttonNextQuestion'+parseInt(this.currentQuestion+1)).tooltip('La question n\u00B4a pas \u00E9t\u00E9 enti\u00E8rement compl\u00E9t\u00E9e.');
                 resetClickButton();
                 widget.registerNextEvent();
                 
                 return false;
            }
           
            var formdata = jQuery("form[name='formStep1'], form[name='formStep2'], form[name='question"+ (this.currentQuestion*1+1)+"Form']");
            
            jQuery.post('/enquetes/enqueteMBE/postscripts/handleQuestion.php?id='+idNumberEnquete,
            jQuery(formdata).serialize(),function(xml){
                if(jQuery('result',xml).attr('success') == 'true'){
                   widget.postThankYou(false, (jQuery('result',xml).attr('duplicate') == 'true')); 
                }else{
                    //show errors
                 var enqueteId = '#question'+(jQuery('result',xml).attr('question'));
                 jQuery('#question'+enqueteId).css ({'color': '#FF3333'});
                 jQuery('#buttonNextQuestion'+parseInt(this.currentQuestion+1)).tooltip('De met rood gemarkeerde vragen zijn niet (correct) ingevuld.');
                 resetClickButton();
                 widget.registerNextEvent();
                }
            });

        } else {
            
            
            var arrLocalQuestions = jQuery.unique(
            jQuery("#question"+parseInt(this.currentQuestion+1)+"Container").find('input[name^="vraag"]').filter(function() {
               return jQuery(this).attr("name").match(/^vraag\d+$/); 
            }).map(function(){
               return parseInt(jQuery(this).attr("name").replace('vraag',''));
            }).get()).sort();
            
            var wrong = 0;
                
            for(var i = 0; i < arrLocalQuestions.length;i++ ){
                if(this.validateQuestion(arrLocalQuestions[i])){
                    jQuery('#question'+arrLocalQuestions[i]).css ({'color': ''});
                    if( wrong != 1 )
                        wrong = 0;
                }else{
                    //show errors
                    jQuery('#question'+arrLocalQuestions[i]).css ({'color': '#FF3333'});
                    wrong = 1; 
                }
            };

            if(wrong == 1) {
                 jQuery('#buttonNextQuestion'+parseInt(this.currentQuestion+1)).tooltip('De met rood gemarkeerde vragen zijn niet (correct) ingevuld.');
                 resetClickButton();
                 widget.registerNextEvent();
            }
            
            if(wrong == 0) {
                 this.postQuestion();
            }
            
            
            
             //this.postQuestion();
        }
        
    },
    validateQuestion: function(myPquestionNumber){
             
         return ((jQuery('input[name="vraag'+parseInt(myPquestionNumber)+'"]:checked').val() != undefined) ||
               (jQuery('input[name="vraag'+parseInt(myPquestionNumber)+'"]:hidden').val() != undefined && 
               jQuery('input[name="vraag'+parseInt(myPquestionNumber)+'"]:hidden').val() != '')
            );
    },
    postQuestion: function(){
        var formdata = jQuery("form[name='formStep1'], form[name='formStep2'], form[name='question"+ (this.currentQuestion*1+1)+"Form']");
        var widget = this;
        
        
        jQuery.post('/enquetes/enqueteMBE/postscripts/handleQuestion.php?id='+idNumberEnquete, 
            jQuery(formdata).serialize(),
            function(xml){
               if(jQuery('result', xml).attr('success') == 'false') {
                     jQuery('#buttonNextQuestion'+parseInt(widget.currentQuestion+1)).tooltip('De met rood gemarkeerde vragen zijn niet (correct) ingevuld.');
                    widget.registerNextEvent();
               } else {
                   if(jQuery('#tooltip').css('display') != 'none'){
                        jQuery('#tooltip').hide('drop', { direction: 'up' }, function() {
                            jQuery(widget).remove();
                        });
                    }
                   
                    jQuery('#questionsContainer  > div:eq('+widget.currentQuestion+')').fadeOut('fast', function(){ // you can add a callback to animations that run when the effect is completed
                      
                        widget.currentQuestion++;
                        
                        step = parseInt(widget.currentQuestion+1);
                        totalSteps = jQuery('#questionsContainer > div').length;
                        width = parseFloat(parseFloat(step/totalSteps)*100);

                        jQuery('.progress').css({ 'width' : width+'%' });
                        
                        jQuery('#questionsContainer > div:eq('+widget.currentQuestion+')').fadeIn('fast'); // new appears after old is removed and old/new have been swapped
                    });
                   
                    //jQuery('#questionsContainer  > div:eq('+widget.currentQuestion+')').css({'display':'none'});
                    //widget.currentQuestion++;
                    //jQuery('#questionsContainer > div:eq('+widget.currentQuestion+')').css({'display':'block'});
                    jQuery('#questionsContainer').css({'height':'auto'});
               }
            }
        )
        
        
    },
    postLastQuestion: function(){
        
    },
    registerNextEvent: function(){
        jQuery(surveyQuestions.currentNextButton).one('click',function(){
            jQuery(this).html('<div class="loading">'+jQuery(this).html()+'</div>');
            surveyQuestions.currentNextButton = this;
            surveyQuestions.nextQuestion();
        });
    }
    
    
}

jQuery(document).ready(function(){       
    jQuery('#questionsContainer > div:first').css({'display':'block'});
    
    var step = 1;
    var totalSteps = jQuery('#questionsContainer > div').length;
    var width = parseFloat(parseFloat(step/totalSteps)*100);

    jQuery('.progress').css({'width' : width+'%'});
    
    jQuery('#questionsContainer div.questionButtonNext').each(function(){
       jQuery(this).one('click', function(){
           
            jQuery(this).html('<div class="loading">'+jQuery(this).html()+'</div>');
            surveyQuestions.currentNextButton = this;
            surveyQuestions.nextQuestion();
       });
    });
});

