
var fancyFormValidater;
var activeFancy;

function showAllfancySelectOptions(field){
    var t_id_container          = field + '-container';
    
    
    $('#'+ t_id_container).addClass('activeList');
    
    $('.fancySelectOption').removeClass('activeFancyOption');
         
    $('#'+ t_id_container+ ' .fancySelectOption').each(function() {
        $(this).addClass('activeFancyOption');
    });
}


function initSearchForm(name){
    //console.log(name);
	var fancy_input_field = '';
	$('#'+name + ' .form-search-value').each(function() {
		
		fancy_input_field       = $(this).attr('id');
		//console.log(fancy_input_field);
		
		$(this).change(function() {
            
            //console.log(name);
            if(name == 'form_search_bog'){
                //console.log('status');
//checkStatusAndOptions();
            }
		  	getSearchFormValues(name);
		});
		
	});
    
    readyForm_Basic('#'+name);
}
function getSearchFormValues(name){
	if(allowSearchSubmit){
		var fancy_qs		        =  new Array;
		var fancy_input_field       =  '';
		var fancy_input_value       =  '';

		$('#'+name + ' .form-search-value').each(function() {

			fancy_input_field       = $(this).attr('id');
            
                                                 
            
			if($(this).hasClass('checklist')){

				var checkboxes 	= $(this).find($('.form-control-checkbox'));
				var temp_values	= new Array();
				$.each(checkboxes, function(n, e){
					if($(this).is(':checked')) {
						//console.log($(this).val());
						temp_values.push($(this).val());
					}
				});  

				fancy_input_value	= temp_values.join("~");
				if(fancy_input_value != ''){
					fancy_input_value	+= '~';
				}
			}else if($(this).hasClass('radiolist')){
				/*if($('input[name="'+fancy_input_field+'"]:checked')){
				fancy_input_value       = ($('input[name="'+fancy_input_field+'"]:checked').val());
				}else{
				fancy_input_value 		= '';	
				}*/
				fancy_input_value		= '';
				var checkboxes 	= $(this).find($('.form-control-radio'));
				var temp_values	= new Array();
				$.each(checkboxes, function(n, e){
					if($(this).is(':checked')) {
						fancy_input_value       = ($(this).val());
					}
				});  

			}else{
				fancy_input_value       = $(this).val();
				//fancy_input_value		= fancy_input_value.replace(',','~')
			}

            switch(fancy_input_field){
                case 'unitsVanaf':
                case 'koopprijs':
                case 'huurprijs':
                    var t_min = $(this).attr('data-slider-min');
                    //console.log(t_min);
                    var t_max = $(this).attr('data-slider-max');
                    //console.log(t_max);

                    if(fancy_input_value == t_min+','+t_max){
                       fancy_input_value = '';
                       }    
                break;
            }
            
			if(fancy_input_value != ''){
               //console.log(fancy_input_field + ':' + fancy_input_value);
				fancy_qs.push(fancy_input_field + ':' + fancy_input_value); 
			}else{
                $(this).prop('disabled',true);
            }
		});


		fancy_qs_string	= fancy_qs.join("*");

		current_querystring = fancy_qs_string;
		console.log('qs = '+current_querystring);


		current_page = 1;

		$('#'+name).submit();
        
        
		$('#'+name + ' .form-search-value').each(function() {
            $(this).prop('disabled',false);            
		});
        
    }
	//loadListing();
}

