REGEX_AUTO_FIELD=/^[^_]+(_Req)?(_(Tel|Num|Int|Email|Url|Date))?$/;REGEX_BLANK=/^\s*$/;REGEX_EMAIL=/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-]{2,})+\.)+([a-zA-Z0-9]{2,})+$/;REGEX_TEL=/^([0-9]*\-?\ ?\/?[0-9]*)$/;REGEX_NUM=/^[-+]?\d+(\.\d+)?$/;REGEX_URL=/^(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&amp;:/~\+#]*[\w\-\@?^=%&amp;/~\+#])?/;REGEX_DAY=/^(0?[1-9]|[1-2][0-9]|3[01])$/;REGEX_MONTH=/^(0?[1-9]|1[0-2])$/;REGEX_YEAR=/^[0-9]{2,4}$/;REGEX_TYPED_FIELD=/_(Tel|Num|Int|Email|Url|Date)$/;var Protoform=Class.create({initialize:function(b,a){this.options={ajax:true};Object.extend(this.options,a||{});this.form=$(b);this.formProcess=this.checkForm.bindAsEventListener(this);if(this.form!=undefined){this.form.observe("submit",this.formProcess)}this.hoverFocus()},hoverFocus:function(){if(this.form!=undefined){this.form.select("input","textarea").each(function(a){Event.observe(a,"focus",function(){Element.addClassName(this,"hoverfocus")}.bind(a));Event.observe(a,"blur",function(){Element.removeClassName(this,"hoverfocus")}.bind(a))})}},checkForm:function(a){Event.stop(a);var c="";var b=null;if($("response")){$("response").remove()}this.form.getElements().each(function(g){var j=($F(g)!=null)?$F(g):"";var f=g.readAttribute("id")?g.readAttribute("id"):"";var i=f.match(REGEX_TYPED_FIELD);var e=g.readAttribute("title");if(!f.match(REGEX_AUTO_FIELD)){return}if(f.match(/_Req/)&&j.match(REGEX_BLANK)){c+="<li>"+e+"</li>";b=b||g;return}if(i&&!j.match(REGEX_BLANK)){var h=i[1];var d=this.checkField(j,h);if(d){c+="<li>"+e+"</li>";b=b||g}}}.bindAsEventListener(this));if(c==0){if(this.options.ajax){this.sendData()}else{this.form.submit()}}else{if(!$("error")){this.form.insert({after:new Element("ul",{id:"error"}).update(c)})}else{$("error").update(c)}b.focus()}},checkField:function(f,c){switch(c){case"Tel":var b=f;if(!b.match(REGEX_TEL)){return true}break;case"Num":var d=f;if(!d.match(REGEX_NUM)){return true}break;case"Tel":var b=f;if(!b.match(REGEX_TEL)){return true}break;case"Email":var a=f;if(!a.match(REGEX_EMAIL)){return true}break;case"Url":var e=f;if(!e.match(REGEX_URL)){return true}break;case"Date":var g=f.split("/");if(3!=g.length||!g[0].match(REGEX_DAY)||!g[1].match(REGEX_MONTH)||!g[2].match(REGEX_YEAR)){return true}break;default:return null}}.bind(this),sendData:function(d){var b=(this.options.url)?(this.options.url):this.form.readAttribute("action");var a=this.form.readAttribute("method");var c=this.form.serialize();var e=new Ajax.Request(b,{method:a,parameters:c,onCreate:this.showLoad.bind(this),onComplete:this.getResponse.bind(this)})},showLoad:function(){this.form.insert({after:'<p id="working">...</p>'});if($("error")){$("error").remove()}},getResponse:function(b){$("working").remove();var a=b.responseText;if(document.getElementById("Cimg")!=undefined){document.getElementById("Cimg").src="/securimage/securimage_show.php?"+Math.random()}if(String(a).substring(1,2)==">"){this.form.insert({after:a+"<p />"})}else{this.form.insert({after:a+"<p />"}).reset()}}});
