1jQuery( document ).ready( function( $ ) { 2 'use strict'; 3 4 // display required asteriscs 5 jQuery( '.dk-speakup-widget-popup-wrap label.required' ).append('<span> *</span>'); 6 7 // run only if widget is on the page 8 if( jQuery( '.dk-speakup-widget-wrap' ).length ) { 9 jQuery( '.dk-speakup-widget-button' ).click( function( e ) { 10 var petition_form = '#' + jQuery( this ).attr( 'rel' ), 11 screenHeight = jQuery( document ).height(), 12 screenWidth = jQuery( window ).width(), 13 windowHeight = jQuery( window ).height(), 14 windowWidth = jQuery( window ).width(); 15 16 jQuery( '#dk-speakup-widget-windowshade' ).css( { 17 'width' : screenWidth, 18 'height' : screenHeight 19 }); 20 jQuery( '#dk-speakup-widget-windowshade' ).fadeTo( 500, 0.8 ); 21 22 // center the pop-up window 23 jQuery( petition_form ).css( 'top', ( ( windowHeight / 2 ) - ( jQuery( petition_form ).height() / 2 ) ) ); 24 jQuery( petition_form ).css( 'left', ( windowWidth / 2 ) - ( jQuery( petition_form ).width() / 2 ) ); 25 26 // display the form 27 jQuery( petition_form ).fadeIn( 500 ); 28 }); 29 30 /* Close the pop-up petition form */ 31 // by clicking windowshade area 32 jQuery( '#dk-speakup-widget-windowshade' ).click( function () { 33 jQuery( this ).fadeOut( 'slow' ); 34 jQuery( '.dk-speakup-widget-popup-wrap' ).hide(); 35 }); 36 // or by clicking the close button 37 jQuery( '.dk-speakup-widget-close' ).click( function() { 38 jQuery( '#dk-speakup-widget-windowshade' ).fadeOut( 'slow' ); 39 jQuery( '.dk-speakup-widget-popup-wrap' ).hide(); 40 }); 41 // or by pressing ESC 42 jQuery( document ).keyup( function( e ) { 43 if ( e.keyCode === 27 ) { 44 jQuery( '#dk-speakup-widget-windowshade' ).fadeOut( 'slow' ); 45 jQuery( '.dk-speakup-widget-popup-wrap' ).hide(); 46 } 47 }); 48 49 // process petition form submissions 50 jQuery( '.dk-speakup-widget-submit' ).click( function( e ) { 51 e.preventDefault(); 52 53 var id = jQuery( this ).attr( 'name' ), 54 current_url = document.URL, 55 share_url = jQuery( '#dk-speakup-widget-shareurl-' + id ).val(), 56 posttitle = jQuery( '#dk-speakup-widget-posttitle-' + id ).val(), 57 tweet = jQuery( '#dk-speakup-widget-tweet-' + id ).val(), 58 lang = jQuery( '#dk-speakup-widget-lang-' + id ).val(), 59 firstname = jQuery( '#dk-speakup-widget-first-name-' + id ).val(), 60 lastname = jQuery( '#dk-speakup-widget-last-name-' + id ).val(), 61 email = jQuery( '#dk-speakup-widget-email-' + id ).val(), 62 email_confirm = jQuery( '#dk-speakup-widget-email-confirm-' + id ).val(), 63 street = jQuery( '#dk-speakup-widget-street-' + id ).val(), 64 city = jQuery( '#dk-speakup-widget-city-' + id ).val(), 65 state = jQuery( '#dk-speakup-widget-state-' + id ).val(), 66 postcode = jQuery( '#dk-speakup-widget-postcode-' + id ).val(), 67 country = jQuery( '#dk-speakup-widget-country-' + id ).val(), 68 custom_field = jQuery( '#dk-speakup-widget-custom-field-' + id ).val(), 69 custom_message = jQuery( 'textarea#dk-speakup-widget-message-' + id ).val(), 70 optin = '', 71 ajaxloader = jQuery( '#dk-speakup-widget-ajaxloader-' + id ); 72 73 if ( share_url === '' ) { 74 share_url = current_url.split('#')[0]; 75 } 76 77 if ( jQuery( '#dk-speakup-widget-optin-' + id ).attr( 'checked' ) ) { 78 optin = 'on'; 79 } 80 81 // make sure error notices are turned off before checking for new errors 82 jQuery( '#dk-speakup-widget-popup-wrap-' + id + ' input' ).removeClass( 'dk-speakup-widget-error' ); 83 84 // validate form values 85 var errors = 0, 86 emailRegEx = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/; 87 88 if ( email_confirm !== undefined && email_confirm !== email ) { 89 if ( email_confirm !== email ) { 90 jQuery( '#dk-speakup-widget-email-' + id ).addClass( 'dk-speakup-widget-error' ); 91 jQuery( '#dk-speakup-widget-email-confirm-' + id ).addClass( 'dk-speakup-widget-error' ); 92 errors ++; 93 } 94 } 95 if ( email === '' || !emailRegEx.test( email ) ) { 96 jQuery( '#dk-speakup-widget-email-' + id ).addClass( 'dk-speakup-widget-error' ); 97 errors ++; 98 } 99 if ( firstname === '' ) { 100 jQuery( '#dk-speakup-widget-first-name-' + id ).addClass( 'dk-s
100peakup-widget-error' ); 101 errors ++; 102 } 103 if ( lastname === '' ) { 104 jQuery( '#dk-speakup-widget-last-name-' + id ).addClass( 'dk-speakup-widget-error' ); 105 errors ++; 106 } 107 108 // if no errors found, submit the data via ajax 109 if ( errors === 0 && jQuery( this ).attr( 'rel' ) !== 'disabled' ) { 110 111 // set rel to disabled as flag to block double clicks 112 jQuery( this ).attr( 'rel', 'disabled' ); 113 114 var data = { 115 action: 'dk_speakup_sendmail', 116 id: id, 117 first_name: firstname, 118 last_name: lastname, 119 email: email, 120 street: street, 121 city: city, 122 state: state, 123 postcode: postcode, 124 country: country, 125 custom_field: custom_field, 126 custom_message: custom_message, 127 optin: optin, 128 lang: lang 129 }; 130 131 // display AJAX loading animation 132 ajaxloader.css({ 'visibility' : 'visible'}); 133 134 // submit form data and handle ajax response 135 $.post( dk_speakup_widget_js.ajaxurl, data, 136 function( response ) { 137 var response_class = 'dk-speakup-widget-response-success'; 138 if ( response.status === 'error' ) { 139 response_class = 'dk-speakup-widget-response-error'; 140 } 141 jQuery( '#dk-speakup-widget-popup-wrap-' + id + ' .dk-speakup-widget-form' ).hide(); 142 jQuery( '.dk-speakup-widget-response' ).addClass( response_class ); 143 jQuery( '#dk-speakup-widget-popup-wrap-' + id + ' .dk-speakup-widget-response' ).fadeIn().html( response.message ); 144 jQuery( '#dk-speakup-widget-popup-wrap-' + id + ' .dk-speakup-widget-share' ).fadeIn(); 145 146 // launch Facebook sharing window 147 jQuery( '.dk-speakup-widget-facebook' ).click( function() { 148 var url = 'http://www.facebook.com/sharer.php?u=' + share_url + '&t=' + posttitle;
149 window.open( url, 'facebook', 'height=420,width=550,left=100,top=100,resizable=yes,location=no,status=no,toolbar=no' ); 150 }); 151 // launch Twitter sharing window 152 jQuery( '.dk-speakup-widget-twitter' ).click( function() { 153 var url = 'http://twitter.com/share?url=' + share_url + '&text=' + tweet; 154 window.open( url, 'twitter', 'height=420,width=550,left=100,top=100,resizable=yes,location=no,status=no,toolbar=no' ); 155 ajaxloader.css({ 'visibility' : 'hidden'}); 156 }); 157 }, 'json' 158 ); 159 } 160 }); 161 162 } 163 164});
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.