function initFancyForm(name){
    //fancyFormValidater  = $( "#"+name ).validate();
    activeFancy         = name;
    window.onbeforeunload = function() {
       //return "Do you really want to leave our brilliant application?";
    };
    
    
    
    $('#'+name + ' .fancyValueFinder').each(function() {
                    
        var fancy_input_field       = $(this).attr('id');
        var fancy_original_field    = fancy_input_field + '-value';
        
        
        var possible_limited_choices = fancy_input_field + '-allowed';
        if($("#"+possible_limited_choices ).length > 0){
            var limited_choices         = $("#"+possible_limited_choices ).val();
            var limited_choices_array   = limited_choices.split(',');
            var t_id_container          = fancy_input_field + '-container';
            
           //console.log(limited_choices_array);
            
            $('#'+ t_id_container+ ' .fancySelectOption').each(function() {
                var temp_id            = $(this).attr('data-id');
                
                if(jQuery.inArray(temp_id, limited_choices_array) != -1) {
                    
                } else {
                    $(this).remove();
                } 

            });
        }
        
        if($("#"+fancy_original_field ).length > 0){
            //console.log(field);
            
            if($("#"+fancy_original_field ).val() > 0){
                
                var url = http_prefix + domain + 'modules/fancyform/getFancyValue.php?item='+$("#"+fancy_original_field ).val();
                ajaxLoad2(url, fancy_input_field, 'fancyselect');
                
                
            } 
            
            
            $("#"+fancy_input_field).keyup(function() {
                var t_id            = $(this).attr('id');
                var t_id_container  = t_id + '-container';
                var t_search        = $(this).val().toLowerCase();
                
                if(t_search != ''){
                    $('#'+ t_id_container+ ' .fancySelectOption').removeClass('activeFancyOption');
                    $('#'+ t_id_container+ ' [id^='+t_search+']').addClass('activeFancyOption');
                    
                    if($('#'+ t_id_container+ ' .activeFancyOption').length > 0 && t_search.length > 0){
                    $('#'+ t_id_container).addClass('activeList');
                    }else{
                    $('#'+ t_id_container).removeClass('activeList');
                    }
                    
                    if($('#'+ t_id_container+ ' .activeFancyOption').length == 1 && t_search.length > 4){

                        var temp_id = $('#'+ t_id_container+ ' .activeFancyOption').attr('data-id');
                        fancySelect(temp_id,fancy_input_field)

                    }else{
                        $("#"+fancy_original_field ).val('');
                    }
                }
            }).focus(function() {
                var t_id =($(this).attr('id'));
                $(this).select();
            }).blur(function() {
                
                var t_id            = $(this).attr('id');
                var t_id_container  = t_id + '-container';
                var t_search        = $(this).val().toLowerCase();
                
                if($('#'+ t_id_container+ ' .activeFancyOption').length == 1){
                 
                    var temp_id = $('#'+ t_id_container+ ' .activeFancyOption').attr('data-id');
                    fancySelect(temp_id,fancy_input_field)
                    
                }                
                
            });
            
        }

    });
    
    $('#'+name + ' .fancyMultiValueFinder').each(function() {
                    
        var fancy_input_field       = $(this).attr('id');
        var fancy_original_field    = fancy_input_field + '-value';
        
        if($("#"+fancy_original_field ).length > 0){
            //console.log(field);
            
            if($("#"+fancy_original_field ).val() != ''){
                
                current_values              = $("#"+fancy_original_field ).val();
                $("#"+fancy_original_field ).val('');
                var valuesArray             = current_values.split(',');
                
                $.each( valuesArray, function( key, value ) {
                  if(value > 0){
                     // console.log(11 + fancy_input_field);
                        fancyMultiSelect(value,fancy_input_field);
                  }
                });
                      
            } 
            
            
            $("#"+fancy_input_field).keyup(function() {
                var t_id            = $(this).attr('id');
                var t_id_container  = t_id + '-container';
                var t_search        = $(this).val().toLowerCase();
                
                if(t_search != ''){
                   
                    $('#'+ t_id_container+ ' .fancySelectOption').removeClass('activeFancyOption');
                    $('#'+ t_id_container+ ' [id^='+t_search+']').addClass('activeFancyOption');

                    if($('#'+ t_id_container+ ' .activeFancyOption').length > 0 && t_search.length > 0){
                    $('#'+ t_id_container+ ' .fancySelectOption').addClass('activeList');
                    }else{
                    $('#'+ t_id_container+ ' .fancySelectOption').removeClass('activeList');
                    }
                    
                    if($('#'+ t_id_container+ ' .activeFancyOption').length == 1 && t_search.length > 4){

                        var temp_id = $('#'+ t_id_container+ ' .activeFancyOption').attr('data-id');
                        fancyMultiSelect(temp_id,fancy_input_field)
                        $('#'+ t_id_container).removeClass('activeList');

                    }
                    
                }
                
            }).focus(function() {
                var t_id =($(this).attr('id'));
                $(this).select();
            }).blur(function() {
                
                var t_id            = $(this).attr('id');
                var t_id_container  = t_id + '-container';
                var t_search        = $(this).val().toLowerCase();
                
                if($('#'+ t_id_container+ ' .activeFancyOption').length == 1){
                 
                    var temp_id = $('#'+ t_id_container+ ' .activeFancyOption').attr('data-id');
                    fancyMultiSelect(temp_id,fancy_input_field)
                    
                }                
                
            });
            
        }

    });
}

