/***

    Form Builder 3.3.0
    A web-based Web Form Builder. 

    Build $Thu, 15 Oct 2009 16:35:45 UTC$

    Copyright (c) 2007 Veer West LLC <contact@veerwest.com>.
    All Rights Reserved - do not reuse without permission.
    For licensing information visit: http://www.formassembly.com/about-form-builder.php 

***/
var Builder={};
Builder.NAME="Form Builder";
Builder.VERSION="3.3.0";
if(typeof BuilderConfig=="undefined"){
alert("Configuration file not loaded.\nPlease make sure to include config/form-builder-config.js in your page.");
}
Freja.AssetManager.HTTP_METHOD_TUNNEL=null;
Freja.AssetManager.XSLT_SERVICE_URL=BuilderConfig.XSLT_SERVICE_URL;
Builder.OUTLINE_TAB=0;
Builder.PROPERTIES_TAB=1;
Builder.ADVANCED_TAB=2;
Builder.formId=null;
Builder.ids=new Array();
Builder.mainPanel=null;
Builder.formOutline=null;
Builder.previewPanelId="tabPanelPreview";
Builder.isSaved=true;
Builder.isNewForm=false;
Builder.usedSwitchLabels={};
Builder.activityIndicator=null;
Builder.preferences={alwaysUpdatePreview:true,showOneTabOnly:readCookie("tfa_fb_showOneTabOnly")=="1",revealPreviewContent:false,disablePreviewBehaviors:false};
Builder.behaviors={};
Builder.models={};
Builder.views={};
function editFormElement(_1){
if(!_1){
return;
}
if(_1.getElementsByTagName("A").length>0){
_1.getElementsByTagName("A")[0].focus();
}
if(_1.id=="outline@form"){
var _2="FORM";
}else{
if(_1.id=="trash"){
var _2="";
}else{
var _3=Builder.models.form.getElementById(extractId(_1.id));
if(!_3){
return;
}
var _2=_3.tagName.toUpperCase();
}
}
switch(_2){
case "FORM":
editForm();
break;
case "FIELD":
editField(_3.getAttribute("id"));
break;
case "FIELDSET":
editFieldset(_3.getAttribute("id"));
break;
case "HTMLSECTION":
editHTMLSection(_3.getAttribute("id"));
break;
}
}
function reorderForm(_4,_5,_6,_7){
if(_4.getElementsByTagName("A").length>0){
_4.getElementsByTagName("A")[0].focus();
}
var s=Builder.models.form.getElementById(extractId(_4.id));
if(s&&_5.id=="trash"){
if(confirm(Builder.LANG.confirm_delete_selection)){
deleteFormElement(s);
Builder.formOutline.refresh(Builder.models.form);
updatePreview();
Builder.isSaved=false;
}else{
Builder.formOutline.refresh(Builder.models.form);
}
return;
}
if(s&&_5.id=="copier"){
if(window.confirm(Builder.LANG.confirm_duplicate_selection)){
duplicateFormElement(s);
Builder.formOutline.refresh(Builder.models.form);
updatePreview();
Builder.isSaved=false;
}else{
Builder.formOutline.refresh(Builder.models.form);
}
return;
}
if(s&&_5.id=="form"){
var d=Builder.models.form.document.documentElement;
}else{
var d=Builder.models.form.getElementById(extractId(_5.id));
}
if(d){
switch(_6){
case "insertBefore":
d.parentNode.insertBefore(s,d);
break;
case "insertAfter":
d.parentNode.insertBefore(s,d.nextSibling);
break;
case "insertInside":
d.appendChild(s);
break;
}
Builder.isSaved=false;
}else{
Builder.formOutline.refresh(Builder.models.form);
}
updatePreview();
}
function expandSection(_a){
if(_a.id!="form"){
var _b=Builder.models.form.getElementById(extractId(_a.id));
if(_b){
_b.setAttribute("treeview","");
}
}
}
function collapseSection(_c){
if(_c.id!="form"){
var _d=Builder.models.form.getElementById(extractId(_c.id));
if(_d){
_d.setAttribute("treeview","collapse");
}
}
}
function UI_addField(e){
var id=insertFormElement(Builder.models.field_template);
Builder.formOutline.refresh(Builder.models.form);
Builder.formOutline.select(id,true);
editField(id);
return false;
}
function UI_addFieldset(e){
var id=insertFormElement(Builder.models.fieldset_template);
Builder.formOutline.refresh(Builder.models.form);
Builder.formOutline.select(id,true);
editFieldset(id);
return false;
}
function UI_addPage(e){
Builder.formOutline.select("form",true);
var id=insertFormElement(Builder.models.fieldset_template);
var _14=Builder.models.form.getElementById(id);
_14.setAttribute("type","page");
Builder.formOutline.refresh(Builder.models.form);
Builder.formOutline.select(id,true);
Builder.mainPanel.selectTab("Outline",true);
return false;
}
function UI_addHTMLSection(e){
var id=insertFormElement(Builder.models.htmlsection_template);
Builder.formOutline.refresh(Builder.models.form);
Builder.formOutline.select(id,true);
editHTMLSection(id);
}
function UI_addPredefined(){
var ps=document.getElementById("predefinedSelect");
var url=ps.options[ps.selectedIndex].value;
if(url!="_new"&&url!="_manage"){
insertPredefinedElement(url).addCallback(function(id){
updatePreview();
Builder.formOutline.refresh(Builder.models.form);
Builder.formOutline.select(id,true);
});
}
}
function UI_managePredefined(){
var ps=document.getElementById("predefinedSelect");
var url=ps.options[ps.selectedIndex].value;
if(url=="_manage"){
var d=dialogBox("",Builder.LANG.ok_button,null,"noAlignMiddle");
d.addCallbacks(function(b){
Builder.views.predefined_field_list.render(Builder.models.predefined_field_list,"predefinedFieldsPlaceholder");
if(b==Builder.LANG.ok_button){
savePredefinedList();
}
});
Builder.views.manage_predefined_list.render(Builder.models.predefined_field_list,"dialogText");
}else{
if(url=="_new"){
var _1e=Builder.formOutline.getSelected();
if(!_1e){
alert("Please select an element in the outline first.");
}else{
if(_1e.id=="outline@form"){
var _1f=Builder.models.form.document.documentElement;
var _20=Builder.models.form.document.createElement("fieldset");
_20.setAttribute("type","div");
_20.setAttribute("name",_1f.getAttribute("name"));
for(var i=0;i<_1f.childNodes.length;i++){
switch(_1f.childNodes[i].tagName){
case "field":
case "fieldset":
case "htmlsection":
_20.appendChild(_1f.childNodes[i].cloneNode(true));
break;
default:
}
}
_1f=_20;
}else{
var _1f=Builder.models.form.getElementById(extractId(_1e.id));
}
if(_1f){
switch(_1f.tagName){
case "fieldset":
case "form":
var _22=_1f.getAttribute("name");
break;
case "field":
var _22=getTextContent(_1f.getElementsByTagName("label")[0]);
break;
case "htmlsection":
var _22=getTextContent(_1f.firstChild);
if(_22.length>35){
var _22=_22.substring(0,33)+"...";
}
break;
}
}
if(!_22){
_22="(no name)";
}
var d=confirmBox("Create a new predefined element called \""+_22+"\"?",Builder.LANG.ok_button,Builder.LANG.cancel_button);
d.addCallbacks(function(b){
if(b==Builder.LANG.ok_button){
savePredefined(_1f,_22);
}
});
}
ps.selectedIndex=0;
}
}
}
function insertFormElement(_24){
var p=getInsertPoint(_24);
if(p.insertType=="inside"){
_24=p.insertPoint.appendChild(importModel(Builder.models.form,_24));
}else{
_24=p.insertPoint.parentNode.insertBefore(importModel(Builder.models.form,_24),p.insertPoint.nextSibling);
}
if(!_24.getAttribute("id")){
var id=randomId();
_24.setAttribute("id",id);
}else{
var id=_24.getAttribute("id");
}
var cn=_24.getElementsByTagName("*");
for(var i=0;i<cn.length;i++){
if(cn[i].tagName.toUpperCase()=="FIELD"||cn[i].tagName.toUpperCase()=="FIELDSET"||cn[i].tagName.toUpperCase()=="CHOICE"){
if(!cn[i].getAttribute("id")){
cn[i].setAttribute("id",randomId());
}
}
}
return id;
}
function insertPredefinedElement(url){
var d=Freja._aux.createDeferred();
if(url!=""){
if(!url.match(/^https?:/)){
url="xml/predefined/"+url;
}
var _2b=null;
for(var i=0;i<Freja.AssetManager.models.length;i++){
if(Freja.AssetManager.models[i].url==url){
_2b=Freja.AssetManager.models[i];
break;
}
}
if(!_2b){
_2b=getModel(url);
Freja._aux.connect(_2b,"onload",function(e){
var id=insertFormElement(_2b);
d.callback(id);
});
}else{
var id=insertFormElement(_2b);
d.callback(id);
}
}else{
d.errback();
}
return d;
}
function duplicateFormElement(_30){
var id=_30.getAttribute("id");
var _32=_30.cloneNode(true);
var _33=randomId();
_32.setAttribute("id",_33);
_32.setAttribute("switch","");
_32.setAttribute("case","");
var _34=_32.getElementsByTagName("*");
for(var i=0;i<_34.length;i++){
var n=_34[i];
var cid=n.getAttribute("id");
if(cid){
n.setAttribute("id",randomId());
}
if(n.tagName=="value"&&n.parentNode.tagName=="choice"){
var v=n.getAttribute("id");
while(n.firstChild){
n.removeChild(n.firstChild);
}
if(!v){
v="";
}
n.appendChild(Builder.models.form.document.createTextNode(v));
}
var _39=n.getAttribute("switch");
if(_39){
n.setAttribute("switch","");
}
var _3a=n.getAttribute("case");
if(_3a){
n.setAttribute("case","");
}
}
var _3b=_30.parentNode;
_3b.insertBefore(_32,_30.nextSibling);
return _33;
}
function deleteFormElement(_3c){
if(typeof _3c=="string"){
var n=Builder.models.form.getElementById(_3c);
}else{
n=_3c;
}
if(n){
n.parentNode.removeChild(n);
}
}
function editForm(){
Builder.mainPanel.enableTab("Properties");
if(BuilderConfig.ALLOW_CUSTOM_CODE){
Builder.mainPanel.enableTab("Advanced");
}else{
Builder.mainPanel.disableTab("Advanced");
}
Builder.mainPanel._goToTab="Properties";
renderFormProperties();
}
function editField(id){
Builder.mainPanel.enableTab("Properties");
Builder.mainPanel.enableTab("Advanced");
Builder.mainPanel._goToTab="Properties";
renderFieldProperties(id,true);
}
function editFieldset(id){
Builder.mainPanel.enableTab("Properties");
Builder.mainPanel.enableTab("Advanced");
Builder.mainPanel._goToTab="Properties";
renderFieldsetProperties(id,true);
}
function editHTMLSection(id){
Builder.mainPanel.enableTab("Properties");
Builder.mainPanel.disableTab("Advanced");
Builder.mainPanel._goToTab="Properties";
cleanUpHTMLEditor();
Builder.views.html_section.render(Builder.models.form,Builder.mainPanel.tabs[Builder.PROPERTIES_TAB].content.id,{sectionId:id});
}
function cleanUpHTMLEditor(){
if(document.getElementById("editHTMLSection")){
tinyMCE.execCommand("mceRemoveControl",false,"editHTMLSection");
}
}
function getHTMLEditorChanges(){
tinyMCE.triggerSave();
Builder.models.form.updateFrom(Builder.views.html_section);
Builder.isSaved=false;
Builder.formOutline.refresh(Builder.models.form);
updatePreview();
}
function getInsertPoint(_41){
if(Builder.formOutline){
var _42=Builder.formOutline.getSelected();
}else{
var _42=null;
}
var _43=_41.document.documentElement.tagName;
if(_42){
var _44=Builder.models.form.getElementById(extractId(_42.id));
if(_44){
if(_44.tagName=="fieldset"&&_44.getAttribute("type")=="inlinediv"&&_43!="field"){
return {insertPoint:_44,insertType:"after"};
}
if(_44.tagName=="fieldset"){
return {insertPoint:_44,insertType:"inside"};
}else{
return {insertPoint:_44,insertType:"after"};
}
}
}
var _44=Builder.models.form.document.documentElement.lastChild;
while(_44&&_44.nodeType==3){
_44=_44.previousSibling;
}
return {insertPoint:_44,insertType:"after"};
}
function mouseDownHandler(_45){
Builder._dragStarted=true;
Builder._draggedElement=_45.parentNode;
Builder._draggedContainer=Builder._draggedElement.parentNode;
Builder._showDrag=arguments[2]?arguments[2]:false;
Builder._eventCoord=arguments[1]?hXUL._aux.getMouseCoordinates(arguments[1]):{};
document.onkeypress=resetDrag;
document.onmouseup=dropDrag;
setTimeout(startDrag,300);
document.body.onselectstart=function(e){
stopPropagation(e);
return preventEvent(e);
};
document.body.ondrag=function(e){
stopPropagation(e);
return preventEvent(e);
};
return false;
}
function startDrag(e){
if(Builder._dragStarted){
Builder._draggedContainer.onmouseout=function(e){
if(!e){
var e=window.event;
}
var _4a=(e.relatedTarget)?e.relatedTarget:e.toElement;
p=Builder._draggedContainer.parentNode;
while(p&&p!=_4a){
p=p.parentNode;
}
if(p){
resetDrag();
}
};
if(Builder._showDrag){
var _4b=hXUL._aux.getScreenCoordinates(Builder._draggedElement);
Builder._draggedElementOffset={x:Builder._eventCoord.x-_4b.x,y:Builder._eventCoord.y-_4b.y};
document.onmousemove=drag;
}
Builder._draggedContainer.style.cursor="pointer";
Builder._draggedElement.className+=" isDragged";
}
}
function drag(e){
var _4d=hXUL._aux.getMouseCoordinates(e);
var x=_4d.x-Builder._draggedElementOffset.x;
var y=_4d.y-Builder._draggedElementOffset.y;
Builder._draggedElement.style.left=x+"px";
Builder._draggedElement.style.top=y+"px";
}
function dropDrag(){
if(Builder._dragStarted&&Builder._draggedElement&&Builder._dragTarget){
Builder._dragTarget.parentNode.insertBefore(Builder._draggedElement,Builder._dragTarget);
if(updateListOfChoices()){
updatePreview();
}
}
resetDrag();
}
function resetDrag(){
Builder._dragStarted=false;
document.onmouseup=null;
document.onkeypress=null;
document.body.ondrag=null;
document.body.onselectstart=null;
document.onmousemove=null;
if(Builder._draggedElement){
Builder._draggedElement.className=Builder._draggedElement.className.replace(" isDragged","");
Builder._draggedContainer.style.cursor="default";
Builder._draggedContainer.onmouseout=null;
Builder._draggedElement=null;
Builder._draggedContainer=null;
}
if(Builder._dragTarget){
Builder._dragTarget.className=Builder._dragTarget.className.replace(" draggedOver","");
Builder._dragTarget=null;
Builder._previousDragTarget=null;
}
}
function observeMouseOver(_50){
if(Builder._dragStarted&&Builder._draggedElement){
if(Builder._dragTarget!=_50){
Builder._dragTarget=_50;
_50.className+=" draggedOver";
}
if(Builder._previousDragTarget!=_50){
if(Builder._previousDragTarget){
Builder._previousDragTarget.className=Builder._previousDragTarget.className.replace(" draggedOver","");
}
Builder._previousDragTarget=_50;
}
}
}
function renderFormProperties(){
showActivityIndicator();
setTimeout(function(){
cleanUpHTMLEditor();
Builder.views.form_properties.render(Builder.models.form,Builder.mainPanel.tabs[Builder.PROPERTIES_TAB].content.id);
Builder.views.form_advanced.render(Builder.models.form,Builder.mainPanel.tabs[Builder.ADVANCED_TAB].content.id);
hideActivityIndicator();
},1);
}
function renderFieldProperties(id,_52){
showActivityIndicator();
setTimeout(function(){
cleanUpHTMLEditor();
Builder.views.field_properties.render(Builder.models.form,Builder.mainPanel.tabs[Builder.PROPERTIES_TAB].content.id,{fieldId:id});
if(_52){
Builder.views.field_advanced.render(Builder.models.form,Builder.mainPanel.tabs[Builder.ADVANCED_TAB].content.id,{fieldId:id});
}
hideActivityIndicator();
},1);
}
function renderFieldAdvancedProperties(id){
showActivityIndicator();
setTimeout(function(){
Builder.views.field_advanced.render(Builder.models.form,Builder.mainPanel.tabs[Builder.ADVANCED_TAB].content.id,{fieldId:id});
hideActivityIndicator();
},1);
}
function renderFieldsetProperties(id,_55){
showActivityIndicator();
setTimeout(function(){
cleanUpHTMLEditor();
Builder.views.fieldset_properties.render(Builder.models.form,Builder.mainPanel.tabs[Builder.PROPERTIES_TAB].content.id,{fieldId:id});
if(_55){
Builder.views.fieldset_advanced.render(Builder.models.form,Builder.mainPanel.tabs[Builder.ADVANCED_TAB].content.id,{fieldId:id});
}
hideActivityIndicator();
},1);
}
Builder.behaviors.updateModel={onblur:function(_56){
if(_56.tagName!="INPUT"||(_56.type!="radio"&&_56.type!="checkbox")){
Builder.behaviors._modelChangeHandler(_56);
}
},onclick:function(_57){
if(_57.tagName=="INPUT"&&(_57.type=="radio"||_57.type=="checkbox")){
Builder.behaviors._modelChangeHandler(_57);
}
return true;
}};
Builder.behaviors.updateModelAndOutline={onblur:function(_58){
if(_58.tagName!="INPUT"||(_58.type!="radio"&&_58.type!="checkbox")){
Builder.behaviors._modelChangeHandler(_58,{updateOutline:true});
}
},onclick:function(_59){
if(_59.tagName=="INPUT"&&(_59.type=="radio"||_59.type=="checkbox")){
Builder.behaviors._modelChangeHandler(_59,{updateOutline:true});
}
return true;
}};
Builder.behaviors.updateModelAndAll={onblur:function(_5a){
if(_5a.tagName!="INPUT"||(_5a.type!="radio"&&_5a.type!="checkbox")){
Builder.behaviors._modelChangeHandler(_5a,{updateOutline:true,updatePanels:true});
}
},onclick:function(_5b){
if(_5b.tagName=="INPUT"&&(_5b.type=="radio"||_5b.type=="checkbox")){
Builder.behaviors._modelChangeHandler(_5b,{updateOutline:true,updatePanels:true});
}
return true;
}};
Builder.behaviors._modelChangeHandler=function(_5c,_5d){
if(!_5d){
_5d={};
}
if(Builder.behaviors._updateModelWith(_5c)){
updatePreview();
if(_5d.updateOutline){
Builder.formOutline.refresh(Builder.models.form);
}
if(_5d.updatePanels){
switch(document.getElementById("elementType").value){
case "form":
renderFormProperties();
break;
case "field":
var _5e=document.getElementById("nodeId");
renderFieldProperties(_5e.value,true);
break;
case "fieldset":
var _5e=document.getElementById("nodeId");
renderFieldsetProperties(_5e.value,true);
break;
}
}
}
};
Builder.behaviors._updateModelWith=function(fld){
var ret=false;
if(fld.name.lastIndexOf("/")!=-1){
try{
var _61=Builder.models.form.get(fld.name);
}
catch(x){
var _61="";
}
if(_61===null){
_61="";
}
if(fld.type=="checkbox"&&!fld.checked&&_61!=""){
Builder.models.form.set(fld.name,"");
Builder.isSaved=false;
ret=true;
}else{
if(fld.id=="calculationFormula"){
fld.value=fld.value.replace(/\s/g,"");
}
if(fld.id=="variableName"){
fld.value=fld.value.replace(/[^a-zA-Z]/g,"");
}
if(fld.id=="fieldsetTypePage"){
var _62=Builder.models.form._query._find(Builder.models.form.document,fld.name);
if(_62&&_62.ownerElement){
_62.ownerElement.setAttribute("repeat","");
}
}
if(_61!=fld.value){
Builder.models.form.set(fld.name,fld.value);
Builder.isSaved=false;
ret=true;
}
}
}
return ret;
};
Builder.behaviors.removeConditional={onclick:function(_63){
var _64=document.getElementById("nodeId").value;
var _65=Builder.models.form.getElementById(_64);
var _66=_63.className.split("removedSwitch-")[1].split(" ")[0];
var _67=_65.getAttribute("case");
_67=_67.replace("offstate-"+_66,"");
_67=_67.replace(/\s+/g," ");
_67=_67.replace(/^\s|\s$/g,"");
_65.setAttribute("case",_67);
var t=Builder.models.form._query._find(Builder.models.form.document,"//*[contains(concat(@case,' '),'offstate-"+_66+" ')]");
if(!t){
var c=Builder.models.form._query._find(Builder.models.form.document,"//choice[@switch='"+_66+"']/@switch");
if(c){
Builder.models.form.set("//choice[@switch='"+_66+"']/@switch","");
}
freeSwitchLabel(_66);
}
var tr=_63.parentNode.parentNode;
tr.parentNode.removeChild(tr);
updatePreview();
return false;
}};
function addHTMLSectionBehaviors(){
tinyMCE.execCommand("mceAddControl",false,"editHTMLSection");
tinyMCE.execCommand("mceFocus",false,"editHTMLSection");
document.getElementById("editHTMLSectionApply").onclick=getHTMLEditorChanges;
document.getElementById("fileUploadButton").onclick=function(){
var i=document.getElementById("fileUploadInput");
if(i.value==""){
return false;
}
var f=document.getElementById("edit_htmlsection_form");
f.setAttribute("target","fileUploadIFrame");
f.setAttribute("action",BuilderConfig.FILE_UPLOAD_URL);
f.submit();
this.disabled=true;
f.removeAttribute("target");
f.setAttribute("action","");
};
if(Builder.mainPanel._goToTab){
Builder.mainPanel.selectTab(Builder.mainPanel._goToTab,true);
Builder.mainPanel._goToTab=null;
}
}
function UI_uploadIFrame(_6d){
if(_6d.contentDocument){
var d=_6d.contentDocument;
}else{
if(_6d.contentWindow){
var d=_6d.contentWindow.document;
}else{
var d=window.frames[_6d.name].document;
}
}
if(d.location.href=="about:blank"){
return;
}
document.getElementById("fileUploadButton").disabled=false;
var i=document.getElementById("fileUploadInput");
i.style.visibility="visible";
i.value="";
var _70=d.body.innerHTML;
if(_70.toLowerCase().indexOf("error:")===0){
document.getElementById("fileUploadInput-E").innerHTML=_70;
}else{
document.getElementById("fileUploadInput-E").innerHTML="";
var _71="<img src=\""+_70+"\" mce_src=\""+_70+"\" alt=\"\" />";
tinyMCE.execInstanceCommand("editHTMLSection","mceInsertContent",false,_71);
}
}
function updatePreview(_72){
if(Builder.preferences.alwaysUpdatePreview||_72){
showActivityIndicator();
setTimeout(function(){
Builder.views.preview.render(Builder.models.form,Builder.previewPanelId);
hideActivityIndicator();
document.getElementById("updatePreviewButton").disabled=true;
},1);
}else{
document.getElementById("updatePreviewButton").disabled=false;
}
}
function updateFormLayout(_73){
var _74=document.getElementById(Builder.previewPanelId);
if(_74){
var f=_74.getElementsByTagName("form")[0];
if(_73.value=="labelsAbove"||_73.value=="labelsLeftAligned"||_73.value=="labelsRightAligned"){
f.className=f.className.replace("labelsAbove","");
f.className=f.className.replace("labelsLeftAligned","");
f.className=f.className.replace("labelsRightAligned","");
f.className+=" "+_73.value;
}
if(_73.value=="hintsSide"||_73.value=="hintsTooltip"){
f.className=f.className.replace("hintsSide","");
f.className=f.className.replace("hintsTooltip","");
f.className+=" "+_73.value;
}
if(_73.className.indexOf("themeSelector")!=-1){
_74.className=_73.value;
}
}
}
function addFormPreviewBehaviors(){
var _76=document.getElementById(Builder.previewPanelId);
var _77=null;
if(_76){
var f=_76.getElementsByTagName("form")[0];
wFORMS.applyBehaviors(f);
}
}
function updateListOfChoices(e){
var _7a=document.getElementById("nodeId").value;
var _7b=Builder.models.form.getElementById(_7a);
if(e&&e.id){
var _7c=document.getElementById(e.id.replace("listItemLabel","listItemValue")).value;
var _7d=Builder.models.form._query._find(_7b,"//choice[@id='"+_7c+"']/label");
var _7e=getTextContent(_7d);
if(_7e==e.value){
return false;
}
}
var _7f=_7b.getElementsByTagName("choices");
if(_7f&&_7f[0]){
_7f=_7f[0];
}
if(_7f&&_7f.childNodes){
while(_7f.childNodes.length>0){
_7f.removeChild(_7f.firstChild);
}
}
var _80=_7b.getAttribute("type");
if(_80=="radio"||_80=="checkbox"||_80=="select1"||_80=="select"){
_7b.setAttribute("validation","");
setTextContent(_7b,"value","");
if(!_7f){
var _7f=Builder.models.form.document.createElement("choices");
_7f=_7b.appendChild(_7f);
}
var l=document.getElementById("listofChoices");
var lc=l.getElementsByTagName("input");
var len=lc.length;
for(var i=0;i<len;i++){
var f=lc[i];
if(f.className=="choiceLabelInput"){
_7f.appendChild(createChoice(f.value,f.id));
}
}
}else{
}
renderFieldAdvancedProperties(_7a);
return true;
}
function updateDefaultChoices(n){
var ret=false;
var _88=document.getElementById("nodeId").value;
var _89=Builder.models.form.getElementById(_88);
var _8a=_89.getElementsByTagName("choice");
var _8b=document.getElementById(n.id.replace("listItemDefault","listItemValue")).value;
for(var i=0;i<_8a.length;i++){
var _8d=_8a[i];
if(_8d.getAttribute("id")==_8b){
if((_8d.getAttribute("default")=="1"&&n.checked)||(_8d.getAttribute("default")!="1"&&!n.checked)){
}else{
_8d.setAttribute("default",n.checked?"1":"");
ret=true;
}
}else{
if(n.checked&&(_89.getAttribute("type")=="radio"||_89.getAttribute("type")=="select1")){
if(_8d.getAttribute("default")!=""){
_8d.setAttribute("default","");
ret=true;
}
}
}
}
return ret;
}
function importChoiceList(){
var n=document.getElementById("importChoicesList");
if(n.value!=""){
var _8f=document.getElementById("nodeId").value;
var _90=Builder.models.form.getElementById(_8f);
var _91=_90.getElementsByTagName("choices")[0];
var c=_91.getElementsByTagName("choice");
if(c.length==1){
if(!c[0].getElementsByTagName("label")[0].firstChild){
_91.removeChild(c[0]);
}
}
var _93=n.value.split("\n");
for(var i=0;i<_93.length;i++){
_91.appendChild(createChoice(_93[i]));
}
n.value="";
renderFieldProperties(_8f);
updatePreview();
}
}
function createChoice(_95,_96){
var _97=null;
var _98=false;
var _99=Builder.models.form.document.createElement("choice");
if(_96){
var _9a=_96.replace("listItemLabel","listItemValue");
var vf=document.getElementById(_9a);
if(vf&&vf.value!=""){
_97=vf.value;
}
var _9c=_96.replace("listItemLabel","listItemDefault");
var def=document.getElementById(_9c);
if(def&&def.checked){
_99.setAttribute("default","1");
}
var _9e=_96.replace("listItemLabel","listItemSwitch");
var sf=document.getElementById(_9e);
if(sf&&sf.value!=""){
_99.setAttribute("switch",sf.value);
}
var _a0=_96.replace("listItemLabel","listItemCalculationValue");
var sf=document.getElementById(_a0);
if(sf&&sf.value!=""){
var _a1=_99.getElementsByTagName("calculation");
if(_a1.length==0){
_a1=_99.appendChild(Builder.models.form.document.createElement("calculation"));
}else{
_a1=_a1[0];
}
_a1.setAttribute("value",sf.value);
}
}
setTextContent(_99,"label",_95);
if(!_97){
_97=randomId();
if(vf){
vf.value=_97;
}
}
_99.setAttribute("id",_97);
setTextContent(_99,"value",_97);
_99.appendChild(Builder.models.form.document.createElement("calculation"));
return _99;
}
function setConditional(){
var s=document.getElementById("switchTriggerSelect");
var v=s.options[s.selectedIndex].value;
if(v!=""){
var f=Builder.models.form._query._find(Builder.models.form.document,"//choice[@id='"+v+"']");
var s=f.getAttribute("switch");
if(!s){
s=getNewSwitchLabel();
f.setAttribute("switch",s);
}
var _a5=document.getElementById("nodeId").value;
var _a6=Builder.models.form.getElementById(_a5);
var c=_a6.getAttribute("case");
if(!c){
c="offstate-"+s;
}else{
var _a8=c.split(" ");
for(var i=0;i<_a8.length&&_a8[i]!="offstate-"+s;i++){
}
if(i==_a8.length){
c+=" offstate-"+s;
}
}
_a6.setAttribute("case",c);
if(_a6.tagName=="field"){
renderFieldProperties(_a5,true);
}else{
renderFieldsetProperties(_a5,true);
}
updatePreview();
}
}
function getNewSwitchLabel(){
var i=0;
var _ab="a";
while(_ab in Builder.usedSwitchLabels){
i++;
_ab=String.fromCharCode((i%26)+97);
if(i>26){
_ab=String.fromCharCode(Math.floor(i/26)+97)+_ab;
}
}
Builder.usedSwitchLabels[_ab]=true;
setSwitchCSS(_ab);
return _ab;
}
function freeSwitchLabel(l){
delete Builder.usedSwitchLabels[l];
}
function saveForm(){
var _ad=document.getElementById("finalizeForm");
_ad.value=Builder.LANG.please_wait;
var el=Builder.models.form.document.getElementsByTagName("*");
for(var i=0;i<el.length;i++){
var id=el[i].getAttribute("id");
if(isTempId(id)){
switch(el[i].tagName){
case "field":
var _b1=Builder.models.form.get("//field[@id='"+id+"']/label");
el[i].setAttribute("id",idify(_b1));
break;
case "fieldset":
var _b2=Builder.models.form.get("//fieldset[@id='"+id+"']/@name");
el[i].setAttribute("id",idify(_b2));
break;
case "choice":
var _b3=Builder.models.form.get("//choice[@id='"+id+"']/label");
el[i].setAttribute("id",idify(_b3));
break;
}
}
}
var tut=Builder.models.form.document.getElementsByTagName("tutorial");
if(tut&&tut[0]){
tut[0].parentNode.removeChild(tut[0]);
}
var req=Freja.AssetManager.openXMLHttpRequest("POST",BuilderConfig.DATABASE_SERVICE_URL);
var _b6=BuilderConfig.POST_FIELDNAME_XML+"="+encodeURIComponent(Freja._aux.serializeXML(Builder.models.form.document))+"&";
_b6+=BuilderConfig.POST_FIELDNAME_HTML+"=na";
if(Builder.formId){
_b6+="&"+BuilderConfig.POST_FIELDNAME_ID+"="+encodeURIComponent(Builder.formId);
}
try{
var _b7=Freja._aux.sendXMLHttpRequest(req,_b6);
_b7.addCallbacks(redirectAfterSave,notifySaveError);
}
catch(ex){
_ad.value=Builder.LANG.save_button;
notifySaveError(ex);
}
return false;
}
function redirectAfterSave(obj){
Builder.isSaved=true;
var _b9=document.getElementById("finalizeForm");
_b9.value=Builder.LANG.save_button;
var d=confirmBox(Builder.LANG.form_saved_dialog,Builder.LANG.done_button,Builder.LANG.stay_button);
d.addCallbacks(function(b){
if(b==Builder.LANG.done_button){
document.location.href=BuilderConfig.REDIRECT_ON_SAVE_URL+"?"+BuilderConfig.POST_FIELDNAME_ID+"="+obj.responseText;
}else{
Builder.formId=parseInt(obj.responseText);
Builder.models.form.document.documentElement.setAttribute("dbFormId",Builder.formId);
}
});
}
function notifySaveError(obj){
var _bd=document.getElementById("finalizeForm");
_bd.value=Builder.LANG.save_button;
switch(obj.status){
case 401:
case 403:
var d=dialogBox(Builder.LANG.please_login+" "+obj.responseText);
var _bf=document.getElementById("modalDialogBox");
var _c0=_bf.getElementsByTagName("form")[0];
_c0.onsubmit=ajaxLogin;
break;
default:
var d=dialogBox("<p><strong>Sorry, an error occured while saving your form.</strong> You may try to save again, or contact us for assistance (do not close your browser window or any changes will be lost).</p>The error message was: "+obj.responseText,Builder.LANG.ok_button);
}
}
function confirmExit(){
if(!Builder.isSaved){
return Builder.LANG.confirm_exit;
}
}
function savePredefined(_c1,_c2){
document.getElementById("predefinedFieldsPlaceholder").innerHTML=Builder.LANG.please_wait;
var p=_c1.cloneNode(true);
p.setAttribute("id","");
var el=p.getElementsByTagName("*");
for(var i=0;i<el.length;i++){
el[i].setAttribute("id","");
}
var tut=p.getElementsByTagName("tutorial");
if(tut&&tut[0]){
tut[0].parentNode.removeChild(tut[0]);
}
var req=Freja.AssetManager.openXMLHttpRequest("POST",BuilderConfig.PREDEFINED_SAVE_URL);
var _c8=BuilderConfig.POST_FIELDNAME_PREDEFINED_XML+"="+encodeURIComponent(Freja._aux.serializeXML(p));
_c8=_c8+"&"+BuilderConfig.POST_FIELDNAME_PREDEFINED_NAME+"="+encodeURIComponent(_c2);
try{
var _c9=Freja._aux.sendXMLHttpRequest(req,_c8);
_c9.addCallbacks(refreshPredefined,notifyPredefinedSaveError);
}
catch(ex){
notifyPredefinedSaveError(ex);
}
return false;
}
function refreshPredefined(){
Builder.models.predefined_field_list.reload().addCallbacks(function(){
Builder.views.predefined_field_list.render(Builder.models.predefined_field_list,"predefinedFieldsPlaceholder");
},notifyPredefinedSaveError);
}
function editPredefined(n){
while(n&&n.tagName!="TR"){
n=n.parentNode;
}
var src=n.id;
var _cc=Builder.models.predefined_field_list.document.getElementsByTagName("template");
for(var i=0;i<_cc.length;i++){
var t=_cc[i];
if(t.getAttribute("src")==src){
t.setAttribute("edit","1");
}else{
t.setAttribute("edit","0");
}
}
var _cf=document.getElementById("predefinedElementList").scrollTop;
Builder.views.manage_predefined_list.render(Builder.models.predefined_field_list,"dialogText").addCallbacks(function(){
var n=document.getElementById("predefinedElementList");
n.scrollTop=_cf;
var i=document.getElementById(src).getElementsByTagName("input")[0];
i.focus();
});
return false;
}
function deletePredefined(n){
if(confirm("Are you sure you want to delete this?")){
while(n&&n.tagName!="TR"){
n=n.parentNode;
}
var p=Builder.models.predefined_field_list._query._find(Builder.models.predefined_field_list.document,"//template[@src='"+n.id+"']");
p.setAttribute("deleted","1");
var cat=p.parentNode;
if(cat.tagName=="group"){
cat.parentNode.appendChild(p);
}
var _d5=document.getElementById("predefinedElementList").scrollTop;
Builder.views.manage_predefined_list.render(Builder.models.predefined_field_list,"dialogText").addCallbacks(function(){
var n=document.getElementById("predefinedElementList");
n.scrollTop=_d5;
});
if(cat.tagName=="group"&&cat.childNodes.length==0){
cat.setAttribute("deleted","1");
}
}
return false;
}
function savePredefinedEdits(n,_d8){
while(n&&n.tagName!="TR"){
n=n.parentNode;
}
var _d9=document.getElementById("predefinedElementList").scrollTop;
var src=n.id;
var p=Builder.models.predefined_field_list._query._find(Builder.models.predefined_field_list.document,"//template[@src='"+src+"']");
if(!_d8){
p.setAttribute("edit","0");
}
var fld=document.getElementById("editPredefinedName");
var _dd=p.getAttribute("name");
var _de=p.parentNode.getAttribute("name");
if(_dd!=fld.value){
p.setAttribute("name",fld.value);
p.setAttribute("changed","1");
}
var _df=document.getElementById("editPredefinedCategory").value;
if(_de!=_df){
var cat=Builder.models.predefined_field_list._query._find(Builder.models.predefined_field_list.document,"//group[@name='"+_df+"']");
if(!cat){
var cat=Builder.models.predefined_field_list.document.createElement("group");
cat.setAttribute("name",_df);
Builder.models.predefined_field_list.document.documentElement.appendChild(cat);
}
cat.removeAttribute("deleted");
p.setAttribute("changed","1");
cat.appendChild(p);
}
if(!_d8){
Builder.views.manage_predefined_list.render(Builder.models.predefined_field_list,"dialogText").addCallbacks(function(){
var n=document.getElementById("predefinedElementList");
n.scrollTop=_d9;
});
}
return false;
}
function savePredefinedList(){
var req=Freja.AssetManager.openXMLHttpRequest("POST",BuilderConfig.PREDEFINED_SAVE_URL);
var _e3=BuilderConfig.POST_FIELDNAME_PREDEFINED_INDEX+"="+encodeURIComponent(Freja._aux.serializeXML(Builder.models.predefined_field_list.document));
try{
var _e4=Freja._aux.sendXMLHttpRequest(req,_e3);
_e4.addCallbacks(function(){
},notifyPredefinedSaveError);
}
catch(ex){
notifyPredefinedSaveError(ex);
}
return false;
}
function notifyPredefinedSaveError(obj){
Builder.views.predefined_field_list.render(Builder.models.predefined_field_list,"predefinedFieldsPlaceholder");
var err=(obj.responseText||obj.message);
switch(obj.status){
case 401:
case 403:
var d=dialogBox(Builder.LANG.please_login+" "+obj.responseText);
var _e8=document.getElementById("modalDialogBox");
var _e9=_e8.getElementsByTagName("form")[0];
_e9.onsubmit=ajaxLogin;
break;
default:
var d=dialogBox("<p><strong>Sorry, an error occured while saving your predefined element.</strong></p>"+err,Builder.LANG.ok_button);
}
}
function ajaxLogin(e){
}
function resetContentHeight(){
Builder.mainPanel.resetPanelHeight();
var h=document.getElementById("preview").offsetHeight;
var t=document.getElementById("mainPanel").offsetHeight+45;
if(t>h){
document.getElementById("content").style.height=t+"px";
}
}
function getFormUrl(){
var _ed=decodeURI(window.location.search);
if(_ed.indexOf(BuilderConfig.POST_FIELDNAME_ID+"=")!=-1){
Builder.formId=_ed.split(BuilderConfig.POST_FIELDNAME_ID+"=")[1].split("&")[0];
var _ee=BuilderConfig.DATABASE_SERVICE_URL+"?"+BuilderConfig.POST_FIELDNAME_ID+"="+Builder.formId;
if(_ed.indexOf("template=")!=-1){
_ee+="&template="+_ed.split("template=")[1].split("&")[0];
}else{
_ee+="&template=1";
}
Builder.isNewForm=false;
}else{
if(_ed.indexOf("demo=")!=-1){
var _ef=_ed.split("demo=")[1].split("&")[0];
var _ee="xml/tmpl_form_demo"+_ef+".xml";
Builder.isNewForm=false;
}else{
if(_ed.indexOf("tutorial=")!=-1){
var _f0=_ed.split("tutorial=")[1].split("&")[0];
var _ee="tutorials/"+_f0+".xml";
Builder.isNewForm=false;
}else{
var _ee=getResourceUrl("form_template");
Builder.isNewForm=true;
}
}
}
return _ee;
}
function getResourceUrl(_f1){
return BuilderConfig.resources[_f1]+"?locale="+Builder.locale;
}
function setLocale(){
var _f2=window.location.search;
if(_f2.indexOf("locale=")!=-1){
Builder.locale=_f2.split("locale=")[1].split("&")[0];
}else{
Builder.locale=BuilderConfig.DEFAULT_LOCALE;
}
Builder.LANG={};
for(var key in BuilderConfig.LANGUAGES[Builder.locale]){
Builder.LANG[key]=BuilderConfig.LANGUAGES[Builder.locale][key];
}
}
function upgradeForm(doc){
var _f5=doc.getElementsByTagName("form")[0];
_f5.setAttribute("builderversion",Builder.VERSION);
if(!_f5.getAttributeNode("labelplacement")){
_f5.setAttribute("labelplacement","labelsLeftAligned");
}
var n=_f5.getElementsByTagName("code");
if(!n.length){
n=_f5.appendChild(doc.createElement("code"));
}
var _f7=doc.getElementsByTagName("field");
for(var i=0;i<_f7.length;i++){
if(!_f7[i].getAttribute("id")||_f7[i].getAttribute("id")==""){
_f7[i].setAttribute("id",randomId());
}
var n=_f7[i].getElementsByTagName("validation");
if(!n.length){
n=_f7[i].appendChild(doc.createElement("validation"));
n.appendChild(doc.createElement("error"));
}
var n=_f7[i].getElementsByTagName("calculation");
if(!n.length){
n=_f7[i].appendChild(doc.createElement("calculation"));
}
n=_f7[i].getElementsByTagName("delimiters");
if(!n.length){
n=_f7[i].appendChild(doc.createElement("delimiters"));
n.appendChild(doc.createElement("before"));
n.appendChild(doc.createElement("after"));
}
n=_f7[i].getElementsByTagName("query");
if(!n.length){
n=_f7[i].appendChild(doc.createElement("query"));
}
n=_f7[i].getElementsByTagName("choice");
if(!n.length){
n=_f7[i].appendChild(doc.createElement("choices"));
n=n.appendChild(doc.createElement("choice"));
n.appendChild(doc.createElement("value"));
n.appendChild(doc.createElement("label"));
n.appendChild(doc.createElement("calculation"));
}else{
for(var j=0;j<n.length;j++){
var c=n[j];
if(!c.getAttribute("id")){
var v=c.getElementsByTagName("value")[0];
c.setAttribute("id",getTextContent(v));
}
if(c.getAttribute("id")==""){
var v=c.getElementsByTagName("label")[0];
if(getTextContent(v)){
c.setAttribute("id",randomId());
}
}
if(!c.getElementsByTagName("calculation")[0]){
c.appendChild(doc.createElement("calculation"));
}
}
}
var c=_f7[i].getAttribute("case");
if(c){
var cl=c.split(" ");
for(var j=0;j<cl.length;j++){
if(cl[j]!=""&&cl[j].indexOf("offstate-")==-1){
var t=Builder.models.form._query._find(Builder.models.form.document,"//choice[@switch='"+cl[j]+"']");
if(t){
cl[j]="offstate-"+cl[j];
}else{
cl[j]="";
}
}
}
_f7[i].setAttribute("case",cl.join(" "));
}
}
var _f7=doc.getElementsByTagName("fieldset");
for(var i=0;i<_f7.length;i++){
var c=_f7[i].getAttribute("case");
if(c){
var cl=c.split(" ");
for(var j=0;j<cl.length;j++){
if(cl[j]!=""&&cl[j].indexOf("offstate-")==-1){
var t=Builder.models.form._query._find(Builder.models.form.document,"//choice[@switch='"+cl[j]+"']");
if(t){
cl[j]="offstate-"+cl[j];
}else{
cl[j]="";
}
}
}
_f7[i].setAttribute("case",cl.join(" "));
}
}
var _f7=doc.getElementsByTagName("instructions");
for(var i=0;i<_f7.length;i++){
var n=_f7[i];
if(n.childNodes.length>0){
var p=n.parentNode;
var h=doc.createElement("htmlsection");
for(var j=0;j<n.childNodes.length;j++){
h.appendChild(n.childNodes[j]);
}
h=p.insertBefore(h,p.firstChild);
h.setAttribute("id",idify(p.getAttribute("id")+"Instr"));
}
}
for(var i=0;i<_f7.length;i++){
var n=_f7[i];
n.parentNode.removeChild(n);
}
var css=_f5.getAttribute("css");
switch(css){
case "black_2":
_f5.setAttribute("css","black");
break;
case "bureaucrat_2":
_f5.setAttribute("css","bureaucrat");
break;
case "campground_2":
case "campground":
case "timetrack":
case "designmeltdown-1":
_f5.setAttribute("css","antique");
break;
}
}
function getIds(_101){
var _102=new Array();
var _103=_101.getElementsByTagName("*");
for(var i=0;i<_103.length;i++){
if(_103[i].getAttribute("id")){
var id=_103[i].getAttribute("id");
while(isInArray(_102,id)){
id=randomId();
_103[i].setAttribute("id",id);
}
_102[_102.length]=id;
}
}
return _102;
}
function getSwitches(doc){
var c=doc.getElementsByTagName("choice");
for(var i=0;i<c.length;i++){
var sw=c[i].getAttribute("switch");
if(sw&&sw!=""){
var t=Builder.models.form._query._find(Builder.models.form.document,"//*[contains(concat(@case,' '),'offstate-"+sw+" ')]");
if(!t){
c[i].setAttribute("switch","");
}else{
if(Builder.usedSwitchLabels[sw]){
c[i].setAttribute("switch","");
}else{
Builder.usedSwitchLabels[sw]=true;
setSwitchCSS(sw);
}
}
}
}
}
function idify(n){
if(!n||n.length==0){
n=randomId().substring(4);
}
if(n.substring(0,4)=="tfa_"){
n=n.substring(4);
}
var reg=new RegExp("[^a-zA-Z0-9]","gi");
var s=n.replace(reg,"");
s="tfa_"+s;
if(s.length>20){
s=s.substring(0,20);
}
var id=s;
for(var i=0;i<Builder.ids.length&&Builder.ids[i].toLowerCase()!=id.toLowerCase();i++){
}
j=1;
while(i!=Builder.ids.length){
id=s+j.toString();
for(var i=0;i<Builder.ids.length&&Builder.ids[i].toLowerCase()!=id.toLowerCase();i++){
}
j++;
}
Builder.ids[Builder.ids.length]=id;
return id;
}
function extractId(obj){
if(!obj){
obj=window.event;
}
switch(typeof obj){
case "string":
id=obj;
break;
case "object":
if(!obj.id){
return null;
}
id=obj.id;
break;
case "undefined":
return null;
break;
default:
throw error("extractId, unhandled object type: "+typeof obj);
return null;
break;
}
id=id.substr(id.lastIndexOf("@")+1);
return id;
}
function randomId(){
var seed=(new Date()).getTime();
seed=seed.toString().substr(6);
for(var i=0;i<6;i++){
seed+=String.fromCharCode(48+Math.floor((Math.random()*10)));
}
return "tmp-"+seed;
}
function isTempId(id){
if(id&&id.length>4&&id.substring(0,4)=="tmp-"){
return true;
}
return false;
}
function isInArray(_114,id){
for(var i=0;i<_114.length;i++){
if(_114[i]==id){
return true;
}
}
return false;
}
function confirmBox(html,ok,_119){
return dialogBox(html,ok?ok:Builder.LANG.ok_button,_119?_119:Builder.LANG.cancel_button);
}
function createCookie(name,_11b,days){
if(days){
var date=new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var _11e="; expires="+date.toGMTString();
}else{
var _11e="";
}
document.cookie=name+"="+_11b+_11e+"; path=/";
}
function readCookie(name){
var _120=name+"=";
var ca=document.cookie.split(";");
for(var i=0;i<ca.length;i++){
var c=ca[i];
while(c.charAt(0)==" "){
c=c.substring(1,c.length);
}
if(c.indexOf(_120)==0){
return c.substring(_120.length,c.length);
}
}
return null;
}
function eraseCookie(name){
createCookie(name,"",-1);
}
function importModel(_125,_126){
if(typeof _125.document.importNode!="undefined"){
return _125.document.importNode(_126.document.documentElement,true);
}else{
return (_126.document.documentElement).cloneNode(true);
}
}
function setTextContent(_127,_128,_129){
if(!_127){
return;
}
var n=_127.getElementsByTagName(_128)[0];
if(!n){
var nn=Builder.models.form.document.createElement(_128);
n=_127.appendChild(nn);
}
while(n.firstChild&&(n.firstChild.nodeType==3||n.firstChild.nodeType==4)){
n.removeChild(n.firstChild);
}
var _12c=Builder.models.form.document.createCDATASection(_129);
n.appendChild(_12c);
}
function getTextContent(n){
if(!n){
return "";
}
if(n.nodeType==1){
var txt="";
for(var i=0;i<n.childNodes.length;i++){
var t=getTextContent(n.childNodes[i]);
if(t){
txt+=t;
}
}
return txt;
}
if(n.nodeType==3){
return n.nodeValue;
}
if(n.nodeType==4){
return n.nodeValue;
}
}
function preventEvent(e){
if(!e){
e=window.event;
}
if(e.preventDefault){
e.preventDefault();
}else{
e.returnValue=false;
}
return false;
}
function stopPropagation(e){
if(!e){
var e=window.event;
}
e.cancelBubble=true;
if(e.stopPropagation){
e.stopPropagation();
}
}
function showActivityIndicator(){
if(!Builder.activityIndicator){
Builder.activityIndicator=document.getElementById("activityIndicator");
}
Builder.activityIndicator.style.visibility="visible";
}
function hideActivityIndicator(){
if(!Builder.activityIndicator){
Builder.activityIndicator=document.getElementById("activityIndicator");
}
Builder.activityIndicator.style.visibility="hidden";
}
function addPreviewCSS(_133,_134){
if(arguments.length>2){
d=arguments[2];
}else{
d=document;
}
var _135=d.getElementsByTagName("style");
if(_135.length==0){
var _136=d.createElement("style");
_136.setAttribute("type","text/css");
_136.setAttribute("media","screen");
d.getElementsByTagName("head")[0].appendChild(_136);
}
if(d.styleSheets&&typeof (d.styleSheets[d.styleSheets.length-1].addRule)=="object"){
d.styleSheets[d.styleSheets.length-1].addRule(_133,_134);
}else{
var _136=_135[_135.length-1];
_136.appendChild(d.createTextNode(_133+" {"+_134+"}"));
}
}
function setSwitchCSS(_137){
if(!_137||_137.match(/^a?[a-z]$/)||_137.match(/^b[a-l]$/)){
return false;
}
if(!Builder._cssFlag){
Builder._cssFlag={};
}
if(!Builder._cssFlag[_137]){
Builder._cssFlag[_137]=true;
addPreviewCSS(".offstate-"+_137,"display:none !important");
addPreviewCSS("form .onstate-"+_137,"display:block !important");
return true;
}
return false;
}
Builder.Help={init:function(){
wFORMS.behaviors.hint.HINT_SELECTOR="#tabPanelPreview *[id$=\"-H\"]";
var tut=Builder.models.form.document.getElementsByTagName("tutorial")[0];
if(tut){
var sc=tut.getElementsByTagName("script")[0];
if(typeof sc.textContent!="undefined"){
eval(sc.textContent);
}else{
if(typeof sc.text!="undefined"){
eval(sc.text);
}
}
}
},show:function(){
var d=dialogBox(document.getElementById("splash_create").innerHTML,Builder.LANG.ok_button,null,"splash",Builder.LANG.skip_splash);
}};
function errorHandler(desc,page,line,chr){
alert(Builder.LANG.javascript_error+" \n"+"\nError description: \t"+desc+"\nPage address:      \t"+page+"\nLine number:       \t"+line);
return true;
}
Builder.TutorialHelper={};
Builder.TutorialHelper.TextFieldSelected=function(){
var e=Builder.formOutline.getSelected();
return (e&&e.className&&e.className.indexOf("textinput")!=-1);
};
Builder.TutorialHelper.SelectOneFieldSelected=function(){
var e=Builder.formOutline.getSelected();
return (e&&e.className&&e.className.indexOf("select1")!=-1);
};
Builder.TutorialHelper.FieldsetSelected=function(){
var e=Builder.formOutline.getSelected();
return (e&&e.className&&e.className.indexOf("fieldset")!=-1);
};
Builder.TutorialHelper.FieldsetTypeIs=function(p){
var f=document.getElementById("fieldsetTypeFieldset");
if(f&&f.checked){
return (f.value==p);
}
var f=document.getElementById("fieldsetTypeInline");
if(f&&f.checked){
return (f.value==p);
}
var f=document.getElementById("fieldsetTypeGrid");
if(f&&f.checked){
return (f.value==p);
}
var f=document.getElementById("fieldsetTypeDiv");
if(f&&f.checked){
return (f.value==p);
}
return false;
};
Builder.TutorialHelper.FieldTypeIs=function(p){
var f=document.getElementById("fieldTypeTextinput");
if(f&&f.checked){
return (f.value==p);
}
var f=document.getElementById("fieldTypeTextarea");
if(f&&f.checked){
return (f.value==p);
}
var f=document.getElementById("fieldTypeSecret");
if(f&&f.checked){
return (f.value==p);
}
var f=document.getElementById("fieldTypeRadio");
if(f&&f.checked){
return (f.value==p);
}
var f=document.getElementById("fieldTypeCheckbox");
if(f&&f.checked){
return (f.value==p);
}
var f=document.getElementById("fieldTypeSelect1");
if(f&&f.checked){
return (f.value==p);
}
var f=document.getElementById("fieldTypeSelect");
if(f&&f.checked){
return (f.value==p);
}
var f=document.getElementById("fieldTypeFileupload");
if(f&&f.checked){
return (f.value==p);
}
var f=document.getElementById("fieldTypeHidden");
if(f&&f.checked){
return (f.value==p);
}
return false;
};
Builder.TutorialHelper.OutlineOpened=function(){
var p=Builder.mainPanel.tabs[0];
return (p.open);
};
Builder.TutorialHelper.FormPropertiesOpened=function(){
var e=Builder.formOutline.getSelected();
var p=Builder.mainPanel.tabs[1];
return (e&&e.id=="outline@form"&&p.open);
};
Builder.TutorialHelper.FormPropertiesClosed=function(){
var e=Builder.formOutline.getSelected();
var p=Builder.mainPanel.tabs[1];
return (e&&e.id=="outline@form"&&!p.open);
};
Builder.TutorialHelper.AdvancedFormPropertiesOpened=function(){
var e=Builder.formOutline.getSelected();
var p=Builder.mainPanel.tabs[2];
return (e&&e.id=="outline@form"&&p.open);
};
Builder.TutorialHelper.AdvancedFormPropertiesClosed=function(){
var e=Builder.formOutline.getSelected();
var p=Builder.mainPanel.tabs[2];
return (e&&e.id=="outline@form"&&!p.open);
};
Builder.TutorialHelper.FieldPropertiesOpened=function(){
var e=Builder.formOutline.getSelected();
var p=Builder.mainPanel.tabs[1];
return (e&&(e.className.indexOf("checkbox")!=-1||e.className.indexOf("radio")!=-1||e.className.indexOf("select1")!=-1||e.className.indexOf("select ")!=-1||e.className.indexOf("textarea")!=-1||e.className.indexOf("textinput")!=-1||e.className.indexOf("fileupload")!=-1||e.className.indexOf("secret")!=-1||e.className.indexOf("hidden")!=-1)&&p.open);
};
Builder.TutorialHelper.FieldPropertiesClosed=function(){
var p=Builder.mainPanel.tabs[1];
return !p.open;
};
Builder.TutorialHelper.AdvancedFieldsetPropertiesOpened=function(){
var e=Builder.formOutline.getSelected();
var p=Builder.mainPanel.tabs[2];
return (e&&(e.className.indexOf("page")!=-1||e.className.indexOf("grid")!=-1||e.className.indexOf("fieldset")!=-1||e.className.indexOf("div")!=-1||e.className.indexOf("inlinediv")!=-1)&&p.open);
};
Builder.TutorialHelper.AdvancedFieldsetPropertiesClosed=function(){
var e=Builder.formOutline.getSelected();
var p=Builder.mainPanel.tabs[2];
return (e&&(e.className.indexOf("page")!=-1||e.className.indexOf("grid")!=-1||e.className.indexOf("fieldset")!=-1||e.className.indexOf("div")!=-1||e.className.indexOf("inlinediv")!=-1)&&!p.open);
};
Builder.TutorialHelper.AdvancedFieldPropertiesOpened=function(){
var e=Builder.formOutline.getSelected();
var p=Builder.mainPanel.tabs[2];
return (e&&(e.className.indexOf("checkbox")!=-1||e.className.indexOf("radio")!=-1||e.className.indexOf("select1")!=-1||e.className.indexOf("select ")!=-1||e.className.indexOf("textarea")!=-1||e.className.indexOf("textinput")!=-1||e.className.indexOf("fileupload")!=-1||e.className.indexOf("secret")!=-1||e.className.indexOf("hidden")!=-1)&&p.open);
};
Builder.TutorialHelper.AdvancedFieldPropertiesClosed=function(){
var e=Builder.formOutline.getSelected();
var p=Builder.mainPanel.tabs[2];
return (e&&(e.className.indexOf("checkbox")!=-1||e.className.indexOf("radio")!=-1||e.className.indexOf("select1")!=-1||e.className.indexOf("select ")!=-1||e.className.indexOf("textarea")!=-1||e.className.indexOf("textinput")!=-1||e.className.indexOf("fileupload")!=-1||e.className.indexOf("secret")!=-1||e.className.indexOf("hidden")!=-1)&&!p.open);
};
Builder.TutorialHelper.FormNameIs=function(name){
var f=document.getElementById("formName");
if(f){
return f.value==name;
}else{
f=Builder.models.form.get("/form/@name");
return f==name;
}
};
Builder.TutorialHelper.FormNameIsNot=function(name){
return !(Builder.TutorialHelper.FormNameIs(name));
};
Builder.TutorialHelper.FieldLabelIs=function(name){
var f=document.getElementById("fieldLabel");
if(f){
return f.value==name;
}else{
var _15f=Builder.formOutline.getSelected();
if(_15f){
var f=Builder.models.form.get("//field[@id='"+extractId(_15f.id)+"']/label");
return f==name;
}
}
return false;
};
Builder.TutorialHelper.FieldLabelIsNot=function(name){
return !(Builder.TutorialHelper.FieldLabelIs(name));
};
Builder.TutorialHelper.FieldChoicesAre=function(_161){
var _162=Builder.formOutline.getSelected();
if(_162){
var f=Builder.models.form.getElementById(extractId(_162.id));
if(f){
var _164=f.getElementsByTagName("choices");
if(_164){
var _165=_164[0].getElementsByTagName("label");
for(var i=0;i<_165.length;i++){
if(typeof _165[i].textContent!="undefined"){
var txt=_165[i].textContent;
}else{
if(typeof _165[i].text!="undefined"){
var txt=_165[i].text;
}
}
for(var j=0;j<_161.length;j++){
if(_161[j]&&txt.toUpperCase()==_161[j].toUpperCase()){
_161[j]=_161[_161.length-1];
_161.pop();
}
}
}
}
return _161.length==0;
}
}
return false;
};
Builder.TutorialHelper.isRepeatable=function(_169){
var _16a=Builder.formOutline.getSelected();
if(_16a){
var f=Builder.models.form.getElementById(extractId(_16a.id));
var r=f.getAttribute("repeat");
return (r=="repeat");
}
return false;
};
Builder.TutorialHelper.ASectionContainsElements=function(_16d){
try{
var f=Builder.models.form.get("//fieldset/field["+(_16d)+"]/label");
if(f){
return true;
}
}
catch(e){
return false;
}
return false;
};
Builder.TutorialHelper.IsConditional=function(){
var _16f=Builder.formOutline.getSelected();
if(_16f){
var f=Builder.models.form.getElementById(extractId(_16f.id));
var r=f.getAttribute("case");
return (r);
}
return false;
};
Builder.TutorialHelper.VariableBoxChecked=function(){
return (document.getElementById("fieldTypeVariable")&&document.getElementById("fieldTypeVariable").checked);
};
Builder.TutorialHelper.CalculatedBoxChecked=function(){
return (document.getElementById("fieldTypeCalculation")&&document.getElementById("fieldTypeCalculation").checked);
};
Builder.TutorialHelper.IsVariable=function(){
var _172=Builder.formOutline.getSelected();
if(_172){
var f=Builder.models.form.getElementById(extractId(_172.id));
var r=f.getElementsByTagName("calculation");
if(r[0]){
var v=r[0].getAttribute("variable");
if(v){
ret=true;
var cc=f.getElementsByTagName("choice");
for(var i=0;i<cc.length;i++){
var c=cc[i].getElementsByTagName("calculation");
if(c[0]){
ret=ret&&c[0].getAttribute("value");
}
}
return (ret);
}
}
}
return false;
};
Builder.TutorialHelper.IsCalculated=function(){
var _179=Builder.formOutline.getSelected();
if(_179){
var f=Builder.models.form.getElementById(extractId(_179.id));
var r=f.getElementsByTagName("calculation");
if(r[0]){
var v=r[0].getAttribute("formula");
return v;
}
}
return false;
};
helpers=wFORMS.helpers;
base2.DOM.Element.removeEventListener(document,"DOMContentLoaded",wFORMS.onLoadHandler,false);
wFORMS.behaviors.paging.runValidationOnPageNext=false;
wFORMS.behaviors.validation.instance.prototype._run=wFORMS.behaviors.validation.instance.prototype.run;
wFORMS.behaviors.validation.instance.prototype.run=function(e,_17e){
if(this._run(e,_17e)){
postBack(e,_17e);
}
};
wFORMS.behaviors.repeat.preserveRadioName=false;
wFORMS.behaviors.repeat.MESSAGES.REMOVE_TITLE="Click to remove this choice";
wFORMS.behaviors["switch"].onSwitch=function(){
};
wFORMS.behaviors["switch"].onSwitchOn=function(e){
if(e.id=="importChoiceFieldset"){
document.getElementById("importChoicesList").focus();
}
};
wFORMS.behaviors["switch"].onSwitchOff=function(e){
if(e.id=="calculatedFieldSwitch"){
var _181=document.getElementById("calculationFormula");
_181.value="";
var _182=document.getElementById("readOnlyCalculation");
_182.checked=false;
Builder.behaviors._modelChangeHandler(_181);
}
if(e.id=="variableFieldSwitch"){
var _183=document.getElementById("variableName");
_183.value="";
Builder.behaviors._modelChangeHandler(_183);
}
};
wFORMS.behaviors["repeat"].onRepeat=function(n){
if(n&&n.id&&n.id.indexOf("choiceRepeat")!=-1){
var nl=n.getElementsByTagName("input");
for(var i=0;i<nl.length;i++){
if(nl[i].className=="choiceLabelInput"){
nl[i].onblur=function(){
if(updateListOfChoices(this)){
updatePreview();
}
};
}
if(nl[i].className=="choiceDefaultInput"){
nl[i].onclick=function(){
if(updateDefaultChoices(this)){
updatePreview();
}
return true;
};
}
}
nl[nl.length-2].focus();
}
resetContentHeight();
};
wFORMS.behaviors["repeat"].onRemove=function(n){
if(n.id&&n.id.indexOf("choiceRepeat")==0){
updateListOfChoices();
updatePreview();
}
};
hXUL.disableXULRendering=true;
hXUL.AssetManager.dataTransformer=function(data){
var doc=data.document.documentElement;
var data=this.dataTransformerLoop(doc);
data=[{id:"outline@form",content:["<a href='#'>"+hXUL.AssetManager._htmlEntities(doc.getAttribute("name"))+"</a>","<span class=\"EditFormPropertiesIcon\"><span>Edit</span></span>"],rowClass:"anchored",children:data}];
if(data[0].children.length>0){
data.push({id:"separator_1",content:["&nbsp;","&nbsp;"],rowClass:"inert undroppable"},{id:"copier",content:["Copier <small>- Drag & drop here to duplicate</small>",""],rowClass:"inert"});
data.push({id:"separator_2",content:["&nbsp;","&nbsp;"],rowClass:"inert undroppable"},{id:"trash",content:["Trash <small>- Drag & drop here to delete</small>",""],rowClass:"inert"});
data.push({id:"separator_3",content:["&nbsp;","&nbsp;"],rowClass:"inert undroppable"},{id:"outlinePref",content:["<input type=\"checkbox\" id=\"showOneTabOnly\" value=\"1\"/><label for=\"showOneTabOnly\">"+Builder.LANG.show_one_tab+"</label>",""],rowClass:"inert undroppable"});
}
return data;
};
hXUL.AssetManager.dataTransformerLoop=function(_18a){
var data=[];
var _18c=1;
for(var i=0;i<_18a.childNodes.length;i++){
var n=_18a.childNodes[i];
if(n.nodeType==1){
var item={};
var _190="";
switch(n.tagName){
case "field":
var _191=false;
var _192=n.getElementsByTagName("choice");
for(var j=0,l=_192.length;j<l&&!_191;j++){
if(_192[j].getAttribute("switch")){
_191=true;
}
}
var _194=n.getElementsByTagName("label")[0].firstChild;
if(_194&&_194.nodeValue!=""){
var text=hXUL.AssetManager._htmlEntities(_194.nodeValue);
}else{
if(_192[0]){
var _196=_192[0].getElementsByTagName("label")[0];
if(_196&&_196.firstChild&&_196.firstChild.nodeValue!=""){
var text=hXUL.AssetManager._htmlEntities(_196.firstChild.nodeValue);
}else{
var text="no label";
}
if(_192[1]){
text=text+", ...";
}
}else{
var text="no label";
}
}
if(text.length>58){
text=text.substring(0,55)+"...";
}
text="<a href='#'>"+text+"</a>";
item.id="outline@"+n.getAttribute("id");
if(n.getAttribute("required")=="required"){
_190+="<img src='images/icon_validate_required.gif' alt='required' title='required field' /> ";
}
if(n.getAttribute("validation")=="validate-email"){
_190+="<img src='images/icon_validate_email.gif' alt='email'  title='email field' />";
}
if(n.getAttribute("validation")=="validate-alpha"){
_190+="<img src='images/icon_validate_alpha.gif' alt='alpha' title='text only field' />";
}
if(n.getAttribute("validation")=="validate-alphanum"){
_190+="<img src='images/icon_validate_alphanum.gif' alt='alpha-numeric' title='text and numbers only field' />";
}
if(n.getAttribute("validation")=="validate-date"){
_190+="<img src='images/icon_validate_date.gif' alt='date'  title='date field' />";
}
if(n.getAttribute("validation")=="validate-float"){
_190+="<img src='images/icon_validate_float.gif' alt='decimal number' title='numeric field' />";
}
if(n.getAttribute("validation")=="validate-integer"){
_190+="<img src='images/icon_validate_numeric.gif' alt='number' ' title='numeric field' />";
}
if(n.getAttribute("case")){
_190+="<img src='images/icon_isconditional.gif' alt='conditional' ' title='conditional field' />";
}
if(_191){
_190+="<img src='images/icon_isswitch.gif' alt='conditional trigger' ' title='conditional trigger' />";
}
item.content=[text,_190];
item.rowClass=n.getAttribute("type");
break;
case "fieldset":
var text=hXUL.AssetManager._htmlEntities(n.getAttribute("name"));
if(!text){
if(n.getAttribute("type")=="inlinediv"){
text="inline section";
}
if(n.getAttribute("type")=="page"){
text="Page "+_18c;
}else{
text="section";
}
}
if(n.getAttribute("type")=="page"){
_18c++;
}
if(n.getAttribute("required")=="required"){
_190+="<img src='images/icon_validate_required.gif' alt='required' title='required field' /> ";
}
if(n.getAttribute("case")){
_190+="<img src='images/icon_isconditional.gif' alt='conditional' ' title='conditional section' />";
}
item.id="outline@"+n.getAttribute("id");
item.content=["<a href='#'>"+text+"</a>",_190];
item.rowClass=n.getAttribute("type");
item.collapse=n.getAttribute("treeview");
item.children=this.dataTransformerLoop(n);
break;
case "htmlsection":
if(n.firstChild&&n.firstChild.nodeValue){
var text=n.firstChild.nodeValue.replace(/<[^>]*>/gi," ");
text=text.replace(/&....?;/g," ");
if(text.length>35){
var text=text.substring(0,33)+"...";
}
}else{
text="text and image";
}
item.id="outline@"+n.getAttribute("id");
item.content=["<a href='#'>"+text+"</a>",""];
item.rowClass="htmlsection";
break;
}
if(item.content){
data.push(item);
}
}
}
return data;
};
hXUL.AssetManager._htmlEntities=function(s){
return s.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;");
};
hXUL.TreeView.prototype.select=function(id,_199){
return this._renderer.selectRow("outline@"+id,_199);
};
hXUL.Panel.prototype.onTabPositionReset=function(_19a){
var _19b=0;
for(var i=0;i<this.tabs.length;i++){
if(!this.tabs[i].open){
_19b++;
}
}
if(_19b==this.tabs.length){
document.getElementById("tabPanelPreview").className="fullScreen";
}else{
document.getElementById("tabPanelPreview").className="";
}
if(_19a<500){
document.getElementById("preview").style.paddingLeft=_19a+"px";
document.getElementById("preview").className="";
}else{
document.getElementById("preview").className="ie6HideSelects";
}
};
Builder.__repr__=function(){
return "["+this.NAME+" "+this.VERSION+"]";
};
Builder.toString=function(){
return this.__repr__();
};
Freja.AssetManager.onerror=function(ex){
switch(ex.message){
case "Request failed:401":
alert("Sorry, you are not logged in or your session has expired.\nPlease use your browser's back button to leave the Form Builder and log back in.");
break;
case "Request failed:403":
alert("Sorry, the owner of this form has not granted you permission to modify it.\nPlease use your browser's back button to leave the Form Builder.");
break;
case "Request failed:404":
alert("Sorry, this form could not be found.\nPlease use your browser's back button to leave the Form Builder.");
break;
default:
alert("An error occured ("+ex.message+"). Please try to reload the page.");
break;
}
};
if(typeof console=="undefined"){
console={log:function(x,y,z){
}};
}
setLocale();
Builder.views={form_properties:getView(getResourceUrl("form_properties")),form_advanced:getView(getResourceUrl("form_advanced")),field_properties:getView(getResourceUrl("field_properties")),field_advanced:getView(getResourceUrl("field_advanced")),fieldset_properties:getView(getResourceUrl("fieldset_properties")),fieldset_advanced:getView(getResourceUrl("fieldset_advanced")),html_section:getView(getResourceUrl("html_section")),preview:getView(getResourceUrl("preview")),predefined_field_list:getView(getResourceUrl("predefined_fields")),manage_predefined_list:getView(getResourceUrl("manage_predefined_fields")),theme_list:getView(getResourceUrl("themes"))};
Builder.models={form:getModel(getFormUrl()),field_template:getModel(getResourceUrl("field_template")),fieldset_template:getModel(getResourceUrl("fieldset_template")),fieldchoices_template:getModel(getResourceUrl("fieldchoices_template")),htmlsection_template:getModel(getResourceUrl("htmlsection_template")),predefined_field_list:getModel(getResourceUrl("predefined_field_list")),theme_list:getModel(getResourceUrl("theme_list"))};
tinyMCE.init({mode:"none",theme:"advanced",height:"200",width:"410",plugins:"safari,inlinepopups,paste,style",paste_retain_style_properties:"font-family,font-size,color,background-color",relative_urls:false,remove_script_host:false,convert_urls:false,extended_valid_elements:"iframe[src|width|height|name|align|style|id|frameborder|allowtransparency]",theme_advanced_toolbar_location:"top",theme_advanced_resizing:true,theme_advanced_buttons1:"bold, italic, underline, separator, justifyleft, justifycenter, justifyright, justifyfull, separator, bullist, numlist, outdent, indent, separator, link, unlink, separator, "+(BuilderConfig.ALLOW_IMAGE_INSERT?"image, separator, ":"")+" "+(BuilderConfig.ALLOW_HTML_EDIT?"code, ":"")+",styleprops,removeformat",theme_advanced_buttons2:"",theme_advanced_buttons3:"",theme_advanced_disable:"strikethrough, cut, copy, paste, formatselect, fontselect, styleselect, sub, sup, forecolor, backcolor, charmap, visualaid, anchor, newdocument",setup:function(ed){
ed.onChange.add(function(ed){
getHTMLEditorChanges();
});
}});
function initDom(){
window.onbeforeunload=confirmExit;
initToolbar();
initPanels();
if(Builder.formOutline&&!Builder.formOutline.element){
initLast();
}
updatePreview(true);
hideActivityIndicator();
}
function initForm(){
if(typeof Builder.models.form.document.setProperty!="undefined"){
Builder.models.form.document.setProperty("SelectionLanguage","XPath");
}
upgradeForm(Builder.models.form.document);
Builder.ids=getIds(Builder.models.form.document);
getSwitches(Builder.models.form.document);
Builder.formOutline=hXUL.AssetManager.createTreeView("formOutline",[],Builder.models.form);
Builder.formOutline.onselect=editFormElement;
Builder.formOutline.onreorder=reorderForm;
Builder.formOutline.onexpand=expandSection;
Builder.formOutline.oncollapse=collapseSection;
if(Builder.mainPanel){
initLast();
}
if(BuilderConfig.ALLOW_FILE_UPLOAD){
Builder.models.form.set("/form/@allowattachments","1");
}else{
Builder.models.form.set("/form/@allowattachments","0");
}
if(BuilderConfig.ALLOW_CUSTOM_CODE){
Builder.models.form.set("/form/@allowcustomcode","1");
}else{
Builder.models.form.set("/form/@allowcustomcode","0");
}
}
window.onload=initDom;
Freja._aux.connect(Builder.models.form,"onload",initForm);
function initPanels(){
Builder.mainPanel=hXUL.AssetManager.createPanel("mainPanel",[{content:document.getElementById("tabPanelOutline")},{content:document.getElementById("tabPanelProperties")},{content:document.getElementById("tabPanelAdvanced")}],"mainPanel");
Builder.mainPanel.onePanelOpenOnly=Builder.preferences.showOneTabOnly;
Builder.mainPanel.render();
hXUL.AssetManager.initPanelShuffle();
Builder.mainPanel.disableTab(Builder.PROPERTIES_TAB);
Builder.mainPanel.disableTab(Builder.ADVANCED_TAB);
Builder.mainPanel.availableWidth=document.getElementById("tfaFormBuilder").offsetWidth-Builder.mainPanel.tabWidth-20;
}
function initToolbar(){
document.getElementById("addField").onclick=UI_addField;
document.getElementById("addFieldset").onclick=UI_addFieldset;
document.getElementById("addPage").onclick=UI_addPage;
document.getElementById("addHTMLSection").onclick=UI_addHTMLSection;
document.getElementById("topToolBarForm").onsubmit=saveForm;
document.getElementById("showHelpLink").onclick=Builder.Help.show;
document.getElementById("updatePreviewButton").onclick=function(){
updatePreview(true);
};
document.getElementById("alwaysUpdatePreviewCbx").onclick=function(){
Builder.preferences.alwaysUpdatePreview=document.getElementById("alwaysUpdatePreviewCbx").checked;
};
document.getElementById("alwaysUpdatePreviewCbx").checked=Builder.preferences.alwaysUpdatePreview;
Builder.views.predefined_field_list.render(Builder.models.predefined_field_list,"predefinedFieldsPlaceholder");
}
function initLast(){
if(Builder.isNewForm&&readCookie("tfa_fb_skip_splash")!=="1"){
Builder.Help.show();
}else{
Builder.Help.init();
}
Builder.formOutline.onrender=function(){
var c=document.getElementById("showOneTabOnly");
if(c){
c.checked=Builder.preferences.showOneTabOnly;
c.onclick=function(){
createCookie("tfa_fb_showOneTabOnly",c.checked?"1":"0");
Builder.mainPanel.onePanelOpenOnly=c.checked;
Builder.preferences.showOneTabOnly=c.checked;
return true;
};
}
};
Builder.formOutline.render(Builder.mainPanel.tabs[Builder.OUTLINE_TAB].content);
}
Builder.views.predefined_field_list.behaviors["addPredefined"]={onclick:UI_addPredefined};
Builder.views.predefined_field_list.behaviors["predefinedSelect"]={onchange:UI_managePredefined};
Builder.views.form_properties.behaviors["updateModel"]=Builder.behaviors.updateModel;
Builder.views.form_properties.behaviors["updateModelAndOutline"]=Builder.behaviors.updateModelAndOutline;
Builder.views.form_properties.behaviors["updateModelAndAll"]=Builder.behaviors.updateModelAndAll;
Freja._aux.connect(Builder.views.form_properties,"onrendercomplete",function(){
wFORMS.applyBehaviors(document.getElementById("edit_properties_form"));
var s=Builder.models.form.document.documentElement.getAttribute("css");
Builder.views.theme_list.render(Builder.models.theme_list,"themeListPlaceholder",{selected:s?s:"blank"});
resetContentHeight();
var f=document.getElementById("formName");
f.focus();
if(f.value=="unnamed form"){
f.select();
}
});
Builder.views.theme_list.behaviors["updateModel"]=Builder.behaviors.updateModel;
Builder.views.theme_list.behaviors["updateModelAndOutline"]=Builder.behaviors.updateModelAndOutline;
Builder.views.theme_list.behaviors["updateModelAndAll"]=Builder.behaviors.updateModelAndAll;
Builder.views.form_advanced.behaviors["updateModel"]=Builder.behaviors.updateModel;
Builder.views.form_advanced.behaviors["updateModelAndOutline"]=Builder.behaviors.updateModelAndOutline;
Builder.views.form_advanced.behaviors["updateModelAndAll"]=Builder.behaviors.updateModelAndAll;
Freja._aux.connect(Builder.views.form_advanced,"onrendercomplete",function(){
resetContentHeight();
if(Builder.mainPanel._goToTab){
Builder.mainPanel.selectTab(Builder.mainPanel._goToTab,true);
Builder.mainPanel._goToTab=null;
}
});
Builder.views.field_properties.behaviors["updateModel"]=Builder.behaviors.updateModel;
Builder.views.field_properties.behaviors["updateModelAndOutline"]=Builder.behaviors.updateModelAndOutline;
Builder.views.field_properties.behaviors["updateModelAndAll"]=Builder.behaviors.updateModelAndAll;
Builder.views.field_properties.behaviors["choiceLabelInput"]={onblur:function(n){
if(updateListOfChoices(n)){
updatePreview();
}
}};
Builder.views.field_properties.behaviors["choiceDefaultInput"]={onclick:function(n){
if(updateDefaultChoices(n)){
updatePreview();
}
return true;
}};
Freja._aux.connect(Builder.views.field_properties,"onrendercomplete",function(){
wFORMS.applyBehaviors(document.getElementById("edit_properties_field"));
if(document.getElementById("importChoicesButton")){
document.getElementById("importChoicesButton").onclick=importChoiceList;
}
resetContentHeight();
if(Builder.mainPanel._goToTab){
Builder.mainPanel.selectTab(Builder.mainPanel._goToTab,true);
Builder.mainPanel._goToTab=null;
}
if(document.getElementById("listItemLabel")){
document.getElementById("listItemLabel").focus();
}else{
document.getElementById("fieldLabel").focus();
}
});
Builder.views.field_advanced.behaviors["updateModel"]=Builder.behaviors.updateModel;
Builder.views.field_advanced.behaviors["updateModelAndOutline"]=Builder.behaviors.updateModelAndOutline;
Builder.views.field_advanced.behaviors["updateModelAndAll"]=Builder.behaviors.updateModelAndAll;
Builder.views.field_advanced.behaviors["removeConditional"]=Builder.behaviors.removeConditional;
Freja._aux.connect(Builder.views.field_advanced,"onrendercomplete",function(){
wFORMS.applyBehaviors(document.getElementById("edit_adv_properties_field"));
document.getElementById("addTriggerButton").onclick=setConditional;
resetContentHeight();
if(Builder.mainPanel._goToTab){
Builder.mainPanel.selectTab(Builder.mainPanel._goToTab,true);
Builder.mainPanel._goToTab=null;
}
});
Builder.views.fieldset_properties.behaviors["updateModel"]=Builder.behaviors.updateModel;
Builder.views.fieldset_properties.behaviors["updateModelAndOutline"]=Builder.behaviors.updateModelAndOutline;
Builder.views.fieldset_properties.behaviors["updateModelAndAll"]=Builder.behaviors.updateModelAndAll;
Freja._aux.connect(Builder.views.fieldset_properties,"onrendercomplete",function(){
wFORMS.applyBehaviors(document.getElementById("edit_properties_fieldset"));
resetContentHeight();
if(Builder.mainPanel._goToTab){
Builder.mainPanel.selectTab(Builder.mainPanel._goToTab,true);
Builder.mainPanel._goToTab=null;
}
document.getElementById("fieldsetTitle").focus();
});
Builder.views.fieldset_advanced.behaviors["updateModel"]=Builder.behaviors.updateModel;
Builder.views.fieldset_advanced.behaviors["updateModelAndOutline"]=Builder.behaviors.updateModelAndOutline;
Builder.views.fieldset_advanced.behaviors["updateModelAndAll"]=Builder.behaviors.updateModelAndAll;
Builder.views.fieldset_advanced.behaviors["removeConditional"]=Builder.behaviors.removeConditional;
Freja._aux.connect(Builder.views.fieldset_advanced,"onrendercomplete",function(){
wFORMS.applyBehaviors(document.getElementById("edit_adv_properties_fieldset"));
document.getElementById("addTriggerButton").onclick=setConditional;
resetContentHeight();
if(Builder.mainPanel._goToTab){
Builder.mainPanel.selectTab(Builder.mainPanel._goToTab,true);
Builder.mainPanel._goToTab=null;
}
});
Builder.views.manage_predefined_list.behaviors["predefinedEdit"]={onclick:editPredefined};
Builder.views.manage_predefined_list.behaviors["predefinedDelete"]={onclick:deletePredefined};
Builder.views.manage_predefined_list.behaviors["editPredefinedOk"]={onclick:function(n){
savePredefinedEdits(n,false);
}};
Builder.views.manage_predefined_list.behaviors["editPredefinedInput"]={onblur:function(n){
savePredefinedEdits(n,true);
}};
Freja._aux.connect(Builder.views.html_section,"onrendercomplete",addHTMLSectionBehaviors);
Freja._aux.connect(Builder.views.preview,"onrendercomplete",addFormPreviewBehaviors);

