var FormMailNG=function(B,E,A){this.pageId=B;
this.id=E;
this.formEle=A;
this.fields=[];
for(var C=0;
C<this.formEle.elements.length;
C++){var D=this.formEle.elements[C];
if(!D.name){continue
}D.onchange=function(){this.form.formMailNG.validateFields()
};
D.onkeyup=function(){this.form.formMailNG.validateFields()
};
this.fields.push(D)
}this.validateFields();
FormMailNG.instances.push(this);
this.formEle.formMailNG=this
};
FormMailNG.prototype.validateFields=function(){var J={};
for(var F=0;
F<this.fields.length;
F++){var C=this.fields[F];
if(C.getAttribute("required")=="true"){if(C.type=="radio"||C.type=="checkbox"){var A=0;
var B=0;
for(var D=0;
D<this.fields.length;
D++){if(this.fields[D].name==C.name){if(this.fields[D].checked){A++
}B=D
}}if(A==0){J[B]="This field is required.";
continue
}}else{if(!C.value){J[F]="This field is required.";
continue
}}}switch(C.getAttribute("validation")){case"alpha":if(FormMailNGUtil.getRegexAlpha()&&!FormMailNGUtil.getRegexAlpha().test(C.value)){J[F]="This field can only contain letters."
}break;
case"num":if(FormMailNGUtil.getRegexNum()&&!FormMailNGUtil.getRegexNum().test(C.value)){J[F]="This field can only contain numbers."
}break;
case"alphanum":if(FormMailNGUtil.getRegexAlphaNum()&&!FormMailNGUtil.getRegexAlphaNum().test(C.value)){J[F]="This field can only contain letters and numbers."
}break;
case"email":if(!FormMailNGUtil.isEmail(C.value)){J[F]="Invalid Email Address."
}break;
case"phone":if(!FormMailNGUtil.isPhone(C.value)){J[F]="Please enter a valid phone number"
}break
}}var K=[];
for(var E=0;
E<this.fields.length;
E++){var I=this.fields[E];
if(!I.errorDiv){I.errorDiv=document.createElement("span");
if(I.id!=null&&I.id!=""){I.errorDiv.id=I.id+"_error"
}else{I.errorDiv.id=I.name+"_error"
}I.errorDiv.className="fmngError "+I.className;
var G=I.nextSibling;
if(G!=null&&G.tagName=="LABEL"&&G.getAttribute("for")==I.id){I.parentNode.insertBefore(I.errorDiv,G.nextSibling)
}else{I.parentNode.insertBefore(I.errorDiv,I);
I.parentNode.insertBefore(I,I.errorDiv)
}}if(J[E]){if(!FormMailNGUtil.containsCSSClass("invalid",I.className)){I.className+=" invalid"
}if(!FormMailNGUtil.containsCSSClass("invalid",I.errorDiv.className)){I.errorDiv.className+=" invalid"
}I.title=J[E];
I.errorDiv.innerHTML=J[E];
K.push({field:I,message:J[E]})
}else{if(FormMailNGUtil.containsCSSClass("invalid",I.className)){var H=I.className;
while(H.indexOf("invalid")>-1){H=H.replace("invalid","")
}H=FormMailNGUtil.cleanSpaces(H);
I.className=H
}if(FormMailNGUtil.containsCSSClass("invalid",I.errorDiv.className)){var H=I.className;
while(H.indexOf("invalid")>-1){H=H.replace("invalid","")
}H=FormMailNGUtil.cleanSpaces(H);
I.errorDiv.className=H
}I.title="";
I.errorDiv.innerHTML=""
}}return K
};
FormMailNG.prototype.setDisabled=function(B){for(var A=0;
A<this.formEle.elements.length;
A++){this.formEle.elements[A].disabled=B
}};
FormMailNG.prototype.submit=function(){var fieldErrors=this.validateFields();
if(fieldErrors.length>0){var errorMessage="The following errors were found:\n\n";
for(var i=0;
i<fieldErrors.length;
i++){errorMessage+="["+fieldErrors[i].field.name+"] "+fieldErrors[i].message+"\n"
}errorMessage+="\nPlease correct the above and retry.";
alert(errorMessage);
return 
}var dataModel={pageId:this.pageId,id:this.id,fields:[]};
for(var j=0;
j<this.fields.length;
j++){var thisField=this.fields[j];
var fieldData={name:thisField.name,dataType:thisField.getAttribute("dataType")};
if(thisField.type=="checkbox"||thisField.type=="radio"){if(!thisField.checked){continue
}}if(fieldData.name=="atl_token"){fieldData.dataType="String"
}switch(fieldData.dataType){case"String":fieldData.valueString=thisField.value;
break;
case"int":fieldData.valuePInt=thisField.value;
break;
case"long":fieldData.valuePLong=thisField.value;
break;
case"boolean":fieldData.valuePBoolean=thisField.value;
break;
case"Boolean":fieldData.valueBoolean=thisField.value;
break;
case"Date":fieldData.valueDate=thisField.value;
break
}dataModel.fields.push(fieldData)
}var thisVar=this;
this.setDisabled(true);
var contextPath=jQuery("#confluence-context-path").attr("content")||"";
jQuery.ajax({type:"POST",url:contextPath+"/rest/formservice/1.0/submit.json",data:JSON.stringify(dataModel),contentType:"application/json; charset=utf-8",dataType:"html",success:function(successHTML){var parent=thisVar.formEle.parentNode;
parent.innerHTML=successHTML;
var scripts=parent.getElementsByTagName("script");
for(var i=0;
i<scripts.length;
i++){eval(scripts[i].text)
}},error:function(errorString,exception){thisVar.setDisabled(false);
alert("An error occurred\n\n"+JSON.parse(errorString.responseText).message);
MailCaptcha.display(contextPath+"/jcaptcha")
}})
};
FormMailNG.instances=[];
FormMailNG.getInstance=function(C,B){if(!C){return false
}if(C.formMailNG){return C.formMailNG
}if(C.parentNode){var A=FormMailNG.getInstance(C.parentNode,true);
if(A||B){return A
}}return false
};
FormMailNG.initStack=[];
FormMailNG.init=function(){FormMailNG.instances=[];
for(var A=0;
A<FormMailNG.initStack.length;
A++){new FormMailNG(FormMailNG.initStack[A].id,FormMailNG.initStack[A].formEle)
}};
var FormMailNGUtil={regexSupported:function(){var A=false;
if(window.RegExp){var B="a";
var C=new RegExp(B);
if(C.test(B)){A=true
}}FormMailNGUtil.regexSupported=function(){return A
};
return A
},getRegexAlpha:function(){if(!FormMailNGUtil.regexSupported()){return false
}var A=new RegExp("^[a-zA-Z]*$");
FormMailNGUtil.getRegexAlpha=function(){return A
};
return A
},getRegexNum:function(){if(!FormMailNGUtil.regexSupported()){return false
}var A=new RegExp("^[0-9]*$");
FormMailNGUtil.getRegexNum=function(){return A
};
return A
},getRegexAlphaNum:function(){if(!FormMailNGUtil.regexSupported()){return false
}var A=new RegExp("^[a-zA-Z0-9]*$");
FormMailNGUtil.getRegexAlphaNum=function(){return A
};
return A
},containsCSSClass:function(B,A){return(A==B||A.indexOf(" "+B+" ")>-1||A.indexOf(B+" ")==0||A.indexOf(" "+B)==A.length-(" "+B).length)
},cleanSpaces:function(C){var A=C.split(" ");
C="";
for(var B=0;
B<A.length;
B++){if(A[B].length){if(C.length){C+=" "
}C+=A[B]
}}return C
},isEmail:function(C){if(C.indexOf(" ")>-1){return false
}if(!FormMailNGUtil.regexSupported()){return(C.indexOf(".")>2)&&(C.indexOf("@")>0)
}var B=new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
var A=new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");
return(!B.test(C)&&A.test(C))
},isPhone:function(F){var D=/^((\+\d{1,3}(-| )?\(?\d\)?(-| )?\d{1,7})|(\(?\d{2,6}\)?))(-| )?(\d{3,4})(-| )?(\d{4})(\s)?((x|ext)(\s)?\d{1,5}){0,1}$/;
var C=new RegExp(".*([\\d])\\1{5}.*");
var B=new RegExp(".*1234567.*");
var E=new RegExp("000|555|111");
if(F.replace(/^\s+|\s+$/g,"").length<=0){return false
}var A=F.replace(/[^\d]/g,"");
if(E.test(A.substring(0,3))||E.test(A.substring(3,6))||B.test(A)||C.test(A)||!D.test(F)){return false
}return true
}};
var MailCaptcha={display:function(A){jQuery("#captchaImage").attr("src",A).hide().load(function(){jQuery("#captchaImage").fadeIn(function(){jQuery("#captchaResponse").val("")
})
})
}};
