
jQuery.noConflict();
(function( $jcrm ) {
    var app = angular.module('myApp', ['ui.bootstrap']);
    app.controller('arrCtrl', function($scope, $filter) {
        var scope = $scope;
        // List met voertuigen
        scope.cars = [{"ac":"ac6209","aanmaak":"2022-04-27","auto_id":"2685061","kenteken":"ALFA75","merk":"ALFA ROMEO","model":"75","soort":"1","status":"12","uitvoering":"2.5 V6 Gema  HTP Fia","kmstand":"1.000","kmsoort":"1","bouwjaar":"1991","bouwmaand":"02","vermogen":"155","brandstof":"Benzine","brandstof_id":"1","prijs":"O.a.","prijs2":"0","prijs3":"0","prijs_oud":null,"handelsprijs":null,"rijklaar":"0","marge":"","marge_id":"1","weergave":"2","gewicht":"1210","kleur":"ROOD","metallic":"0","carrosserie":"Sedan 4 drs","carrosserie_id":"13","transmissie":"Handgesch. 5-bak","transmissie_code":"H","meta_title":"ALFA ROMEO 75 2.5 V6 Gema HTP rally auto, Rally Business \/ John de Heijde Classic Motorsports, Beneden-Leeuwen","meta_description":"","meta_keywords":"Rally Business \/ John de Heijde Classic Motorsports Beneden-Leeuwen ALFA ROMEO , 75 , Handgesch. 5-bak , Benzine , Sedan 4 drs","financiering":"0","aanbetaling_perc":null,"eff_rente":"0.00","perc_cont_cred":"0.00","nieuwflag":"0","nieuwomschr":"####","nieuwprijs":"####","energielabel":"","nwl":"0","nwl_status":"0","submodel":"","nap":"0","exterieur360_id":null,"interieur360_id":null,"trekgewicht":null,"aantalZitplaatsen":null,"opties":["Achterspoiler in kleur van de carrosserie","Bestuurdersstoel hoogte verstelbaar","Boordcomputer","Buitenspiegels inklapbaar","Bumpers in kleur van de carrosserie","Dakrails in autokleur","Lichtmetalen velgen","Lichtmetalen velgen 15 inch","Mistlampen","Onderhoudsboekje aanwezig","Passagiersstoel hoogte verstelbaar","Rokersvrije auto","Sidespoilers\/steps in kleur van de carrosserie","Sportstoelen","Sportstuur","Stuurbekrachtiging","Verstelbaar stuur","Youngtimer & Classic approved"],"fotos":"1651049273744296.JPG","vermogen_pk":211,"sortMerk":"ALFA ROMEO-75","sortValue":"ALFA ROMEO-75-2.5 V6 Gema  HTP Fia","sortPrijs":"0","sortKmstand":"1000","sortBouwjaar":"1991-02","orderValue":"ALFA ROMEO-75-2.5 V6 Gema  HTP Fia","kmsoort_text":"Km","fotos1":"1651049273744362.JPG","fotos2":"1651049273744309.JPG","uitgelichteopties":{"uitgelichteopties":null},"energielabelClass":"","energielabelDisplay":"","bwskorting":"","energielabelSrc":"https:\/\/api.autosoft.eu\/autosoft\/ac_plugin\/assets\/images\/energielabels\/energielabel-.png","maandbedrag":"","maandbedrag_filter":"99999","gif":"","leaseDealPrijs":"","pageUrl":"\/\/autowebsite.eu\/rallybusiness\/voertuigen\/alfa-romeo\/75\/alfa-romeo-75-2-5-v6-gema-htp-fia\/2685061\/"},{"ac":"ac6209","aanmaak":"2022-04-27","auto_id":"2685059","kenteken":"MBGRPA","merk":"MERCEDES-BENZ","model":"190","soort":"1","status":"12","uitvoering":"2.3 16v Group A Rally auto HTP Fia ","kmstand":"1.000","kmsoort":"1","bouwjaar":"1985","bouwmaand":"07","vermogen":"173","brandstof":"Benzine","brandstof_id":"1","prijs":"O.a.","prijs2":"0","prijs3":"0","prijs_oud":null,"handelsprijs":null,"rijklaar":"0","marge":"","marge_id":"1","weergave":"2","gewicht":"1320","kleur":"WIT","metallic":"0","carrosserie":"Sedan 4 drs","carrosserie_id":"13","transmissie":"Handgesch. 5-bak","transmissie_code":"H","meta_title":"MERCEDES-BENZ 190 2.3 16v, Rally Business \/ John de Heijde Classic Motorsports, Beneden-Leeuwen","meta_description":"","meta_keywords":"Rally Business \/ John de Heijde Classic Motorsports Beneden-Leeuwen MERCEDES-BENZ , 190 , Handgesch. 5-bak , Benzine , Sedan 4 d","financiering":"0","aanbetaling_perc":null,"eff_rente":"0.00","perc_cont_cred":"0.00","nieuwflag":"0","nieuwomschr":"####","nieuwprijs":"####","energielabel":"","nwl":"0","nwl_status":"0","submodel":"","nap":"0","exterieur360_id":null,"interieur360_id":null,"trekgewicht":null,"aantalZitplaatsen":null,"opties":["Achterspoiler in kleur van de carrosserie","Bestuurdersstoel hoogte verstelbaar","Boordcomputer","Buitenspiegels inklapbaar","Bumpers in kleur van de carrosserie","Dakrails in autokleur","Elektrische ramen voor","Lichtmetalen velgen","Lichtmetalen velgen 16 inch","Mistlampen","Onderhoudsboekje aanwezig","Passagiersstoel hoogte verstelbaar","Rokersvrije auto","Sportstoelen","Sportstuur","Startonderbreking","Stuurbekrachtiging","Traction control","Youngtimer & Classic approved"],"fotos":"1651048791043320.JPG","vermogen_pk":235,"sortMerk":"MERCEDES-BENZ-190","sortValue":"MERCEDES-BENZ-190-2.3 16v Group A Rally auto HTP Fia ","sortPrijs":"0","sortKmstand":"1000","sortBouwjaar":"1985-07","orderValue":"MERCEDES-BENZ-190-2.3 16v Group A Rally auto HTP Fia ","kmsoort_text":"Km","fotos1":"1651048791043270.JPG","fotos2":"1651048791043577.JPG","uitgelichteopties":{"uitgelichteopties":null},"energielabelClass":"","energielabelDisplay":"","bwskorting":"","energielabelSrc":"https:\/\/api.autosoft.eu\/autosoft\/ac_plugin\/assets\/images\/energielabels\/energielabel-.png","maandbedrag":"","maandbedrag_filter":"99999","gif":"","leaseDealPrijs":"","pageUrl":"\/\/autowebsite.eu\/rallybusiness\/voertuigen\/mercedes-benz\/190\/mercedes-benz-190-2-3-16v-group-a-rally-auto-htp-fia\/2685059\/"},{"ac":"ac6209","aanmaak":"2022-04-27","auto_id":"2685083","kenteken":"VR4RS1","merk":"MITSUBISHI","model":"GALANT","soort":"1","status":"1","uitvoering":"VR4 RS E39A  Rally ","kmstand":"1.000","kmsoort":"1","bouwjaar":"1988","bouwmaand":"02","vermogen":"224","brandstof":"Benzine","brandstof_id":"1","prijs":"O.a.","prijs2":"0","prijs3":"0","prijs_oud":null,"handelsprijs":null,"rijklaar":"0","marge":"","marge_id":"1","weergave":"2","gewicht":"1410","kleur":"WIT","metallic":"0","carrosserie":"Sedan 4 drs","carrosserie_id":"13","transmissie":"Handgesch. 5-bak","transmissie_code":"H","meta_title":"MITSUBISHI GALANT VR4 Rs E39A  Rally , Rally Business \/ John de Heijde Classic Motorsports, Beneden-Leeuwen","meta_description":"","meta_keywords":"Rally Business \/ John de Heijde Classic Motorsports Beneden-Leeuwen MITSUBISHI , GALANT , Handgesch. 5-bak , Benzine , Sedan 4 d","financiering":"0","aanbetaling_perc":null,"eff_rente":"0.00","perc_cont_cred":"0.00","nieuwflag":"0","nieuwomschr":"####","nieuwprijs":"####","energielabel":"","nwl":"0","nwl_status":"0","submodel":"","nap":"0","exterieur360_id":null,"interieur360_id":null,"trekgewicht":null,"aantalZitplaatsen":null,"opties":["4 WD","Achterspoiler in kleur van de carrosserie","Bestuurdersstoel hoogte verstelbaar","Buitenspiegels inklapbaar","Bumpers in kleur van de carrosserie","Lichtmetalen velgen","Lichtmetalen velgen 15 inch","Lichtmetalen velgen 17 inch","Mistlampen","Onderhoudsboekje aanwezig","Passagiersstoel hoogte verstelbaar","Rokersvrije auto","Sportstuur","Stuurbekrachtiging","Verstelbaar stuur","Warmtewerend getint glas","Youngtimer & Classic approved"],"fotos":"1651058754116836.PNG","vermogen_pk":305,"sortMerk":"MITSUBISHI-GALANT","sortValue":"MITSUBISHI-GALANT-VR4 RS E39A  Rally ","sortPrijs":"0","sortKmstand":"1000","sortBouwjaar":"1988-02","orderValue":"MITSUBISHI-GALANT-VR4 RS E39A  Rally ","kmsoort_text":"Km","fotos1":"1651058754116350.JPG","fotos2":"1651058754116575.JPG","uitgelichteopties":{"uitgelichteopties":null},"energielabelClass":"","energielabelDisplay":"","bwskorting":"","energielabelSrc":"https:\/\/api.autosoft.eu\/autosoft\/ac_plugin\/assets\/images\/energielabels\/energielabel-.png","maandbedrag":"","maandbedrag_filter":"99999","gif":"","leaseDealPrijs":"","pageUrl":"\/\/autowebsite.eu\/rallybusiness\/voertuigen\/mitsubishi\/galant\/mitsubishi-galant-vr4-rs-e39a-rally\/2685083\/"},{"ac":"ac6209","aanmaak":"2022-04-27","auto_id":"2685081","kenteken":"GSR160","merk":"MITSUBISHI","model":"LANCER","soort":"1","status":"12","uitvoering":"1600 GSR 4 drs Safari HTP Fia rally","kmstand":"1.000","kmsoort":"1","bouwjaar":"1977","bouwmaand":"02","vermogen":"91","brandstof":"Benzine","brandstof_id":"1","prijs":"O.a.","prijs2":"0","prijs3":"0","prijs_oud":null,"handelsprijs":null,"rijklaar":"0","marge":"","marge_id":"1","weergave":"2","gewicht":"790","kleur":"WIT","metallic":"0","carrosserie":"Sedan 4 drs","carrosserie_id":"13","transmissie":"Handgesch. 5-bak","transmissie_code":"H","meta_title":null,"meta_description":null,"meta_keywords":null,"financiering":"0","aanbetaling_perc":null,"eff_rente":"0.00","perc_cont_cred":"0.00","nieuwflag":"0","nieuwomschr":"####","nieuwprijs":"####","energielabel":"","nwl":"0","nwl_status":"0","submodel":"","nap":"0","exterieur360_id":null,"interieur360_id":null,"trekgewicht":null,"aantalZitplaatsen":null,"opties":["Mistlampen","Rokersvrije auto","Youngtimer & Classic approved"],"fotos":"1651058244712385.JPG","vermogen_pk":124,"sortMerk":"MITSUBISHI-LANCER","sortValue":"MITSUBISHI-LANCER-1600 GSR 4 drs Safari HTP Fia rally","sortPrijs":"0","sortKmstand":"1000","sortBouwjaar":"1977-02","orderValue":"MITSUBISHI-LANCER-1600 GSR 4 drs Safari HTP Fia rally","kmsoort_text":"Km","fotos1":"1651058244712377.JPG","fotos2":"1651058244712978.JPG","uitgelichteopties":{"uitgelichteopties":null},"energielabelClass":"","energielabelDisplay":"","bwskorting":"","energielabelSrc":"https:\/\/api.autosoft.eu\/autosoft\/ac_plugin\/assets\/images\/energielabels\/energielabel-.png","maandbedrag":"","maandbedrag_filter":"99999","gif":"","leaseDealPrijs":"","pageUrl":"\/\/autowebsite.eu\/rallybusiness\/voertuigen\/mitsubishi\/lancer\/mitsubishi-lancer-1600-gsr-4-drs-safari-htp-fia-rally\/2685081\/"},{"ac":"ac6209","aanmaak":"2022-04-27","auto_id":"2685073","kenteken":"STARIO","merk":"MITSUBISHI","model":"STARION","soort":"1","status":"12","uitvoering":"Turbo EX rally ","kmstand":"1.000","kmsoort":"1","bouwjaar":"1988","bouwmaand":"03","vermogen":"144","brandstof":"Benzine","brandstof_id":"1","prijs":"O.a.","prijs2":"0","prijs3":"0","prijs_oud":null,"handelsprijs":null,"rijklaar":"0","marge":"","marge_id":"1","weergave":"2","gewicht":"1240","kleur":"WIT","metallic":"0","carrosserie":"Coupe 2 drs","carrosserie_id":"6","transmissie":"Handgesch. 5-bak","transmissie_code":"H","meta_title":null,"meta_description":null,"meta_keywords":null,"financiering":"0","aanbetaling_perc":null,"eff_rente":"0.00","perc_cont_cred":"0.00","nieuwflag":"0","nieuwomschr":"####","nieuwprijs":"####","energielabel":"","nwl":"0","nwl_status":"0","submodel":"","nap":"0","exterieur360_id":null,"interieur360_id":null,"trekgewicht":null,"aantalZitplaatsen":null,"opties":["Achterspoiler in kleur van de carrosserie","Buitenspiegels inklapbaar","Bumpers in kleur van de carrosserie","Elektrische ramen voor","Lichtmetalen velgen 15 inch","Mistlampen","Rokersvrije auto","Sportstoelen","Sportstuur","Stuurbekrachtiging","Verstelbaar stuur","Warmtewerend getint glas","Youngtimer & Classic approved"],"fotos":"1651051434321918.JPG","vermogen_pk":196,"sortMerk":"MITSUBISHI-STARION","sortValue":"MITSUBISHI-STARION-Turbo EX rally ","sortPrijs":"0","sortKmstand":"1000","sortBouwjaar":"1988-03","orderValue":"MITSUBISHI-STARION-Turbo EX rally ","kmsoort_text":"Km","fotos1":"1651051434321345.JPG","fotos2":"1651051434321933.JPG","uitgelichteopties":{"uitgelichteopties":null},"energielabelClass":"","energielabelDisplay":"","bwskorting":"","energielabelSrc":"https:\/\/api.autosoft.eu\/autosoft\/ac_plugin\/assets\/images\/energielabels\/energielabel-.png","maandbedrag":"","maandbedrag_filter":"99999","gif":"","leaseDealPrijs":"","pageUrl":"\/\/autowebsite.eu\/rallybusiness\/voertuigen\/mitsubishi\/starion\/mitsubishi-starion-turbo-ex-rally\/2685073\/"},{"ac":"ac6209","aanmaak":"2021-10-03","auto_id":"2630023","kenteken":"JNO400","merk":"OPEL","model":"ASCONA","soort":"1","status":"12","uitvoering":"400 Rally Grp B ","kmstand":"123","kmsoort":"1","bouwjaar":"1980","bouwmaand":"01","vermogen":"223","brandstof":"Benzine","brandstof_id":"1","prijs":"O.a.","prijs2":"0","prijs3":"0","prijs_oud":null,"handelsprijs":null,"rijklaar":"0","marge":"","marge_id":"1","weergave":"2","gewicht":"1028","kleur":"ROOD","metallic":"0","carrosserie":"Overige","carrosserie_id":"16","transmissie":"Handgesch. 5-bak","transmissie_code":"H","meta_title":"OPEL ASCONA 400 Rallye, Rally Business \/ John de Heijde Classic Motorsports, Beneden-Leeuwen","meta_description":"Replica works Opel Ascoan B 400 ","meta_keywords":"Rally Business \/ John de Heijde Classic Motorsports Beneden-Leeuwen OPEL , ASCONA , Handgesch. 5-bak , Benzine , Overige","financiering":"0","aanbetaling_perc":null,"eff_rente":"0.00","perc_cont_cred":"0.00","nieuwflag":"0","nieuwomschr":"####","nieuwprijs":"####","energielabel":"","nwl":"0","nwl_status":"0","submodel":"","nap":"0","exterieur360_id":null,"interieur360_id":null,"trekgewicht":null,"aantalZitplaatsen":null,"opties":["Achterspoiler in kleur van de carrosserie","Bumpers in kleur van de carrosserie","Lichtmetalen velgen","Lichtmetalen velgen 15 inch","Mistlampen","Sportstoelen","Sportstuur","Youngtimer & Classic approved"],"fotos":"1633249896450199.JPG","vermogen_pk":304,"sortMerk":"OPEL-ASCONA","sortValue":"OPEL-ASCONA-400 Rally Grp B ","sortPrijs":"0","sortKmstand":"123","sortBouwjaar":"1980-01","orderValue":"OPEL-ASCONA-400 Rally Grp B ","kmsoort_text":"Km","fotos1":null,"fotos2":null,"uitgelichteopties":{"uitgelichteopties":null},"energielabelClass":"","energielabelDisplay":"","bwskorting":"","energielabelSrc":"https:\/\/api.autosoft.eu\/autosoft\/ac_plugin\/assets\/images\/energielabels\/energielabel-.png","maandbedrag":"","maandbedrag_filter":"99999","gif":"","leaseDealPrijs":"","pageUrl":"\/\/autowebsite.eu\/rallybusiness\/voertuigen\/opel\/ascona\/opel-ascona-400-rally-grp-b\/2630023\/"}];

        var textArea;

        for(var i = 0; i < scope.cars.length; i++){

            textArea = document.createElement('textarea');
            textArea.innerHTML = scope.cars[i]['carrosserie'];
            scope.cars[i]['carrosserie'] = textArea.value;

            scope.cars[i]['sortPrijs'] = parseFloat(scope.cars[i]['sortPrijs']);
            scope.cars[i]['sortKmstand'] = parseFloat(scope.cars[i]['sortKmstand']);

            scope.cars[i]["trekgewicht"] = parseFloat(scope.cars[i]["trekgewicht"]);

            scope.cars[i]["aantalZitplaatsen"] = parseFloat(scope.cars[i]["aantalZitplaatsen"]);

            // Zorg dat het filter voor BTW/marge ook alleen maar BTW of Marge laat zien
            if(scope.cars[i]["marge"] != ''){
                if(scope.cars[i]["marge"].includes("BTW"))
                {
                    scope.cars[i]["marge"] = "BTW";
                    scope.cars[i]["marge_id"] = "2";
                }
                else
                {
                    scope.cars[i]["marge"] = "Marge";
                    scope.cars[i]["marge_id"] = "1";
                }
            } else {
                scope.cars[i]["marge"] = "-";
            }

            // Als het trekgewicht NaN is, maak er dan 0 van
            if(isNaN(scope.cars[i]["trekgewicht"]))
            {
                scope.cars[i]["trekgewicht"] = 0;
            }
            // Als het energielabel niet bestaat/is ingevuld, maak er Onbekend van
            if(scope.cars[i]["energielabelClass"] == "" || scope.cars[i]["energielabelClass"] == null)
            {
                scope.cars[i]["energielabelClass"] = "Onbekend";
            }
            // Als het engergielabel aplus is, maak er A+ van
            if(scope.cars[i]["energielabelClass"] == "aplus".toLowerCase())
            {
                scope.cars[i]["energielabelClass"] = "a+";
            }

            // Quickfix mobility for all
            if(scope.cars[i]["ac"] == "ac3097" && scope.cars[i]["prijs"] == "Verwacht")
            {
                scope.cars[i]["prijs"] = "Vorlauf";
            }
        }

        scope.filterdCars = scope.cars;

        //Default selected page
        scope.curPage = 1;
        scope.fromRedirect = false;

        // Default sorting values
        scope.sortField = '';
        scope.sortValue = '';

        // Variabelen waar de filters in opgeslagen worden
        scope.selectedMerk              = "";
        scope.selectedModel             = "";
        scope.selectedCarrosserie       = "";
        scope.selectedTransmissiecode   = "";
        scope.selectedBrandstof         = "";
        scope.selectedKmstandTot        = "";
        scope.selectedBouwjaarVan       = ""; scope.selectedBouwjaarTot = "";
        scope.selectedPrijsVan          = ""; scope.selectedPrijsTot = "";
        scope.selectedVermogenVan       = ""; scope.selectedVermogenTot = "";
        scope.invalidWeergaves          = [2,3,4,5];        
        scope.selectedMarge             = "";
        scope.selectedTrekgewichtVan    = "";
        scope.selectedZitplaatsenVan    = "";
        scope.selectedKleur             = "";
        scope.selectedEnergielabelClass = "";

        scope.urlFilters = function(){
            // Gets the current URL
            var url = window.location.href;
            // Splits the url on the ?
            var params = url.split("?");
            url = params[0];
            if(params.length > 1){
                params = params[1].split("&");
                $jcrm.each(params, function (index1, value1) {
                    var filters = value1.split("=");
                    filters[1] = decodeURIComponent(filters[1].trim());
                    var arr = filters[1].split(",");
                    $jcrm.each(arr, function (position2, value2){

                        value2 = value2.replace(/\+/g, ' ');

                        if(filters[0] == 'z_merk'){ scope.selectedMerk = value2; }
                        else if(filters[0] == 'z_model'){ scope.selectedModel = value2; }
                        else if(filters[0] == 'z_brandstof'){ scope.selectedBrandstof = value2; }
                        else if(filters[0] == 'z_carrosserie'){ scope.selectedCarrosserie = value2; }
                        else if(filters[0] == 'z_transmissie'){ scope.selectedTransmissiecode = value2; }
                        else if(filters[0] == 'z_bouwjaar_van'){scope.selectedBouwjaarVan = value2;}
                        else if(filters[0] == 'z_bouwjaar_tot'){scope.selectedBouwjaarTot = value2;}
                        else if(filters[0] == 'z_prijs_van'){scope.selectedPrijsVan = value2;}
                        else if(filters[0] == 'z_prijs_tot'){scope.selectedPrijsTot = value2;}
                        else if(filters[0] == 'z_vermogen_van'){scope.selectedVermogenVan = value2;}
                        else if(filters[0] == 'z_vermogen_tot'){scope.selectedVermogenTot = value2;}
                        else if(filters[0] == 'z_kmstand_tot'){scope.selectedKmstandTot = value2;}
                        else if(filters[0] == 'z_pagina'){scope.curPage = parseInt(value2); scope.fromRedirect = true;}
                        else if(filters[0] == 'z_sortering') { scope.sortField = value2; }                        
                        else if(filters[0] == 'z_btwMarge'){scope.selectedMarge = value2;}
                        else if(filters[0] == 'z_trekgewicht_van'){scope.selectedTrekgewichtVan = value2;}
                        else if(filters[0] == 'z_aantal_zitplaatsen'){scope.selectedZitplaatsenVan = value2;}
                        else if(filters[0] == 'z_kleur'){scope.selectedKleur = value2;}
                        else if(filters[0] == 'z_energielabelClass'){scope.selectedEnergielabelClass = value2;}
                    });
                });
            }
            // Replace the url so the params are invisible
            history.pushState(null, null, url);
        };
        scope.urlFilters();

        scope.scrollToTop = function(){
            $jcrm("html, body").animate({
                scrollTop: 0
            }, {
                duration: 1500,
                easing: "easeInOutQuart"
            });
        };

        scope.displayMode = '';
        scope.lastEdit = "23-12-2025 21:32:59";


        // Functie die je terug stuurt naar de vorige pagina
        scope.pageBack = function(){ scope.curPage -= 1; };
        scope.pageBackBottom = function(){ scope.scrollToTop(); scope.curPage -= 1; };

        // Functie die je door stuurt naar de volgende pagina
        scope.pageForward = function(){ scope.curPage += 1; };
        scope.pageForwardBottom = function(){ scope.scrollToTop(); scope.curPage += 1; };

        // Functie die je door stuurt naar de opgevraagde pagina
        scope.selectPage = function(i){ scope.curPage = i; };
        scope.selectPageBottom = function(i){ scope.scrollToTop(); scope.curPage = i; };

        // Display functie om de voertuigen te tonen
        scope.display = function() {

            // Variabelen om het aantal pagina's te bepalen
            scope.itemsPerPage = 24;
            scope.halfItemsPerPage = Math.round(parseInt(scope.itemsPerPage) / 2);
            scope.maxSize = 5;

            // Berekend het aantal pagina's
            scope.numOfPages = function () {
                return Math.ceil(scope.filterdCars.length / scope.itemsPerPage);
            };

            // Controleert op welke pagina de gebruiker zich bevind, en toont aan de hand daarvan de auto's
            scope.$watch('curPage + numPerPage', function() {
                var begin = ((scope.curPage - 1) * scope.itemsPerPage),
                    end = begin + scope.itemsPerPage;
                scope.filtercars = scope.filterdCars.slice(begin, end);
                scope.halfItemsPerPage = Math.round(scope.filtercars.length / 2);
            });

            $jcrm('#asac-container').css('opacity', '100');
        };

        // Controleerd of de waarde groter is dan de geselecteerde
        scope.greaterThan = function(array, prop, val){
            if(val != '' && val != null) {
                scope.newArray = [];
                for (var i = 0; i < array.length; i++) {
                    if ( parseInt(array[i][prop]) >= parseInt(val)) {
                        scope.newArray.push(array[i]);
                    }
                }
                return(scope.newArray);
            }else{
                return(array);
            }
        };

        // Controleerd of de waarde kleiner is dan de geselecteerde
        scope.smallerThan = function(array, prop, val){
            if(val != '' && val != null) {
                scope.newArray = [];
                for (var i = 0; i < array.length; i++) {
                    if (parseInt(array[i][prop]) <= parseInt(val)) {

                        scope.newArray.push(array[i]);
                    }
                }
                return(scope.newArray);
            }else{
                return(array);
            }
        };

        // Functie waarin de voertuigen worden gefilterd
        scope.filterVehicles = function(){

            // Zet een lijst met alle auto's in de variabele
            scope.filterdCars = scope.cars;

            // Roept de functie findInArray aan
            // Je geeft de array mee en de property naam
            scope.filterdCars   = scope.findInArray(scope.selectedMerk, 'merk');

            // Roept de functie findInArray aan voor de modellen
            scope.modellen      = [];                   if(scope.selectedMerk != '' && scope.selectedMerk != null){ scope.modellen  = scope.filterdCars; }

            scope.filterdCars   = scope.findInArray(scope.selectedModel, 'model');



            // Roept de functie findInArray aan voor de brandstoffen
            scope.filterdCars   = scope.findInArray(scope.selectedBrandstof, 'brandstof_id');

            // Roept de functie findInArray aan voor de carrosserien
            scope.filterdCars   = scope.findInArray(scope.selectedCarrosserie, 'carrosserie');

            // Roept de functie findInArray aan voor transmissiecode
            scope.filterdCars   = scope.findInArray(scope.selectedTransmissiecode, 'transmissie_code');

            // Controleert of het bouwjaar groter/kleiner is dan de geselecteerde
            scope.filterdCars   = scope.greaterThan(scope.filterdCars, 'bouwjaar', scope.selectedBouwjaarVan);
            scope.filterdCars   = scope.smallerThan(scope.filterdCars, 'bouwjaar', scope.selectedBouwjaarTot);

            // Controleert of de prijs groter/kleiner is dan de geselecteerde
            scope.filterdCars   = scope.greaterThan(scope.filterdCars, 'sortPrijs', scope.selectedPrijsVan);
            scope.filterdCars   = scope.smallerThan(scope.filterdCars, 'sortPrijs', scope.selectedPrijsTot);

            // Controleert of de prijs groter/kleiner is dan de geselecteerde
            scope.filterdCars   = scope.greaterThan(scope.filterdCars, 'vermogen', scope.selectedVermogenVan);
            scope.filterdCars   = scope.smallerThan(scope.filterdCars, 'vermogen', scope.selectedVermogenTot);

            // Controleert of de kmstand kleiner is dan de geselecteerde
            scope.filterdCars = scope.smallerThan(scope.filterdCars, 'sortKmstand', scope.selectedKmstandTot);

            // Roept de findInArray aan voor BTW/marge voertuigen
            scope.filterdCars = scope.findInArray(scope.selectedMarge, "marge_id");

            // Controleert of het trekgewicht groter/kleiner is dan de geselecteerde
            scope.filterdCars = scope.greaterThan(scope.filterdCars, 'trekgewicht', scope.selectedTrekgewichtVan);

            // Roept de functie findInArray aan voor het aantal zitplaatsen
            scope.filterdCars = scope.findInArray(scope.selectedZitplaatsenVan, "aantalZitplaatsen");

            // Roept de functie findInArray aan voor de kleuren
            scope.filterdCars = scope.findInArray(scope.selectedKleur, "kleur");

            // Roept de functie findInArray aan voor het energie label
            scope.filterdCars = scope.findInArray(scope.selectedEnergielabelClass, "energielabelClass");
            

            if(scope.fromRedirect == true){
                scope.fromRedirect = false;
            }else{
                scope.curPage = 1;
            }

            scope.sortList();

            // Roept de functie Display aan.
            scope.display();
        };





        scope.filterOnChange = function(){
            scope.filterVehicles();
        };

        scope.filterMerkOnChange = function(){
            scope.selectedModel = '';
            scope.filterVehicles();
        };


        // Find in array functie
        scope.findInArray = function (arr, prop){
            newArr = [];

            if(arr != null && arr != ''){
                for(i = 0; i < scope.filterdCars.length; i++){
                    if(scope.filterdCars[i][prop] == arr){
                        newArr.push(scope.filterdCars[i]);
                    }
                }
                return newArr;
            }else{
                return scope.filterdCars;
            }
        };

        // Telt het aantal waardes in de array
        scope.countArray = function(prop){

            var i = 0;
            var old = [];

            if(prop == 'merk'){
                for( x = 0; x < scope.cars.length; x++){
                    if($jcrm.inArray(scope.cars[x][prop], old) === -1){
                        i++;
                        old.push(scope.cars[x][prop]);
                    }
                }
            }else{
                for( x = 0; x < scope.filterdCars.length; x++){
                    if($jcrm.inArray(scope.cars[x][prop], old) === -1){
                        i++;
                        old.push(scope.cars[x][prop]);
                    }
                }
            }
            return i;
        };

        // Sorteren van de lijst
        scope.sortList = function () {

            // Sorteerwaardes
            if (scope.sortValue != '' || scope.sortField != '') {

                if (scope.sortField != '') {
                    scope.sortValue = scope.sortField;
                } else {
                    scope.sortField = scope.sortValue;
                }

                // Split de sortering
                var sorting = scope.sortField.split('_');
                scope.sortFieldOption = sorting[0];


                // Controleer op welke manier er gesorteerd moet worden
                if (scope.sortFieldOption == 'merk') {
                    scope.sortFieldOption = 'sortMerk';
                } else if (scope.sortFieldOption == 'prijs') {
                    scope.sortFieldOption = 'sortPrijs';
                } else if (scope.sortFieldOption == 'bouwjaar') {
                    scope.sortFieldOption = 'sortBouwjaar';
                } else if (scope.sortFieldOption == 'kilometerstand') {
                    scope.sortFieldOption = 'sortKmstand';
                } else if (scope.sortFieldOption == 'aanmaak') {
                    scope.sortFieldOption = 'aanmaak';
                } else if (scope.sortFieldOption == "trekgewicht") {
                    scope.sortFieldOption = "trekgewicht";
                }

                if (sorting[1] == 'asc') {
                    // Sorteer de lijst
                    scope.filterdCars = $filter('orderBy')(scope.filterdCars, scope.sortFieldOption, false);

                } else {
                    // Sorteer de lijst
                    scope.filterdCars = $filter('orderBy')(scope.filterdCars, scope.sortFieldOption, true);

                }
            } else {
                scope.sortField = 'merk_asc';
            }
        };



        // Call naar de functie filterVehicles
        scope.filterVehicles();
    });



    // Filtert de dropdowns op unique waardes Hoe het precies werkt weet ik niet, maar het toont in ieder geval alle unieke waardes in een dropdown
    app.filter('unique', function () {

        return function (items, filterOn) {

            if (filterOn === false) {
                return items;
            }

            if ((filterOn || angular.isUndefined(filterOn)) && angular.isArray(items)) {
                var hashCheck = {}, newItems = [];

                var extractValueToCompare = function (item) {
                    if (angular.isObject(item) && angular.isString(filterOn)) {
                        return item[filterOn];
                    } else {
                        return item;
                    }
                };

                angular.forEach(items, function (item) {
                    var valueToCheck, isDuplicate = false;

                    for (var i = 0; i < newItems.length; i++) {
                        if (angular.equals(extractValueToCompare(newItems[i]), extractValueToCompare(item))) {
                            isDuplicate = true;
                            break;
                        }
                    }
                    if (!isDuplicate) {
                        newItems.push(item);
                    }

                });
                items = newItems;
            }
            return items;
        };
    });

    // Controleerd of een waarde leeg of NULL is.
    app.filter('emptyOrNull', function($filter){
        return function (list, prop){
            return $filter("filter")(list, function(listItem){
                if(listItem[prop] != '' && listItem[prop] != null){
                    return listItem;
                }
            });
        };
    });

    // Controleerd of een waarde groters is dan de opgegeven waarde.
    app.filter('greater', function($filter){
        return function(list, prop, val) {
            return $filter("filter")(list, function(listItem) {
                if(val != '' && val != null){
                    return listItem[prop] >= val;
                }else {
                    return listItem;
                }
            });
        };
    });

    // Controleerd of een waarde kleiner is dan de opgegeven waarde.
    app.filter('smaller', function($filter){
        return function(list, prop, val) {
            return $filter("filter")(list, function(listItem) {
                if(val != '' && val != null){
                    return listItem[prop] <= val;
                }else {
                    return listItem;
                }
            });
        };
    });

    var adSenseTpl = '<ins class="adsbygoogle" style="display:block" data-ad-format="fluid" data-ad-layout-key="-h2+d+5c-9-3e" data-ad-client="ca-pub-8617038961175999" data-ad-slot="6266589901"></ins>';
    app.directive('googleAdsense', function($window, $compile) {
        return {
            restrict: 'A',
            transclude: true,
            template: adSenseTpl,
            replace: false,
            link: function postLink(scope, element, iAttrs) {
                element.html("");
                element.append(angular.element($compile(adSenseTpl)(scope)));
                if (!$window.adsbygoogle) {
                    $window.adsbygoogle = [];
                }
                $window.adsbygoogle.push({});
            }
        };
    });
})(jQuery);