var subscribe_form = null; var subscribe_form_message = null; var subscribe_form_message_fx = null; var subscribe_why_link = null; function submitSubscribe(email){ var req_url = "/blog/wp-content/plugins/subscribe/functions.php"; var req = new Request({ url: req_url, method: "post", data: "email="+email+"&ajax=1&subscribe=1", onSuccess: function(responseText) { if(responseText != "") { changeSubscribeMessage(responseText); } else { subscribe_form.email.value = subscribe_form.email.defaultValue; changeSubscribeMessage('Thankyou for your submission.'); } }, onFailure: function() { changeSubscribeMessage('An error occurred, please try again.'); } }).send(); changeSubscribeMessage('Processing...'); } window.addEvent('domready', function() { subscribe_form = $('subscribe_form'); subscribe_form_message = subscribe_form.getElement('#subscribe_message'); subscribe_form_message_fx = new Fx.Tween(subscribe_form_message); if (subscribe_form) { subscribe_form.addEvent('submit', function(e) { e = new Event(e).stop(); if (!checkEmail(subscribe_form.email.value)) { changeSubscribeMessage('Please enter a valid email address'); } else { submitSubscribe(subscribe_form.email.value); } }); } subscribe_why_link = $('subscribe_why_link'); subscribe_why_box = $('subscribe_why'); subscribe_why_close = $('subscribe_close'); subscribe_why_link.addEvent('click', function(e) { e = new Event(e).stop(); var tar = $(e.target); if (subscribe_why_box.getStyle('display') == 'block') { subscribe_why_box.setStyle('display', 'none'); } else { var pos = tar.getPosition(); var parentOffset = $(tar.getOffsetParent()); var ppos = parentOffset.getPosition(); subscribe_why_box.setStyles({display: 'block', top: (pos.y-ppos.y-35)+'px', left: (pos.x-ppos.x+90)+'px'}); } }); subscribe_why_close.addEvent('click', function(e) { subscribe_why_box.setStyle('display', 'none'); }); }); function changeSubscribeMessage(message) { subscribe_form_message_fx.cancel(); subscribe_form_message.setStyle('visibility', 'hidden'); subscribe_form_message.innerHTML = message; subscribe_form_message_fx.start('opacity', 0, 1); } function checkEmail (strng) { var valid = true; if (strng == "") { valid = false; } else if (!isRFC822ValidEmail(strng)) { valid = false; } return valid; } function isRFC822ValidEmail(sEmail) { var sQtext = '[^\\x0d\\x22\\x5c\\x80-\\xff]'; var sDtext = '[^\\x0d\\x5b-\\x5d\\x80-\\xff]'; var sAtom = '[^\\x00-\\x20\\x22\\x28\\x29\\x2c\\x2e\\x3a-\\x3c\\x3e\\x40\\x5b-\\x5d\\x7f-\\xff]+'; var sQuotedPair = '\\x5c[\\x00-\\x7f]'; var sDomainLiteral = '\\x5b(' + sDtext + '|' + sQuotedPair + ')*\\x5d'; var sQuotedString = '\\x22(' + sQtext + '|' + sQuotedPair + ')*\\x22'; var sDomain_ref = sAtom; var sSubDomain = '(' + sDomain_ref + '|' + sDomainLiteral + ')'; var sWord = '(' + sAtom + '|' + sQuotedString + ')'; var sDomain = sSubDomain + '(\\x2e' + sSubDomain + ')*'; var sLocalPart = sWord + '(\\x2e' + sWord + ')*'; var sAddrSpec = sLocalPart + '\\x40' + sDomain; // complete RFC822 email address spec var sValidEmail = '^' + sAddrSpec + '$'; // as whole string var reValidEmail = new RegExp(sValidEmail); if (reValidEmail.test(sEmail)) { return true; } return false; }