%PDF- %PDF-
Direktori : /var/www/pn/beta/64801_wp-content/themes/intosai/assets/scripts/ |
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.