function fancySelect(id,field){
    if(id > 0){
        
        var fancy_input_field       = field;
        var fancy_original_field    = fancy_input_field + '-value';
        var t_id_container          = fancy_input_field + '-container';
        var text                    = $('.optionvalue-'+id).text();
        
        if($("#"+fancy_original_field ).length > 0){
            
            $("#"+fancy_original_field ).val(id);
            $("#"+fancy_input_field ).val(text);
            
            $('#'+ field+ '-container .fancySelectOption').removeClass('activeFancyOption');
            
            
            $('#'+ t_id_container).removeClass('activeList');
            
            
        }
        
        if($('#form_trainerfilter').length > 0){
            $('#form_trainerfilter').submit();
        }
        if($('#form_welcome').length > 0){
            $('#form_welcome').submit();
        }
        
    }
    
}

function fancyMultiSelect(id,field){
    
    if(id > 0){
        
        
        
        var fancy_input_field       = field;
        var fancy_original_field    = fancy_input_field + '-value';
        var t_id_container          = fancy_input_field + '-container';
        var current_values          = $("#"+fancy_original_field ).val();
        
        
        var fancy_selected_container = field + '-selected';
        var text                    = $('.optionvalue-'+id).text();
        
       // console.log(fancy_selected_container);
            
        if($("#"+fancy_original_field ).length > 0){
            
            //$("#"+fancy_original_field ).val(id);
            //$("#"+fancy_input_field ).val(text);
            
            if(!$("#"+fancy_selected_container+ ' #selected-' + id).length > 0){
                $("#"+fancy_selected_container).append('<div class="selected-fancyvalue" id="selected-'+id+'">'+text+'<a href="javascript:removeSelectedFancyValue('+id+',\''+field+'\');">X</a>');
                
                if(current_values == ''){
                    current_values  = id
                }else{
                    current_values  += ','+id
                }
                $("#"+fancy_original_field ).val(current_values);
                
                $('#'+ t_id_container).removeClass('activeList');
            }
            
            $("#"+fancy_input_field ).val('');
            $('#'+ field+ '-container .fancySelectOption').removeClass('activeFancyOption');
            
        }
        
    }
    
}

function removeSelectedFancyValue(id,field){
    if(id > 0){
        
        var fancy_input_field       = field;
        var fancy_original_field    = fancy_input_field + '-value';
        var current_values          = $("#"+fancy_original_field ).val();
        var fancy_selected_container = field + '-selected';
        
        var valuesArray             = current_values.split(',');
        var valuesArrayNew          = new Array;
        
        $.each( valuesArray, function( key, value ) {
          if(value!=id){
          valuesArrayNew.push(value);
          }
        });
        
        if($("#"+fancy_selected_container+ ' #selected-' + id).length > 0){
            $("#"+fancy_selected_container+ ' #selected-' + id).remove();
        }
        
        current_values              = valuesArrayNew.join(',');
        $("#"+fancy_original_field ).val(current_values);
    }   
}

