%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /var/www/pn/beta/64801_wp-content/themes/intosai/assets/scripts/
Upload File :
Create Path :
Current File : /var/www/pn/beta/64801_wp-content/themes/intosai/assets/scripts/main.js

(function($) {
  var Sage = {

    //**************************************************************************************************
    // RUN SCRIPTS ON THE MAP PAGE
    //**************************************************************************************************
    'page_template_page_map': {
        init: function() {

            $(document).ready(function(){

                // Show and hide content
                //**********************************************************************************************
                var login_tgl = $('#login_tgl');
                var search_tgl = $('#tglTopSearch');
                var filterTgl = $('#hide_mc');
                var mapContent = $('#map_content');

                filterTgl.click(function(){
                    mapContent.toggleClass('hidden');
                });

                login_tgl.click(function(){
                    if($(this).hasClass('open')){
                        mapContent.addClass('hidden');
                    }else{
                        mapContent.removeClass('hidden');
                    }
                });
                search_tgl.click(function(){
                    if($(this).hasClass('open')){
                        mapContent.addClass('hidden');
                    }else{
                        mapContent.removeClass('hidden');
                    }
                });

                // NAVIGATE FILTER TABS
                //**********************************************************************************************
                // "Go to"- Buttons
                var toFilterCustom      = $('#custom');
                var toFilterProposed    = $('#proposed');
                var toFilterPlanned     = $('#planned');
                var toFilterOngoing     = $('#ongoing');
                var toFilterCompleted   = $('#completed');
                var toFilterAll         = $('#filterAll');

                // Status Options
                var opt1 = $('#status_1');
                var opt2 = $('#status_2');
                var opt3 = $('#status_3');
                var opt4 = $('#status_4');
                var opt5 = $('#status_5');
                var opt6 = $('#status_6');

                // SAI Select
                var saiSelectReset = $('#projBenSAI');

                // "Go back"- Buttons
                var toStart = $('.backtostart');

                // Container
                var start       = $('#mapStart');
                var filter      = $('#filter');
                var saiHolder   = $('#sai_holder');

                // Navigate to Filter from Start
                toFilterCustom.click(function(){
                    start.hide();
                    saiHolder.hide();
                    filter.show();
                });

                // Navigate to Filter from Start with Quick Search
                toFilterProposed.click(function(){
                    resetFilter();

                    start.hide();
                    saiHolder.hide();
                    filter.show();

                    saiSelectReset.prop('selectedIndex', 0);

                    opt1.prop('checked', true);
                    opt2.prop('checked', true);
                    opt3.prop('checked', false);
                    opt4.prop('checked', false);
                    opt5.prop('checked', false);
                    opt6.prop('checked', false);

                    var name = ''; var benLvl = ''; var region = ''; var benSai = ''; var agencys = ''; var funding = ''; var dac = ''; var suppBased = ''; var initiation = ''; var suppCats = '';

                    var status = ['Proposed (No expression of interest)', 'Proposed (Expression of interest)'];
                    //console.log(status);
                    changeEvent(name, benLvl, region, benSai, agencys, funding, status, dac, suppBased, initiation, suppCats);
                });

                toFilterPlanned.click(function(){
                    resetFilter();

                    start.hide();
                    saiHolder.hide();
                    filter.show();

                    saiSelectReset.prop('selectedIndex', 0);

                    opt1.prop('checked', false);
                    opt2.prop('checked', false);
                    opt3.prop('checked', true);
                    opt4.prop('checked', false);
                    opt5.prop('checked', false);
                    opt6.prop('checked', false);

                    var name = ''; var benLvl = ''; var region = ''; var benSai = ''; var agencys = ''; var funding = ''; var dac = ''; var suppBased = ''; var initiation = ''; var suppCats = '';

                    var status = 'Planned';
                    changeEvent(name, benLvl, region, benSai, agencys, funding, status, dac, suppBased, initiation, suppCats);
                });

                toFilterOngoing.click(function(){
                    resetFilter();

                    start.hide();
                    saiHolder.hide();
                    filter.show();

                    saiSelectReset.prop('selectedIndex', 0);

                    opt1.prop('checked', false);
                    opt2.prop('checked', false);
                    opt3.prop('checked', false);
                    opt4.prop('checked', false);
                    opt5.prop('checked', true);
                    opt6.prop('checked', false);

                    var name = ''; var benLvl = ''; var region = ''; var benSai = ''; var agencys = ''; var funding = ''; var dac = ''; var suppBased = ''; var initiation = ''; var suppCats = '';

                    var status = 'Ongoing';
                    changeEvent(name, benLvl, region, benSai, agencys, funding, status, dac, suppBased, initiation, suppCats);
                });

                // Funktion som visar alla aktiva projekt
                toFilterAll.click(function(){
                    resetFilter();

                    start.hide();
                    saiHolder.hide();
                    filter.show();

                    saiSelectReset.prop('selectedIndex', 0);

                    opt1.prop('checked', false);
                    opt2.prop('checked', false);
                    opt3.prop('checked', false);
                    opt4.prop('checked', false);
                    opt5.prop('checked', false);
                    opt6.prop('checked', false);

                    var name = ''; var benLvl = ''; var region = ''; var benSai = ''; var agencys = ''; var funding = ''; var dac = ''; var suppBased = ''; var initiation = ''; var suppCats = ''; var status = '';

                    changeEvent(name, benLvl, region, benSai, agencys, funding, status, dac, suppBased, initiation, suppCats);
                });

                toFilterCompleted.click(function(){
                    resetFilter();

                    start.hide();
                    saiHolder.hide();
                    filter.show();

                    saiSelectReset.prop('selectedIndex', 0);

                    opt1.prop('checked', false);
                    opt2.prop('checked', false);
                    opt3.prop('checked', false);
                    opt4.prop('checked', false);
                    opt5.prop('checked', false);
                    opt6.prop('checked', true);

                    var name = ''; var benLvl = ''; var region = ''; var benSai = ''; var agencys = ''; var funding = ''; var dac = ''; var suppBased = ''; var initiation = ''; var suppCats = '';

                    var status = 'Completed';
                    changeEvent(name, benLvl, region, benSai, agencys, funding, status, dac, suppBased, initiation, suppCats);
                });

                // Navigate to Start from Filter
                toStart.click(function(){
                    filter.hide();
                    saiHolder.hide();
                    start.show();
                });

                // Navigate to SAI from Start
                toStart.click(function(){
                    filter.hide();
                    saiHolder.hide();
                    start.show();
                });

                // REST FILTER SEARCH
                //**********************************************************************************************
                var initReset = $('#rf');
                initReset.click(function(){
                    resetFilter();
                });

                function resetFilter(){
                    document.getElementById("map_filter").reset();
                };

                // TOGGLE CHECK SELS
                //**********************************************************************************************
                var checkSel        = $('.check_select');
                var checkSelOptions = $('.check_sel_toggel');
                var deTogglers      = $('input, textarea, select');
                var filterTgl       = $('#filterProjects');

                checkSel.click(function(){
                    checkSelOptions.slideUp(300);

                    selToggle = $(this).attr('data-checksel');

                    if($("[data-checkseltoggel='"+selToggle+"']").is(":hidden")){
                        $("[data-checkseltoggel='"+selToggle+"']").slideDown(300);
                    }else{
                        $("[data-checkseltoggel='"+selToggle+"']").slideUp(300);
                    }
                });

                deTogglers.focus(function() {
                    if($(this).hasClass('multiBlur')){
                        checkSelOptions.slideUp(300);
                    }
                });

                filterTgl.click(function(){
                    checkSelOptions.slideUp(300);
                });

                // AJAX FILTER
                //**********************************************************************************************
                var initFiliter = $('#filterProjects');
                initFiliter.click(function(){
                    console.log("Running");
                    var name        = $('#projName').val();
                    var benLvl      = $('#projBenLevel').val();
                    var region      = $('#projRegion').val();
                    var benSai      = $('#projBenSAI').val();
                    var agencys     = $('#projAgencys').val();
                    var funding     = $('#projFunding').val();

                    var checkStatus = $('.status_multi');
                    var checked = [];
                    checkStatus.each(function(){
                        if($(this).is(":checked")){
                            checked.push($(this).val());
                        }
                    });
                    var status      = checked;

                    var dac         = $('#projDAC').val();
                    var suppBased   = $('#projSuppBased').val();
                    var initiation  = $('#projInitiation').val();
                    var suppCats    = $('#projSuppCats').val();

                    changeEvent(name, benLvl, region, benSai, agencys, funding, status, dac, suppBased, initiation, suppCats);
                });

                var resultHolder    = $('#filterResult');
                var placeholder     = $('#no-active-filter');
                var noResults       = $('#no_results');
                var working         = $('#working');
                var inner           = $('.inner');
                var innerScroll     = inner[0].scrollHeight;
                function changeEvent(name, benLvl, region, benSai, agencys, funding, status, dac, suppBased, initiation, suppCats){
                    var emptyMessage = 'Something went wrong.';

                    //console.log(status);

                    $.ajaxSetup({cache:true});
                    jQuery.ajax({
                        type:'POST',
                        url: "http://intosaidonor.org/wp-admin/admin-ajax.php",
                        data:{
                            action:'project_filter',
                            name: name,
                            benLvl: benLvl,
                            region: region,
                            benSai: benSai,
                            agencys: agencys,
                            funding: funding,
                            status: status,
                            dac: dac,
                            suppBased: suppBased,
                            initiation: initiation,
                            suppCats: suppCats
                        },
                        beforeSend: function () { // Innan resultaten visas
                            resultHolder.empty();
                            inner.animate({
                                scrollTop: innerScroll,
                            }, 300);
                            placeholder.hide();
                            noResults.hide();
                            working.show();
                        },
                    })
                    .done(function( value ) {
                        var filteredSAIS = [];
                        var markerID;

                        if (!$.trim(value)){ // Om ingenting hittas
                            working.hide();

                            $.each($allmarkers, function(){
                                $(this).attr('data-highlighted', 'no');
                                $(this).attr('data-visible', 'yes');
                            });

                            paintIcons(map, $allmarkers);

                            noResults.show();
                        } else { // Om resultat finns.
                            working.hide();

                            // Get ID:s of all the SAIS that ar linked to current filter
                            var rows = $(value).filter('.row');

                            $.each(rows, function(){
                                var sais = $(this).attr('data-projectterms');
                                var result = sais.split(', ');

                                $.each(result, function(i, val){
                                    if($.inArray(val, filteredSAIS) == -1){
                                        filteredSAIS.push(val);
                                    }
                                });
                            });

                            var projBenSAI = $('#projBenSAI');
                            var benSAIStatus = projBenSAI.prop('selectedIndex');
                            var saiName = '';

                            if(benSAIStatus === 0){
                                //console.log('Beneficiary SAI är inte satt');
                                //console.log($allmarkers);
                            }else{
                                //console.log(projBenSAI.val());
                                saiName = projBenSAI.val();
                            }

                            $.each($allmarkers, function(){
                                markerID = $(this).attr('data-markerid');
                                markerSAI = $(this).attr('data-sainame');

                                var highlighted =  false;

                                if(saiName !== '' && saiName === markerSAI){
                                    highlighted = true;
                                }else if(saiName === '' && $.inArray(markerID, filteredSAIS) > -1){
                                    highlighted = true;
                                }

                                if(highlighted){
                                    $(this).attr('data-highlighted', 'yes');
                                    $(this).attr('data-visible', 'yes');
                                }else{
                                    $(this).attr('data-highlighted', 'no');
                                    $(this).attr('data-visible', 'no');
                                }

                            });

                            paintIcons(map, $allmarkers);

                            resultHolder.append(value);
                        }
                    })
                    .success(function(){
                        reinitialise();
                    });
                }

                function reinitialise(){

                    var projRow = $('.project_head');
                    projRow.click(function(){
                        var expand = $(this).attr('data-projecttgl');
                        $("[data-projectmore='"+expand+"']").slideToggle(300);
                    });

                }

                // GET SAI INFORMATION
                //**********************************************************************************************
                var saiResult = $('#saiInfo');
                var saiWorking = $('#saiworking');

                function saiInfo(id){
                    var emptyMessage = 'Something went wrong.';

                    start.hide();
                    filter.hide();
                    saiHolder.show();

                    $.ajaxSetup({cache:true});
                    jQuery.ajax({
                        type:'POST',
                        url: "http://intosaidonor.org/wp-admin/admin-ajax.php",
                        data:{
                            action:'display_sai',
                            id: id,
                        },
                        beforeSend: function () { // Innan resultaten visas
                            saiResult.empty();
                            saiWorking.show();
                        },
                    })
                    .done(function( value ) {
                        if (!$.trim(value)){ // Om ingenting hittas
                            saiWorking.hide();
                        } else { // Om resultat finns.
                            saiWorking.hide();
                            saiResult.append(value);
                        }
                    })
                    .success(function(){
                        reinitialise();
                    });
                }

                // RENDER MAP
                //**********************************************************************************************
                var $allmarkers = $('#map').find('.marker'); // var
                var map = null;

                function new_map($el) {

                    var args = { // vars
                    	zoom		        : 3,
                    	center		        : new google.maps.LatLng(2.432740, 47.724609),
                    	mapTypeId	        : google.maps.MapTypeId.ROADMAP,
                        zoomControl         : true,
                        mapTypeControl      : false,
                        scaleControl        : false,
                        streetViewControl   : false,
                        rotateControl       : false,
                        fullscreenControl   : false,
                        styles              : [{
                                "featureType": "administrative", "elementType": "all", "stylers": [{ "saturation": "-100" }]
                            },{
                                "featureType": "administrative.province", "elementType": "all", "stylers": [{ "visibility": "off" }]
                            },{
                                "featureType": "landscape", "elementType": "all", "stylers": [{ "saturation": -100 },{ "lightness": 65 },{ "visibility": "on" }]
                            },{
                                "featureType": "poi", "elementType": "all", "stylers": [{ "saturation": -100 },{ "lightness": "50" },{ "visibility": "simplified" }]
                            },{
                                "featureType": "road", "elementType": "all", "stylers": [{ "saturation": "-100" }]
                            },{
                                "featureType": "road.highway", "elementType": "all", "stylers": [{ "visibility": "simplified" }]
                            },{
                                "featureType": "road.arterial", "elementType": "all", "stylers": [{ "lightness": "30" }]
                            },{
                                "featureType": "road.local", "elementType": "all", "stylers": [{ "lightness": "40" }]
                            },{
                                "featureType": "transit", "elementType": "all", "stylers": [{ "saturation": -100 },{ "visibility": "simplified" }]
                            },{
                                "featureType": "water", "elementType": "geometry", "stylers": [{ "hue": "#ffff00" },{ "lightness": -10 },{ "saturation": -100 }]
                            },{
                                "featureType": "water", "elementType": "labels", "stylers": [{ "visibility": "off" }]
                            },{
                                "featureType": "administrative.country", "elementType": "labels", "stylers": [{ "visibility": "off" }]
                            },{
                                "featureType": "administrative.country", "elementType": "geometry.stroke", "stylers": [{ "visibility": "on" },{ "saturation": "-100" },{ "lightness": "60" },{ "weight": "1" }]
                            },{
                                "featureType": "administrative", "elementType": "geometry.fill", "stylers": [{ "visibility": "off" }]
                            }
                        ]
                    };

                    map = new google.maps.Map($el[0], args); // create map

                    // var infowindow = new google.maps.InfoWindow({ }); // create info window
                    //
                    // google.maps.event.addListener(infowindow, 'domready', function(){ // filter on SAI when button is clicked
                    //     initTooltipBtns();
                    // });
                    //
                    // $markers.each(function() {
                    //     //console.log('each körs');
                    //     var $marker = $(this);
                    //     generateIcon($marker.attr('data-projects'), function(src) {
                    //         var pos = new google.maps.LatLng($marker.attr('data-lat'), $marker.attr('data-lng'));
                    //
                    //         bounds.extend(pos);
                    //
                    //         var marker = new google.maps.Marker({
                    //             position: pos,
                    //             map: map,
                    //             icon: src
                    //         });
                    //
                    //         map.markers.push(marker); // add to array
                    //
                    // 		google.maps.event.addListener(marker, 'click', function() { // show info window when marker is clicked
                    //             infowindow.close();
                    //             infowindow.setContent($marker.html());
                    // 			infowindow.open(map, marker);
                    // 		});
                    //
                    //     });
                    // });

                    paintIcons(map, $allmarkers);

                	return map; // return
                }

                function paintIcons(map, $markers){
                    if(typeof map.markers === 'undefined'){
                        map.markers = []; // add a markers reference
                    }else{
                        for(var i in map.markers){
                            map.markers[i].setMap(null);
                        }
                        map.markers = [];
                    }

                    var bounds = new google.maps.LatLngBounds();
                    var infowindow = new google.maps.InfoWindow({ }); // create info window

                    google.maps.event.addListener(infowindow, 'domready', function(){ // filter on SAI when button is clicked
                        initTooltipBtns();
                    });

                    $markers.each(function() {
                        var $marker = $(this);

                        if($marker.attr('data-visible') != 'yes'){
                            return;
                        }

                        var src = generateIcon($marker.attr('data-projects'),$marker.attr('data-highlighted'));

                        var pos = new google.maps.LatLng($marker.attr('data-lat'), $marker.attr('data-lng'));

                        bounds.extend(pos);

                        var marker = new google.maps.Marker({
                            position: pos,
                            map: map,
                            icon: src
                        });

                        map.markers.push(marker); // add to array

                		google.maps.event.addListener(marker, 'click', function() { // show info window when marker is clicked
                            infowindow.close();
                            infowindow.setContent($marker.html());
                			infowindow.open(map, marker);
                		});
                    });
                };

                var generateIconCache = {};

                function generateIcon(number, highlight, visible) {
                    var cacheKey = number + '_' + highlight;
                    if (cacheKey in generateIconCache) {
                        return generateIconCache[number + '_' + highlight];
                    }

                    var fillColor = '#666666';

                    if(highlight === 'yes'){
                        fillColor = '#41a69c';
                    }

                    var fontSize = 14,
                    imageWidth = imageHeight = 45;

                    if (number >= 1000) {
                        fontSize = 10;
                        imageWidth = imageHeight = 55;
                    } else if (number < 1000 && number > 100) {
                        fontSize = 14;
                        imageWidth = imageHeight = 45;
                    }

                    var svg = d3.select(document.createElement('div')).append('svg').attr('viewBox', '0 0 54.4 54.4').attr('width', imageWidth + 'px').attr('height', imageHeight + 'px').append('g');

                    var circles = svg.append('circle').attr('cx', '27.2').attr('cy', '27.2').attr('r', '21.2').style('fill', fillColor);

                    var text = svg.append('text').attr('dx', 27).attr('dy', 32).attr('text-anchor', 'middle').attr('style', 'font-size:' + fontSize + 'px; fill: #FFFFFF; font-family: Arial, Verdana; font-weight: bold').text(number);

                    var svgNode = svg.node().parentNode.cloneNode(true);
                    d3.select(svgNode).select('clippath').remove();

                    // Create SVG Objects
                    var xmlSource = (new XMLSerializer()).serializeToString(svgNode);

                    var canvas = document.createElement('canvas');
                    canvas.width = this.width;
                    canvas.height = this.height;

                    canvg(canvas, xmlSource);

                    var dataURL = canvas.toDataURL();
                    generateIconCache[cacheKey] = dataURL;

                    return dataURL;
                }

                function initTooltipBtns(){
                    var markerTgl = $('.show_sai_projects');
                    var saiSelect = $('#projBenSAI option');

                    markerTgl.click(function(){
                        start.hide();
                        saiHolder.hide();
                        filter.show();

                        var sai = $(this).attr('data-sai');

                        var name = ''; var benLvl = ''; var region = ''; var agencys = ''; var funding = ''; var dac = ''; var suppBased = ''; var initiation = ''; var suppCats = ''; var status = '';

                        $('#status_1').prop('checked', false);
                        $('#status_2').prop('checked', false);
                        $('#status_3').prop('checked', false);
                        $('#status_4').prop('checked', false);
                        $('#status_5').prop('checked', false);
                        $('#status_6').prop('checked', false);

                        saiSelect.filter(function() {
                            //may want to use $.trim in here
                            if($(this).val() == sai){
                                return true;
                            }
                        }).prop('selected', true);

                        var benSai = sai;
                        changeEvent(name, benLvl, region, benSai, agencys, funding, status, dac, suppBased, initiation, suppCats);
                    });

                    var showSAI     = $('.show_sai');
                    var currSAI     = $('#currentSai');
                    var saiChange   = $('#saichanges');

                    showSAI.click(function(){
                        start.hide();
                        filter.hide();

                        var id = $(this).attr('data-sai');
                        var saiTitle = $(this).attr('data-saititle');

                        saiChange.attr('data-saichange', saiTitle);

                        currSAI.text(saiTitle);
                        saiHolder.show();
                        saiInfo(id);
                    });

                }

                var map = null; // global var

                $(document).ready(function(){
                	$('#map').each(function(){
                		map = new_map($(this)); // create map
                	});
                    $('#map').removeClass('opaque');
                });

                //**********************************************************************************************
                // SUGGEST CHANGES VALIDATION
                //**********************************************************************************************

                // Custom not equal to validator
                jQuery.validator.addMethod("notEqual", function(value, element, param) {
                    return this.optional(element) || value != param;
                }, "");

                (function($,W,D) { // NEWSLETTER SUBSCRIPTION
                    var JQUERY4U = {};
                    JQUERY4U.UTIL = {
                        setupFormValidation: function(){
                            $("#changesai").validate({
                                rules: {
                                    saiToChange:    { required: true, notEqual:"na" },
                                    name:           { required: true },
                                    email:          { required: true, email: true },
                                    changes:        { required: true }
                                },
                                messages: {
                                    saiToChange:    "",
                                    name:           "",
                                    email:          "",
                                    changes:        ""
                                },
                                submitHandler: function(form) {
                                    checkSubmit(form);
                                }
                            });
                        }
                    }
                    $(D).ready(function($) {
                        JQUERY4U.UTIL.setupFormValidation();
                    });
                })(jQuery, window, document);

                //**********************************************************************************************
                // OPEN/CLOSE SUGGESTION FORM
                //**********************************************************************************************
                var changeSAI = $('#changeSAIHolder');
                var openChanges = $('#saichanges');
                var closeChanges = $('#closeChangeForm');
                var changeSaiSelect = $('#changeSaiSelect option');

                // Open sugestionform and set select to correct country
                openChanges.click(function(){
                    var thisSAI = $(this).attr('data-saichange');

                    changeSaiSelect.filter(function() {
                        if($(this).val() == thisSAI){
                            return true;
                        }
                    }).prop('selected', true);

                    changeSAI.slideDown(300);
                });

                // Close sugestionform
                closeChanges.click(function(){
                    changeSAI.slideUp(300);
                });

            });

        },
        finalize: function() {

        }
    },
    //**************************************************************************************************
    // RUN SCRIPTS ON THE CONTACT PAGE
    //**************************************************************************************************
    'contact_us': {
        init: function() {

            $(document).ready(function(){

                (function($,W,D) { // CONTACT FORM VALIDATION
                    var JQUERY4U = {};
                    JQUERY4U.UTIL = {
                        setupFormValidation: function(){
                            $("#contactform").validate({
                                rules: {
                                    name:       { required: true },
                                    email:      { required: true, email: true },
                                    message:    { required: true }
                                },
                                messages: {
                                    name:       "",
                                    email:      "",
                                    message:    ""
                                },
                                submitHandler: function(form) {
                                    checkSubmit(form);
                                }
                            });
                        }
                    }
                    $(D).ready(function($) {
                        JQUERY4U.UTIL.setupFormValidation();
                    });
                })(jQuery, window, document);

            });

        },
        finalize: function() {

        }
    },
    //**************************************************************************************************
    // RUN SCRIPTS ON REGISTRATION PAGE
    //**************************************************************************************************
    'user_registration': {
        init: function() {

            $(document).ready(function(){

                (function($,W,D) { // CONTACT FORM VALIDATION
                    var JQUERY4U = {};
                    JQUERY4U.UTIL = {
                        setupFormValidation: function(){
                            $("#registrationform").validate({
                                rules: {
                                    org:            { required: true },
                                    firstname:      { required: true },
                                    lastname:       { required: true },
                                    email:          { required: true, email: true },
                                    password:       { required: true, minlength: 5 },
                                    retypepass:     { required: true, minlength: 5, equalTo: "#password" }
                                },
                                messages: {
                                    org:            "",
                                    firstname:      "",
                                    lastname:       "",
                                    email:          "",
                                    password:       "",
                                    retypepass:     ""
                                },
                                submitHandler: function(form) {
                                    checkSubmit(form);
                                }
                            });
                        }
                    }
                    $(D).ready(function($) {
                        JQUERY4U.UTIL.setupFormValidation();
                    });
                })(jQuery, window, document);

            });

        },
        finalize: function() {

        }
    },
    //**************************************************************************************************
    // RUN SCRIPTS ON CREATE PROJECT PAGTE
    //**************************************************************************************************
    'add_project': {
        init: function() {

            $(document).ready(function(){

                // Initiate Pickadate on the from field
                //**********************************************************************************************
                $('.duration_from').pickadate({
                    format: 'yyyy-mm-dd',
                });

                // Initiate Pickadate on the to field
                //**********************************************************************************************
                $('.duration_to').pickadate({
                    format: 'yyyy-mm-dd',
                });

                // TOGGLE OECD/DAC CRS FIELDS
                //**********************************************************************************************
                $('.toggle_oecdfields').click(function(){
                    $(this).toggleClass('open');
                    $('.oecd_dac-crs .inner').slideToggle(300);
                });

                // TOGGLE CHECK CELS
                //**********************************************************************************************
                var checkSel        = $('.check_select');
                var checkSelOptions = $('.check_sel_toggel');
                var deTogglers      = $('input, textarea, select');

                checkSel.click(function(){
                    checkSelOptions.slideUp(300);

                    selToggle = $(this).attr('data-checksel');

                    if($("[data-checkseltoggel='"+selToggle+"']").is(":hidden")){
                        $("[data-checkseltoggel='"+selToggle+"']").slideDown(300);
                    }else{
                        $("[data-checkseltoggel='"+selToggle+"']").slideUp(300);
                    }
                });

                deTogglers.focus(function() {
                    if($(this).hasClass('multiBlur')){
                        checkSelOptions.slideUp(300);
                    }
                });

                // Custom not equal to validator
                //**********************************************************************************************
                jQuery.validator.addMethod("notEqual", function(value, element, param) {
                    return this.optional(element) || value != param;
                }, "");

                // Validate the add project form
                //**********************************************************************************************
                (function($,W,D) {
                    var JQUERY4U = {};
                    JQUERY4U.UTIL = {
                        setupFormValidation: function(){
                            $("#addproject").validate({
                                rules: {
                                    projectName:  { required: true },
                                    status:       { required: true, notEqual:"" },
                                    benLevel:     { required: true, notEqual:"" },
                                    from:         { required: true },
                                    to:           { required: true },
                                    //supportCats:  { required: true, notEqual:"" }
                                    //'supportCats[]':  { required: true }
                                },
                                messages: {
                                    projectName:  "",
                                    status:       "",
                                    benLevel:     "",
                                    from:         "",
                                    to:           "",
                                    //'supportCats[]':  ""
                                },
                                submitHandler: function(form) {
                                    $("#addproject").addClass('processing');
                                    $("#addproject .sending").show();
                                    checkSubmit(form);
                                }
                            });
                        }
                    }
                    $(D).ready(function($) {
                        JQUERY4U.UTIL.setupFormValidation();
                    });
                })(jQuery, window, document);

            });

        },
        finalize: function() {

        }
    },

    //**************************************************************************************************
    // RUN SCRIPTS ON EDIT PROJECT PAGTE
    //**************************************************************************************************
    'edit_project': {
        init: function() {

            $(document).ready(function(){

                // Initiate Pickadate on the from field
                //**********************************************************************************************
                $('.duration_from').pickadate({
                    format: 'yyyy-mm-dd',
                });

                // Initiate Pickadate on the to field
                //**********************************************************************************************
                $('.duration_to').pickadate({
                    format: 'yyyy-mm-dd',
                });

                // TOGGLE OECD/DAC CRS FIELDS
                //**********************************************************************************************
                $('.toggle_oecdfields').click(function(){
                    $(this).toggleClass('open');
                    $('.oecd_dac-crs .inner').slideToggle(300);
                });

                // TOGGLE CHECK CELS
                //**********************************************************************************************
                var checkSel        = $('.check_select');
                var checkSelOptions = $('.check_sel_toggel');
                var deTogglers      = $('input, textarea, select');

                checkSel.click(function(){
                    checkSelOptions.slideUp(300);

                    selToggle = $(this).attr('data-checksel');

                    if($("[data-checkseltoggel='"+selToggle+"']").is(":hidden")){
                        $("[data-checkseltoggel='"+selToggle+"']").slideDown(300);
                    }else{
                        $("[data-checkseltoggel='"+selToggle+"']").slideUp(300);
                    }
                });

                deTogglers.focus(function() {
                    if($(this).hasClass('multiBlur')){
                        checkSelOptions.slideUp(300);
                    }
                });

                // Custom not equal to validator
                //**********************************************************************************************
                jQuery.validator.addMethod("notEqual", function(value, element, param) {
                    return this.optional(element) || value != param;
                }, "");

                // Validate the add project form
                //**********************************************************************************************
                (function($,W,D) {
                    var JQUERY4U = {};
                    JQUERY4U.UTIL = {
                        setupFormValidation: function(){
                            $("#editproject").validate({
                                rules: {
                                    projectName:  { required: true },
                                    status:       { required: true, notEqual:"" },
                                    benLevel:     { required: true, notEqual:"" },
                                    from:         { required: true },
                                    to:           { required: true },
                                    //supportCats:  { required: true, notEqual:"" }
                                },
                                messages: {
                                    projectName:  "",
                                    status:       "",
                                    benLevel:     "",
                                    from:         "",
                                    to:           "",
                                    //supportCats:  ""
                                },
                                submitHandler: function(form) {
                                    $("#editproject").addClass('processing');
                                    $("#editproject .sending").show();
                                    checkSubmit(form);
                                }
                            });
                        }
                    }
                    $(D).ready(function($) {
                        JQUERY4U.UTIL.setupFormValidation();
                    });
                })(jQuery, window, document);

            });

        },
        finalize: function() {

        }
    },

    //**************************************************************************************************
    // RUN SCRIPTS ON EDIT PROJECT PAGTE
    //**************************************************************************************************
    'user_settings': {
        init: function() {

            $(document).ready(function(){

                // Validate user info
                //**********************************************************************************************
                (function($,W,D) {
                    var JQUERY4U = {};
                    JQUERY4U.UTIL = {
                        setupFormValidation: function(){
                            $("#updateuser").validate({
                                rules: {
                                    org:        { required: true },
                                    firstname:  { required: true },
                                    lastname:   { required: true },
                                    email:      { required: true, email: true },
                                },
                                messages: {
                                    org:        "",
                                    firstname:  "",
                                    lastname:   "",
                                    email:      ""
                                },
                                submitHandler: function(form) {
                                    checkSubmit(form);
                                }
                            });
                        }
                    }
                    $(D).ready(function($) {
                        JQUERY4U.UTIL.setupFormValidation();
                    });
                })(jQuery, window, document);

                // Validate new password
                //**********************************************************************************************
                (function($,W,D) {
                    var JQUERY4U = {};
                    JQUERY4U.UTIL = {
                        setupFormValidation: function(){
                            $("#userpass").validate({
                                rules: {
                                    newPW:      { required: true, minlength: 5 },
                                    retypePW:   { required: true, minlength: 5,  equalTo: "#newpassword" }
                                },
                                messages: {
                                    newPW:      "",
                                    retypePW:   ""
                                },
                                submitHandler: function(form) {
                                    checkSubmit(form);
                                }
                            });
                        }
                    }
                    $(D).ready(function($) {
                        JQUERY4U.UTIL.setupFormValidation();
                    });
                })(jQuery, window, document);

            });

        },
        finalize: function() {

        }
    },
    //**************************************************************************************************
    // RUN SCRIPTS ON MAP LANDING
    //**************************************************************************************************
    'page_id_10': {
        init: function() {
            $(document).ready(function(){
                //**********************************************************************************************
                // INIT PIE CHART FOR PROJECTS
                //**********************************************************************************************
                var ctx = document.getElementById('projectChart').getContext('2d');

                var projectChart = new Chart(ctx,{
                    type: 'pie',
                    data: {
                        datasets: [{
                            data: intosaiRegionData,
                            backgroundColor: [
                                'rgba(255, 215, 0, 1)',     //Gold
                                'rgba(46, 154, 254, 1)',    //Blue
                                'rgba(4, 180, 49, 1)',      //green
                                'rgba(8, 8, 138, 1)',       //dark blue
                                'rgba(223, 58, 1, 1)',      //orange
                                'rgba(164, 164, 164, 1)',   //grey
                                'rgba(138, 8, 8, 1)',       //dark red
                                'rgba(23, 11, 59, 1)',      //darkest blue
                                'rgba(46, 46, 46, 1)',      //darkest grey
                                'rgba(255, 215, 0, .7)',
                                'rgba(46, 154, 254, .7)',
                                'rgba(4, 180, 49, .7)',
                                'rgba(8, 8, 138, .7)',
                                'rgba(223, 58, 1, .7)',
                                'rgba(164, 164, 164, .7)',
                                'rgba(138, 8, 8, .7)',
                                'rgba(23, 11, 59, .7)',
                                'rgba(46, 46, 46, .7)',
                            ],
                        }],
                        labels: intosaiRegionNames,
                    },
                    options: {

                    }
                });

            });
        },
        finalize: function() {

        }
    },

    //**************************************************************************************************
    // RUN SCRIPTS ON ALL PAGES
    //**************************************************************************************************
    'common': {
      init: function() {

        $(document).ready(function(){

            $(window).scroll(function() {

                // Loop over each container, and check if it's visible.
                $('.scrollHolder').each(function() {

                    // Is the specific part visible onScreen?
                    // Check if visible, then add class Onscreen, else remove Onscreen & add Offscreen
                    $(".new_success_stories_Large").each(function() {
                        if ($(this).visible() && !$(this).find('.textContainer').hasClass("Onscreen")){
                            $(this).find('.textContainer').addClass("Onscreen");
                            $(this).find('.textContainer').removeClass("Offscreen");
                        }
                        else if (!$(this).visible()){
                            $(this).find('.textContainer').addClass("Offscreen");
                            $(this).find('.textContainer').removeClass("Onscreen");
                        }
                    });

                    $( ".new_success_stories_Leftimage" ).each(function() {
                        if ($(this).visible() && !$(this).find('.imageContainer').hasClass("Onscreen")){
                            $(this).find('.imageContainer').addClass("Onscreen");
                            $(this).find('.imageContainer').removeClass("Offscreen");

                            $(this).find('.textContainer').addClass("Onscreen");
                            $(this).find('.textContainer').removeClass("Offscreen");
                        }
                        else if (!$(this).visible()){
                            $(this).find('.imageContainer').addClass("Offscreen");
                            $(this).find('.imageContainer').removeClass("Onscreen");

                            $(this).find('.textContainer').addClass("Offscreen");
                            $(this).find('.textContainer').removeClass("Onscreen");
                         }
                    });

                    $(".new_success_stories_Rightimage").each(function() {
                        if($(this).visible() && !$(this).find('.imageContainer').hasClass("Onscreen")){
                            $(this).find('.imageContainer').addClass("Onscreen");
                            $(this).find('.imageContainer').removeClass("Offscreen");

                            $(this).find('.textContainer').addClass("Onscreen");
                            $(this).find('.textContainer').removeClass("Offscreen");
                        }
                        else if (!$(this).visible()){
                            $(this).find('.imageContainer').addClass("Offscreen");
                            $(this).find('.imageContainer').removeClass("Onscreen");

                            $(this).find('.textContainer').addClass("Offscreen");
                            $(this).find('.textContainer').removeClass("Onscreen");
                         }
                    });

                    $(".new_success_stories_Images").each(function() {
                        if($(this).visible() && !$(this).find('.imageContainer').hasClass("Onscreen")){
                            $(this).find('.imageContainer').addClass("Onscreen");
                            $(this).find('.imageContainer').removeClass("Offscreen");

                            $(this).find('.textContainer').addClass("Onscreen");
                            $(this).find('.textContainer').removeClass("Offscreen");
                        }
                        else if (!$(this).visible()){
                            $(this).find('.imageContainer').addClass("Offscreen");
                            $(this).find('.imageContainer').removeClass("Onscreen");

                            $(this).find('.textContainer').addClass("Offscreen");
                            $(this).find('.textContainer').removeClass("Onscreen");
                         }
                    });

                    $(".new_success_stories_Textboxes").each(function() {
                        if($(this).visible() && !$(this).find('.mainContainer').hasClass("Onscreen")) {
                            $(this).find('.mainContainer').addClass("Onscreen");
                            $(this).find('.mainContainer').removeClass("Offscreen");
                        }
                        else if (!$(this).visible()) {
                            $(this).find('.mainContainer').addClass("Offscreen");
                            $(this).find('.mainContainer').removeClass("Onscreen");
                         }
                    });
                }); // END OF: each scrollholder
            }); // END OF: scroll function

            

            // function som sätter på scrollify om screenWidth är högre än 966px
            var winWdth = $( window ).width();
            
            if( winWdth > 966 ) {
                // Funktion som kollar om det finns en class .scrollHolder, om det finns så körs en funktion
                var checkScrollify = $('.scrollHolder');
           
                if(checkScrollify.length !== 0) {

                    // Scrollify function
                    $.scrollify({
                        section : ".scrollHolder",
                        sectionName : "section-name",
                        interstitialSection : "#header, .share_post, #footer",
                        easing: "easeOutExpo",
                        scrollSpeed: 1100,
                        offset : 0,
                        scrollbars: true,
                        standardScrollElements: "",
                        setHeights: true,
                        overflowScroll: true,
                        updateHash: true,
                        touchScroll:true,
                        before:function() {},
                        after:function() {},
                        afterResize:function() {},
                        afterRender:function() {}
                    });
                }
            } else {
                console.log("Off.");
            }

            // Visa dölj menyn (SlideToggle)
            //**********************************************************************************************
            $('#toggle_navigation').click(function(){
                $(this).toggleClass('open');
                $('#main_navigation').slideToggle(0);
            });

            // TOGGLE USER NAV
            //**********************************************************************************************
            var userTgl = $('#toggleUserNav');
            var userNav = $('#user_nav ul li .sub-menu');
            userTgl.click(function(){
                userNav.toggleClass('open');
            });

            // Show/Hide Login Area and Sarch Area
            //**********************************************************************************************

            var login_tgl = $('#login_tgl');
            var login_area = $('.loggin_holder');
            var search_tgl = $('#tglTopSearch');
            var search_area = $('.top_search_holder');

            login_tgl.click(function(){
                $(this).toggleClass('open');
                search_tgl.removeClass('open');
                if($(window).scrollTop() == 0){
                    login_area.slideToggle(200);
                    search_area.slideUp(200);
                }else if($(window).scrollTop() >= 1){
                    login_area.slideDown(200);
                    search_area.slideUp(200);
                    $("html, body").animate({ scrollTop: 0 }, 500);
                }
            });

            search_tgl.click(function(){
                $(this).toggleClass('open');
                login_tgl.removeClass('open');
                if($(window).scrollTop() == 0){
                    search_area.slideToggle(200);
                    login_area.slideUp(200);
                }else if($(window).scrollTop() >= 1){
                    search_area.slideDown(200);
                    login_area.slideUp(200);
                    $("html, body").animate({ scrollTop: 0 }, 500);
                }
            });

            //**********************************************************************************************
            // SITE MESSAGE CONTROLLS
            //**********************************************************************************************
            var msg = $('.message');
            var closeMsg = $('.close_msg');

            closeMsg.click(function(){
                msg.slideToggle(300);
            });

            //**********************************************************************************************
            // INIT TOP SLIDER IF EXISTS
            //**********************************************************************************************
            var slider = $('.slider');

            if(slider){
                slider.bxSlider({
                    auto:           true,
                    pause:          5000,
                    speed:          300,
                    touchEnabled:   false,
                    controls:       false,
                    pager:          true
                });
            }

            //**********************************************************************************************
            // INIT PARTNER TICKER IF EXISTS
            //**********************************************************************************************
            var ticker = $('.partner_ticker');

            if(ticker){
                ticker.bxSlider({
                    minSlides:      1,
                    maxSlides:      4,
                    slideWidth:     270,
                    slideMargin:    30,
                    controls:       true,
                    nextText:       '<i class="fa fa-angle-right"></i>',
                    prevText:       '<i class="fa fa-angle-left"></i>',
                    pager:          false
                });
            }

            //**********************************************************************************************
            // ACCORDION TOGGLES
            //**********************************************************************************************
            var acordion = $('.ac_section');

            acordion.click(function(){
                ac = $(this).attr('data-actitle');

            	$("[data-accontent='"+ac+"']").slideToggle(300);
            });

            //**********************************************************************************************
            // SUCCESS STORIES TOGGLES
            //**********************************************************************************************
            var sch = $('.story_sec_heading');

            sch.click(function(){
                sh = $(this).attr('data-sch');

            	$("[data-sh='"+sh+"']").slideToggle(300);
                $(this).toggleClass('closed');
                $(this).toggleClass('open');
            });

            //**********************************************************************************************
            // TRACKING DOWNLOADS
            //**********************************************************************************************
            var download = $('.download_link');

            download.click(function(){
                filename = $(this).attr('data-filename');
                ga('send', 'event', 'download', filename, '', 1);
            });

            //**********************************************************************************************
            // LOGGIN VALIDATION
            //**********************************************************************************************
            (function($,W,D) { // NEWSLETTER SUBSCRIPTION
                var JQUERY4U = {};
                JQUERY4U.UTIL = {
                    setupFormValidation: function(){
                        $("#loginform").validate({
                            rules: {
                                log: { required: true },
                                pwd: { required: true }
                            },
                            messages: {
                                log: "",
                                pwd: "",
                            },
                            submitHandler: function(form) {
                                checkSubmit(form);
                            }
                        });
                    }
                }
                $(D).ready(function($) {
                    JQUERY4U.UTIL.setupFormValidation();
                });
            })(jQuery, window, document);

            //**********************************************************************************************
            // SEARCH VALIDATION
            //**********************************************************************************************
            (function($,W,D) { // NEWSLETTER SUBSCRIPTION
                var JQUERY4U = {};
                JQUERY4U.UTIL = {
                    setupFormValidation: function(){
                        $("#searchform").validate({
                            rules: {
                                s: { required: true }
                            },
                            messages: {
                                s: ""
                            },
                            submitHandler: function(form) {
                                checkSubmit(form);
                            }
                        });
                    }
                }
                $(D).ready(function($) {
                    JQUERY4U.UTIL.setupFormValidation();
                });
            })(jQuery, window, document);

            //**********************************************************************************************
            // GLOBAL FORM VALIDATIONS
            //**********************************************************************************************
            (function($,W,D) { // NEWSLETTER SUBSCRIPTION
                var JQUERY4U = {};
                JQUERY4U.UTIL = {
                    setupFormValidation: function(){
                        $("#newsletter_signup").validate({
                            rules: {
                                epost: { required: true, email: true }
                            },
                            messages: {
                                epost: "",
                            },
                            submitHandler: function(form) {
                                checkSubmit(form);
                            }
                        });
                    }
                }
                $(D).ready(function($) {
                    JQUERY4U.UTIL.setupFormValidation();
                });
            })(jQuery, window, document);

            // Lägg till span.grow på undermenyer för lättare toggle.
            //**********************************************************************************************

            var mainItems = $('#main_navigation ul li');
            $('<span class="grow"><i class="fa fa-angle-down"></i></span>').insertAfter('#main_navigation ul li.menu-item-has-children > a');
            $(".grow").click(function (){
                if($(this).parent("li").hasClass('open')){
                    mainItems.removeClass('open');
                }else{
                    mainItems.removeClass('open');
                    $(this).parent("li").toggleClass('open');
                }
            });

            // Lägg på classer på meny för att docka den vid scroll. Samt håll koll på Paralax
            //**********************************************************************************************
            $(window).scroll(function(){
                var scrolled = $(this).scrollTop();

                //DOCK HEADER
                if(scrolled > 50) {
                    $('#header').addClass('scrolled');
                    $('body').addClass('scrolled');
                }else{
                    $('#header').removeClass('scrolled');
                    $('body').removeClass('scrolled');
                }

                //STATIC BANNER PARALAX
                var parallaxVal = scrolled / 2;
                var parallax = $('.top_banner.static');
                if(parallax.length !== 0){ //Check if paralax should exist on page
                    parallax.css(
                        'background-position-y', parallaxVal
                    );
                }

            });

            //**********************************************************************************************
            // Lägger till Valid eller Error på inputs, textarea och select vid validering
            //**********************************************************************************************
            $(".row input.requiredField, .row select.requiredField, .row textarea.requiredField").blur(function(){
             var $this = $(this);
             var parent  = $this.parent();
               if (($(this).val().trim().length!=0)){
                    $this.addClass('valid');
                    $this.removeClass('error');
                } else {
                    $this.addClass('error');
                    $this.removeClass('valid');
                }
            });

            //**********************************************************************************************
            // Placera sidfoten i botten på alla sidor om utrymme uppåt finns.
            //**********************************************************************************************
            // var docHeight = $(window).height();
            // var footerHeight = $('#footer').height();
            // var footerTop = $('#footer').position().top + footerHeight;
            // if (footerTop < docHeight) {
            //     $('#footer').css('margin-top', (docHeight - footerTop) + 'px');
            // }

            //**********************************************************************************************
            // Ta bort data-src när bilden är laddad.
            //**********************************************************************************************
            [].forEach.call(document.querySelectorAll('img[data-src]'), function(img) {
                img.setAttribute('src', img.getAttribute('data-src'));
                img.onload = function() {
                    img.removeAttribute('data-src');
                };
            });

            //**********************************************************************************************
            // Spåra Utklick (GA)
            //**********************************************************************************************
            function _gaLt(event){
                var el = event.srcElement || event.target;
                while(el && (typeof el.tagName == 'undefined' || el.tagName.toLowerCase() != 'a' || !el.href)){
                    el = el.parentNode;
                }
                if(el && el.href){
                    var link = el.href;
                    if(link.indexOf(location.host) == -1 && !link.match(/^javascript\:/i)){
                        var hitBack = function(link, target){
                            target ? window.open(link, target) : window.location.href = link;
                        };
                        var target = (el.target && !el.target.match(/^_(self|parent|top)$/i)) ? el.target : false;
                        ga( "send", "event", "Outgoing Links", link,
                            document.location.pathname + document.location.search,
                            {"hitCallback": hitBack(link, target)} );
                        event.preventDefault ? event.preventDefault() : event.returnValue = !1;
                    }
                }
            }
            var w = window;
            w.addEventListener ? w.addEventListener("load",function(){document.body.addEventListener("click",_gaLt,!1)},!1)
            : w.attachEvent && w.attachEvent("onload",function(){document.body.attachEvent("onclick",_gaLt)});

        }); //End of $(document).ready(function()

      },
      finalize: function() {
        // JavaScript to be fired on all pages, after page specific JS is fired
      }
    },



  };

  // The routing fires all common scripts, followed by the page specific scripts.
  // Add additional events for more control over timing e.g. a finalize event
  var UTIL = {
    fire: function(func, funcname, args) {
      var fire;
      var namespace = Sage;
      funcname = (funcname === undefined) ? 'init' : funcname;
      fire = func !== '';
      fire = fire && namespace[func];
      fire = fire && typeof namespace[func][funcname] === 'function';

      if (fire) {
        namespace[func][funcname](args);
      }
    },
    loadEvents: function() {
      // Fire common init JS
      UTIL.fire('common');

      // Fire page-specific init JS, and then finalize JS
      $.each(document.body.className.replace(/-/g, '_').split(/\s+/), function(i, classnm) {
        UTIL.fire(classnm);
        UTIL.fire(classnm, 'finalize');
      });

      // Fire common finalize JS
      UTIL.fire('common', 'finalize');
    }
  };

  // Load Events
  $(document).ready(UTIL.loadEvents);

})(jQuery); // Fully reference jQuery after this point.

Zerion Mini Shell 1.0