elementCanvasAttributes={RadioButton:["Border Style","Border Width","Border Color","Background Color","Text Color"]};elementAttributes={CheckBox:{Page:{editable:false},Type:{"default":"CheckBox",editable:false},Class:{"default":"pa-checkbox",editable:false},"Border Style":{"default":"solid",editable:false},"Border Width":{"default":"1px",editable:true},"Border Color":{"default":"rgb(0, 0, 0)",editable:true},"Background Color":{"default":"rgb(255, 255, 255)",editable:true},"Text Color":{"default":"rgb(0, 0, 0)",editable:true},"Font Size":{"default":"16px",editable:false},Width:{"default":"20",editable:true},Height:{"default":"20",editable:true},Left:{"default":"20",editable:true},Top:{"default":"20",editable:true}},RadioButton:{Page:{editable:false},Type:{"default":"RadioButton",editable:false},Class:{"default":"pa-radiobutton",editable:false},Group:{"default":"Group1",editable:true},"Border Width":{"default":"1px",editable:false},"Border Color":{"default":"rgb(0, 0, 0)",editable:true},"Background Color":{"default":"rgb(255, 255, 255)",editable:true},"Text Color":{"default":"rgb(0, 0, 0)",editable:true},Width:{"default":"20",editable:true},Height:{"default":"20",editable:true},Left:{"default":"20",editable:true},Top:{"default":"20",editable:true}},ListBox:{Page:{editable:false},Type:{"default":"ListBox",editable:false},Class:{"default":"pa-listbox",editable:false},Options:{"default":"",editable:true},"Border Style":{"default":"solid",editable:true},"Border Width":{"default":"1px",editable:true},"Border Color":{"default":"rgb(0, 0, 0)",editable:true},"Background Color":{"default":"rgb(255, 255, 255)",editable:true},"Text Color":{"default":"rgb(0, 0, 0)",editable:true},Width:{"default":"80px",editable:true},Height:{"default":"20",editable:true},Left:{"default":"20",editable:true},Top:{"default":"20",editable:true},Font:{"default":"Helvetica",editable:true},"Font Size":{"default":"12px",editable:true}},ComboBox:{Page:{editable:false},Type:{"default":"ComboBox",editable:false},Class:{"default":"pa-combobox",editable:false},Options:{"default":"",editable:true},"Border Style":{"default":"solid",editable:true},"Border Width":{"default":"1px",editable:true},"Border Color":{"default":"rgb(0, 0, 0)",editable:true},"Background Color":{"default":"rgb(255, 255, 255)",editable:true},"Text Color":{"default":"rgb(0, 0, 0)",editable:true},Width:{"default":"80",editable:true},Height:{"default":"20",editable:true},Left:{"default":"20",editable:true},Top:{"default":"20",editable:true},Font:{"default":"Helvetica",editable:true},"Font Size":{"default":"12px",editable:true}},TextField:{Page:{editable:false},Type:{"default":"TextField",editable:false},Class:{"default":"pa-textfield",editable:false},Multiline:{"default":false,editable:true},"Text Align":{"default":"left",editable:true},"Border Style":{"default":"solid",editable:true},"Border Width":{"default":"1px",editable:true},"Border Color":{"default":"rgb(0, 0, 0)",editable:true},"Background Color":{"default":"rgb(255, 255, 255)",editable:true},"Text Color":{"default":"rgb(0, 0, 0)",editable:true},Width:{"default":"80",editable:true},Height:{"default":"20",editable:true},Left:{"default":"20",editable:true},Top:{"default":"20",editable:true},Font:{"default":"Helvetica",editable:true},"Font Size":{"default":"12px",editable:true}},TextLabel:{Page:{editable:false},Type:{"default":"TextLabel",editable:false},Class:{"default":"pa-textlabel",editable:false},Text:{"default":"",editable:true},"Text Align":{"default":"left",editable:true},"Border Style":{"default":"none",editable:true},"Border Width":{"default":"1px",editable:true},"Border Color":{"default":"rgb(0, 0, 0)",editable:true},"Background Color":{"default":"rgb(255, 255, 255)",editable:true},"Text Color":{"default":"rgb(0, 0, 0)",editable:true},Width:{"default":"80",editable:true},Height:{"default":"20",editable:true},Left:{"default":"20",editable:true},Top:{"default":"20",editable:true},Font:{"default":"Helvetica",editable:true},"Font Size":{"default":"12px",editable:true}},SubmitButton:{Page:{editable:false},Type:{"default":"SubmitButton",editable:false},Class:{"default":"pa-submitbutton",editable:false},Label:{"default":"Submit",editable:true},Email:{editable:true},"Border Style":{"default":"solid",editable:true},"Border Width":{"default":"1px",editable:true},"Border Color":{"default":"rgb(0, 0, 0)",editable:true},"Background Color":{"default":"rgb(204, 204, 204)",editable:true},"Text Color":{"default":"rgb(0, 0, 0)",editable:true},Width:{"default":"80",editable:true},Height:{"default":"20",editable:true},Left:{"default":"20",editable:true},Top:{"default":"20",editable:true},Font:{"default":"Helvetica",editable:true},"Font Size":{"default":"12px",editable:true}},Image:{Page:{editable:false},Type:{"default":"Image",editable:false},Class:{"default":"pa-image",editable:false},Image:{editable:true},Left:{"default":"20",editable:true},Top:{"default":"20",editable:true},Width:{"default":"50",editable:false},Height:{"default":"50",editable:false},Scale:{"default":"1",editable:true}}};commonEditableAttributes={Page:{data:"page"},Type:{data:"type"},Class:{data:"class"},Multiline:{data:"multiline",attrtype:"boolean"},"Border Style":{data:"border-style",cssget:"border-top-style",funcset:"setBorderStyle",options:{None:"none",Solid:"solid"}},"Border Color":{data:"border-color",cssget:"border-top-color",cssset:"border-color",attrtype:"color"},"Border Width":{data:"border-width",cssget:"border-top-width",funcset:"setBorderWidth",options:{Thin:"1px",Medium:"2px",Thick:"3px"}},"Background Color":{data:"background-color",cssget:"background-color",cssset:"background-color",attrtype:"color"},"Text Color":{data:"color",cssget:"color",cssset:"color",attrtype:"color"},"Text Align":{data:"text-align",cssget:"text-align",cssset:"text-align",options:{Left:"left",Center:"center",Right:"right"}},Text:{data:"text",attrtype:"textarea",funcset:"setFormElementText"},Left:{data:"left",funcget:"getLeftPosition",funcset:"setLeftPosition",validator:"nonNegativeNumber"},Top:{data:"top",funcget:"getTopPosition",funcset:"setTopPosition",validator:"nonNegativeNumber"},Width:{data:"width",funcget:"getWidth",funcset:"setWidth",validator:"nonNegativeNumber"},Height:{data:"height",funcget:"getHeight",funcset:"setHeight",validator:"nonNegativeNumber"},Group:{data:"radio-group"},Options:{data:"options",attrtype:"textarea",funcset:"setFormElementText"},Image:{data:"image",funcset:"setImage",attrtype:"image"},Scale:{data:"scale",funcset:"setScale",validator:"nonNegativeNumber"},Email:{data:"email"},Label:{data:"label",funcset:"setFormElementText"}};function createFontAttributes(){commonEditableAttributes.Font={};commonEditableAttributes.Font["data"]="font-family";fontoptions={};fontcssmap={};fonts=["Helvetica","Courier"];for(var b=0;b<fonts.length;b++){var a=fonts[b];fontoptions[a]=a;fontoptions[a+" Italic"]=a+"-Oblique";fontoptions[a+" Bold"]=a+"-Bold";fontoptions[a+" Bold Italic"]=a+"-BoldOblique";fontcssmap[a]={"font-family":a,"font-style":"normal","font-weight":"normal"};fontcssmap[a+"-Oblique"]={"font-family":a,"font-style":"italic","font-weight":"normal"};fontcssmap[a+"-Bold"]={"font-family":a,"font-style":"normal","font-weight":"bold"};fontcssmap[a+"-BoldOblique"]={"font-family":a,"font-style":"italic","font-weight":"bold"}}fontoptions.Times="Times-Roman";fontoptions["Times Italic"]="Times-Italic";fontoptions["Times Bold"]="Times-Bold";fontoptions["Times Bold Italic"]="Times-BoldItalic";fontcssmap["Times-Roman"]={"font-family":"Times","font-style":"normal","font-weight":"normal"};fontcssmap["Times-Italic"]={"font-family":"Times","font-style":"italic","font-weight":"normal"};fontcssmap["Times-Bold"]={"font-family":"Times","font-style":"normal","font-weight":"bold"};fontcssmap["Times-BoldItalic"]={"font-family":"Times","font-style":"italic","font-weight":"bold"};commonEditableAttributes.Font["cssmap"]=fontcssmap;commonEditableAttributes.Font["options"]=fontoptions;commonEditableAttributes["Font Size"]={};commonEditableAttributes["Font Size"]["data"]="font-size";commonEditableAttributes["Font Size"]["cssget"]="font-size";commonEditableAttributes["Font Size"]["funcset"]="setFontSize";commonEditableAttributes["Font Size"]["options"]={};fontsizes=[8,9,10,11,12,13,14,16,18,24,36,72,96];for(var b=0;b<fontsizes.length;b++){var c=fontsizes[b];commonEditableAttributes["Font Size"]["options"][c]=c+"px"}}function nonNegativeNumber(a){if(typeof(a)=="string"){a=parseFloat(a)}if(typeof(a)=="number"&&a>=0){return true}return false}function parsePixelSize(a){if(typeof(a)=="string"){return parseInt(a.replace(/px$/,""))}else{return a}}function getChecked(a){return $("#"+a).attr("checked")}function setScale(c,b){var a=$("#"+c).find("img").each(function(){var e=$(this).data("originalWidth");var d=$(this).data("originalHeight");if(e&&d){$(this).attr("width",e*b);$(this).attr("height",d*b);setWidth(c,e*b);setHeight(c,d*b);fixContainerSize(c)}})}function setImage(e,d){var a=$("#"+e).children("img");if(a.length==0){a=document.createElement("img");$(a).hide();$(a).attr("border","0");$("#"+e).append(a);$(a).load(function(){var h=getCurrentPageId();setPage($("#"+e).data("page"),1);$(this).removeAttr("width").removeAttr("height");var g=$(a).width();var f=$(a).height();$(this).attr("width",g);$(this).attr("height",f);$(this).data("originalWidth",g);$(this).data("originalHeight",f);applyAttribute(e,"Width",g);updateAttributeValue(e,"Width");applyAttribute(e,"Height",f);updateAttributeValue(e,"Height");fixContainerSize(e);setScale(e,getAttributeValue(e,"Scale"));$(a).show();setPage(h,1)})}if(d){var c="/image/view/"+d;if($(a).attr("src")!=c){$(a).attr("src",c)}}else{var b=getCurrentPageId();setPage($("#"+e).data("page"),1);$(a).attr("src","");$(a).data("originalWidth",50);$(a).data("originalHeight",50);applyAttribute(e,"Width",50);applyAttribute(e,"Height",50);fixContainerSize(e);setScale(e,1);$(a).hide();setPage(b,1)}}function setFontSize(c,b){var d=parsePixelSize(b);var a=d;$("#"+c).css({"font-size":d+"px","line-height":a+"px"})}function setBorderStyle(b,a){if(a=="none"){setBorderWidth(b,"0px")}$("#"+b).css("border-style",a)}function setBorderWidth(f,e){var d=getAttributeValue(f,"Border Style");if(d!="none"){var b=getWidth(f);var a=getHeight(f);var c=parsePixelSize(e);b=b-4*c;a=a-4*c;if(b<1){b=1}if(a<1){a=1}$("#"+f).css({"border-width":e,padding:e,width:b+"px",height:a+"px"})}}function getWidth(a){return $("#"+a).outerWidth()}function getHeight(a){return $("#"+a).outerHeight()}function setWidth(d,c){var b=$("#"+d).css("padding-top");var a=$("#"+d).css("border-top-width");c=parsePixelSize(c);b=parsePixelSize(b);a=parsePixelSize(a);c=c-2*b-2*a;$("#"+d).width(c+"px")}function setHeight(d,c){var b=$("#"+d).css("padding-top");var a=$("#"+d).css("border-top-width");c=parsePixelSize(c);b=parsePixelSize(b);a=parsePixelSize(a);c=c-2*b-2*a;$("#"+d).height(c+"px")}function getLeftPosition(a){return $("#"+a).parent().position().left}function setLeftPosition(b,a){a=""+a;if(a.substring(a.length-2)!="px"){a=a+"px"}$("#"+b).parent().css("left",a)}function getTopPosition(a){return $("#"+a).parent().position().top}function setTopPosition(b,a){a=""+a;if(a.substring(a.length-2)!="px"){a=a+"px"}$("#"+b).parent().css("top",a)}function initAttributeEditor(){createFontAttributes();$("#pa-attribute-editor").hide()}function attributeEditorPick(a){$("#pa-attribute-editor-title").text(a);activateAttributes(a);$("#pa-attribute-editor-multi").hide();$("#pa-attribute-editor-apply").show();$("#pa-attribute-editor").show()}function attributeEditorClear(){$("#pa-attribute-editor-title").text("");$("#pa-attribute-editor-attributes").empty();$("#pa-attribute-editor").hide()}function attributeEditorMulti(){$("#pa-attribute-editor-title").text("Align & Distribute");$("#pa-attribute-editor-attributes").empty();$("#pa-attribute-editor-apply").hide();$("#pa-attribute-editor-multi").show();$("#pa-attribute-editor").show()}function getAttributeValue(formElementId,attr){var value="";if("funcget" in commonEditableAttributes[attr]){eval("value = "+commonEditableAttributes[attr]["funcget"]+"(formElementId)")}else{if("data" in commonEditableAttributes[attr]){value=$("#"+formElementId).data(commonEditableAttributes[attr]["data"])}else{if("cssget" in commonEditableAttributes[attr]){value=$("#"+formElementId).css(commonEditableAttributes[attr]["cssget"])}}}if(value==null){value=""}return value}function updateAttributeValue(d,a){var c=getAttributeValue(d,a);var b='input[name="pa-attribute-'+a.toLowerCase()+'"]';$(b).val(c)}function activateAttribute(c,a){var b=getAttributeValue(c,a);createAttribute(c,a,commonEditableAttributes[a]["options"],b)}function activateAttributes(b){$("#pa-attribute-editor-attributes").empty();$("#pa-attribute-editor-apply-button").unbind("click");$("#pa-attribute-editor-apply-button").click(function(){applyEditorAttributes(b)});$("#pa-attribute-editor-delete-button").unbind("click");$("#pa-attribute-editor-delete-button").click(function(){attributeEditorClear();deleteFormElement(b)});$("#pa-attribute-editor-clone-button").unbind("click");$("#pa-attribute-editor-clone-button").click(function(){attributeEditorClear();cloneFormElement(b)});var d=$("#"+b);var c=getAttributeValue(b,"Type");var a=elementAttributes[c];$.each(a,function(e,f){if("editable" in f&&f.editable){activateAttribute(b,e)}})}function applyEditorAttributes(a){$(".pa-attribute-editor-row").each(function(){var c=$(this).children(".pa-attribute-editor-key").text();var b=$(this).find(".pa-attribute-editor-val-input");var d;if($(b).attr("type")=="checkbox"){d=$(b).attr("checked")}else{d=$(b).val()}applyAttribute(a,c,d)});fixContainerSize(a);$("#"+a).trigger("resizestop");redrawElementCanvas(a)}function applyAttribute(formElementId,attr,val){var canvasAttr=false;var $el=$("#"+formElementId);var eltype=getAttributeValue(formElementId,"Type");if(eltype in elementCanvasAttributes){if($.inArray(attr,elementCanvasAttributes[eltype])>=0){canvasAttr=true}}if(attr in commonEditableAttributes){if("validator" in commonEditableAttributes[attr]){var validator=eval(commonEditableAttributes[attr]["validator"]);if(!validator(val)){return}}if("funcset" in commonEditableAttributes[attr]){eval(commonEditableAttributes[attr]["funcset"]+"(formElementId, val)")}else{if("cssmap" in commonEditableAttributes[attr]&&val in commonEditableAttributes[attr]["cssmap"]){for(cssattr in commonEditableAttributes[attr]["cssmap"][val]){var cssval=commonEditableAttributes[attr]["cssmap"][val][cssattr];if(!canvasAttr){$el.css(cssattr,cssval)}}}else{if("cssset" in commonEditableAttributes[attr]){if(!canvasAttr){$el.css(commonEditableAttributes[attr]["cssset"],val)}}}}$el.data(commonEditableAttributes[attr]["data"],val)}}function setFormElementText(b,a){if(a){a=a.replace("<","&lt;");a=a.split(/[\r\n|\r|\n]/);if($("#"+b).hasClass("pa-combobox")){if(a.length>0){a=a[0]}}else{a=a.join("<br/>")}$("#"+b).find(".pa-text-content").html(a)}}function createAttributeEditorRow(){var a=document.createElement("tr");$(a).addClass("pa-attribute-editor-row");return a}function createAttributeEditorKey(b,c){var a=document.createElement("td");$(a).appendTo(c);$(a).addClass("pa-attribute-editor-key").text(b);return a}function createDropDownAttribute(h,c,b,g){var f=createAttributeEditorRow();createAttributeEditorKey(c,f);var e=document.createElement("td");$(e).addClass("pa-attribute-editor-val").appendTo(f);var a=document.createElement("select");$(a).addClass("pa-attribute-editor-val-input");for(optkey in b){var d=document.createElement("option");$(d).attr("value",b[optkey]);$(d).text(optkey);if(b[optkey]==g){$(d).attr("selected","selected")}$(d).appendTo(a)}$(a).appendTo(e);$(a).change(function(){applyEditorAttributes(h)});$("#pa-attribute-editor-attributes").append(f)}function createTextAreaAttribute(f,b,e){var d=createAttributeEditorRow();createAttributeEditorKey(b,d);var c=document.createElement("td");$(c).addClass("pa-attribute-editor-val").appendTo(d);var a=document.createElement("textarea");$(a).attr("name","pa-attribute-"+b.toLowerCase());$(a).addClass("pa-attribute-editor-val-input");$(a).attr("rows","4");$(a).attr("cols","18");$(a).appendTo(c);$(a).text(e);$(a).keyup(function(){applyEditorAttributes(f)});$("#pa-attribute-editor-attributes").append(d)}function createTextAttribute(f,b,e){var d=createAttributeEditorRow();createAttributeEditorKey(b,d);var c=document.createElement("td");$(c).addClass("pa-attribute-editor-val").appendTo(d);var a=document.createElement("input");$(a).attr("type","text");$(a).attr("name","pa-attribute-"+b.toLowerCase());$(a).addClass("pa-attribute-editor-val-input");$(a).attr("size","6");$(a).appendTo(c);$(a).val(e);$(a).keyup(function(){applyEditorAttributes(f)});$("#pa-attribute-editor-attributes").append(d)}function createImageAttribute(g,b,f){var d=createAttributeEditorRow();createAttributeEditorKey(b,d);var c=document.createElement("td");$(c).addClass("pa-attribute-editor-val").appendTo(d);var e=document.createElement("div");$(e).appendTo(c);$(e).change(function(){applyEditorAttributes(g)});if(f){$(e).pickImage({image_id:f})}else{$(e).pickImage()}var a=document.createElement("input");$(a).attr("type","hidden");$(a).addClass("pa-attribute-editor-val-input");$(a).appendTo(e);$(a).val(f);$("#pa-attribute-editor-attributes").append(d)}function createColorAttribute(g,b,f){var d=createAttributeEditorRow();createAttributeEditorKey(b,d);var c=document.createElement("td");$(c).addClass("pa-attribute-editor-val").appendTo(d);var e=document.createElement("div");$(e).pickColor({color:f});$(e).appendTo(c);var a=document.createElement("input");$(a).attr("type","hidden");$(a).addClass("pa-attribute-editor-val-input");$(a).appendTo(e);$(a).val(f);$(e).change(function(){applyEditorAttributes(g)});$("#pa-attribute-editor-attributes").append(d)}function createBooleanAttribute(f,b,e){var d=createAttributeEditorRow();createAttributeEditorKey(b,d);var c=document.createElement("td");$(c).addClass("pa-attribute-editor-val").appendTo(d);var a=document.createElement("input");$(a).attr("type","checkbox");$(a).attr("name","pa-attribute-"+b.toLowerCase());$(a).addClass("pa-attribute-editor-val-input");$(a).appendTo(c);if(e){$(a).attr("checked",true)}$(a).click(function(){applyEditorAttributes(f)});$("#pa-attribute-editor-attributes").append(d)}function showColorPicker(a){var c=$(a).offset().left;var b=$(a).offset().top;$(".pa-colorpicker").css("left",c);$(".pa-colorpicker").css("top",b);$(".pa-colorpicker").show()}function createAttribute(d,b,a,c){if(a){createDropDownAttribute(d,b,a,c)}else{if("attrtype" in commonEditableAttributes[b]&&commonEditableAttributes[b]["attrtype"]=="textarea"){createTextAreaAttribute(d,b,c)}else{if("attrtype" in commonEditableAttributes[b]&&commonEditableAttributes[b]["attrtype"]=="color"){createColorAttribute(d,b,c)}else{if("attrtype" in commonEditableAttributes[b]&&commonEditableAttributes[b]["attrtype"]=="boolean"){createBooleanAttribute(d,b,c)}else{if("attrtype" in commonEditableAttributes[b]&&commonEditableAttributes[b]["attrtype"]=="image"){createImageAttribute(d,b,c)}else{createTextAttribute(d,b,c)}}}}}}function redrawElementCanvas(a){var b=$("#"+a);if(b.hasClass("pa-radiobutton")){redrawRadioButton(a)}}function redrawRadioButton(c){var i=$("#"+c);var b=i.find(".pa-radiobutton-canvas")[0];if(b){b.width=$(b).parent().innerWidth();b.height=$(b).parent().innerHeight();var g=parseSize(getAttributeValue(c,"Border Width"));var f=getAttributeValue(c,"Border Color");var e=getAttributeValue(c,"Background Color");var d=getAttributeValue(c,"Text Color");var a=b.width<b.height?b.width:b.height;a=a/2;var h=b.getContext("2d");h.fillStyle="white";h.fillRect(0,0,b.width,b.height);h.fillStyle=f;h.beginPath();h.arc(b.width/2,b.height/2,a,0,Math.PI*2,true);h.closePath();h.fill();h.fillStyle=e;h.beginPath();h.arc(b.width/2,b.height/2,a-g,0,Math.PI*2,true);h.closePath();h.fill();h.fillStyle=d;h.beginPath();h.arc(b.width/2,b.height/2,a/2,0,Math.PI*2,true);h.closePath();h.fill()}}function expose(a){$(".pa-expose-curtain").show();var c=($(window).width()-$(a).width())/2;var b=($(window).height()-$(a).height())/2;$(a).css("left",c+"px");$(a).css("top","50px");$(a).fadeIn(100);$(".pa-expose-curtain").css("filter","alpha(opacity=50)")}function unexpose(a){$(".pa-expose-curtain").hide();$(a).hide()}function buyPDF(){var a=$(":input[name=document_id]").val();if(!a){alert("Please save this document first.")}else{document.location="/checkout?document_id="+escape(a)}}function isFormEmpty(){return $(".pa-form-element").length==0}function freezePDF(){var b={};var a=$.map($(".pa-page"),function(e,d){return $(e).attr("id")});var c={document_id:$(":input[name=document_id]").val(),pages:a,pagesize:$("#document-page-size").children("option:selected").val(),title:$(":input[name=document_info_title]").val(),author:$(":input[name=document_info_author]").val(),subject:$(":input[name=document_info_subject]").val(),keywords:$(":input[name=document_info_keywords]").val()};$(".pa-form-element").each(function(f,g){var h=$(g).attr("id");var d=getAttributeValue(h,"Type");var e=elementAttributes[d];b[h]={};$.each(e,function(j,k){var i=commonEditableAttributes[j]["data"];b[h][j]=$("#"+h).data(i)})});c.data=b;return JSON.stringify(c)}function loadPDF(a){showInfo("One sec.. I am loading your document",0);$.get("/load",{document_id:a},function(b){if(b){loadDocumentData(b);$(":input[name=document_id]").val(a)}firstPage();hideInfo()},"json")}function loadDocumentData(a){$.each(a,function(d,c){setPage(c.Page);loadFormElement(d,c.Type,c.Page,false);if(c.Type in elementAttributes){var b=elementAttributes[c.Type];$.each(b,function(f,e){if(f in c){applyAttribute(d,f,c[f])}else{if("default" in e){applyAttribute(d,f,e["default"])}}})}fixContainerSize(d);redrawElementCanvas(d)})}function showInfo(d,c){var a=$(".pa-info-bar");a.text(d);if(c){setTimeout(hideInfo,c)}a.show();var b=$(document).width()/2-a.width()/2;a.css("left",b+"px")}function hideInfo(){$(".pa-info-bar").hide(2000)}function savePDF(b,c,a){if(!b&&!c){alert("Please sign in to save documents");return}showInfo("One sec, I am saving your document...",0);var d=freezePDF();$.post("/save",{doc:d,document_id:$(":input[name=document_id]").val()},function(h,f){var k=h.split("|");var l=k[0];var m=k[1];var e=new Date();var i=e.getHours();if(i<10){i="0"+i}var j=e.getMinutes();if(j<10){j="0"+j}var g=i+":"+j;showInfo("Document saved at "+g,2000);$(":input[name=document_id]").val(l);if(a){document.location=m}else{if(new String(document.location).indexOf(l)==-1){document.location="/edit?document_id="+l}}},"text")}function exportPDF(){if(isFormEmpty()){$("#pa-empty-form-export-warning").dialog("open");if(pageTracker){pageTracker._trackEvent("Dialog","Warning","Empty Form")}}else{$(".pa-exported-element").remove();var a=document.createElement("input");var b=$(a);b.attr("type","hidden");b.attr("name","doc");b.val(freezePDF());b.addClass("pa-exported-element");b.appendTo($("#pa-export-pdf-form"));$("#pa-export-pdf-form").submit()}}var idcnt=0;var pagecnt=0;function parseSize(a){a=a.replace(/p[tx]$/,"");return a}function newId(){idcnt++;return idcnt}function setPageSize(){$.each($("#document-page-size").children("option"),function(c,b){var d=$(b).val();$(".pa-page-shadow").removeClass(d);$(".pa-page").removeClass(d)});var a=$("#document-page-size").val();$(".pa-page-shadow").addClass(a);$(".pa-page").addClass(a)}function addPage(a){var c=document.createElement("div");var b=$(c);b.appendTo("#pa-page-shadow");if(!a){a="pa-page-"+pagecnt;pagecnt++;while($("#"+a).length){a="pa-page-"+pagecnt;pagecnt++}}b.addClass("pa-page");b.attr("id",a);updatePageNumber($(".pa-page").length);setPage(a);setPageSize()}function getCurrentPageId(){var a=$(".pa-page");var b=$.grep(a,function(d,c){return $(d).is(":visible")});return $(b).attr("id")}function updatePageNumber(a){var b=a+" / "+$(".pa-page").length;$("#pa-toolbar-page-number").text(b)}function firstPage(){var a=$(".pa-page");setPage($(a[0]).attr("id"));updatePageNumber(1)}function previousPage(){var a=$(".pa-page");var c=0;for(var b=0;b<a.length;b++){if($(a[b]).is(":visible")){c=b-1;break}}if(c<0){c=0}setPage($(a[c]).attr("id"));updatePageNumber(c+1)}function nextPage(){var a=$(".pa-page");var c=0;for(var b=0;b<a.length;b++){if($(a[b]).is(":visible")){c=b+1;break}}if(c>=a.length){c=a.length-1}setPage($(a[c]).attr("id"));updatePageNumber(c+1)}function deleteCurrentPage(){var a=$(".pa-page");if(a.length==1){alert("Hey, that's your last page!");return}var c=-1;var d=-1;for(var b=0;b<a.length;b++){if($(a[b]).is(":visible")){d=b;if(b>0){c=b-1}else{if(b<a.length-1){c=b+1}}break}}if(d>=0){deletePage($(a[d]).attr("id"));setPage($(a[c]).attr("id"));updatePageNumber(c+1)}}function deletePage(a){$("#"+a).remove()}function setPage(a,b){$(".pa-page").hide();$("#"+a).show();if(!b){attributeEditorClear()}}function fixContainerSize(a){$("#"+a+"-container").height($("#"+a).outerHeight());$("#"+a+"-container").width($("#"+a).outerWidth())}function createFormElement(b,h,f){var g=$(document.createElement("div")).addClass("pa-form-element-container");$page=$("#"+b);$page.append(g);$(g).attr("id",f+"-container");var a=10000;if(h=="Image"){a=5000}$(g).css("z-index",$(".pa-form-element-container").length+a);var d=elementAttributes[h]["Class"]["default"];var c=$(document.createElement("div")).addClass("pa-form-element").addClass(d).attr("id",f);$(c).appendTo(g);var e=document.createElement("div");$(e).addClass("pa-form-element-label").appendTo(g);$(e).text(f);if(!$("#pa-toolbar-labels-check").data("on")){$(e).hide()}$(g).draggable({containment:"#"+b,autoHide:true,start:function(i,j){$(this).data("start-drag-selected",$(".ui-selected > .pa-form-element"))},drag:function(i,j){var k=$(this);var l={left:j.position.left-getAttributeValue(f,"Left"),top:j.position.top-getAttributeValue(f,"Top")};k.data("start-drag-selected").each(function(){var m=$(this).attr("id");if(m!=f){updateAttributeValue(m,"Left");updateAttributeValue(m,"Top");setLeftPosition(m,getLeftPosition(m)+l.left);setTopPosition(m,getTopPosition(m)+l.top)}else{updateAttributeValue(m,"Left");updateAttributeValue(m,"Top")}})},stop:function(i,j){var k=$(this);k.data("start-drag-selected").each(function(){var l=$(this).attr("id");updateAttributeValue(l,"Left");updateAttributeValue(l,"Top");applyAttribute(l,"Top",getTopPosition(l));applyAttribute(l,"Left",getLeftPosition(l))})}});$(g).mousedown(function(i){if(i&&i.shiftKey){if(!$.support.opacity){try{if(document.selection){document.attachEvent("onselectionchange",document.selection.clear);document.selection.clear()}}catch(j){}}var l=$(".pa-form-element-container.ui-selected").length;if($(this).hasClass("ui-selected")){if(l>1){$(this).removeClass("ui-selected");l--;if(l==1){var k=$(".pa-form-element-container.ui-selected").children(".pa-form-element:first");attributeEditorPick(k.attr("id"))}}}else{$(this).addClass("ui-selected");if(l>0){attributeEditorMulti()}else{attributeEditorPick($(this).children(".pa-form-element:first").attr("id"))}}}else{$(".pa-form-element-container").removeClass("ui-selected");$(this).addClass("ui-selected");attributeEditorPick($(this).children(".pa-form-element:first").attr("id"))}i.stopPropagation()});if(!$.support.opacity){$(g).mouseup(function(i){if(i&&i.shiftKey){try{if(document.selection){document.selection.clear();document.detachEvent("onselectionchange",document.selection.clear)}}catch(j){}}})}if(h!="Image"){$(c).resizable({autoHide:true,resize:function(){updateAttributeValue(f,"Width");updateAttributeValue(f,"Height");fixContainerSize(f)},stop:function(){updateAttributeValue(f,"Width");updateAttributeValue(f,"Height");applyAttribute(f,"Width",getAttributeValue(f,"Width"));applyAttribute(f,"Height",getAttributeValue(f,"Height"));fixContainerSize(f)}})}$(g).css("left",$page.width()/2-75+"px");$(g).css("top","100px");applyAttribute(f,"Type",h);applyAttribute(f,"Page",b);return g}function getCurrentPage(){return 1}function cloneFormElement(c){var a=$("#"+c);var e=getAttributeValue(c,"Type");var b=_newFormElement(null,e,getCurrentPageId(),true,c);var d=getAttributeValue(b,"Top")+getAttributeValue(b,"Height")+10;if(d>$(".pa-page").height()){d=$(".pa-page").height()-getAttributeValue(b,"Height")-2}applyAttribute(b,"Top",d);return b}function newFormElement(a){return _newFormElement(null,a,getCurrentPageId(),true,null)}function loadFormElement(b,c,a){return _newFormElement(b,c,a,false,null)}function _newFormElement(e,g,c,b,a){var d;if(g=="TextLabel"){d=newTextLabel}else{if(g=="TextField"){d=newTextField}else{if(g=="CheckBox"){d=newCheckBox}else{if(g=="RadioButton"){d=newRadioButton}else{if(g=="ListBox"){d=newListBox}else{if(g=="ComboBox"){d=newComboBox}else{if(g=="SubmitButton"){d=newSubmitButton}else{if(g=="Image"){d=newImage}else{return}}}}}}}}if(!e){var f=newId();e=g+f;while($("#"+e).length){f=newId();e=g+f}}d(c,e);setNewFormElementDefaults(e,a);fixContainerSize(e);redrawElementCanvas(e);if(b){$("#"+e).mousedown()}return e}function setNewFormElementDefaults(c,a){var b=$("#"+c);$.each(elementAttributes,function(e,f){var d=f.Class["default"];if(b.hasClass(d)){$.each(f,function(g,h){if(a){applyAttribute(c,g,getAttributeValue(a,g))}else{if("default" in h){applyAttribute(c,g,h["default"])}}})}})}function newImage(a,b){var c=createFormElement(a,"Image",b)}function newTextLabel(a,b){createFormElement(a,"TextLabel",b);addTextContentHolder(b)}function newTextField(a,b){createFormElement(a,"TextField",b)}function newCheckBox(a,b){var c=createFormElement(a,"CheckBox",b);var d=document.createElement("span");$(d).addClass("pa-checkbox-checkmark");if(!$.support.htmlSerialize){$(d).html("a");$(d).css("font-family","webdings")}else{$(d).html("&#10004;")}$(d).appendTo($(c).children(".pa-form-element:first"));$(c).bind("resizestop",function(){var j=0;var e=$(this).width()-j;var g=$(this).height()-j;var i=e>g?g:e;applyAttribute(b,"Font Size",i+"px")});$(c).trigger("resizestop")}function newRadioButton(a,b){var c=createFormElement(a,"RadioButton",b);var d=document.createElement("canvas");if(!$.support.htmlSerialize){d=G_vmlCanvasManager.initElement(d)}$(d).addClass("pa-radiobutton-canvas");$(d).attr("width","20");$(d).attr("height","20");$(d).appendTo($(c).children(".pa-form-element:first"));$(c).bind("resizestop",function(){redrawRadioButton(b)})}function addTextContentHolder(a){var b=document.createElement("div");$(b).addClass("pa-text-content");$("#"+a).append(b)}function newListBox(a,b){var c=createFormElement(a,"ListBox",b);addTextContentHolder(b)}function newSubmitButton(a,b){var e=createFormElement(a,"SubmitButton",b);var d=$(document.createElement("div")).addClass("pa-submitbutton-middle");d.appendTo(e.children(".pa-form-element"));var c=$(document.createElement("div")).addClass("pa-submitbutton-inner").addClass("pa-text-content");c.appendTo(d)}function newComboBox(a,b){var d=createFormElement(a,"ComboBox",b);addTextContentHolder(b);var c=document.createElement("div");$(c).css({position:"absolute","text-align":"right",color:"black","font-size":"12px",width:"98%",height:"100%","padding-top":"2px","margin-right":"10px",left:0,top:0,"z-index":10});if(!$.support.htmlSerialize){$(c).html("6");$(c).css("font-family","webdings")}else{$(c).html("&#9660;")}$(d).append(c)}function initKeyboard(){}function deleteFormElement(a){$("#"+a).parent().remove()}function init(){initToolbar();initAttributeEditor();initKeyboard();$(".pa-right-column").width($(window).width()-$(".pa-left-column").outerWidth()-$(".pa-left-column").position().left);$(".pa-document-container").height($(window).height()-$(".pa-right-column").position().top);$(window).resize(function(){$(".pa-right-column").width($(window).width()-$(".pa-left-column").outerWidth());$(".pa-document-container").height($(window).height()-$(".pa-right-column").position().top)});$(".pa-page").mousedown(function(){$(".pa-form-element-container").removeClass("ui-selected");attributeEditorClear()})}(function(a){a.fn.pickColor=function(b){var d={colorpickerselector:".pa-colorpicker",colorpickerswatchselector:".pa-colorpicker-swatch",width:12,height:12,color:"#fff",border:"1px solid black"};var c=a.extend(d,b);return this.each(function(){var e=a(this);e.css({width:c.width,height:c.height,border:c.border,"background-color":c.color});e.click(function(){a.fn.pickColor.swatch=e;var g=a(this).position().left;var f=a(this).position().top;a(c.colorpickerswatchselector).unbind("click");a(c.colorpickerswatchselector).click(function(){var h=a(this).css("background-color");a.fn.pickColor.swatch.css("background-color",h);a.fn.pickColor.swatch.children("input").val(h);a.fn.pickColor.swatch.change();a(c.colorpickerselector).hide()});a(c.colorpickerselector).css("left",g+c.width+2);a(c.colorpickerselector).css("top",f);a(c.colorpickerselector).show()});e.addClass("pa-colorpicker-show")})}})(jQuery);(function(a){a.fn.toolbarButton=function(b){var d={dropdown:false};var c=a.extend(d,b);return this.each(function(){var j=a(this);j.addClass("pa-toolbar-button");if(j.attr("disabled")){j.addClass("pa-toolbar-button-disabled")}var k=j.attr("name");var e=a(document.createElement("div"));if(c.dropdown){e.addClass("pa-toolbar-dropdown-right")}else{e.addClass("pa-toolbar-button-right")}e.prependTo(j);var h=a(document.createElement("div"));h.prependTo(j);h.addClass("pa-toolbar-button-middle");h.text(k);var f=a(document.createElement("div"));f.prependTo(j);f.addClass("pa-toolbar-button-left");if(c.checkbox){var g=a(document.createElement("div"));g.prependTo(h);g.addClass("pa-toolbar-checkbox")}if(j.attr("disabled")){if(j.attr("tooltip")){var i=document.createElement("div");a(i).addClass("pa-toolbar-tooltip");a(i).append(document.createTextNode(j.attr("tooltip")));a(i).appendTo(this);j.hover(function(){a(i).show()},function(){a(i).hide()})}}else{j.hover(function(){j.addClass("pa-toolbar-button-hover")},function(){j.removeClass("pa-toolbar-button-hover")});if(c.dropdown){j.hover(function(){if(j.siblings(".pa-toolbar-dropdown.pa-toolbar-button-click").length>0){j.siblings(".pa-toolbar-dropdown.pa-toolbar-button-click").trigger("click");j.trigger("click")}});j.addClass("pa-toolbar-dropdown");j.click(function(){j.toggleClass("pa-toolbar-button-click");j.removeClass("pa-toolbar-button-hover");j.find("li").removeClass("pa-toolbar-dropdown-hover");j.children("ul").toggle();if(pageTracker){pageTracker._trackEvent("Toolbar",k,"Click")}});j.find("li").click(function(){if(pageTracker){pageTracker._trackEvent("Toolbar",a(this).text(),"Click")}});j.find("li").hover(function(){a(this).addClass("pa-toolbar-dropdown-hover")},function(){a(this).removeClass("pa-toolbar-dropdown-hover")})}else{j.click(function(){a(".pa-toolbar-dropdown").children("ul").hide();a(".pa-toolbar-dropdown").removeClass("pa-toolbar-button-click");j.removeClass("pa-toolbar-button-hover");if(pageTracker){pageTracker._trackEvent("Toolbar",k,"Click")}});if(c.checkbox){j.click(function(){j.find(".pa-toolbar-checkbox").toggleClass("pa-toolbar-checkbox-checked");if(pageTracker){pageTracker._trackEvent("Toolbar",k,"Click")}})}}}})}})(jQuery);(function(a){a.fn.pickImage=function(b){var d={image_id:"",imagepickerselector:".pa-image-picker"};var c=a.extend(d,b);return this.each(function(){var g=a(this);a.fn.pickImage.imagePicker=g;var h=document.createElement("input");a(h).addClass("pa-attribute-editor-val-filename");a(h).attr("size",10);a(h).attr("disabled","disabled");g.append(h);if(c.image_id){var e=a(".pa-image-filename-cell.pa-image-cell-"+c.image_id).find(".pa-image-picker-filename").text();a(h).val(e)}var f=document.createElement("button");a(f).text("Select");g.append(f);a(f).click(function(){a(c.imagepickerselector).dialog("open");var i=a.fn.pickImage.imagePicker.find(".pa-attribute-editor-val-input").val();a("#pa-image-picker-selected-id").unbind("change");a("#pa-image-picker-selected-filename").unbind("change");imagePickerSelectImage(i);a("#pa-image-picker-selected-id").change(function(){a.fn.pickImage.imagePicker.find(".pa-attribute-editor-val-input").val(a(this).val());a.fn.pickImage.imagePicker.change()});a("#pa-image-picker-selected-filename").change(function(){a.fn.pickImage.imagePicker.find(".pa-attribute-editor-val-filename").val(a(this).val())})})})}})(jQuery);function showDocumentProperties(){$("#pa-document-properties-dialog").dialog("open")}function closePDF(){document.location="/docs"}function showWhySignIn(){var a=$(".pa-why-sign-in");a.css({left:$("#why-sign-in-link").position().left-220+"px",top:$("#why-sign-in-link").position().top+20+"px"});a.toggle()}function showGetInvite(){var a=$(".pa-invite-request");a.css({left:$("#pa-get-invite-link").position().left-150+"px",top:$("#pa-get-invite-link").position().top+15+"px"});a.toggle()}function submitGetInvite(){$.get("/invite",{email:$("#pa-invite-email").val()},function(a){var b=$(".pa-invite-request");b.html("<h3>Thank you!</h3>We will send you an invite as soon as one becomes available.")})}function clearPage(){$(function(){$(".pa-page").empty();$("#pa-attribute-editor").hide()})}function toggleFormElementLabels(){if($("#pa-toolbar-labels-check").data("on")){$("#pa-toolbar-labels-check").data("on",false);$(".pa-form-element-label").hide()}else{$("#pa-toolbar-labels-check").data("on",true);$(".pa-form-element-label").show()}}function togglePageGrid(){if($("#pa-toolbar-grid-check").data("on")){$("#pa-toolbar-grid-check").data("on",false);$(".pa-page").css("background-image","none")}else{$("#pa-toolbar-grid-check").data("on",true);$(".pa-page").css("background-image","url('../gfx/grid.png')")}}function initToolbar(){$(document).click(function(b){var a=$(b.target);if(!a.is(".pa-toolbar-button")&&!a.parents().is(".pa-toolbar-button")){$(".pa-toolbar-dropdown ul").hide();$(".pa-toolbar-dropdown").removeClass("pa-toolbar-button-click")}if(!a.is(".pa-colorpicker-show")&&!a.is(".pa-colorpicker")&&!a.parents().is(".pa-colorpicker")){$(".pa-colorpicker").hide()}})}function populateContactUs(){$("#pa-contact-us-link").attr("href","mailto:pdfamigo@pdfamigo.com");$("#pa-contact-us-link").html("pdfamigo@pdfamigo.com")}function imagePickerStartUpload(){$("#pa-image-upload-progress-bar").show();return true}function imagePickerCheckFull(){var a=$(".pa-image-pick-cell").length;if(a>=3){$(".pa-upload-image-form").hide();$(".pa-upload-image-full").show()}else{$(".pa-upload-image-form").show();$(".pa-upload-image-full").hide()}if(a>0){$(".pa-image-library").show()}else{$(".pa-image-library").hide()}}function imagePickerClearDeleted(a){$(".pa-image").each(function(){if(getAttributeValue($(this).attr("id"),"Image")==a){setImage($(this).attr("id"),"");$("#pa-image-picker-selected-filename").val("");$("#pa-image-picker-selected-filename").change()}})}function imagePickerUploadComplete(){var b=$("#pa-image-upload-target-iframe").contents().find("body").text();if(b&&b.length>0){if(b.indexOf("Error")==-1){var h=JSON.parse(b);var g=h.image_id;var f=h.filename;var i=document.createElement("td");$(i).attr({align:"center",valign:"middle",onclick:"imagePickerSelectImage('"+g+"')"});$(i).click(function(){imagePickerSelectImage(g)});$(i).addClass("pa-image-pick-cell");$(i).addClass("pa-image-cell-"+g);var d=document.createElement("img");$(d).attr("src","/image/view/"+g+"?thumbnail=1");$(i).append(d);$(".pa-image-library-pick-image-row").append(i);var i=document.createElement("td");$(i).attr({align:"center",valign:"middle"});$(i).click(function(){imagePickerSelectImage(g)});$(i).addClass("pa-image-filename-cell");$(i).addClass("pa-image-cell-"+g);$(".pa-image-library-filename-row").append(i);var e=document.createElement("span");$(e).addClass("pa-image-picker-filename");$(e).append(document.createTextNode(f));$(e).appendTo(i);var i=document.createElement("td");$(i).attr({align:"center",valign:"middle"});$(i).addClass("pa-image-delete-cell");$(i).addClass("pa-image-cell-"+g);var c=document.createElement("a");$(c).attr("href","#");$(c).attr("class","pa-delete-image-link");$(c).click(function(){imagePickerDeleteImage(g)});$(c).append(document.createTextNode("Delete"));$(c).appendTo(i);$(".pa-image-library-delete-image-row").append(i);imagePickerSelectImage(g);$("#pa-image-upload-progress-bar").hide();$(".pa-image-library").show();imagePickerCheckFull()}else{$("#pa-image-upload-progress-bar").hide();alert(b)}}return true}function imagePickerDeleteImage(a){if(a){$.get("/image/delete/"+a,function(b){if(b=="Deleted"){$(".pa-image-cell-"+a).remove()}imagePickerClearDeleted(a);imagePickerCheckFull()})}}function imagePickerSelectImage(b){$(".pa-image-pick-cell").removeClass("pa-image-cell-selected");$(".pa-image-pick-cell.pa-image-cell-"+b).addClass("pa-image-cell-selected");$("#pa-image-picker-selected-id").val(b);$("#pa-image-picker-selected-id").change();var a=$(".pa-image-cell-"+b).find(".pa-image-picker-filename").text();$("#pa-image-picker-selected-filename").val(a);$("#pa-image-picker-selected-filename").change()}function getSelectedFormElements(){return $(".pa-form-element-container.ui-selected .pa-form-element")}function getMinTop(b){var a=null;b.each(function(){var c=getTopPosition($(this).attr("id"));if(a==null||c<a){a=c}});return a}function getMaxBottom(a){var b=null;a.each(function(){var c=$(this).attr("id");var d=getTopPosition(c)+getHeight(c);if(b==null||d>b){b=d}});return b}function getMinLeft(b){var a=null;b.each(function(){var c=getLeftPosition($(this).attr("id"));if(a==null||c<a){a=c}});return a}function getMaxRight(a){var b=null;a.each(function(){var c=$(this).attr("id");var d=getLeftPosition(c)+getWidth(c);if(b==null||d>b){b=d}});return b}function alignLeft(){var b=getSelectedFormElements();var a=getMinLeft(b);if(a!=null){b.each(function(){applyAttribute($(this).attr("id"),"Left",a)})}}function alignRight(){var a=getSelectedFormElements();var b=getMaxRight(a);if(b!=null){a.each(function(){var c=$(this).attr("id");applyAttribute(c,"Left",b-getWidth(c))})}}function alignCenter(){var c=getSelectedFormElements();var b=getMinLeft(c);var d=getMaxRight(c);var a=b+(d-b)/2;if(a!=null){c.each(function(){var e=$(this).attr("id");applyAttribute(e,"Left",a-getWidth(e)/2)})}}function alignTop(){var b=getSelectedFormElements();var a=getMinTop(b);if(a!=null){b.each(function(){var c=$(this).attr("id");applyAttribute(c,"Top",a)})}}function alignBottom(){var a=getSelectedFormElements();var b=getMaxBottom(a);if(b!=null){a.each(function(){var c=$(this).attr("id");applyAttribute(c,"Top",b-getHeight(c))})}}function alignMiddle(){var c=getSelectedFormElements();var b=getMinTop(c);var d=getMaxBottom(c);var a=b+(d-b)/2;if(a!=null){c.each(function(){var e=$(this).attr("id");applyAttribute(e,"Top",a-getHeight(e)/2)})}}function distribute(f,l,j){var d=getSelectedFormElements();if(d.length<3){return}var a={};var c={};var g=new Array();d.each(function(){var i=$(this).attr("id");var m=j(i);var n=l(i)+m;a[n]=i;c[i]=m;g.push(n)});g.sort(function(m,i){return m-i});var h=g[g.length-1]-g[0];var k=h/(g.length-1);for(var e=0;e<g.length;e++){if(e>0&&e<g.length-1){var b=a[g[e]];applyAttribute(b,f,g[0]+e*k-c[b])}}}function distributeHorizontally(a,b){distribute("Left",a,b)}function distributeVertically(a,b){distribute("Top",a,b)}function distributeHorizontallyLeft(){distributeHorizontally(getLeftPosition,function(a){return 0})}function distributeHorizontallyCenter(){distributeHorizontally(getLeftPosition,function(a){return getWidth(a)/2})}function distributeHorizontallyRight(){distributeHorizontally(getLeftPosition,getWidth)}function distributeVerticallyTop(){distributeVertically(getTopPosition,function(a){return 0})}function distributeVerticallyMiddle(){distributeVertically(getTopPosition,function(a){return getHeight(a)/2})}function distributeVerticallyBottom(){distributeVertically(getTopPosition,getHeight)};
