/* User Submitted Posts > JavaScript > Core @ http://perishablepress.com/user-submitted-posts/ */ jQuery(document).ready(function($) { $('#usp_add-another').removeClass('usp-no-js'); $('#usp_add-another').addClass('usp-js'); // captcha check $('#usp_form').submit(function(e) { usp_captcha_check(e); }); $('.usp-captcha .usp-input').change(function() { usp_captcha_check(); }); function usp_captcha_check(e) { if (usp_case_sensitivity === 'true') var usp_casing = ''; else var usp_casing = 'i'; var usp_response = new RegExp(usp_challenge_response + '$', usp_casing); var usp_captcha = $('.user-submitted-captcha').val(); if (typeof usp_captcha != 'undefined') { if (usp_captcha.match(usp_response)) { $('.usp-captcha-error').remove(); $('.usp-captcha .usp-input').removeClass('parsley-error'); $('.usp-captcha .usp-input').addClass('parsley-success'); } else { if (e) e.preventDefault(); $('.usp-captcha-error').remove(); $('.usp-captcha').append(''); $('.usp-captcha .usp-input').removeClass('parsley-success'); $('.usp-captcha .usp-input').addClass('parsley-error'); } } } // remember input values function remember(selector){ $(selector).each(function(){ var name = $(this).attr('name'); if($.cookie(name)){ $(this).val($.cookie(name)); } $(this).change(function(){$.cookie(name, $(this).val(), { path: '/', expires: 365 });}); }); } remember('[name=user-submitted-name]'); remember('[name=user-submitted-url]'); remember('[name=user-submitted-email]'); remember('[name=user-submitted-title]'); remember('[name=user-submitted-tags]'); remember('[name=user-submitted-captcha]'); remember('[name=user-submitted-category]'); remember('[name=user-submitted-content]'); // forget input values var re = /[?&]success=/; if (re.test(location.href)) { $.removeCookie('user-submitted-name', { path: '/' }); $.removeCookie('user-submitted-url', { path: '/' }); $.removeCookie('user-submitted-email', { path: '/' }); $.removeCookie('user-submitted-title', { path: '/' }); $.removeCookie('user-submitted-tags', { path: '/' }); $.removeCookie('user-submitted-captcha', { path: '/' }); $.removeCookie('user-submitted-category', { path: '/' }); $.removeCookie('user-submitted-content', { path: '/' }); } // parsely // $('#usp_form').parsley().validate(); $.listen('parsley:field:validate', function() { validateFront(); }); $('#user-submitted-post').on('click', function() { $('#usp_form').parsley().validate(); validateFront(); }); var validateFront = function() { if (true === $('#usp_form').parsley().isValid()) { $('.usp-callout-success').removeClass('usp-hidden'); $('.usp-callout-failure').addClass('usp-hidden'); } else { $('.usp-callout-success').addClass('usp-hidden'); $('.usp-callout-failure').removeClass('usp-hidden'); } }; // add another image var x = parseInt($('#usp-min-images').val()); var y = parseInt($('#usp-max-images').val()); if (x === 0) x = 1; if (x >= y) $('#usp_add-another').hide(); $('#usp_add-another').click(function(e) { e.preventDefault(); x++; var $this = $(this); var $new = $this.parent().find('input:visible:last').clone().val(''); $('#usp-min-images').val(x); if (x < y) { $this.before($new.fadeIn(300)); } else if (x = y) { $this.before($new.fadeIn(300)); $this.hide(); } else { $this.hide(); } $new.removeClass('usp-required-file'); }); });