function gsom_isEmail(a){return a.match(/\b([_a-z0-9-]+(\.[_a-z0-9-]+)*)@([_a-z0-9-]+(\.[_a-z0-9-]+)*)(\.([a-z]{2,10}))\b/gi)}function gsmoStripSymbols(a){return a.replace(/[\s]+/g,"_").replace(/[^A-Za-z0-9\_]+/g,"").substring(0,20)}function gsomBuildForm(e){e=e||{};var b=e.arr||[],d=e.place||"gsom-fields-list",a=e.makeDivs||false,c=a?"div":"li";if(glock.isDef(b)){for(var f=0;f<b.length;f++){MakeFormFieldListItem({ul:d,label:b[f].label,type:b[f].type,value:b[f].value,name:b[f].name,onfocus:b[f].onfocus,onblur:b[f].onblur,checked:b[f].checked,itemType:c})}var h=window.SerializeForm||glock.emptyFunction;h()}var g=glock.x(d);if(g.nodeName.toLowerCase()!="form"){g=g.up("form")}if(g){glock.event.observe(g,"submit",function(p){var k,n,s,l,o={},r=false,q;q=g.select(".gsom-bademail-msg");if(q){glock.xA(q).each(function(i){glock.x(i).hide()})}q=g.select(".gsom-required-msg");if(q){glock.xA(q).each(function(i){glock.x(i).hide()})}for(n=0;n<g.elements.length;n++){k=g.elements[n];if(!k.type){continue}switch(k.type.toLowerCase()){case"radio":if((typeof o[k.name]=="undefined")||(o[k.name].checked===false)){o[k.name]={el:k,checked:k.checked}}break;case"text":case"textarea":if(glock.xS(k.value).trim()==""){s=glock.x(k).up("div.gsom_sfi");if(s){l=s.down(".gsom-required-msg");if(l){glock.x(l).show();r=true;l=false;continue}}}if(k.name=="gsom_email_field"){if(!gsom_isEmail(glock.xS(k.value).trim())){s=glock.x(k).up("div.gsom_sfi");if(s){l=s.down(".gsom-bademail-msg");if(l){glock.x(l).show();r=true;l=false}}}}break}}for(var j in o){if(o.hasOwnProperty(j)){if(!o[j].checked){s=glock.x(o[j].el).up("div.gsom_sfi");if(s){l=s.down(".gsom-required-msg");if(l){l.show();l=false;r=true}}}}}if(r){glock.event.stop(p);return false}})}}function MakeFormFieldListItem(e){e=e||{};var q=e.ul||"",B=e.oldItem||false,h=e.type||"text",o=e.label||"",D=e.name||"",F=e.onfocus||"",T=e.onblur||"",g=e.value||"",l=e.checked||false,E=e.itemType||"li",z=glock.x(q),t="",c,a,C=glock.xF(glock.builder.node).bind(glock.builder);if(B){a=glock.x(B);if(a){c=a.down("span.gsom-oldname");if(c){t=c.innerHTML}else{c=a.down("input");if(c){t=c.name}}}}var u,j,y,f;var A=new Date(),x="sfi_"+A.getTime(),w="",p="gsom-optin-radiogroup";if((h=="text")&&(E=="div")){w="gsom-optin-div-label"}else{w="gsom-optin-label"}function s(b){el=this;sfi=glock.x(el).up("div.gsom_sfi");if(sfi){m=sfi.down(".gsom-required-msg");if(m){m.hide()}}}switch(h){case"text":var k;u=C(E,{id:x,className:"gsom_sfi"});k=u;k.appendChild(C("label",{className:w},o));k.appendChild(f=C("input",{type:"text",name:D,onfocus:F,onblur:T,value:g}));glock.event.observe(f,"change",glock.xF(s).bindAsEventListener(f));k.appendChild(C("span",{className:"gsom-required-msg",style:"display:none;"},"Required"));if(D=="gsom_email_field"){k.appendChild(C("span",{className:"gsom-required-msg gsom-bademail-msg",style:"display:none;"},"Bad Email Address"))}break;case"checkbox":var F;var k;if(l){F={type:"checkbox",checked:"checked",name:D,onfocus:F,onblur:T,value:"1"}}else{F={type:"checkbox",name:D,onfocus:F,onblur:T,value:"1"}}u=C(E,{id:x,className:"gsom_sfi"});k=u;k.appendChild(C("div",{className:p},[f=C("input",F),C("label",{className:w},o)]));glock.event.observe(f,"change",glock.xF(s).bindAsEventListener(f));k.appendChild(C("span",{style:"display:none",className:"gsom-required-msg cbox"},"Required"));break;case"radio":var k;u=C(E,{id:x,className:"gsom_sfi"});k=u;k.appendChild(C("label",{className:"gsom-optin-label radio"},o));k.appendChild(C("span",{style:"display:none;",className:"gsom-required-msg radio"},"Required"));for(var v=0;v<g.length;v++){y=C("div",{className:p});k.appendChild(y);j=C("input",{type:"radio",name:D,onfocus:F,onblur:T,value:gsmoStripSymbols(g[v].label)});if(g[v].checked){j.checked=true}y.appendChild(j);glock.event.observe(j,"change",glock.xF(s).bindAsEventListener(j));j=C("label",{className:w},g[v].label);y.appendChild(j)}break;case"button":case"submit":var n;u=C(E,{id:x},[C("div",{className:p},[n=C("input",{type:h,name:D,onfocus:F,onblur:T,value:g})])]);break}if(t){k.appendChild(C("span",{className:"gsom-oldname"},t))}if(z){if(B){var r=glock.x(B);if(r){z.insertBefore(u,r)}glock.element.remove(r)}else{z.appendChild(u)}return true}return false};