diff --git a/pinry/static/js/bookmarklet.js b/pinry/static/js/bookmarklet.js index b7cc539..394cf96 100644 --- a/pinry/static/js/bookmarklet.js +++ b/pinry/static/js/bookmarklet.js @@ -14,107 +14,99 @@ if (!window.jQuery) { var body = document.getElementsByTagName('body')[0]; var script = document.createElement('script'); + script.onload = main; script.src = '//cdnjs.cloudflare.com/ajax/libs/jquery/1.8.3/jquery.min.js'; body.appendChild(script); -} +} else + jQuery(document).ready(main); // End jQuery Check -(function($) { - $(document).ready(function() { - // Start Helper Functions - function getFormUrl() { - var hostUrl = $('#pinry-bookmarklet').attr('src').split('/')[2]; - var formUrl = '/pins/pin-form/?pin-image-url='; - return 'http://'+hostUrl+formUrl; - } - - function normalizeImageUrl(imageUrl) { - var protocol = imageUrl.split(':')[0]; - if (protocol != 'http' && protocol != 'https') { - if (imageUrl[1] != '/') - imageUrl = 'http://'+window.location.host+imageUrl; - } - return imageUrl; - } - // End Helper Functions - - - // Start View Functions - function pageView() { - var pinryImages = document.createElement('div'); - pinryImages.id = 'pinry-images'; - $(pinryImages).css({ - 'position': 'absolute', - 'z-index': '9001', - 'background': 'rgba(0, 0, 0, 0.7)', - 'padding-top': '70px', - 'top': '0', - 'left': '0', - 'right': '0', - 'height': $(document).height(), - 'text-align': 'center', - 'width': '100%' - }); - var pinryBar = document.createElement('div'); - pinryBar.id = 'pinry-bar'; - $(pinryBar).css({ - 'background': 'black', - 'padding': '15px', - 'position': 'absolute', - 'z-index': '9002', - 'width': '100%', - 'top': 0, - 'border-bottom': '1px solid #555', - 'color': 'white', - 'text-align': 'center', - 'font-size': '22px' - }); - $('body').append(pinryImages); - $('#pinry-images').append(pinryBar); - $('#pinry-bar').html('Pinry Bookmarklet'); - $(window).scrollTop(0); - } - - function imageView(imageUrl) { - // Requires that pageView has been created already - imageUrl = normalizeImageUrl(imageUrl); - var image = document.createElement('div'); - $(image).css({ - 'background-image': 'url('+imageUrl+')', - 'background-position': 'center center', - 'background-repeat': 'no-repeat', - 'display': 'inline-block', - 'width': '200px', - 'height': '200px', - 'margin': '15px', - 'cursor': 'pointer', - 'border': '1px solid #555' - }); - $(image).click(function() { - var popUrl = getFormUrl()+imageUrl; - window.open(popUrl); - $('#pinry-images').remove(); - }); - return $('#pinry-images').append(image); - } - // End View Functions - - - // Start Active Functions - function addAllImagesToPageView() { - var images = $('body').find('img'); - images.each(function() { - if ($(this).width() > 200 && $(this).height() > 200) - imageView($(this).attr('src')); - }); - return images; - } - // End Active Functions - - - // Start Init - pageView(); // Build page before we insert images - addAllImagesToPageView(); // Add all images on page to our new pageView - // End Init - }); -})(jQuery); +function main() { + var $ = jQuery; + + // Start Helper Functions + function getFormUrl() { + var hostUrl = $('#pinry-bookmarklet').attr('src').split('/')[2]; + var formUrl = '/pins/pin-form/?pin-image-url='; + return 'http://'+hostUrl+formUrl; + } + // End Helper Functions + + + // Start View Functions + function pageView() { + var pinryImages = document.createElement('div'); + pinryImages.id = 'pinry-images'; + $(pinryImages).css({ + 'position': 'absolute', + 'z-index': '9001', + 'background': 'rgba(0, 0, 0, 0.7)', + 'padding-top': '70px', + 'top': '0', + 'left': '0', + 'right': '0', + 'height': $(document).height(), + 'text-align': 'center', + 'width': '100%' + }); + var pinryBar = document.createElement('div'); + pinryBar.id = 'pinry-bar'; + $(pinryBar).css({ + 'background': 'black', + 'padding': '15px', + 'position': 'absolute', + 'z-index': '9002', + 'width': '100%', + 'top': 0, + 'border-bottom': '1px solid #555', + 'color': 'white', + 'text-align': 'center', + 'font-size': '22px' + }); + $('body').append(pinryImages); + $('#pinry-images').append(pinryBar); + $('#pinry-bar').html('Pinry Bookmarklet'); + $(window).scrollTop(0); + } + + function imageView(imageUrl) { + // Requires that pageView has been created already + var image = document.createElement('div'); + $(image).css({ + 'background-image': 'url('+imageUrl+')', + 'background-position': 'center center', + 'background-repeat': 'no-repeat', + 'display': 'inline-block', + 'width': '200px', + 'height': '200px', + 'margin': '15px', + 'cursor': 'pointer', + 'border': '1px solid #555' + }); + $(image).click(function() { + var popUrl = getFormUrl()+encodeURIComponent(imageUrl); + window.open(popUrl); + $('#pinry-images').remove(); + }); + return $('#pinry-images').append(image); + } + // End View Functions + + + // Start Active Functions + function addAllImagesToPageView() { + var images = $('body').find('img'); + images.each(function() { + if ($(this).width() > 200 && $(this).height() > 200) + imageView(this.src); + }); + return images; + } + // End Active Functions + + + // Start Init + pageView(); // Build page before we insert images + addAllImagesToPageView(); // Add all images on page to our new pageView + // End Init +} diff --git a/pinry/static/js/helpers.js b/pinry/static/js/helpers.js index e82f1a0..33e95e8 100644 --- a/pinry/static/js/helpers.js +++ b/pinry/static/js/helpers.js @@ -56,9 +56,5 @@ function postPinData(data) { function getUrlParameter(name) { - var decode = decodeURI( - (RegExp(name + '=' + '(.+?)(&|$)').exec(location.search)||[,null])[1] - ); - if (decode == 'null') return null; - else return decode; + return decodeURIComponent((new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(location.search)||[,""])[1].replace(/\+/g, '%20'))||null; }