var mr_firstSectionHeight,
mr_nav, mr_fixedAt, mr_navOuterHeight, mr_navScrolled = false, mr_navFixed = false, mr_outOfSight = false, mr_floatingProjectSections, mr_scrollTop = 0;
$(document).ready(function() {
"use strict";
// Smooth scroll to inner links $('.inner-link').each(function(){ var href = $(this).attr('href'); if(href.charAt(0) !== "#"){ $(this).removeClass('inner-link'); } });
if($('.inner-link').length){ $('.inner-link').smoothScroll({ offset: -55, speed: 800 });
}
// Update scroll variable for scrolling functions
addEventListener('scroll', function() { mr_scrollTop = window.pageYOffset; }, false);
// Append .background-image-holder <img>'s as CSS backgrounds
$('.background-image-holder').each(function() { var imgSrc = $(this).children('img').attr('src'); $(this).css('background', 'url("' + imgSrc + '")'); $(this).children('img').hide(); $(this).css('background-position', 'initial'); });
// Fade in background images
setTimeout(function() { $('.background-image-holder').each(function() { $(this).addClass('fadeIn'); }); }, 200);
// Initialize Tooltips
$('[data-toggle="tooltip"]').tooltip();
// Icon bulleted lists
$('ul[data-bullet]').each(function(){ var bullet = $(this).attr('data-bullet'); $(this).find('li').prepend(''); });
// Progress Bars
$('.progress-bar').each(function() { $(this).css('width', $(this).attr('data-progress') + '%'); });
// Navigation
if (!$('nav').hasClass('fixed') && !$('nav').hasClass('absolute')) {
// Make nav container height of nav
$('.nav-container').css('min-height', $('nav').outerHeight(true));
$(window).resize(function() { $('.nav-container').css('min-height', $('nav').outerHeight(true)); });
// Compensate the height of parallax element for inline nav
if ($(window).width() > 768) { $('.parallax:nth-of-type(1) .background-image-holder').css('top', -($('nav').outerHeight(true))); }
// Adjust fullscreen elements
if ($(window).width() > 768) { $('section.fullscreen:nth-of-type(1)').css('height', ($(window).height() - $('nav').outerHeight(true))); }
} else { $('body').addClass('nav-is-overlay'); }
if ($('nav').hasClass('bg-dark')) { $('.nav-container').addClass('bg-dark'); }
// Fix nav to top while scrolling
mr_nav = $('body .nav-container nav:first'); mr_navOuterHeight = $('body .nav-container nav:first').outerHeight(); mr_fixedAt = typeof mr_nav.attr('data-fixed-at') !== typeof undefined ? parseInt(mr_nav.attr('data-fixed-at').replace('px', )) : parseInt($('section:nth-of-type(1)').outerHeight()); window.addEventListener("scroll", updateNav, false);
// Menu dropdown positioning
$('.menu > li > ul').each(function() { var menu = $(this).offset(); var farRight = menu.left + $(this).outerWidth(true); if (farRight > $(window).width() && !$(this).hasClass('mega-menu')) { $(this).addClass('make-right'); } else if (farRight > $(window).width() && $(this).hasClass('mega-menu')) { var isOnScreen = $(window).width() - menu.left; var difference = $(this).outerWidth(true) - isOnScreen; $(this).css('margin-left', -(difference)); } });
// Mobile Menu
$('.mobile-toggle').click(function() { $('.nav-bar').toggleClass('nav-open'); $(this).toggleClass('active'); });
$('.menu li').click(function(e) { if (!e) e = window.event; e.stopPropagation(); if ($(this).find('ul').length) { $(this).toggleClass('toggle-sub'); } else { $(this).parents('.toggle-sub').removeClass('toggle-sub'); } });
$('.menu li a').click(function() { if ($(this).hasClass('inner-link')){ $(this).closest('.nav-bar').removeClass('nav-open'); } });
$('.module.widget-handle').click(function() { $(this).toggleClass('toggle-widget-handle'); });
$('.search-widget-handle .search-form input').click(function(e){ if (!e) e = window.event; e.stopPropagation(); }); // Offscreen Nav if($('.offscreen-toggle').length){ $('body').addClass('has-offscreen-nav'); } else{ $('body').removeClass('has-offscreen-nav'); } $('.offscreen-toggle').click(function(){ $('.main-container').toggleClass('reveal-nav'); $('nav').toggleClass('reveal-nav'); $('.offscreen-container').toggleClass('reveal-nav'); }); $('.main-container').click(function(){ if($(this).hasClass('reveal-nav')){ $(this).removeClass('reveal-nav'); $('.offscreen-container').removeClass('reveal-nav'); $('nav').removeClass('reveal-nav'); } }); $('.offscreen-container a').click(function(){ $('.offscreen-container').removeClass('reveal-nav'); $('.main-container').removeClass('reveal-nav'); $('nav').removeClass('reveal-nav'); });
// Populate filters $('.projects').each(function() {
var filters = "";
$(this).find('.project').each(function() {
var filterTags = $(this).attr('data-filter').split(',');
filterTags.forEach(function(tagName) { if (filters.indexOf(tagName) == -1) {filters += '
} }); $(this).closest('.projects').find('ul.filters').empty().append('
}); });
$('.filters li').click(function() { var filter = $(this).attr('data-filter'); $(this).closest('.filters').find('li').removeClass('active'); $(this).addClass('active');
$(this).closest('.projects').find('.project').each(function() { var filters = $(this).attr('data-filter');
if (filters.indexOf(filter) == -1) { $(this).addClass('inactive'); } else { $(this).removeClass('inactive'); } });
if (filter == 'all') { $(this).closest('.projects').find('.project').removeClass('inactive'); } });
// Twitter Feed jQuery('.tweets-feed').each(function(index) { jQuery(this).attr('id', 'tweets-' + index); }).each(function(index) { var TweetConfig = { "id": jQuery('#tweets-' + index).attr('data-widget-id'), "domId": , "maxTweets": jQuery('#tweets-' + index).attr('data-amount'), "enableLinks": true, "showUser": true, "showTime": true, "dateFunction": , "showRetweet": false, "customCallback": handleTweets }; function handleTweets(tweets) { var x = tweets.length; var n = 0; var element = document.getElementById('tweets-' + index);var html = '
n++; }html += '';
element.innerHTML = html; return html; } twitterFetcher.fetch(TweetConfig); });
// Instagram Feed if($('.instafeed').length){ jQuery.fn.spectragram.accessData = {
accessToken: '1406933036.dc95b96.2ed56eddc62f41cbb22c1573d58625a2', clientID: '87e6d2b8a0ef4c7ab8bc45e80ddd0c6a' };
$('.instafeed').each(function() { var feedID = $(this).attr('data-user-name'); $(this).children('ul').spectragram('getUserFeed', { query: feedID, max: 12 }); }); }
// Flickr Feeds
if($('.flickr-feed').length){ $('.flickr-feed').each(function(){ var userID = $(this).attr('data-user-id'); var albumID = $(this).attr('data-album-id');$(this).flickrPhotoStream({ id: userID, setId: albumID, container: '
});
$('.tabs li').each(function() { var originalTab = $(this), activeClass = ""; if (originalTab.is('.tabs>li:first-child')) { activeClass = ' class="active"'; } var tabContent = originalTab.find('.tab-content').detach().wrap('<li' + activeClass + '></li>').parent(); originalTab.closest('.tabbed-content').find('.content').append(tabContent); });
$('.tabs li').click(function() { $(this).closest('.tabs').find('li').removeClass('active'); $(this).addClass('active'); var liIndex = $(this).index() + 1; $(this).closest('.tabbed-content').find('.content>li').removeClass('active'); $(this).closest('.tabbed-content').find('.content>li:nth-of-type(' + liIndex + ')').addClass('active'); });
// Local Videos
$('section').closest('body').find('.local-video-container .play-button').click(function() { $(this).siblings('.background-image-holder').removeClass('fadeIn'); $(this).siblings('.background-image-holder').css('z-index', -1); $(this).css('opacity', 0); $(this).siblings('video').get(0).play(); });
// Youtube Videos
$('section').closest('body').find('.player').each(function() { var section = $(this).closest('section'); section.find('.container').addClass('fadeOut'); var src = $(this).attr('data-video-id'); var startat = $(this).attr('data-start-at'); $(this).attr('data-property', "{videoURL:'http://youtu.be/" + src + "',containment:'self',autoPlay:true, mute:true, startAt:" + startat + ", opacity:1, showControls:false}"); });
if($('.player').length){
$('.player').each(function(){
var section = $(this).closest('section'); var player = section.find('.player'); player.YTPlayer(); player.on("YTPStart",function(e){ section.find('.container').removeClass('fadeOut'); section.find('.masonry-loader').addClass('fadeOut'); });
}); }
// Interact with Map once the user has clicked (to prevent scrolling the page = zooming the map
$('.map-holder').click(function() { $(this).addClass('interact'); }); if($('.map-holder').length){ $(window).scroll(function() {
if ($('.map-holder.interact').length) { $('.map-holder.interact').removeClass('interact'); } });
} // Countdown Timers
if ($('.countdown').length) { $('.countdown').each(function() { var date = $(this).attr('data-date'); $(this).countdown(date, function(event) { $(this).text( event.strftime('%D days %H:%M:%S') ); }); }); } // // // // // Contact form code // // // // //
$('form.form-email, form.form-newsletter').submit(function(e) {
// return false so form submits through jQuery rather than reloading page. if (e.preventDefault) e.preventDefault(); else e.returnValue = false;
var thisForm = $(this).closest('form.form-email, form.form-newsletter'), submitButton = thisForm.find('button[type="submit"]'), error = 0, originalError = thisForm.attr('original-error'), preparedForm, iFrame, userEmail, userFullName, userFirstName, userLastName, successRedirect, formError, formSuccess;
// Mailchimp/Campaign Monitor Mail List Form Scripts iFrame = $(thisForm).find('iframe.mail-list-form');
thisForm.find('.form-error, .form-success').remove(); submitButton.attr('data-text', submitButton.text());thisForm.append(' '); thisForm.append(' ');
formError = thisForm.find('.form-error'); formSuccess = thisForm.find('.form-success'); thisForm.addClass('attempted-submit');
// Do this if there is an iframe, and it contains usable Mail Chimp / Campaign Monitor iframe embed code if ((iFrame.length) && (typeof iFrame.attr('srcdoc') !== "undefined") && (iFrame.attr('srcdoc') !== "")) {
console.log('Mail list form signup detected.'); if (typeof originalError !== typeof undefined && originalError !== false) { formError.html(originalError); } userEmail = $(thisForm).find('.signup-email-field').val(); userFullName = $(thisForm).find('.signup-name-field').val(); if ($(thisForm).find('input.signup-first-name-field').length) { userFirstName = $(thisForm).find('input.signup-first-name-field').val(); } else { userFirstName = $(thisForm).find('.signup-name-field').val(); } userLastName = $(thisForm).find('.signup-last-name-field').val();
// validateFields returns 1 on error; if (validateFields(thisForm) !== 1) { preparedForm = prepareSignup(iFrame);
preparedForm.find('#mce-EMAIL, #fieldEmail').val(userEmail); preparedForm.find('#mce-LNAME, #fieldLastName').val(userLastName); preparedForm.find('#mce-FNAME, #fieldFirstName').val(userFirstName); preparedForm.find('#mce-NAME, #fieldName').val(userFullName); thisForm.removeClass('attempted-submit');
// Hide the error if one was shown formError.fadeOut(200); // Create a new loading spinner in the submit button. submitButton.html(jQuery('<div />').addClass('form-loading')).attr('disabled', 'disabled'); try{ $.ajax({ url: preparedForm.attr('action'), crossDomain: true, data: preparedForm.serialize(), method: "GET", cache: false, dataType: 'json', contentType: 'application/json; charset=utf-8', success: function(data){ // Request was a success, what was the response? if (data.result != "success" && data.Status != 200) { // Error from Mail Chimp or Campaign Monitor
// Keep the current error text in a data attribute on the form formError.attr('original-error', formError.text()); // Show the error with the returned error text. formError.html(data.msg).fadeIn(1000); formSuccess.fadeOut(1000);
submitButton.html(submitButton.attr('data-text')).removeAttr('disabled'); } else { // Got Success from Mail Chimp submitButton.html(submitButton.attr('data-text')).removeAttr('disabled');
successRedirect = thisForm.attr('success-redirect'); // For some browsers, if empty `successRedirect` is undefined; for others, // `successRedirect` is false. Check for both. if (typeof successRedirect !== typeof undefined && successRedirect !== false && successRedirect !== "") { window.location = successRedirect; }
thisForm.find('input[type="text"]').val(""); thisForm.find('textarea').val(""); formSuccess.fadeIn(1000);
formError.fadeOut(1000); setTimeout(function() { formSuccess.fadeOut(500); }, 5000); } } }); }catch(err){ // Keep the current error text in a data attribute on the form formError.attr('original-error', formError.text()); // Show the error with the returned error text. formError.html(err.message).fadeIn(1000); formSuccess.fadeOut(1000); setTimeout(function() { formError.fadeOut(500); }, 5000);
submitButton.html(submitButton.attr('data-text')).removeAttr('disabled'); }
} else { formError.fadeIn(1000); setTimeout(function() { formError.fadeOut(500); }, 5000); } } else { // If no iframe detected then this is treated as an email form instead. console.log('Send email form detected.'); if (typeof originalError !== typeof undefined && originalError !== false) { formError.text(originalError); }
error = validateFields(thisForm);
if (error === 1) { formError.fadeIn(200); setTimeout(function() { formError.fadeOut(500); }, 3000); } else {
thisForm.removeClass('attempted-submit');
// Hide the error if one was shown formError.fadeOut(200); // Create a new loading spinner in the submit button. submitButton.html(jQuery('<div />').addClass('form-loading')).attr('disabled', 'disabled');
jQuery.ajax({ type: "POST", url: "mail/mail.php", data: thisForm.serialize()+"&url="+window.location.href, success: function(response) { // Swiftmailer always sends back a number representing numner of emails sent. // If this is numeric (not Swift Mailer error text) AND greater than 0 then show success message.
submitButton.html(submitButton.attr('data-text')).removeAttr('disabled');
if ($.isNumeric(response)) { if (parseInt(response) > 0) { // For some browsers, if empty 'successRedirect' is undefined; for others, // 'successRedirect' is false. Check for both. successRedirect = thisForm.attr('success-redirect'); if (typeof successRedirect !== typeof undefined && successRedirect !== false && successRedirect !== "") { window.location = successRedirect; }
thisForm.find('input[type="text"]').val(""); thisForm.find('textarea').val(""); thisForm.find('.form-success').fadeIn(1000);
formError.fadeOut(1000); setTimeout(function() { formSuccess.fadeOut(500); }, 5000); } } // If error text was returned, put the text in the .form-error div and show it. else { // Keep the current error text in a data attribute on the form formError.attr('original-error', formError.text()); // Show the error with the returned error text. formError.text(response).fadeIn(1000); formSuccess.fadeOut(1000); } }, error: function(errorObject, errorText, errorHTTP) { // Keep the current error text in a data attribute on the form formError.attr('original-error', formError.text()); // Show the error with the returned error text. formError.text(errorHTTP).fadeIn(1000); formSuccess.fadeOut(1000); submitButton.html(submitButton.attr('data-text')).removeAttr('disabled'); } }); } } return false; });
$('.validate-required, .validate-email').on('blur change', function() { validateFields($(this).closest('form')); });
$('form').each(function() { if ($(this).find('.form-error').length) { $(this).attr('original-error', $(this).find('.form-error').text()); } });
function validateFields(form) { var name, error, originalErrorMessage;
$(form).find('.validate-required[type="checkbox"]').each(function() { if (!$('[name="' + $(this).attr('name') + '"]:checked').length) { error = 1; name = $(this).attr('name').replace('[]', ); form.find('.form-error').text('Please tick at least one ' + name + ' box.'); } });
$(form).find('.validate-required').each(function() { if ($(this).val() === ) { $(this).addClass('field-error'); error = 1; } else { $(this).removeClass('field-error'); } });
$(form).find('.validate-email').each(function() { if (!(/(.+)@(.+){2,}\.(.+){2,}/.test($(this).val()))) { $(this).addClass('field-error'); error = 1; } else { $(this).removeClass('field-error'); } });
if (!form.find('.field-error').length) { form.find('.form-error').fadeOut(1000); }
return error; }
// // // End contact form code // //
// Get referrer from URL string if (getURLParameter("ref")) { $('form.form-email').append('<input type="text" name="referrer" class="hidden" value="' + getURLParameter("ref") + '"/>'); }
function getURLParameter(name) { return decodeURIComponent((new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(location.search) || [, ""])[1].replace(/\+/g, '%20')) || null; }
// Disable parallax on mobile
if ((/Android|iPhone|iPad|iPod|BlackBerry|Windows Phone/i).test(navigator.userAgent || navigator.vendor || window.opera)) { $('section').removeClass('parallax'); } // Disqus Comments if($('.disqus-comments').length){
/* * * CONFIGURATION VARIABLES * * */ var disqus_shortname = $('.disqus-comments').attr('data-shortname');
/* * * DON'T EDIT BELOW THIS LINE * * */ (function() { var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true; dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js'; (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq); })();
}
// Load Google MAP API JS with callback to initialise when fully loaded if(document.querySelector('[data-maps-api-key]') && !document.querySelector('.gMapsAPI')){ if($('[data-maps-api-key]').length){ var script = document.createElement('script'); var apiKey = $('[data-maps-api-key]:first').attr('data-maps-api-key'); script.type = 'text/javascript'; script.src = 'https://maps.googleapis.com/maps/api/js?key='+apiKey+'&callback=initializeMaps'; script.className = 'gMapsAPI'; document.body.appendChild(script); } }
});
$(window).load(function() {
"use strict";
// Initialize Masonry
setTimeout(initializeMasonry, 1000);
// Initialize twitter feed
var setUpTweets = setInterval(function() { if ($('.tweets-slider').find('li.flex-active-slide').length) { clearInterval(setUpTweets); return; } else { if ($('.tweets-slider').length) { $('.tweets-slider').flexslider({ directionNav: false, controlNav: false }); } } }, 500);
mr_firstSectionHeight = $('.main-container section:nth-of-type(1)').outerHeight(true);
});
function updateNav() {
var scrollY = mr_scrollTop;
if (scrollY <= 0) { if (mr_navFixed) { mr_navFixed = false; mr_nav.removeClass('fixed'); } if (mr_outOfSight) { mr_outOfSight = false; mr_nav.removeClass('outOfSight'); } if (mr_navScrolled) { mr_navScrolled = false; mr_nav.removeClass('scrolled'); } return; }
if (scrollY > mr_navOuterHeight + mr_fixedAt) { if (!mr_navScrolled) { mr_nav.addClass('scrolled'); mr_navScrolled = true; return; } } else { if (scrollY > mr_navOuterHeight) { if (!mr_navFixed) { mr_nav.addClass('fixed'); mr_navFixed = true; }
if (scrollY > mr_navOuterHeight +10) { if (!mr_outOfSight) { mr_nav.addClass('outOfSight'); mr_outOfSight = true; } } else { if (mr_outOfSight) { mr_outOfSight = false; mr_nav.removeClass('outOfSight'); } } } else { if (mr_navFixed) { mr_navFixed = false; mr_nav.removeClass('fixed'); } if (mr_outOfSight) { mr_outOfSight = false; mr_nav.removeClass('outOfSight'); } }
if (mr_navScrolled) { mr_navScrolled = false; mr_nav.removeClass('scrolled'); }
}
}
function capitaliseFirstLetter(string) {
return string.charAt(0).toUpperCase() + string.slice(1);
}
function initializeMasonry(){
$('.masonry').each(function(){ var container = $(this).get(0); var msnry = new Masonry(container, { itemSelector: '.masonry-item' });
msnry.on('layoutComplete', function() {
mr_firstSectionHeight = $('.main-container section:nth-of-type(1)').outerHeight(true);
// Fix floating project filters to bottom of projects container
if ($('.filters.floating').length) { setupFloatingProjectFilters(); updateFloatingFilters(); window.addEventListener("scroll", updateFloatingFilters, false); }
$('.masonry').addClass('fadeIn'); $('.masonry-loader').addClass('fadeOut'); if ($('.masonryFlyIn').length) { masonryFlyIn(); } });
msnry.layout(); });
}
function masonryFlyIn() {
var $items = $('.masonryFlyIn .masonry-item'); var time = 0;
$items.each(function() { var item = $(this); setTimeout(function() { item.addClass('fadeIn'); }, time); time += 170; });
}
function setupFloatingProjectFilters() {
mr_floatingProjectSections = []; $('.filters.floating').closest('section').each(function() { var section = $(this);
mr_floatingProjectSections.push({ section: section.get(0), outerHeight: section.outerHeight(), elemTop: section.offset().top, elemBottom: section.offset().top + section.outerHeight(), filters: section.find('.filters.floating'), filersHeight: section.find('.filters.floating').outerHeight(true) }); });
}
function updateFloatingFilters() {
var l = mr_floatingProjectSections.length; while (l--) { var section = mr_floatingProjectSections[l];
if ((section.elemTop < mr_scrollTop) && typeof window.mr_variant == "undefined" ) { section.filters.css({ position: 'fixed', top: '16px', bottom: 'auto' }); if (mr_navScrolled) { section.filters.css({ transform: 'translate3d(-50%,48px,0)' }); } if (mr_scrollTop > (section.elemBottom - 70)) { section.filters.css({ position: 'absolute', bottom: '16px', top: 'auto' }); section.filters.css({ transform: 'translate3d(-50%,0,0)' }); } } else { section.filters.css({ position: 'absolute', transform: 'translate3d(-50%,0,0)' }); } }
}
window.initializeMaps = function(){
if(typeof google !== "undefined"){ if(typeof google.maps !== "undefined"){ $('.map-canvas[data-maps-api-key]').each(function(){ var mapInstance = this, mapJSON = typeof $(this).attr('data-map-style') !== "undefined" ? $(this).attr('data-map-style'): false, mapStyle = JSON.parse(mapJSON) || [{"featureType":"landscape","stylers":[{"saturation":-100},{"lightness":65},{"visibility":"on"}]},{"featureType":"poi","stylers":[{"saturation":-100},{"lightness":51},{"visibility":"simplified"}]},{"featureType":"road.highway","stylers":[{"saturation":-100},{"visibility":"simplified"}]},{"featureType":"road.arterial","stylers":[{"saturation":-100},{"lightness":30},{"visibility":"on"}]},{"featureType":"road.local","stylers":[{"saturation":-100},{"lightness":40},{"visibility":"on"}]},{"featureType":"transit","stylers":[{"saturation":-100},{"visibility":"simplified"}]},{"featureType":"administrative.province","stylers":[{"visibility":"off"}]},{"featureType":"water","elementType":"labels","stylers":[{"visibility":"on"},{"lightness":-25},{"saturation":-100}]},{"featureType":"water","elementType":"geometry","stylers":[{"hue":"#ffff00"},{"lightness":-25},{"saturation":-97}]}], zoomLevel = (typeof $(this).attr('data-map-zoom') !== "undefined" && $(this).attr('data-map-zoom') !== "") ? $(this).attr('data-map-zoom') * 1: 17, latlong = typeof $(this).attr('data-latlong') != "undefined" ? $(this).attr('data-latlong') : false, latitude = latlong ? 1 *latlong.substr(0, latlong.indexOf(',')) : false, longitude = latlong ? 1 * latlong.substr(latlong.indexOf(",") + 1) : false, geocoder = new google.maps.Geocoder(), address = typeof $(this).attr('data-address') !== "undefined" ? $(this).attr('data-address').split(';'): [""], markerTitle = "We Are Here", isDraggable = $(document).width() > 766 ? true : false, map, marker, markerImage, mapOptions = { draggable: isDraggable, scrollwheel: false, zoom: zoomLevel, disableDefaultUI: true, styles: mapStyle };
if($(this).attr('data-marker-title') != undefined && $(this).attr('data-marker-title') != "" ) { markerTitle = $(this).attr('data-marker-title'); }
if(address != undefined && address[0] != ""){ geocoder.geocode( { 'address': address[0].replace('[nomarker]',)}, function(results, status) { if (status == google.maps.GeocoderStatus.OK) { var map = new google.maps.Map(mapInstance, mapOptions); map.setCenter(results[0].geometry.location); address.forEach(function(address){ var markerGeoCoder; markerImage = {url: window.mr_variant == undefined ? 'img/mapmarker.png' : '../img/mapmarker.png', size: new google.maps.Size(50,50), scaledSize: new google.maps.Size(50,50)}; if(/(\-?\d+(\.\d+)?),\s*(\-?\d+(\.\d+)?)/.test(address) ){ var latlong = address.split(','), marker = new google.maps.Marker({ position: { lat: 1*latlong[0], lng: 1*latlong[1] }, map: map, icon: markerImage, title: markerTitle, optimised: false }); } else if(address.indexOf('[nomarker]') < 0){ markerGeoCoder = new google.maps.Geocoder(); markerGeoCoder.geocode( { 'address': address.replace('[nomarker]',)}, function(results, status) { if (status == google.maps.GeocoderStatus.OK) { marker = new google.maps.Marker({ map: map, icon: markerImage, title: markerTitle, position: results[0].geometry.location, optimised: false }); } }); }
}); } else { console.log('There was a problem geocoding the address.'); } }); } else if(latitude != undefined && latitude != "" && latitude != false && longitude != undefined && longitude != "" && longitude != false ){ mapOptions.center = { lat: latitude, lng: longitude}; map = new google.maps.Map(mapInstance, mapOptions); marker = new google.maps.Marker({ position: { lat: latitude, lng: longitude }, map: map, icon: markerImage, title: markerTitle });
}
}); } }
} initializeMaps();
// End of Maps
// Prepare Signup Form - It is used to retrieve form details from an iframe Mail Chimp or Campaign Monitor form.
function prepareSignup(iFrame){
var form = jQuery('<form />'), div = jQuery('<div />'), action;
jQuery(div).html(iFrame.attr('srcdoc')); action = jQuery(div).find('form').attr('action');
// Alter action for a Mail Chimp-compatible ajax request url. if(/list-manage\.com/.test(action)){ action = action.replace('/post?', '/post-json?') + "&c=?"; if(action.substr(0,2) == "//"){ action = 'http:' + action; } }
// Alter action for a Campaign Monitor-compatible ajax request url. if(/createsend\.com/.test(action)){ action = action + '?callback=?'; }
// Set action on the form form.attr('action', action);
// Clone form input fields from jQuery(div).find('input, select, textarea').not('input[type="submit"]').each(function(){ jQuery(this).clone().appendTo(form);
});
return form;
}
/*\ |*| COOKIE LIBRARY THANKS TO MDN |*| |*| A complete cookies reader/writer framework with full unicode support. |*| |*| Revision #1 - September 4, 2014 |*| |*| https://developer.mozilla.org/en-US/docs/Web/API/document.cookie |*| https://developer.mozilla.org/User:fusionchess |*| |*| This framework is released under the GNU Public License, version 3 or later. |*| http://www.gnu.org/licenses/gpl-3.0-standalone.html |*| |*| Syntaxes: |*| |*| * mr_cookies.setItem(name, value[, end[, path[, domain[, secure]]]]) |*| * mr_cookies.getItem(name) |*| * mr_cookies.removeItem(name[, path[, domain]]) |*| * mr_cookies.hasItem(name) |*| * mr_cookies.keys() |*| \*/
var mr_cookies = {
getItem: function (sKey) { if (!sKey) { return null; } return decodeURIComponent(document.cookie.replace(new RegExp("(?:(?:^|.*;)\\s*" + encodeURIComponent(sKey).replace(/[\-\.\+\*]/g, "\\$&") + "\\s*\\=\\s*([^;]*).*$)|^.*$"), "$1")) || null; }, setItem: function (sKey, sValue, vEnd, sPath, sDomain, bSecure) { if (!sKey || /^(?:expires|max\-age|path|domain|secure)$/i.test(sKey)) { return false; } var sExpires = ""; if (vEnd) { switch (vEnd.constructor) { case Number: sExpires = vEnd === Infinity ? "; expires=Fri, 31 Dec 9999 23:59:59 GMT" : "; max-age=" + vEnd; break; case String: sExpires = "; expires=" + vEnd; break; case Date: sExpires = "; expires=" + vEnd.toUTCString(); break; } } document.cookie = encodeURIComponent(sKey) + "=" + encodeURIComponent(sValue) + sExpires + (sDomain ? "; domain=" + sDomain : "") + (sPath ? "; path=" + sPath : "") + (bSecure ? "; secure" : ""); return true; }, removeItem: function (sKey, sPath, sDomain) { if (!this.hasItem(sKey)) { return false; } document.cookie = encodeURIComponent(sKey) + "=; expires=Thu, 01 Jan 1970 00:00:00 GMT" + (sDomain ? "; domain=" + sDomain : "") + (sPath ? "; path=" + sPath : ""); return true; }, hasItem: function (sKey) { if (!sKey) { return false; } return (new RegExp("(?:^|;\\s*)" + encodeURIComponent(sKey).replace(/[\-\.\+\*]/g, "\\$&") + "\\s*\\=")).test(document.cookie); }, keys: function () { var aKeys = document.cookie.replace(/((?:^|\s*;)[^\=]+)(?=;|$)|^\s*|\s*(?:\=[^;]*)?(?:\1|$)/g, "").split(/\s*(?:\=[^;]*)?;\s*/); for (var nLen = aKeys.length, nIdx = 0; nIdx < nLen; nIdx++) { aKeys[nIdx] = decodeURIComponent(aKeys[nIdx]); } return aKeys; }
};
/*\ |*| END COOKIE LIBRARY \*/