function escapeTags( str ) {
  return String( str )
           .replace( /&/g, '&amp;' )
           .replace( /"/g, '&quot;' )
           .replace( /'/g, '&#39;' )
           .replace( /</g, '&lt;' )
           .replace( />/g, '&gt;' );
}

function valthisform(field)
{
    var checkboxs=$('#'+ field  +' .form-control-checkbox');
    var okay=false;
    for(var i=0,l=checkboxs.length;i<l;i++)
    {
        if(checkboxs[i].checked)
        {
            okay=true;
            break;
        }
    }
    if(okay) return(true)
    else  return(false);
}
function setCheckRadioValue(field,value){
    var fancy_original_field    = field + '-value';
        
    if($('#'+fancy_original_field).length > 0){
       $('#'+fancy_original_field).val(value);
       }
}

function fancyStepFormContinue(fancyFormId,step,direction){
    var current_step;
    var slide_now = true;
    var isvalid;
    var field;
    
    var invited_trainers = $('#invited_trainers').val();
        
    if(direction == 'finish' && invited_trainers == ''){
        $('#noTrainerSelected').addClass('activated');
    }else{
    
        for(var i=1;i<=5;i++){
            if($("#fancyStep"+i ).length > 0){
                if(i < step){
                   $("#fancyStep"+i ).addClass('donedeal');
                }else{
                   $("#fancyStep"+i ).removeClass('donedeal');
                }
            }
        }


        switch(direction){
            case 'finish':
            case 'next':
                current_step = step - 1;
                if($("#fancy_step_container"+current_step ).length > 0){

                    $("#fancy_step_container"+current_step + ' .form-control.required').each(function() {

                        field       = $(this).attr('id');
                            //console.log(field);

                        if($("#"+field ).length > 0){

                            isvalid     = thevalidator.element( "#"+field );
                            //valthisform(field);invited_trainers

                            if(field == 'dob'){

                                isvalid = validateMultiDate('#dob');

                            }

                            //isvalid = true;


                           // console.log(field + ' = ' + isvalid);

                            if(isvalid){
                                $('#'+field).removeClass('has-error');
                            }else{
                                slide_now   = false;
                                $('#'+field).addClass('has-error');
                            }
                        }

                    });

                }

                if(direction == 'finish'){
                    slide_now   = false;
                    $('#'+activeFancy).attr('action', 'https://pury.awink.nl/modules/fancyform/handle.php');
                    $( "#"+activeFancy ).submit();
                }

            break;
            case 'prev':
                slide_now = true;
            break;
        }

        if(slide_now){

            if(step > 1){
                forceSubmit();
            }

            if($("#fancy_step_container"+step ).length > 0){
               if($("#fancy_step_container"+step+ ' #triggerLogin').length > 0){
                   openSporterLogin();
               }else if($("#trainersChoice").length > 0 && step == 5){
                  // console.log('load trainers');
                   loadFilteredTrainers();

               }
            }
           $('.fancyformStepCarousel').carousel(step-1);
           $('.fancyStep').removeClass('active');
           $('#fancyStep'+step).addClass('active');
           $('.fancyformStepCarousel').carousel('pause');
        }
        
    }
    
}


function validateMultiDate(field){
   var daySelector = field + '-1'
      , monthSelector = field + '-2'

      , yearSelector = field + '-3'
      , day = parseInt($(daySelector).val(), 10)
      , month = parseInt($(monthSelector).val(), 10)
      , year = parseInt($(yearSelector).val(), 10)
      , date = new Date(year, month, day);

	$(field).val(day + '/' + month + '/' + year);
	
	var d_check = date.getTime();
	//console.log(d_check);
	
  	if (d_check > 0){
		return(true);
	}else{
		return(false);
	}
	
}

function forceSubmit(){
	
	var postTo = $( "#"+activeFancy ).attr('action');
	//console.log(postTo);
	postTo     = postTo.replace("handle.php", "handle-partial.php");
	//console.log(postTo);
	
	$.ajax({
        url: postTo,
        type: 'post',
        data: $("#"+activeFancy).serialize(),
        success: function(data) {
        	
			//console.log(data);
			var summary_array 	= new Array;
			var jsondata 		= jQuery.parseJSON(data);
			
			$('.fancyStepSummary').removeClass('active');
			$('.fancyStepSummaryValue').html('');
			
			summary_array[1]	= 11;
			$.each(jsondata, function(key,value) {
			  
				//find parent of key! welke step?
				if($('#'+key).length > 0){
					var step_controler 		= $('#'+key).closest('.carousel-item.fancyformItem');
					var step_controler_id	= step_controler.attr('id');
					step_controler_id		= 1 * step_controler_id.replace('fancy_step_container','');
					if(step_controler_id > 0){
						if($('#fancyStepSummaryValue'+step_controler_id).length > 0){
							if(value != ''){
							
								$('#fancyStepSummary'+step_controler_id).addClass('active');
								$('#fancyStepSummaryValue'+step_controler_id).append('<div class="sum-value">' + value + '</div>');   
							
							}
						}
					}
				}
				
			});
			
        }
    });/**/
	
}


function fancyformContinue(fancyFormId,counter,field,finish){
    var isvalid;
    
    //var isvalid = $('#'+field).valid();
    if($("#"+field ).length > 0){
        
        
        if($("#"+field ).hasClass('checklist')){
            
            //alert(1);
            //group of fields.
            isvalid     = valthisform(field);
            
            if(isvalid){
                $('#'+field).removeClass('has-error');
            }else{
                $('#'+field).addClass('has-error');
            }
            
        }else if($("#"+field ).hasClass('fancyFormFieldGroup')){
            
           
            //alert(2);//group of fields.
            group_valid = true;
            isvalid     = true;
            
            $("#"+field + ' .form-control').each(function() {
                group_valid = fancyFormValidater.element(this);
                if(!group_valid){
                    isvalid  = false;
                    $(this).addClass('has-error');
                }else{
                    $(this).removeClass('has-error');
                }
            });
            
        }else if($("#"+field).hasClass('btn-group')){
            
            //alert(3);
            group_valid = true;
            isvalid     = true;
                  
            $("#"+field + ' .form-control-checkbox').each(function() {
                group_valid = fancyFormValidater.element(this);
                if(!group_valid){
                    isvalid  = false;
                }
            });
           
            if(isvalid){
                $('#'+field).removeClass('has-error');
            }else{
                $('#'+field).addClass('has-error');
            }    
            
        }else{
            //alert(4);
            //console.log(field);
            
            isvalid     = fancyFormValidater.element( "#"+field );
            
            if(isvalid){
                $('#'+field).removeClass('has-error');
            }else{
                $('#'+field).addClass('has-error');
            }
            
        }
       
        
        //alert(isvalid);

        

    }else{
        
        isvalid = true;
        
    }
    
    if(isvalid){

        counter++;
        var fancyformProgressSteps  = 1 * $('#fancyformProgressSteps'+fancyFormId).val();
        
        $('#pageBlockCarousel'+fancyFormId).carousel(counter);
       
        if(counter < fancyformProgressSteps){
            $('#fancyformProgressStepper'+fancyFormId).html(counter+1);
        }else{
            $('#fancyformProgressStepper'+fancyFormId).html(fancyformProgressSteps);
            $('#fancyformProgressSteps').css('opacity',0);
        }
        
        var percentage              = Math.round((counter / fancyformProgressSteps * 100));
        $('#fancyformProgressPercentage'+fancyFormId).html(percentage+'%');
        $('#fancyformProgressBar'+fancyFormId).css('width',percentage+'%');
        
        if(finish == 1){
            
            //alert('submitForm');
            $( "#"+activeFancy ).submit();
            
        }
    
    }
    
}

function fancyformCheckField(fancyFormId){
    
    $('#pageBlockCarousel'+fancyFormId).carousel(0);
    $('#fancyformProgressStepper'+fancyFormId).html(1);
    $('#fancyformProgressSteps').css('opacity',1);
    
}

function startFancyForm(fancyform){
    $('#'+fancyform+'form').removeClass('hidden');
}

function setFancyGroup(target,state){
    if($('#group_'+target).length > 0){
        switch(state){
            case 1:
                $('#group_'+target).addClass('active');
            break;                
            case 2:
                $('#group_'+target).removeClass('active');
            break;
        }
    }
}

function setDependentFields(field,value){
	$('.value-dependent-row-'+field).removeClass('show-field');
	$('.value-dependent-row-'+field).addClass('hide-field');
	$('.dep_values_'+field+'_'+value).addClass('show-field');
}