var whitespace = " \t\n\r"; function isWhitespace(s) { var i; // Is s empty? if (isEmpty(s)) return true; // Search through string's characters one by one // until we find a non-whitespace character. // When we do, return false; if we don't, return true. for (i = 0; i < s.length; i++) { // Check that current character isn't whitespace. var c = s.charAt(i); if (whitespace.indexOf(c) == -1) return false; } // All characters are whitespace. return true; } function isEmpty(s) { return ((s == null) || (s.length == 0)) } function isValidEmail(s) { if (isEmpty(s)) return false; // is s whitespace? if (isWhitespace(s)) return false; // there must be >= 1 character before @, so we // start looking at character position 1 // (i.e. second character) var i = 1; var sLength = s.length; // look for @ while ((i < sLength) && (s.charAt(i) != "@")) { i++ } if ((i >= sLength) || (s.charAt(i) != "@")) return false; else i += 2; // look for . while ((i < sLength) && (s.charAt(i) != ".")) { i++ } // there must be at least one character after the . if ((i >= sLength - 1) || (s.charAt(i) != ".")) return false; else return true; } function tell_a_friend() { var formbox = eval("document.ris_tell_a_friend"); if (!isValidEmail(formbox.elements['p_email'].value)) { formbox.elements['p_email'].style.backgroundColor='#fff0f5'; alert("Please enter a valid Email Address. (name@host.com)"); formbox.elements['p_email'].focus(); return false; } else { new Ajax.Request("/email/sendemail", { method: 'post', parameters: $('p_email').serialize(true), onComplete: showResponse } ); return false; } } function showResponse(req){ $('email_sent').innerHTML= req.responseText; }