String.prototype.trim=new Function("return this.replace(/^\\s+|\\s+$/g,'')")
String.prototype.isEmpty=new Function("var x = this.trim(); if (x.length == 0) { return true; } else { return false; }")
function dgE(n){return document.getElementById(n)}
function cacheDOM(){name=dgE("name");nameStatus=dgE("nameStatus");email=dgE("email");emailStatus=dgE("emailStatus");toemail=dgE("toemail");toemailStatus=dgE("toemailStatus");comments=dgE("comments");commentsStatus=dgE("commentsStatus");emailstory=dgE("emailstory")}
function cacheImages(){var errorImage=new Image();var successImage=new Image();errorImage.src="http://www.mini-itx.com/images/cross.gif";successImage.src="http://www.mini-itx.com/images/tick.gif"}
function init(){if(dgE("name")===null){return false}
cacheDOM();cacheImages();email.onkeyup=checkEmail;toemail.onkeyup=checkToEmail;name.onkeyup=checkName;comments.onkeyup=checkComments;emailstory.onsubmit=checkForm}
function checkForm(){doActions()
if(checkEmail()&&checkToEmail()&&checkName()&&checkComments()){return true}
return false}
function doActions(){email.onkeyup();toemail.onkeyup();name.onkeyup();comments.onkeyup()}
function checkComments(){if(comments.value.isEmpty()){setSuccess(commentsStatus,"");return true}
else{if(testForHTML(comments.value)){setError(commentsStatus,"Sorry no HTML!");return false}
else{setSuccess(commentsStatus);return true}}}
function checkToEmail(){if(testIsEmail(toemail.value)){setSuccess(toemailStatus);return true}
else{setError(toemailStatus,"Email Invalid");return false}}
function checkEmail(){if(testIsEmail(email.value)){setSuccess(emailStatus);return true}
else{setError(emailStatus,"Email Invalid");return false}}
function checkName(){if(name.value.isEmpty()){setError(nameStatus,"Name required!");return false}
else{if(!testValidChars(name.value)){setError(nameStatus,"Invalid Characters");return false}
else{setSuccess(nameStatus);return true}}}
function testIsEmail(email){email=email.trim();var filter=/^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;if(filter.test(email)){return true}
else{return false}}
function testValidChars(name){name=name.trim();var filter=/^[\s\w\!\.\(\)\-\_\*\{\}\[\]\:\;\,\@]+$/
if(filter.test(name)){return true}
else{return false}}
function testForHTML(str){var filter=/<?\w+((\s+\w+(\s*=\s*(?:".*?"|'.*?'|[^'">\s]+))?)+\s*|\s*)?>/
if(filter.test(str)){return true}
else{return false}}
function setSuccess(o,m){o.innerHTML="<span class=\"success title2\">"+(m==null?"&nbsp;":m)+"</span>";o.className="success"}
function setError(o,m){o.innerHTML="<span class=\"error title2\">"+(m==null?"&nbsp;":"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"+m)+"</span>";o.className="error"}
var name; var nameStatus; var email; var emailStatus; var toemail; var toemailStatus; var comments; var commentsStatus; var emailstory;
