﻿var Formsubmit = function($){
    var priv = {
    
        submitButtonClicked : false,
        errorHolderPrebook : '#prebook-send-errormsg',
        errorHolderCancellation : '#cancellation-send-errormsg',
        errorHolderSendReaction : '#sendreaction-errormsg',
    
        successPrebooking : function (result) {
	        location.href = resources.path_prefix + '/data/html/prebooking.aspx?success=true';
	        priv.submitButtonClicked = false;
	    },
	    
	    errorPrebooking : function (result) {
	        priv.showError('Er is een fout opgetreden', priv.errorHolderPrebook);
	        priv.submitButtonClicked = false;
	    },
	    
	    successCancellation : function (result) {
	        location.href = resources.path_prefix + '/data/html/cancellation.aspx?success=true';
	        priv.submitButtonClicked = false;
	    },
	    
	    errorCancellation : function (result) {
	        priv.showError('Er is een fout opgetreden', priv.errorHolderCancellation);
	        priv.submitButtonClicked = false;
	    },
	    
	    showError : function (errorMsg, errorHolder) {
	        priv.submitButtonClicked = false;
	        $(errorHolder).show();
	        $(errorHolder).html(errorMsg);
	    },
	    
	    errorSendReaction : function (result){
	        priv.showError('Er is een fout opgetreden', priv.errorHolderSendReaction);
	        
	        priv.submitButtonClicked = false;
	    },
	    
	    successSendReaction : function (result){	        
	        // reset input boxes
            $('#txtReaction').val('');
            $('#txtReactionFromName').val('');
            $('#txtReactionFromEmail').val('');
	        $('#sendReactionContent').hide();
	        $('#sendReactionMessage').show();
	        
	        priv.submitButtonClicked = false;
	    }
    };
    return {
	  sendReaction : function(){
            if(!priv.submitButtonClicked){ // make sure the email isnt send multiple times
                priv.submitButtonClicked = true;
                
                // input values
                var message = $('#txtReaction').val();
                var fromName = $('#txtReactionFromName').val();
                var fromEmail = $('#txtReactionFromEmail').val();
                
                var reg = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
                if(message == ''){
                    priv.showError('Gelieve een mening in te vullen.', priv.errorHolderSendReaction);
                }
                else if(fromEmail == '' || !reg.test(fromEmail)){
                    priv.showError('Het veld "je email" is niet correct ingevuld. Er mogen alleen letters en cijfers in en geen andere tekens.', priv.errorHolderSendReaction);
                }
                else {
                    $.ajax({
                        type: "POST",
                        url: resources.path_prefix + '/utilpages/ajax-sendreaction.ashx',
                        data: 'message='+message+'&fromName='+fromName+'&fromEmail='+fromEmail,
                        async: true,
            			
                        success : priv.successSendReaction,
                        error : priv.errorSendReaction
                    });
                }
            }
        },
    
        OnReady : function(){
             
        },
        
        sendCancellation : function () {
	        priv.sendCancellationClicked = true;
	        var title = $('#canc-title').val();              // * verplicht
	        var firstletter = $('#canc-firstletter').val();  // * verplicht
	        var middlename = $('#canc-middlename').val();
	        var lastname = $('#canc-lastname').val();        // * verplicht
	        var birthday = $('#canc-birthday').val(); 
	        var birthmonth = $('#canc-birthmonth').val(); 
	        var birthyear = $('#canc-birthyear').val(); 
	        var street = $('#canc-street').val();            // * verplicht
	        var streetnr = $('#canc-streetnr').val();        // * verplicht
	        var streetnrext = $('#canc-streetnrext').val();
	        var postal = $('#canc-postal').val();            // * verplicht
	        var city = $('#canc-city').val();                // * verplicht
	        var country = $('#canc-country').val();          // * verplicht
	        var phoneprivate = $('#canc-phoneprivate').val();
	        var phonework = $('#canc-phonework').val();
	        var email = $('#canc-email').val();             // * verplicht
	        var resnr = $('#canc-resnr').val();             // * verplicht
	        var accountnr = $('#canc-accountnr').val();         // * verplicht
	        var depdate =  $('#canc-depdate').val();
	        var party1 =  $('#canc-party1').val();
	        var party2 =  $('#canc-party2').val();
	        var party3 =  $('#canc-party3').val();
	        var party4 =  $('#canc-party4').val();
	        var party5 =  $('#canc-party5').val();
	        var party6 =  $('#canc-party6').val();
	        var party7 =  $('#canc-party7').val();
	        var party8 =  $('#canc-party8').val();
	        var dest =  $('#canc-dest').val();
	        var acco =  $('#canc-acco').val();
	        var reason =  $('#canc-reason').val();
	        var reasonextra =  $('#canc-reason-extra').val();
	        var bankname =  $('#canc-bankname').val();
	        var accountname = $('#canc-accountname').val();
	        var accountcity = $('#canc-accountcity').val();
	        var aanspraak = $('#canc-redenaanspraak').val();
	        var bijzonderheden = $('#canc-bijzonderheden').val();
	        var gogo = $('.canc-gogoverz:checked').val();
	        var cancellationfor = $('.allereizigers:checked').val();
	        var cancellationforsome = $('#annreizigers').val();
	        
	        var reg = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
	        var correctEmail = reg.test(email);
	        
	        if(title == '0') {
	            priv.showError('Er is geen aanhef ingevuld', priv.errorHolderCancellation);
	        } else if(firstletter == '') {
	            priv.showError('Er zijn geen voorletters ingevuld', priv.errorHolderCancellation);
	        } else if(lastname == '') {
	            priv.showError('Er is geen achternaam ingevuld', priv.errorHolderCancellation);
	        } else if(street == '') {
	            priv.showError('Er is geen straatnaam ingevuld', priv.errorHolderCancellation);
	        } else if(streetnr == '') {
	            priv.showError('Er is geen of een onjuist huisnummer ingevuld', priv.errorHolderCancellation);
	        } else if(postal == '') {
	            priv.showError('Er is geen postcode ingevuld', priv.errorHolderCancellation);
	        } else if(city == '') {
	            priv.showError('Er is geen woonplaats ingevuld', priv.errorHolderCancellation);
	        } else if(phoneprivate == '') {
	            priv.showError('Er is geen telefoonnummer ingevuld', priv.errorHolderCancellation);
	        } else if(resnr == '') {
	            priv.showError('Er is geen reserveringsnummer ingevuld', priv.errorHolderCancellation);
	        } else if(accountnr == '') {
	            priv.showError('Er is geen rekeningnummer ingevuld', priv.errorHolderCancellation);
	        } else if(email == '') {
	            priv.showError('Er is geen emailadres ingevuld', priv.errorHolderCancellation);
	        } else if(email != '' && !correctEmail) {
	            priv.showError('Er is een ongeldig emailadres ingevuld');
	        } else if(  (birthday != '0' || birthmonth != '0' || birthyear != '0') &&
	                    (birthday == '0' || birthmonth == '0' || birthyear == '0')) {
	            priv.showError('Er is een ongeldige geboortedatum ingevuld', priv.errorHolderCancellation);
	        } else {
	            // everything ok
	            
	            $.ajax({
		            type: "POST",
		            url: resources.path_prefix + '/utilpages/ajax-sendcancellation.ashx',
			        data:   'title='+title+
			                '&firstletter='+firstletter+
			                '&middlename='+middlename+
			                '&lastname='+lastname+
			                '&birthday='+birthday+
			                '&birthmonth='+birthmonth+
			                '&birthyear='+birthyear+
			                '&street='+street+
			                '&streetnr='+streetnr+
			                '&streetnrext='+streetnrext+
			                '&postal='+postal+
			                '&city='+city+
			                '&country='+country+
			                '&phoneprivate='+phoneprivate+
			                '&phonework='+phonework+
			                '&resnr='+resnr+
			                '&accountnr='+accountnr+
			                '&depdate='+depdate+
	                        '&party1='+party1+
	                        '&party2='+party2+
	                        '&party3='+party3+
	                        '&party4='+party4+
	                        '&party5='+party5+
	                        '&party6='+party6+
	                        '&party7='+party7+
	                        '&party8='+party8+
	                        '&dest='+dest+
	                        '&acco='+acco+
	                        '&reason='+reason+
	                        '&reasonextra='+reasonextra+
	                        '&bankname='+bankname+
	                        '&accountname='+accountname+
	                        '&accountcity='+accountcity+
	                        '&aanspraak='+aanspraak+
	                        '&bijzonderheden='+bijzonderheden+
	                        '&gogo='+gogo+
	                        '&cancellationfor='+cancellationfor+
	                        '&cancellationforsome='+cancellationforsome+	                        
			                '&email='+email,
			        async: true,
    				
		            success : priv.successCancellation,
			        error : priv.errorCancellation
		        });
	        }
	    },	    
	    
	    cancellationSkip : function(id)
	    {
            var question = $('#vraag'+id);  
            var answer = $('#antwoord'+id); 
            if ($('.'+id+':checked').val() == "ja")
            {
                question.css("display", "none");
                question.css("visibility", "hidden");
                answer.css("display", "none");
                answer.css("visibility", "hidden");
            }
            else 
            {
                question.css("display", "block");
                question.css("visibility", "visible");
                answer.css("display", "block");
                answer.css("visibility", "visible");
            }
	    },
        
        prebookingShowCompanions : function(nr)
	    {
	        // set divcompanion with display: block to display:none
	        for (j=1; j<=7; j++)
	        {
	            $('#divcompanion' + j).css("display","none");
	        }
	        if (nr > 1)
            {
	            for (i=2; i <= nr ; i++)
	            {
	                $('#divcompanion' + (i-1)).css("display","block");
	            }
            }	      
	    },
	    
	    sendPreBooking : function()
	    {
	        if(!priv.submitButtonClicked) {
	            priv.submitButtonClicked = true;
    	        
	            var phonehomestay = $('#prebook-phonehomestay').val();

	            var destination = $('#prebook-destination').val();  // * verplicht
	            var acconame = $('#prebook-acconame').val();        // * verplicht
	            var accotype = $('#prebook-accotype').val();        // * verplicht
	            var hosttype =  $('#prebook-hosttype').val();       // * verplicht
	            var nrpersons =  $('#prebook-nrpersons').val();     // * verplicht
	            var depday =  $('#prebook-depday').val();           // * verplicht
	            var depmonth =  $('#prebook-depmonth').val();       // * verplicht
	            var depyear =  $('#prebook-depyear').val();         // * verplicht
	            var nrdays =  $('#prebook-nrdays').val();           // * verplicht
	            var remarks =  $('#prebook-remarks').val();
                
                var error = 'false';
                for (i=0; i<nrpersons; i++)
                {   var reg = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
	                var correctEmail = reg.test($('#prebook-email' + i).val());

	                if($('#prebook-title' + i).val() == '0') {
	                    priv.showError('Er is geen aanhef ingevuld', priv.errorHolderPrebook);
	                    error = 'true';
	                } else if($('#prebook-firstletter' + i).val() == '') {
	                    priv.showError('Er zijn geen voorletters ingevuld', priv.errorHolderPrebook);
	                    error = 'true';
	                } else if( $('#prebook-lastname' + i).val() == '') {
	                    priv.showError('Er is geen achternaam ingevuld', priv.errorHolderPrebook);
	                    error = 'true';
	                } else if( $('#prebook-street' + i).val() == '') {
	                    priv.showError('Er is geen straatnaam ingevuld', priv.errorHolderPrebook);
	                    error = 'true';
	                } else if($('#prebook-streetnr' + i).val() == '') {
	                    priv.showError('Er is geen of een onjuist huisnummer ingevuld', priv.errorHolderPrebook);
	                    error = 'true';
	                } else if($('#prebook-postal' + i).val() == '') {
	                    priv.showError('Er is geen postcode ingevuld', priv.errorHolderPrebook);
	                    error = 'true';
	                } else if($('#prebook-city' + i).val() == '') {
	                    priv.showError('Er is geen woonplaats ingevuld', priv.errorHolderPrebook);
	                    error = 'true';
	                } else if($('#prebook-phoneprivate' + i).val() == '') {
	                    priv.showError('Er is geen telefoonnummer ingevuld', priv.errorHolderPrebook);
	                    error = 'true';
	                } else if($('#prebook-email0').val() == '') {
	                    priv.showError('Emailadres is verplicht voor hoofdboeker', priv.errorHolderPrebook);
	                    error = 'true';
	                } else if( $('#prebook-email' + i).val() != '' && !correctEmail) {
	                    priv.showError('Er is een ongeldig emailadres ingevuld', priv.errorHolderPrebook);
	                    error = 'true';
                    } else if ($('#prebook-birthday' + i).val() == '0' || $('#prebook-birthmonth' + i).val() == '0' || $('#prebook-birthyear' + i).val() == '0') {	
                        priv.showError('Er is geen geboortedatum ingevuld', priv.errorHolderPrebook);            
	                    error = 'true';
	                } else if(  ($('#prebook-birthday' + i).val() != '0' || $('#prebook-birthmonth' + i).val() != '0' || $('#prebook-birthyear' + i).val() != '0') &&
	                            ($('#prebook-birthday' + i).val() == '0' || $('#prebook-birthmonth' + i).val() == '0' || $('#prebook-birthyear' + i).val() == '0')) {
	                    priv.showError('Er is een ongeldige geboortedatum ingevuld', priv.errorHolderPrebook);
	                    error = 'true';
                    }
                }

                if (error == 'true') {
                    error = 'true';
                } else if (destination == '') {
	                priv.showError('Er is geen bestemming ingevuld', priv.errorHolderPrebook);
	            } else if (acconame == '') {
	                priv.showError('Er is geen accommodatienaam ingevuld', priv.errorHolderPrebook);
	            } else if (accotype == '0') {
	                priv.showError('Er is geen accommodatietype ingevuld', priv.errorHolderPrebook);
	            } else if (hosttype == '0') {
	                priv.showError('Er is geen verzorginstype ingevuld', priv.errorHolderPrebook);
	            } else if (nrpersons == '0') {
	                priv.showError('Aantal personen is niet ingevuld', priv.errorHolderPrebook);
	            } else if (nrdays == '0') {
	                priv.showError('Aantal dagen is niet ingevuld', priv.errorHolderPrebook);
	            } else if (depday == '0' || depmonth == '0' || depyear == '0') {
	                priv.showError('Er is geen vertrekdatum ingevuld');
	            } else if ((depday != '0' || depmonth != '0' || depyear != '0') &&
	                       (depday == '0' || depmonth == '0' || depyear == '0')){
	                priv.showError('Er is een ongeldige vertrekdatum ingevuld', priv.errorHolderPrebook);
	            } else {
	                // everything ok
	                var title = '';
	                var firstletter = '';
	                var middlename = '';
	                var lastname = '';
	                var birthday = '';
	                var birthmonth = '';
	                var birthyear = '';
	                var street = '';
	                var streetnr = '';
	                var streetnrext = '';
	                var postal = '';
	                var city = '';
	                var phoneprivate = '';
	                var phonework = '';
	                var email = '';
	                var cancellation = '';
	                var insurance = '';
    	            
	                for (i=0; i<nrpersons; i++)
	                {
	                    title += $('#prebook-title' + i).val() + ';';              // * verplicht
	                    firstletter += $('#prebook-firstletter' + i).val()+ ';';  // * verplicht
	                    middlename += $('#prebook-middlename' + i).val()+ ';';
	                    lastname += $('#prebook-lastname' + i).val()+ ';';        // * verplicht
	                    birthday += $('#prebook-birthday' + i).val()+ ';';        // * verplicht
	                    birthmonth += $('#prebook-birthmonth' + i).val()+ ';';    // * verplicht
	                    birthyear += $('#prebook-birthyear' + i).val()+ ';';      // * verplicht
	                    street += $('#prebook-street' + i).val()+ ';';            // * verplicht
	                    streetnr += $('#prebook-streetnr' + i).val()+ ';';        // * verplicht
	                    streetnrext += $('#prebook-streetnrext' + i).val()+ ';';
	                    postal += $('#prebook-postal' + i).val()+ ';';            // * verplicht
	                    city += $('#prebook-city' + i).val()+ ';';                // * verplicht
	                    phoneprivate += $('#prebook-phoneprivate' + i).val()+ ';';// * verplicht
	                    phonework += $('#prebook-phonework' + i).val()+ ';';
	                    email += $('#prebook-email' + i).val()+ ';';              // * verplicht
	                    cancellation += $('.prebook-cancellation'+i+':checked').val()+ ';';
	                    insurance += $('.prebook-insurance'+i+':checked').val()+ ';';
	                }
    	            
	                $.ajax({
		                type: "POST",
		                url: resources.path_prefix + '/utilpages/ajax-sendprebooking.ashx',
			            data:   'destination='+destination+
			                    '&acconame='+acconame+
			                    '&accotype='+accotype+
	                            '&hosttype='+hosttype+
	                            '&nrpersons='+nrpersons+
	                            '&depday='+depday+
	                            '&depmonth='+depmonth+
	                            '&depyear='+depyear+
	                            '&nrdays='+nrdays+
	                            '&remarks='+remarks+
                                '&title='+title+
		                        '&firstletter='+firstletter+
		                        '&middlename='+middlename+
		                        '&lastname='+lastname+
		                        '&birthday='+birthday+
		                        '&birthmonth='+birthmonth+
		                        '&birthyear='+birthyear+
		                        '&street='+street+
		                        '&streetnr='+streetnr+
		                        '&streetnrext='+streetnrext+
		                        '&postal='+postal+
		                        '&city='+city+
		                        '&phoneprivate='+phoneprivate+
		                        '&phonework='+phonework+                          
		                        '&email='+email+   
		                        '&cancellation='+cancellation+
		                        '&insurance='+insurance+                       
	                            '&phonehomestay='+phonehomestay,
			            async: true,
        				
		                success : priv.successPrebooking,
			            error : priv.errorPrebooking
		            });	 
	            }
	        }
	    }
	    
    }
}(jQuery);