PageSourceSearch

https://fasd.me/wp-content/plugins/user-submitted-posts/resources/jquery.usp.core.js?ver=20260916

js fasd.me collected 2026-09-26 12:23:32 UTC 7,270 bytes, 218 lines download raw bytes

1/* 
2	User Submitted Posts : Core JS : Version 2.0
3	@ https://perishablepress.com/user-submitted-posts/
4*/
5jQuery(document).ready(function($) {
6	
7	$('.usp-callout-failure').addClass('usp-hidden').hide();
8	$('#user-submitted-post').on('click', function(e) {
9		if (usp_recaptcha_disp == 'show' && usp_recaptcha_vers == 3) {
10			var validate = usp_validate();
11			e.preventDefault();
12			grecaptcha.ready(function() {
13				grecaptcha.execute(usp_recaptcha_key, { action: 'submit' }).then(function(token) {
14					$('#recaptcha_response').remove();
15					$('#usp-submit').prepend('<input type="hidden" name="recaptcha_response" id="recaptcha_response" value="'+ token +'">');
16					if (validate) $('#usp_form').unbind('submit').submit();
17				});;
18			});
19		} else {
20			usp_validate();
21		}
22	});
23	function usp_validate() {
24		// $('#usp_form').parsley().validate();
25		if (true === $('#usp_form').parsley().isValid()) {
26			$('.usp-callout-failure').addClass('usp-hidden').hide();
27			
28			// remove empty file inputs
29			$('.usp-clone').each(function() {
30				var opt = $(this).data('parsley-excluded');
31				if (typeof opt !== 'undefined' && opt == true) {
32					var val = $(this).val();
33					if (!val.trim()) $(this).remove();
34				}
35			});
36			return true;
37		} else {
38			$('.usp-callout-failure').removeClass('usp-hidden').show();
39			return false;
40		}
41	};
42	$('#usp_form').on('submit', function(e) {
43		usp_captcha_check(e);
44		if ($(this).parsley().isValid()) {
45			$('.usp-submit').css('cursor', 'wait');
46			$('.usp-submit').attr('disabled', true);
47		}
48		usp_remember();
49	});
50	$('.usp-captcha .usp-input').on('change', function(e) {
51		usp_captcha_check(e);
52	});
53	function usp_captcha_check(e) {
54		$.post(ajax_url, {
55			nonce:   challenge_nonce,
56			action: 'challenge_nonce'
57		}, function(data) {
58			if (usp_case_sensitivity === 'true') var usp_casing = '';
59			else var usp_casing = 'i';
60			var usp_response = new RegExp('^' + data + '$', usp_casing);
61			var usp_captcha = $('.user-submitted-captcha').val();
62			if (typeof usp_captcha != 'undefined') {
63				if (usp_captcha.match(usp_response)) {
64					$('.usp-captcha-error').remove();
65					$('.usp-captcha .usp-input').removeClass('parsley-error');
66					$('.usp-captcha .usp-input').addClass('parsley-success');
67				} else {
68					if (e) e.preventDefault();
69					$('.usp-captcha-error').remove();
70					$('.usp-captcha').append('<ul class="usp-captcha-error parsley-errors-list filled"><li class="parsley-required">'+ usp_parsley_error +'</li></ul>');
71					$('.usp-captcha .usp-input').removeClass('parsley-success');
72					$('.usp-captcha .usp-input').addClass('parsley-error');
73				}
74			}
75		});
76	}
77	
78	// cookies
79	usp_remember();
80	usp_forget();
81	
82	function usp_cookie(selector, type) {
83		$(selector).each(function() {
84			var name = $(this).attr('id');
85			var cookie = Cookies.get(name);
86			if (cookie) {
87				cookie = decodeURIComponent(cookie);
88				if (type == 'checkbox') {
89					if (cookie == 1) {
90						$(this).val(1).prop('checked', 1);
91					} else {
92						$(this).val(0).prop('checked', 0);
93					}
94				} else if (type == 'select') {
95					if (name == 'user-submitted-tags' && window.usp_existing_tags == 1) {
96						$.each(cookie.split(','), function(i,e) {
97							$('#user-submitted-tags option[value="'+ e +'"]').attr('selected', 'selected');
98						});
99					} else if (name == 'user-submitted-category' && window.usp_multiple_cats == 1) {
100						$.each(cookie.split(','), function(i,e) {
101							$('#user-submitted-category option[value="'+ e +'"]').attr('selected', 'selected');
102						});
103					} else {
104						$('option[value="'+ cookie +'"]', this).attr('selected', 'selected');
105					}
106				} else {
107					$(this).val(cookie);
108				}
109			}
110			$(this).on('change', function() {
111				if (type == 'checkbox') {
112					
113					if ($(this).is(':checked')) {
114						var value = 1;
115						$(this).val(1).prop('checked', 1);
116					} else {
117						var value = 0;
118						$(this).val(0).prop('checked', 0);
119					}
120				} else {
121					var value = $(this).val();
122				}
123				Cookies.set(name, encodeURIComponent(value), { path: '/', expires: 365000, SameSite: 'strict' });
124			});
125		});
126	}
127	function usp_remember() {
128		usp_cookie('#user-submitted-name',     'text');
129		usp_cookie('#user-submitted-email',    'text');
130		usp_cookie('#user-submitted-url',      'text');
131		usp_cookie('#user-submitted-title',    'text');
132		
133		if (window.usp_existing_tags == 1) {
134			usp_cookie('#user-submitted-tags', 'select');
135		} else {
136			usp_cookie('#user-submitted-tags', 'text');
137		}
138		usp_cookie('#user-submitted-custom',   'text');
139		usp_cookie('#user-submitted-captcha',  'text');
140		usp_cookie('#user-submitted-category', 'select');
141		usp_cookie('#user-submitted-content',  'textarea');
142		usp_cookie('#user-submitted-checkbox', 'checkbox');
143	}
144	function usp_forget() {
145		
146		if (window.location.href.indexOf('success=') > -1) {
147			
148			Cookies.remove('user-submitted-name');
149			Cookies.remove('user-submitted-email');
150			Cookies.remove('user-submitted-url');
151			Cookies.remove('user-submitted-title');
152			Cookies.remove('user-submitted-tags');
153			Cookies.remove('user-submitted-category');
154			Cookies.remove('user-submitted-content');
155			Cookies.remove('user-submitted-custom');
156			Cookies.remove('user-submitted-checkbox');
157			Cookies.remove('user-submitted-captcha');
158			$('#usp_form').find('input[type="text"], textarea').val('');
159			$('#usp_form option[value=""]').attr('selected', '');
160		}
161	}
162	
163	// add another image
164	$('#usp_add-another').removeClass('usp-no-js');
165	$('#usp_add-another').addClass('usp-js');
166	
167	usp_add_another();
168	
169	function usp_add_another() {
170		var x = parseInt($('#usp-min-images').val());
171		var y = parseInt($('#usp-max-images').val());
172		if (x === 0) x = 1;
173		if (x >= y) $('#usp_add-another').hide();
174		
175		$('#usp_add-another').on('click', function(e) {
176			e.preventDefault();
177			x++;
178			var link = $(this);
179			var clone = $('#user-submitted-image').find('input:visible:last').clone().val('').attr('style', 'display:block;');
180			var prev = '<img class="usp-file-preview" src="" alt="" style="display:none;">';
181			$('#usp-min-images').val(x);
182			if (x < y) {
183				link.before(clone.fadeIn(300));
184				link.before(prev);
185			} else if (x = y) {
186				link.before(clone.fadeIn(300));
187				link.before(prev);
188				link.hide();
189			} else {
190				link.hide();
191			}
192			clone.attr('data-parsley-excluded', 'true');
193		});
194	}
195	
196	// file preview
197	$('.usp-input[type=file]').after('<img class="usp-file-preview" src="" alt="" style="display:none;">');
198	$(document).on('change', '.usp-input[type=file]', function(x) {
199		var f = x.target.files[0];
200		var disable = (typeof window.usp_disable_previews !== 'undefined') ? window.usp_disable_previews : false;
201		if (f && !disable) {
202			var r = new FileReader();
203			var prev = $(this).nextAll('.usp-file-preview:first');
204			r.onload = function(e) {
205				prev.attr('src', r.result);
206				prev.css({ 'display':'block', 'height':'180px', 'width':'auto', 'margin':'10px 0', 'border':'0' });
207			};
208			r.readAsDataURL(f);
209		}
210	});
211	
212	// chosen
213	var disable_chosen = (typeof window.usp_disable_chosen !== 'undefined') ? window.usp_disable_chosen : false;
214	
215	if (window.usp_multiple_cats == 1 && !disable_chosen) $('#user-submitted-category').chosen();
216	if (window.usp_existing_tags == 1 && !disable_chosen) $('#user-submitted-tags').chosen();
217	
218});

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.