var helper_browser_info=function(){var e=navigator.userAgent.toLowerCase(),b=(document.compatMode=="CSS1Compat"),k=(e.indexOf("opera")!=-1),g=(e.indexOf("chrome")!=-1),d=((g==false)&&(/webkit|khtml/).test(e)),f=((k==false)&&(e.indexOf("msie")!=-1)),i=((d==false)&&(g==false)&&(e.indexOf("gecko")!=-1)),h=((e.indexOf("windows")!=-1)||(e.indexOf("win32")!=-1)),c=((e.indexOf("macintosh")!=-1)||(e.indexOf("mac os x")!=-1)),a=(e.indexOf("adobeair")!=-1),j=(e.indexOf("linux")!=-1);return({is_strict:b,is_opera:k,is_chrome:g,is_safari:d,is_ie:f,is_gecko:i,is_windows:h,is_mac:c,is_air:a,is_linux:j})}();var helper_download=function(){return({download:function(h,g,a,c,e){var d,b,f;d=e?e:document.getElementById("frame_download");d.src="about:blank";b=d.contentWindow.document;b.open("text/html","replace");b.write('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head><title></title></head><body><form id="download_form" action="/download.php" method="post"><input id="download_data" name="data" type="hidden" /></form></body></html>');b.close();b.getElementById("download_data").value=JSON.stringify({"class":h,method:g,args:a,filename:c});f=b.getElementById("download_form");f.submit()}})}();var helper_filename=function(){var a=function(b,e){var d,c;d=/[a-z0-9]+/ig;while((c=d.exec(e))!==null){b.push(c[0])}};return({build:function(b){var d,c;d=[];for(c=0;c<b.length;++c){a(d,b[c])}return(d.length?d.join("_")+".pdf":false)}})}();var helper_formula={get_idents:function(f){var e,d,b,a,c;e={};d=/[a-z_][a-z0-9_]*/ig;while((b=d.exec(f))!==null){e[b[0]]=null}a=[];for(c in e){a.push(c)}return(a)},evaluate:function(formula,idents,precision){var _int_replace=function(text,str_from,str_to){var result,pos_cur,pos_next;result="";pos_cur=0;for(;;){if((pos_next=text.indexOf(str_from,pos_cur))==-1){result+=text.substring(pos_cur);break}result+=text.substring(pos_cur,pos_next)+str_to;pos_cur=pos_next+str_from.length}return(result)};var i,result,mult;for(i in idents){if(idents[i]===null){return("N/A")}formula=_int_replace(formula,i,idents[i])}result=eval(formula);if((result==Infinity)||isNaN(result)){return("N/A")}if(precision!==Infinity){mult=Math.pow(10,precision);result=Math.round(result*mult)/mult}return(result)}};var helper_iframe=function(){return({create:function(a,c){var b;b=a.createElement("iframe");b.id=c;b.name=c;b.style.position="absolute";b.style.left="-10000px";b.style.top="-10000px";if(helper_browser_info.is_ie){b.src="javascript:false"}a.body.appendChild(b);if(helper_browser_info.is_ie){a.frames[c].name=c}return(b)}})}();var helper_print={print_table:function(a,d){var e=function(){var g=function(){var j=function(k){return(Math.floor(k*10000)/100)};var i;i=1/f;return('<style type="text/css">table {width: 100%;margin-left: auto;margin-right: auto;font-family: Helvetica, Georgia, Verdana, Arial, sans-serif;font-size: 0.1in;} .section_wrapper {margin-top: 0.1in;margin-bottom: 0.1in;}.section_title {color: blue;}.section_table_visible {border: 1px solid black;border-collapse: collapse;}.cell_name, .cell_value {padding: 0.03in;border-top: 1px solid black;border-bottom: 1px solid black;}.cell_name {width: '+j(i*0.3)+"%;border-right: 1px dashed black;}.cell_value {width: "+j(i*0.7)+"%;border-right: 1px solid black;}.cell_image {text-align: center;}.grid_wrapper {margin-top: 0.1in;margin-bottom: 0.1in;}.grid_title {color: blue;}.grid_inner {border: 1px solid black;border-collapse: collapse;}.grid_inner td {padding: 0.03in;border: 1px solid black;}.grid_header {background-color: #EFEFEF;text-align: center;}.important {color: red;}</style>")};var h=function(q){var n=function(w){var u,x,v,y;u="";for(v=0,x=w.toString();v<x.length;++v){y=x.charAt(v);switch(y){case"&":u+="&amp;";break;case"'":u+="&#039;";break;case'"':u+="&quot;";break;case"<":u+="&lt;";break;case">":u+="&gt;";break;default:u+=y;break}}return(u)};var j=function(u,i,w,v){return('<table class="'+u+'" cellspacing="0"><tr><td class="'+i+'">'+n(w)+"</td></tr><tr><td>"+v+"</td></tr></table>")};var s=function(){var u;for(u=0;u<q.length;++u){if(q[u].type=="entry"){return(true)}}return(false)};var r=function(v,u){var i=function(){var y=function(C){var A,B;A='<tr class="grid_header">';for(B=0;B<C.length;++B){A+="<td>";switch(C[B].type){case"text":A+=n(C[B].text);break;case"image":A+='<img src="'+C[B].image+'" />';break;default:alert("Unknown header column type: '"+C[B].type+"'");break}A+="</td>"}A+="</tr>";return(A)};var z=function(C){var A,B;A="<tr>";for(B=0;B<C.length;++B){A+="<td>"+n(C[B])+"</td>"}A+="</tr>";return(A)};var w,x;w='<table class="grid_inner">'+y(u.header);for(x=0;x<u.rows.length;++x){w+=z(u.rows[x])}w+="</table>";return(w)};return(j("grid_wrapper","grid_title",v,i()))};var t,l,k,o,p,m;t="<table "+(s()?'class="section_table_visible" ':"")+'cellspacing="0">';l=2*f;k=0;while(k<q.length){t+="<tr>";switch(q[k].type){case"comment":t+='<td colspan="'+l+'">'+q[k].value+"</td>";++k;break;case"entry":o=0;for(;;){m=q[k].important?" important":"";t+='<td class="cell_name'+m+'">'+n(q[k].name)+'</td><td class="cell_value'+m+'">'+((q[k].value!="")?n(q[k].value):"&nbsp;")+"</td>";++k;++o;if((o==f)||(k==q.length)||(q[k].type!="entry")){for(p=o;p<f;++p){t+='<td class="cell_name">&nbsp;</td><td class="cell_value">&nbsp;</td>'}break}}break;case"grid":t+='<td colspan="'+l+'">'+r(q[k].name,q[k].value)+"</td>";++k;break;case"image":t+='<td class="cell_image" colspan="'+l+'"><img src="'+q[k].value+'" /></td>';++k;break;case"section":t+='<td colspan="'+l+'">'+j("section_wrapper","section_title",q[k].name,h(q[k].value))+"</td>";++k;break;default:alert("Unknown field type '"+q[k].type+"'");break}t+="</tr>"}t+="</table>";return(t)};var f=2;return('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><title></title>'+g()+'</head><body onload="window.focus (); window.print ();">'+h(a)+"</body></html>")};var b,c;b=d?d:document.getElementById("frame_print");c=b.contentWindow.document;c.open("text/html","replace");c.write(e());c.close()}};if(!this.JSON){JSON=function(){function f(n){return n<10?"0"+n:n}Date.prototype.toJSON=function(){return this.getUTCFullYear()+"-"+f(this.getUTCMonth()+1)+"-"+f(this.getUTCDate())+"T"+f(this.getUTCHours())+":"+f(this.getUTCMinutes())+":"+f(this.getUTCSeconds())+"Z"};var escapeable=/["\\\x00-\x1f\x7f-\x9f]/g,gap,indent,meta={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},rep;function quote(string){return escapeable.test(string)?'"'+string.replace(escapeable,function(a){var c=meta[a];if(typeof c==="string"){return c}c=a.charCodeAt();return"\\u00"+Math.floor(c/16).toString(16)+(c%16).toString(16)})+'"':'"'+string+'"'}function str(key,holder){var i,k,v,length,mind=gap,partial,value=holder[key];if(value&&typeof value==="object"&&typeof value.toJSON==="function"){value=value.toJSON(key)}if(typeof rep==="function"){value=rep.call(holder,key,value)}switch(typeof value){case"string":return quote(value);case"number":return isFinite(value)?String(value):"null";case"boolean":case"null":return String(value);case"object":if(!value){return"null"}gap+=indent;partial=[];if(typeof value.length==="number"&&!(value.propertyIsEnumerable("length"))){length=value.length;for(i=0;i<length;i+=1){partial[i]=str(i,value)||"null"}v=partial.length===0?"[]":gap?"[\n"+gap+partial.join(",\n"+gap)+"\n"+mind+"]":"["+partial.join(",")+"]";gap=mind;return v}if(typeof rep==="object"){length=rep.length;for(i=0;i<length;i+=1){k=rep[i];if(typeof k==="string"){v=str(k,value,rep);if(v){partial.push(quote(k)+(gap?": ":":")+v)}}}}else{for(k in value){v=str(k,value,rep);if(v){partial.push(quote(k)+(gap?": ":":")+v)}}}v=partial.length===0?"{}":gap?"{\n"+gap+partial.join(",\n"+gap)+"\n"+mind+"}":"{"+partial.join(",")+"}";gap=mind;return v}}return{stringify:function(value,replacer,space){var i;gap="";indent="";if(space){if(typeof space==="number"){for(i=0;i<space;i+=1){indent+=" "}}else{if(typeof space==="string"){indent=space}}}if(!replacer){rep=function(key,value){if(!Object.hasOwnProperty.call(this,key)){return undefined}return value}}else{if(typeof replacer==="function"||(typeof replacer==="object"&&typeof replacer.length==="number")){rep=replacer}else{throw new Error("JSON.stringify")}}return str("",{"":value})},parse:function(text,reviver){var j;function walk(holder,key){var k,v,value=holder[key];if(value&&typeof value==="object"){for(k in value){if(Object.hasOwnProperty.call(value,k)){v=walk(value,k);if(v!==undefined){value[k]=v}else{delete value[k]}}}}return reviver.call(holder,key,value)}if(/^[\],:{}\s]*$/.test(text.replace(/\\["\\\/bfnrtu]/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,""))){j=eval("("+text+")");return typeof reviver==="function"?walk({"":j},""):j}throw new SyntaxError("JSON.parse")},quote:quote}}()}var check_field_jump=function(b,d){var a=function(){var i=function(){var j,k;j=[];for(k=b;(k.nodeType!=1)||(k.tagName.toLowerCase()!="form");k=k.parentNode){j.unshift(k)}return(j)};var g=function(j){var k;if(j.length==0){return(false)}k=j[j.length-1];if(k.firstChild!==null){j.push(k.firstChild);return(k.firstChild)}for(;;){if(k.nextSibling!==null){j[j.length-1]=k.nextSibling;return(k.nextSibling)}j.pop();if(j.length==0){return(false)}k=j[j.length-1]}};var f,h,e;f=i();while((h=g(f))!==false){if(h.nodeType==1){e=h.tagName.toLowerCase();if(((e=="input")&&(h.getAttribute("type").toLowerCase()!="hidden"))||(e=="select")||(e=="textarea")){return(h)}}}return(false)};var c;if(b.value.length<d){return}if((c=a())===false){return}c.focus()};var helper_event={add_handler:function(b,c,a){if("addEventListener" in b){b.addEventListener(c,a,false)}else{if("attachEvent" in b){b.attachEvent("on"+c,a)}else{alert("Cannot set event handler")}}},add_load_handler:function(a){this.add_handler((helper_browser_info.is_gecko||helper_browser_info.is_ie)?window:window.document,"load",a)}};var helper_form_field=function(){var a={get_dom_element:function(c,b){return(document.getElementById(c+"_"+b))},get_printable:function(b){return(b.value)}};return({checkbox:{get_dom_element:function(c,b){return(document.getElementById(c+"_"+b))},get_printable:function(b){return(b.checked?"Yes":"No")},get_formula_value:function(b){return(b.checked?1:0)},add_change_handler:function(c,b){helper_event.add_handler(c,"click",b)}},combobox:a,date:a,file:{get_dom_element:function(c,b){return(document.getElementById(c+"_"+b))},get_printable:function(b){return(b.value)}},formula:{get_dom_element:function(c,b){return(document.getElementById(c+"_"+b))},get_printable:function(b){return(b.innerHTML)}},hidden:{get_dom_element:function(c,b){return(document.getElementById(c+"_"+b))},get_printable:function(b){return(b.value)}},password:{get_dom_element:function(c,b){return(document.getElementById(c+"_"+b))},get_printable:function(b){return(b.value)}},phone:{get_dom_element:function(c,b){return({area:document.getElementById(c+"_"+b+"_area"),number:document.getElementById(c+"_"+b+"_number")})},get_printable:function(c){var b,d;b=c.area.value;d=c.number.value;return(((b=="")&&(d==""))?"":b+"-"+d)}},readonly:{get_dom_element:function(c,b){return(document.getElementById(c+"_"+b))},get_printable:function(b){return(b.innerHTML)}},radio:{get_dom_element:function(c,b){return(document.getElementById(c+"_"+b))},get_printable:function(c){var d,b;d=c.getElementsByTagName("input");for(b=0;b<d.length;++b){if(d[b].checked){return(d[b].value)}}return("")},get_formula_value:function(c){var d,b;d=c.getElementsByTagName("input");for(b=0;b<d.length;++b){if(d[b].checked){return(b+1)}}return(0)},add_change_handler:function(e,d){var b,c;b=e.getElementsByTagName("input");for(c=0;c<b.length;++c){helper_event.add_handler(b[c],"click",d)}}},select:{get_dom_element:function(c,b){return(document.getElementById(c+"_"+b))},get_printable:function(b){return(b.options[b.selectedIndex].text)},get_formula_value:function(d,c){var b=function(){var e;if(d.options.length==0){return(false)}e=d.options[0];return((e.value=="")&&(e.text==""))};if(d.selectedIndex==-1){return(0)}return(d.selectedIndex+(b()?0:1))},add_change_handler:function(c,b){helper_event.add_handler(c,"change",b)}},text:a,textarea:{get_dom_element:function(c,b){return(document.getElementById(c+"_"+b))},get_printable:function(b){return(b.innerHTML)}}})}();(function(){var a=function(){var c,b;if(helper_browser_info.is_strict){c=document.body.parentNode;c.className+=((c.className!="")?" ":"")+"agent_strict"}b=[];if(helper_browser_info.is_opera){b.push("agent_opera")}else{if(helper_browser_info.is_chrome){b.push("agent_chrome")}else{if(helper_browser_info.is_safari){b.push("agent_safari")}else{if(helper_browser_info.is_ie){b.push("agent_ie")}else{if(helper_browser_info.is_gecko){b.push("agent_gecko")}}}}}if(helper_browser_info.is_windows){b.push("agent_windows")}else{if(helper_browser_info.is_mac){b.push("agent_mac")}else{if(helper_browser_info.is_air){b.push("agent_air")}else{if(helper_browser_info.is_linux){b.push("agent_linux")}}}}if(b.length){c=document.body;c.className+=((c.className!="")?" ":"")+b.join(" ")}};if(document.body){a()}else{helper_event.add_load_handler(a)}})();var set_form_formulas=function(d,e){var b=function(){var f=function(m){var k,l,j;for(k=0;k<m.length;++k){l=m[k];switch(l.type){case"input":j={dom:helper_form_field[l.input_type].get_dom_element(d,l.name),field_def:l};if("formula_ident" in l){h[l.formula_ident]=j}if(l.input_type=="formula"){g.push(j)}break;case"section":f(l.fields);break}}};var h,g;h={};g=[];f(e.fields);return({idents:h,formulas:g})};var c=function(f){var h=function(p,o){var m=function(){var s,r,q;s={};for(r in n){q=n[r];s[r]=helper_form_field[q.field_def.input_type].get_formula_value(q.dom)}p.dom.innerHTML=helper_formula.evaluate(p.field_def.formula_text,s,2)};var j,n,l,k;j=helper_formula.get_idents(p.field_def.formula_text);n=[];for(l=0;l<j.length;++l){k=j[l];if(k in o){n[k]=o[k]}else{p.dom.innerHTML="Unknown ident: "+k;return}}for(l in n){k=n[l];helper_form_field[k.field_def.input_type].add_change_handler(k.dom,m)}m()};var g;for(g=0;g<f.formulas.length;++g){h(f.formulas[g],f.idents)}};var a;a=b();c(a)};var set_form_icons=function(d,f){var e=function(g){var h=function(m){var j,k,l;j=[];for(k=0;k<m.length;++k){l=m[k];switch(l.type){case"comment":j.push({type:"comment",value:l.label});break;case"image":j.push({type:"image",value:l.url});break;case"input":j.push({type:"entry",name:l.label,value:g?helper_form_field[l.input_type].get_printable(helper_form_field[l.input_type].get_dom_element(d,l.name)):"",important:("important" in l)&&l.important});break;case"section":j.push({type:"section",name:l.label,value:h(l.fields)});break;default:alert("Unknown item type '"+l.type+"'");break}}return(j)};return(h(f.fields))};var c=function(g,i){var h;h=document.createElement("div");h.className=g;h.onclick=i;document.getElementById(d).rows[0].cells[0].appendChild(h)};var b=function(g,h,i){c(g,function(){i(e(confirm(h)))})};var a=function(h){var g;if((g=document.getElementById(h))===null){g=helper_iframe.create(document,h)}return(g)};if("cls_print" in f){b(f.cls_print,"Do you want to preserve the values currently entered in this form? If you answer [Cancel] then a blank form will be printed.",function(g){helper_print.print_table(g,a("window_print"))})}if("export_pdf" in f){b(f.export_pdf.cls_icon,"Do you want to preserve the values currently entered in this form? If you answer [Cancel] then the resulting PDF file will contain a blank form.",function(g){helper_download.download(f.export_pdf["class"],f.export_pdf.method,{data:g},(("get_name" in f.export_pdf)?f.export_pdf.get_name(document.getElementById(d)):"form.pdf"),a("window_download"))})}};