/**
 * This function contains conditional comments and should not be compressed
 */
function dialogBox(html, ok, cancel, className, skippable) {
	
	var d = Freja._aux.createDeferred();
	var m = document.getElementById('modalDialogBox');		
	if(m)
		m.parentNode.removeChild(m);
	
	var o = document.getElementById('modalDialogOverlay');		
	if(o)
		o.parentNode.removeChild(o);

	var o = document.createElement("div");
	var m = document.createElement("div");
	var i = m.appendChild(document.createElement("div"));
	var h = i.appendChild(document.createElement("div"));			
	var b = i.appendChild(document.createElement("div"));	
	if(navigator.userAgent.search(/MSIE/) != -1) { // IE only
		if(ok) 
			var bOk = b.appendChild(document.createElement("<input type='button' />"));
		if(cancel)
			var bCancel = b.appendChild(document.createElement("<input type='button' />"));
		if(skippable) 
			var bSkip =  document.createElement("<input type='checkbox' />"); 	
	} else {
		if(ok) {		
			var bOk = b.appendChild(document.createElement("input"));
			bOk.setAttribute('type', "button");				
		}
		if(cancel){
			var bCancel = b.appendChild(document.createElement("input"));
			bCancel.setAttribute('type', "button");
		} 
		if(skippable) {
			var bSkip =  document.createElement("input");
			bSkip.setAttribute('type', "checkbox");
		} 	
	}
	b.className = "dialogActions";
	if(className)
		m.className = "dialogBox "+className;
	else
		m.className = "dialogBox";
	h.className = "dialogText";
	h.id = "dialogText";
	i.className = "dialogInnerBox";
	o.className = "overlay";
	m.id="modalDialogBox";	
	o.id="modalDialogOverlay";					
	m = document.body.appendChild(m);
	o = document.body.appendChild(o);
 
	if(ok) {
		bOk.className = "dialogOk";
		bOk.value = ok;
		bOk.onclick = function() {
			m.style.display = "none";
			o.style.display = "none";
			/*@cc_on
			  @if (@_jscript_version < 5.7) 
			    var bd = document.getElementsByTagName('body')[0];
				bd.style.height = "auto";
				bd.style.overflow = "auto";
		  
				var ht = document.getElementsByTagName('html')[0];
				ht.style.height = "auto";
				ht.style.overflow = "auto";
			
				var selects = document.getElementsByTagName('select');
				for(i = 0; i < selects.length; i++) {
					selects[i].style.visibility = "visible";
				}
			  @end
			@*/
			d.callback(this.value);
		}
	}
	if(cancel) {
		bCancel.className = "dialogCancel";
		bCancel.value = cancel;
		bCancel.onclick = function() {
			m.style.display = "none";
			o.style.display = "none";
			/*@cc_on
			  @if (@_jscript_version < 5.7) 
			    var bd = document.getElementsByTagName('body')[0];
				bd.style.height = "auto";
				bd.style.overflow = "auto";
		  
				var ht = document.getElementsByTagName('html')[0];
				ht.style.height = "auto";
				ht.style.overflow = "auto";
			
				var selects = document.getElementsByTagName('select');
				for(i = 0; i < selects.length; i++) {
					selects[i].style.visibility = "visible";
				}
			  @end
			@*/
			d.callback(this.value);
		}
	}
	if(skippable) {
		bSkip.id = 'tfa_fb_skip_'+ className;
		bSkip.checked = readCookie(bSkip.id)==='1'?1:0;
		bSkip.onclick = function() {
			createCookie(bSkip.id, bSkip.checked?1:0);
		}
		var sd = b.appendChild(document.createElement('div'));
		sd.className = 'skippable';
		sd.appendChild(bSkip);
		var sl = sd.appendChild(document.createElement('label'));
		sl.innerHTML = skippable;
		sl.setAttribute('for',bSkip.id);
	}
	
	
	h.innerHTML = html;
			
	/*@cc_on
	  @if (@_jscript_version < 5.7) 
		var bd = document.getElementsByTagName('body')[0];
		bd.style.height = "100%";
		bd.style.overflow = "hidden";
  
		var ht = document.getElementsByTagName('html')[0];
		ht.style.height = "100%";
		ht.style.overflow = "hidden";
	
		var selects = document.getElementsByTagName('select');
		for(i = 0; i < selects.length; i++) {
			selects[i].style.visibility = "hidden";
		}
	  @end
	@*/
	
	m.style.display = "block";
	o.style.display = "block";
	if(bOk) bOk.focus();
	return d;		
}
