Abl.UI.FormMailer=function(a){return(function(j){var h={},l=(j instanceof jQuery)?j:$(j),b=l.find(":input").not(":button"),k=l.find("div.validation"),d=l.find("input.submit");function f(m){k.empty();k.append(m);}h.setFormState=function(m){if(m){l.addClass("disabled");b.add(d).attr("disabled","disabled");}else{l.removeClass("disabled");b.add(d).attr("disabled","");}};h.validate=function(){return true;};function c(){var m=new Abl.Xml.XElement("form",new Abl.Xml.XAttribute("formUrl",l.find("input.formUrl").val()),new Abl.Xml.XAttribute("pageUrl",location));b.each(function(){var q=$(this),s=q.attr("id"),p=q.attr("tagName").toLowerCase(),o,n,r;if(p==="input"){p=q.attr("type");}r=new Abl.Xml.XElement("field",new Abl.Xml.XAttribute("type",p),new Abl.Xml.XAttribute("name",s));switch(p){case"text":case"password":r.add(q.val());break;case"hidden":case"textarea":r.add(new Abl.Xml.CData(q.val()));break;case"radio":case"checkbox":r.add(new Abl.Xml.XAttribute("checked",(q.is(":checked"))?"true":"false"));if((o=l.find("label[for='"+s+"']")).length>0){r.add(o.text());}else{if((o=q.next("span")).length>0){r.add(o.text());}else{if((o=q.prev("span")).length>0){r.add(o.text());}}}break;case"select":q.children(":selected").each(function(){var t=$(this);r.add(new Abl.Xml.XElement("option",new Abl.Xml.XAttribute("value",t.val()),t.text()));});break;default:break;}m.add(r);});return m;}function g(n){var p=$(n),m=p.find("error"),o=p.find("mailer"),r=o.find("actionAfterSend"),q=r.text();if(m.length){alert(m.text());h.setFormState(false);return;}if(q==="showMessage"){f(o.find("messageAfterSend").text()||"Message sent successfully");}else{if(q==="redirect"){location=o.find("targetUrlAfterSend").text();}else{h.setFormState(false);}}}h.sendEmail=function(){var m=c(),n;h.setFormState(true);$.ajax({type:"POST",url:"/Abl_WebServices/Mail/FormMailer.ashx",data:{method:"MailForm",formData:m.toString()},dataType:"xml",cache:false,success:function(o){g(o);},error:function(q,o,p){n="Unable to retrieve data from server!";n+="\r\n(Abl.UI.FormMailer.sendEmail())";alert(n);}});};h.dispose=function(){d.unbind();d=k=b=l=null;};function i(){if(!d){alert("ERROR: Unable to find button with class='submit' in form!");return false;}return true;}function e(){d.click(function(){if(h.validate()){h.sendEmail();}});}if(i()){e();}return h;}(a));};$(function(){var a=[],b;$("div.ablForm").each(function(){a[a.length]=Abl.UI.FormMailer(this);});$(window).unload(function(){for(b=0;b<a.length;b++){a[b].dispose();}});});
