1/* Customize from here downwards */ 2jQuery(document).ready( function($) { 3 //TODO some backwards compatability here - 4 if( $('#LoginWithAjax').length > 0 ){ 5 $('#LoginWithAjax').addClass('lwa'); 6 $('#LoginWithAjax_Status').addClass('lwa-status'); 7 $('#LoginWithAjax_Register').addClass('lwa-register'); 8 $('#LoginWithAjax_Remember').addClass('lwa-remember'); 9 $('#LoginWithAjax_Links_Remember').addClass('lwa-links-remember'); 10 $('#LoginWithAjax_Links_Remember_Cancel').addClass('lwa-links-remember-cancel'); 11 $('#LoginWithAjax_Form').addClass('lwa-form'); 12 } 13 /* 14 * links 15 * add action input htmls 16 */ 17 //Remember and register form AJAX 18 $('form.lwa-form, form.lwa-remember, div.lwa-register form').submit(function(event){ 19 //Stop event, add loading pic... 20 event.preventDefault(); 21 var form = $(this); 22 var statusElement = form.find('.lwa-status'); 23 if( statusElement.length == 0 ){ 24 statusElement = $('<span class="lwa-status"></span>'); 25 form.prepend(statusElement); 26 } 27 var ajaxFlag = form.find('.lwa-ajax'); 28 if( ajaxFlag.length == 0 ){ 29 ajaxFlag = $('<input class="lwa-ajax" name="lwa" type="hidden" value="1" />'); 30 form.prepend(ajaxFlag); 31 } 32 $('<div class="lwa-loading"></div>').prependTo(form); 33 //Make Ajax Call 34 var form_action = form.attr('action'); 35 if( typeof LWA !== 'undefined' ) form_action = LWA.ajaxurl; 36 $.ajax({ 37 type : 'POST', 38 url : form_action, 39 data : form.serialize(), 40 success : function(data){ 41 console.log(data); 42 lwaAjax( data, statusElement ); 43 console.log(data); 44 $(document).trigger('lwa_' + data.action, [data, form]); 45 }, 46 error : function(){ lwaAjax({}, statusElement); }, 47 dataType : 'jsonp' 48 }); 49 //trigger event 50 }); 51 52 //Catch login actions 53 $(document).on('lwa_login', function(event, data, form){ 54 55 if(data.result === true){ 56 //Login Successful - Extra stuff to do 57 if( data.widget != null ){ 58 $.get( data.widget, function(widget_result) { 59 $('.lwa-modal-bg').click(); 60 if($('.trip_planner_page').length > 0){ 61 jQuery('.popup__default').show().css('margin-top',$(window).scrollTop()+100); 62 jQuery('.popupoverlay').height($(document).height()).show(); 63 }else{ 64 65 window.location.reload(); 66 } 67 68 }); 69 }else{ 70 if(data.redirect == null){ 71 $('.lwa-modal-bg').click(); 72 if($('.trip_planner_page').length > 0){ 73 jQuery('.popup__default').show().css('margin-top',$(window).scrollTop()+100); 74 jQuery('.popupoverlay').height($(document).height()).show(); 75 }else{ 76 77 window.location.reload(); 78 } 79 }else{ 80 $('.lwa-modal-bg').click(); 81 if($('.trip_planner_page').length > 0){ 82 jQuery('.popup__default').show().css('margin-top',$(window).scrollTop()+100); 83 jQuery('.popupoverlay').height($(document).height()).show(); 84 }else{ 85 86 window.location = data.redirect; 87 } 88 89 } 90 } 91 } 92 }); 93 94 //Registration overlay 95 $('.lwa-modal').each( function(i,e){ 96 var modal = $(e); 97 modal.parents('.lwa').data('modal', modal); 98 $('body').append($('<div class="lwa"></div>').append(modal)); 99 }); 100 $(document).on('click', ".lwa-links-modal", function(e){ 101 var target = $(this).parents('.lwa').data('modal'); 102 if( typeof target != 'undefined' && target.length > 0 ){ 103 e.preventDefault(); 104 target.reveal({ 105 modalbgclass: 'lwa-modal-bg', 106 dismissmodalclass: 'lwa-modal-close' //the class of a button or element that will close an open modal 107 }); 108 } 109 }); 110 111 112 113 114 //Register 115 $('.lwa-links-register-inline').click(function(event){ 116 var register_form = $(this).parents('.lwa').find('.lwa-register'); 117 if( register_form.length > 0 ){ 118 event.preventDefault(); 119 register_form.show('slow'); 120 $(this).parents('.lwa').find('.lwa-remember').hide('slow'); 121 } 122 }); 123 $('.lwa-links-register-inline-cancel').click(function(event){ 124 event.preventDefault(); 125 $(this).parents('.lwa-register').hide('slow'); 126 }); 127 128 //Visual Effects for hidden items 129 //Remember 130 $(document).on('click', '.lwa-links-remember', function(event){ 131 var remember_form = $(this).parents('.lwa').find('.lwa-remember'); 132 if( remember_form.length > 0 ){ 133 event.preventDefault(); 134 remember_form.show('slow'); 135 $(this).parents('.lwa').find('.lwa-register').hide('slow'); 136 } 137 });
138 $(document).on('click', '.lwa-links-remember-cancel', function(event){ 139 event.preventDefault(); 140 $(this).parents('.lwa-remember').hide('slow'); 141 }); 142 143 //Handle a AJAX call for Login, RememberMe or Registration 144 function lwaAjax( data, statusElement ){ 145 $('.lwa-loading').remove(); 146 statusElement = $(statusElement); 147 if(data.result === true){ 148 //Login Successful 149 statusElement.attr('class','lwa-status lwa-status-confirm').html(data.message); //modify status content 150 }else if( data.result === false ){ 151 //Login Failed 152 statusElement.attr('class','lwa-status lwa-status-invalid').html(data.error); //modify status content 153 //We assume a link in the status message is for a forgotten password 154 statusElement.find('a').click( function(event){ 155 var remember_form = $(this).parents('.lwa').find('form.lwa-remember'); 156 if( remember_form.length > 0 ){ 157 event.preventDefault(); 158 remember_form.show('slow'); 159 } 160 }); 161 }else{ 162 //If there already is an error element, replace text contents, otherwise create a new one and insert it 163 statusElement.attr('class','lwa-status lwa-status-invalid').html('An error has occured. Please try again.'); //modify status content 164 } 165 } 166 167 $('.lwa-login-link').click(function(event){ 168 var register_form = $('.lwa-login').parent(); 169 if( register_form.length > 0 ){ 170 $(this).parents('.lwa').data('modal', register_form); 171 } 172 }); 173 174}); 175 176/* http://zurb.com/playground/reveal-modal-plugin */ 177/* 178 * jQuery Reveal Plugin 1.0 179 * www.ZURB.com 180 * Copyright 2010, ZURB 181 * Free to use under the MIT license. 182 * http://www.opensource.org/licenses/mit-license.php 183*/ 184 185(function($) { 186 187/*--------------------------- 188 Defaults for Reveal 189----------------------------*/ 190 191/*--------------------------- 192 Listener for data-reveal-id attributes 193----------------------------*/ 194 195 $('a[data-reveal-id]').on('click', function(e) { 196 e.preventDefault(); 197 var modalLocation = $(this).attr('data-reveal-id'); 198 $('#'+modalLocation).reveal($(this).data()); 199 }); 200 201/*--------------------------- 202 Extend and Execute 203----------------------------*/ 204 205 $.fn.reveal = function(options) { 206 207 208 var defaults = { 209 animation: 'fadeAndPop', //fade, fadeAndPop, none 210 animationspeed: 300, //how fast animtions are 211 closeonbackgroundclick: true, //if you click background will modal close?
212 dismissmodalclass: 'close-reveal-modal', //the class of a button or element that will close an open modal 213 modalbgclass : 'reveal-modal-bg' 214 }; 215 216 //Extend dem' options 217 var options = $.extend({}, defaults, options); 218 219 return this.each(function() { 220 221/*--------------------------- 222 Global Variables 223----------------------------*/ 224 var modal = $(this), 225 topMeasure = parseInt(modal.css('top')), 226 topOffset = modal.height() + topMeasure, 227 locked = false, 228 modalBG = $('.'+options.modalbgclass); 229 230/*--------------------------- 231 Create Modal BG 232----------------------------*/ 233 if(modalBG.length == 0) { 234 modalBG = $('<div class="'+options.modalbgclass+'" />').insertAfter(modal); 235 } 236 if( modal.find('.'+options.dismissmodalclass).length == 0 ){ 237 modal.append('<a class="'+options.dismissmodalclass+'">×</a>'); 238 } 239 240/*--------------------------- 241 Open & Close Animations 242----------------------------*/ 243 //Entrance Animations 244 modal.bind('reveal:open', function () { 245 modalBG.unbind('click.modalEvent'); 246 $('.' + options.dismissmodalclass).unbind('click.modalEvent'); 247 if(!locked) { 248 lockModal(); 249 if(options.animation == "fadeAndPop") { 250 modal.css({'top': $(document).scrollTop()-topOffset, 'opacity' : 0, 'visibility' : 'visible', 'display':'block'}); 251 modalBG.fadeIn(options.animationspeed/2); 252 modal.delay(options.animationspeed/2).animate({ 253 "top": $(document).scrollTop()+topMeasure + 'px', 254 "opacity" : 1 255 }, options.animationspeed,unlockModal()); 256 } 257 if(options.animation == "fade") { 258 modal.css({'opacity' : 0, 'visibility' : 'visible', 'top': $(document).scrollTop()+topMeasure, 'display':'block'}); 259 modalBG.fadeIn(options.animationspeed/2); 260 modal.delay(options.animationspeed/2).animate({ 261 "opacity" : 1 262 }, options.animationspeed,unlockModal()); 263 } 264 if(options.animation == "none") { 265 modal.css({'visibility' : 'visible', 'top':$(document).scrollTop()+topMeasure, 'display':'block'}); 266 modalBG.css({"display":"block"}); 267 unlockModal() 268 } 269 } 270 modal.unbind('reveal:open'); 271 }); 272 273 //Closing Animation 274 modal.bind('reveal:close', function () { 275 if(!locked) { 276 lockModal(); 277 if(options.animation == "fadeAndPop") { 278 modalBG.delay(options.animationspeed).fadeOut(options.animationspeed); 279 modal.animate({ 280 "top": $(document).scrollTop()-topOffset + 'px', 281 "opacity" : 0 282 }, options.animationspeed/2, function() { 283 modal.css({'top':topMeasure, 'opacity' : 1, 'visibility' : 'hidden'}); 284 unlockModal(); 285 }); 286 } 287 if(options.animation == "fade") { 288 modalBG.delay(options.animationspeed).fadeOut(options.animationspeed); 289 modal.animate({ 290 "opacity" : 0 291 }, options.animationspeed, function() { 292 modal.css({'opacity' : 1, 'visibility' : 'hidden', 'top' : topMeasure}); 293 unlockModal(); 294 }); 295 } 296 if(options.animation == "none") { 297 modal.css({'visibility' : 'hidden', 'top' : topMeasure}); 298 modalBG.css({'display' : 'none'}); 299 } 300 } 301 modal.unbind('reveal:close'); 302 }); 303 304/*--------------------------- 305 Open and add Closing Listeners 306----------------------------*/ 307 //Open Modal Immediately 308 modal.trigger('reveal:open') 309 310 //Close Modal Listeners 311 var closeButton = $('.' + options.dismissmodalclass).bind('click.modalEvent', function () { 312 modal.trigger('reveal:close') 313 }); 314 315 if(options.closeonbackgroundclick) { 316 modalBG.css({"cursor":"pointer"}) 317 modalBG.bind('click.modalEvent', function () { 318 modal.trigger('reveal:close') 319 }); 320 } 321 $('body').keyup(function(e) { 322 if(e.which===27){ modal.trigger('reveal:close'); } // 27 is the keycode for the Escape key 323 }); 324 325 326/*--------------------------- 327 Animations Locks 328----------------------------*/ 329 function unlockModal() { 330 locked = false; 331 } 332 function lockModal() { 333 locked = true; 334 } 335 336 });//each call 337 }//orbit plugin call 338})(jQuery);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.