PageSourceSearch

https://www.theinkwellus.com/Form_Builder2/formBuilder.js

js theinkwellus.com collected 2026-10-02 01:46:43 UTC 41,055 bytes, 875 lines download raw bytes

1var FormBuilderObject=null;
2function FormBuilderOpen(container,level,ref,open_first){ 
3  clearProcesses();
4  if(FormBuilderObject){
5    FormBuilderObject.closeEditor();
6    FormBuilderObject=null;    
7  }
8  InstantPricingFormEditMode(true);
9  FormBuilderObject=new formBuilder(container,level,ref,open_first);  
10//  el('FORM_SUBMIT_B').style["display"]="none";
11}
12function FormBuilderClose(){
13  if(FormBuilderObject){
14    if(FormBuilderObject.isEditing) FormBuilderObject.closeEditElement();
15    FormBuilderObject.closeEditor();
16    FormBuilderObject=null;          
17    InstantPricingFormEditMode(false);
18    returnProcesses();    
19  }  
20//  el('FORM_SUBMIT_B').style["display"]="";
21  return true;
22}
23function FormBuilderDefaultOptions(){
24  if(FormBuilderObject){
25    FormBuilderObject.showDefaultOptions();
26  }
27}
28function FormBuilderClearDefault(){
29  if(FormBuilderObject){
30    FormBuilderObject.clearDefault();
31  }
32}
33function FormBuilderCloseDefaultOptions(){
34  if(FormBuilderObject){
35    FormBuilderObject.closeDefaultOptions();
36  }
37}
38function FormBuilderAddDefault(val){
39  if(FormBuilderObject){
40    FormBuilderObject.addDefault(val);
41  }
42}
43
44
45function FormBuilderSelectImage(){
46  if(FormBuilderObject) FormBuilderObject.selectImage();
47}
48
49
50
51/*********************************************************************************/
52
53function formBuilder(container,level,ref,open_first){ 
54  this.refLevel=level; this.formID=ref;
55  this.isEditing=false;
56  var instance=this;
57  this.content=new HTMLParse(container)
58  this.submitButton=el('FORM_SUBMIT_B'); 
59  if(this.submitButton)this.submitButton.style["display"]="none";
60  this.loading();
61  var params= new AjaxFormContent();  
62  params.addNameValue("pid",PREFS.Site_Dir);
63  params.addNameValue("mdl","Form_Builder2/resource.aj");
64  params.addNameValue("DEBUG",1);
65  params.addNameValue("FORM_Form_ID",this.formID);
66  params.addNameValue("FORM_Ref_ID",this.formID);
67  params.addNameValue("FORM_Ref_Level",this.refLevel);
68  ajaxPostFunction(params,function(sc,st,rt,rxml){
69     instance.res=new HTMLParse(rt);
70     document.body.appendChild(instance.res.DEFAULT_OPTIONS[0].node);     
71     if(instance.refLevel==9){
72       instance.formInfo=instance.res.formInfo[0];
73       instance.content.node.parentNode.insertBefore(instance.formInfo.node,instance.content.node);
74       instance.processFormInfo();
75     }
76     if(instance.refLevel==9||instance.refLevel==11){
77       instance.weightInfo=instance.res.weightInfo[0];
78       instance.content.node.parentNode.insertBefore(instance.weightInfo.node,instance.content.node);
79       instance.processWeightInfo();       
80     }
81     instance.newElement=instance.res.newElement[0];
82     instance.processElements();
83     if(instance.content.node.nextSibling){
84       instance.content.node.parentNode.insertBefore(instance.newElement.node,instance.content.node.nextSibling);
85     }else{
86       instance.content.node.parentNode.appendChild(instance.newElement.node);
87     }
88		 if(instance.refLevel==12&&document.getElementById('paw_signup_in_cart')) {
89			 instance.paw_signup=document.getElementById('paw_signup_in_cart');
90			 instance.content.node.parentNode.insertBefore(instance.paw_signup,instance.newElement.node);
91		 }
92     //setMouseOver(instance.newElement.predefined[0].submitButton[0].node,"green-sm");
93     instance.newElement.predefined[0].submitButton[0].node.onclick=function(){instance.addPredefined();};
94     //setMouseOver(instance.newElement.newElementForm[0].submitButton[0].node,"green-sm");
95     instance.newElement.newElementForm[0].submitButton[0].node.onclick=function(){instance.addNewElement();};
96     instance.loadingDiv.style["display"]="none";
97     if(open_first&&instance.firstEditButton)   instance.editElement(instance.firstEditButton);
98   },"ajax.iml");
99}
100
101
102formBuilder.prototype.loading=function(){
103  this.loadingDiv=el('LOADING');
104  if(this.loadingDiv){
105    this.loadingDiv.style["display"]="";
106  }else{
107    this.loadingDiv=ce('div');
108    this.loadingDiv.style["padding"]="20px";
109    this.loadingDiv.style["textAlign"]="center";
110  
111    this.loadingDiv.innerHTML='<img src="images/Spinning-Ball.gif" border=0 align="middle"> <b>Loading</b>';
112    this.content.node.parentNode.insertBefore(this.loadingDiv,this.content.node);
113  }
114}
115
116formBuilder.prototype.closeEditor=function(){
117  if(this.refLevel==9){this.content.node.parentNode.removeChild(this.formInfo.node);}
118  this.content.node.parentNode.removeChild(this.newElement.node);
119  var node=this.content.node;
120  this.content=new HTMLParse(node);
121  for(var i=0; i<this.content.editTemplate.length; i++){
122    node.appendChild(this.content.editTemplate[i].content[0].element[0].node);
123    node.removeChild(this.content.editTemplate[i].node);
124  }
125  if(this.submitButton)this.submitButton.style["display"]="";
126}
127
128
129formBuilder.prototype.elementHeaders=new Array("","Text Entry Field", "Checkbox Entry Field", "Pulldown Menu", "Multiline Text Field", "File Transfer Field", "Text Message", "Highlighted Text Message", "Divider Line", "Image", "Global Price List", "Radio Button Entry Field", "Instant Pricing", "", "uDesignIT! Preview", "uDesignIT! Image Upload","Custom HTML");
130
131formBuilder.prototype.elementDataFields=new Array("Form_Item_ID", "Element_ID", "Attribute_Name", "Description", "Default_Value", "onChange", "Cols", "Rows", "Align", "Required", "Global", "Type", "Options", "Filter", "PP_Key", "Field_Number", "Help_Text", "Warning_Text");
132
133
134
135/************************************    Elements    *********************************************/
136
137formBuilder.prototype.processElements=function(){
138  var instance=this;
139  var eid, type;
140  for(var i=0; this.content.element&&i<this.content.element.length; i++){
141    this.content.appendObject(this.processElementNode(this.content.element[i]));
142  }
143  this.dragger=new DragDropListObject(this.content.node,function(){instance.sort();});
144}
145
146formBuilder.prototype.processElementNode=function(htmlNode,newElement){
147    var instance=this;
148    var eid=Number(htmlNode.Form_Item_ID[0].node.innerHTML);
149    var type=Number(htmlNode.Type[0].node.innerHTML);
150    var result=new HTMLParse(this.res.editTemplate[0].node,true);
151    result.header[0].node.innerHTML=this.elementHeaders[type];
152    result.content[0].appendObject(htmlNode);
153    if(!newElement&&result.content[0].element[0].Pre_Edit_Function){
154      eval(result.content[0].element[0].Pre_Edit_Function[0].node.innerHTML);
155    }        
156                   if(type<12||type>13){
157    result.content[0].appendObject(this.res.editTemplate[type],true);
158    result.content[0].editTemplate[0].node.style["display"]="none";
159    result.content[0].editTemplate[0].Type[0].node.setAttribute('eid',eid);
160    result.content[0].editTemplate[0].Type[0].node.onchange=function(){instance.changeElementType(this);}
161                   }else{
162    result.content[0].editTemplate=new Array();
163    result.content[0].editTemplate[0]=null;         
164                   }
165   	$(result.node).hover(function(evt){instance.mouseOver(this);},function(evt){instance.mouseOut(this);});			   
166    ////setMouseOver(result.action[0].node,'black-sm');
167    ////setMouseOver(result.action[1].node,'black-sm');
168    ////setMouseOver(result.action[2].node,'black-sm');
169    ////setMouseOver(result.action[3].node,'black-sm');    
170    if(htmlNode.NO_EDIT[0].node.innerHTML=="1"){
171      result.action[0].node.style["display"]="none";
172      result.action[1].node.style["display"]="none";
173    }else if(htmlNode.Global[0].node.innerHTML=="1"||type==14){
174      result.action[0].node.style["display"]="none";
175    }else{
176      result.action[0].node.onclick=function(evt){instance.editElement(this);};
177      if(!this.firstEditButton)this.firstEditButton=result.action[0].node;
178    }      
179    result.action[2].node.style["display"]="none";
180    result.action[3].node.style["display"]="none";
181    result.action[2].node.onclick=function(evt){instance.saveElement(this);};
182    result.action[3].node.onclick=function(evt){instance.closeEditElement(this);};
183    result.action[1].node.onclick=function(evt){instance.deleteElement(this);};
184    result.action[0].node.setAttribute('eid',eid);
185    result.action[1].node.setAttribute('eid',eid);
186    if(type<=5||type==11||type==15){
187      result.required[0].input[0].node.setAttribute('eid',eid);
188      result.required[0].input[0].node.onclick=function(evt){instance.setRequired(this);};
189      if(htmlNode.Required[0].node.innerHTML=="1") result.required[0].input[0].node.checked=true;
190      else result.required[0].input[0].node.checked=false;
191    }else{
192      result.required[0].node.style["display"]="none";
193    }
194    return result; 
195}
196
197formBuilder.prototype.mouseOver=function(obj){
198  if(!this.dragger.isDragging&&!this.isEditing){
199    obj.className="fbElementHover";
200    for(i=0; i<this.content.editTemplate.length; i++){
201      if(this.content.editTemplate[i].node!=obj) this.content.editTemplate[i].node.className="fbElement";
202    }
203  }
204  return false;
205}
206
207formBuilder.prototype.mouseOut=function(obj){
208  if(!this.dragger.isDragging&&!this.isEditing) obj.className="fbElement";
209  return false;
210}
211
212
213formBuilder.prototype.deleteElement=function(obj){
214  this.isEditing=true;
215  var eid=obj.getAttribute('eid');
216  var instance=this;
217  this.editingID=this.findElement(eid);
218  obj=this.content.editTemplate[this.editingID].node;
219  if(confirm("You are about to delete content from this page. Do you want to continue?")){
220      var params=new AjaxFormContent();
221      params.addNameValue("pid",PREFS.Site_Dir);       
222      params.addNameValue("DEBUG",1);  
223      params.addNameValue("remove_id",eid);  
224      params.addNameValue("mdl","Form_Builder2/delete_item.aj");
225      ajaxPostFunction(params,function(sc,st,rt,rxml){    
226           obj.parentNode.removeChild(obj);
227           instance.isEditing=false;
228          },
229        "ajax.iml");         
230  }
231}
232
233formBuilder.prototype.sort=function(){
234   var sort=0;
235   var sortedContent=new HTMLParse(this.content.node);
236   var params=new AjaxFormContent();
237   params.addNameValue("pid",PREFS.Site_Dir);  
238   params.addNameValue("DEBUG",1);  
239   params.addNameValue("mdl","Form_Builder2/sort.aj");
240   for(var i=0; i<sortedContent.editTemplate.length; i++){
241    params.addNameValue("Form_Item_ID", sortedContent.editTemplate[i].content[0].element[0].Form_Item_ID[0].node.innerHTML);   
242   }
243   ajaxPostFunction(params,function(sc,st,rt,rxml){   }, "ajax.iml");   
244}
245
246formBuilder.prototype.setRequired=function(obj){
247  var id=this.findElement(obj.getAttribute('eid'));  
248  var instance=this;
249  var params=new AjaxFormContent();
250  var fData;
251  var fNode=this.content.editTemplate[id].content[0].editTemplate[0];
252  params.addNameValue("pid",PREFS.Site_Dir);
253  params.addNameValue("DEBUG",1);  
254  params.addNameValue("FORM_Form_ID",this.formID);  
255  params.addNameValue("QU_Form_Item_ID", obj.getAttribute('eid'));
256  params.addNameValue("QU_Required",(obj.checked?1:0) );
257  params.addNameValue("mdl","Form_Builder2/updateRequired.aj");
258  ajaxPostFunction(params,function(sc,st,rt,rxml){    
259        var ct=new HTMLParse(rt);
260        var newContent=instance.processElementNode(ct.element[0]);
261        var oldContent=instance.content.editTemplate[id];
262        instance.content.node.replaceChild(newContent.node,oldContent.node);
263        instance.content.editTemplate[id]=newContent;
264        instance.dragger=new DragDropListObject(instance.content.node,function(){instance.sort();});
265        },
266        "ajax.iml");
267}
268
269
270/************************************   Edit Element   *********************************************/
271
272formBuilder.prototype.editElement=function(obj){
273  this.showEditor( obj.getAttribute('eid'));
274}
275
276formBuilder.prototype.changeElementType=function(obj){
277  var instance=this;
278  var eid=obj.getAttribute('eid')
279  var htmlNode=this.content.editTemplate[this.findElement(eid)];
280  var type=obj.options[obj.selectedIndex].value;
281  htmlNode.content[0].element[0].Type[0].node.innerHTML=type;
282  htmlNode.content[0].node.removeChild(htmlNode.content[0].editTemplate[0].node);
283  htmlNode.content[0].editTemplate[0]=new HTMLParse(this.res.editTemplate[type].node,true);
284  htmlNode.content[0].editTemplate[0].Type[0].node.setAttribute('eid',eid);
285  htmlNode.content[0].editTemplate[0].Type[0].node.onchange=function(){instance.changeElementType(this);}  
286  htmlNode.content[0].node.appendChild(htmlNode.content[0].editTemplate[0].node);  
287  this.showEditor(eid);
288}
289
290formBuilder.prototype.showEditor=function(eid){
291  this.editingID=this.findElement(eid);  
292  if(this.editingID>=0){
293    this.mouseOver(this.content.editTemplate[this.editingID].node);
294    this.content.editTemplate[this.editingID].node.className="fbElementEdit";
295    this.isEditing=true;
296    if(this.content.editTemplate[this.editingID].content[0].element[0].Edit_Function){
297      eval(this.content.editTemplate[this.editingID].content[0].element[0].Edit_Function[0].node.innerHTML);
298    }else{
299      var theElement=this.content.editTemplate[this.editingID].content[0].element[0];
300      var theForm=this.content.editTemplate[this.editingID].content[0].editTemplate[0];
301      theForm.node.style["display"]="";
302      theElement.node.style["display"]="none";      
303      this.loadFormData(theElement,theForm);
304      if(theElement.Type[0].node.value=="9"){ // image
305        if(theElement.Description[0].node.value==""){
306          theForm.ImagePreview[0].node.src="no_image.jpg";
307        }else{
308          theForm.ImagePreview[0].node.src=theForm.ImagePreview[0].node.getAttribute('imagepath')+"/"+theElement.Description[0].node.value;
309        }
310      }
311    }
312    this.content.editTemplate[this.editingID].action[0].node.value="Close Without Saving";
313    var instance=this;
314    this.content.editTemplate[this.editingID].action[0].node.onclick=function(evt){instance.closeEditElement(this);};  
315    this.content.editTemplate[this.editingID].action[2].node.style["display"]="";
316    this.content.editTemplate[this.editingID].action[3].node.style["display"]="";
317    this.content.editTemplate[this.editingID].required[0].node.style["display"]="none";
318  }
319}
320
321formBuilder.prototype.findElement=function(id){
322  for(var i=0;i<this.content.editTemplate.length; i++){
323    if(this.content.editTemplate[i].content[0].element[0].Form_Item_ID[0].node.innerHTML==id)   return i;
324  }
325  return -1;
326}
327
328formBuilder.prototype.loadFormData=function(eNode,fNode){
329  var eData, fData, nodeType;
330  this.optionsListAdd=null;
331  this.optionsList=null;
332  for(var i=0;i<this.elementDataFields.length;i++){
333    eData=eval("eNode."+this.elementDataFields[i]);
334    fData=eval("fNode."+this.elementDataFields[i]);
335    if(eData&&fData){
336      nodeType=fData[0].node.nodeName;
337      if(nodeType=='INPUT'){
338        if(fData[0].node.type=="checkbox"||fData[0].node.type=="radio"){
339          for(var j=0; j<fData.length; j++){        
340            if(fData[j].node.value==eData[0].node.value) fData[j].node.checked=true;
341          }
342        }else fData[0].node.value=eData[0].node.value;
343      }else if(nodeType=='SELECT'){
344        for(var j=0; j<fData[0].node.options.length; j++){
345          if(fData[0].node.options[j].value==eData[0].node.value) fData[0].node.selectedIndex=j;
346        }
347      }else if(nodeType=='TEXTAREA'){
348        fData[0].node.value=eData[0].node.value;
349      }
350      if(this.res.OPTIONS_LINE_ITEM&&this.elementDataFields[i]=="Options"){
351        var instance=this;
352        fData[0].node.style["display"]="none";
353        this.optionsList=new HTMLParse("");
354        fData[0].node.parentNode.appendChild(this.optionsList.node);
355        var option_list=fData[0].node.value.split("\n");
356        for(var j=0;j<option_list.length;j++) this.loadFormDataOption(option_list[j]);                
357        this.optionsListDrag=new DragDropListObject(this.optionsList.node);
358        this.optionsListAdd=new HTMLParse(this.res.NEW_OPTION_LINE[0].node,true);
359        this.optionsListAdd.input[0].node.onchange=function(){instance.addNewOption();return false;};
360        this.optionsListAdd.add[0].node.onclick=function(){instance.addNewOption();return false;};
361        this.optionsListAdd.add[0].node.onfocus=function(){instance.optionsListAdd.input[0].node.focus();};
362        fData[0].node.parentNode.appendChild(this.optionsListAdd.node);
363      }
364    }
365  }
366}
367
368formBuilder.prototype.loadFormDataOption=function(str){
369  if(str=="")return;
370  var instance=this;
371  var index;
372  if(this.optionsList.OPTIONS_LINE_ITEM) index=this.optionsList.OPTIONS_LINE_ITEM.length;
373  else index=0;
374  var tmp=new HTMLParse(this.res.OPTIONS_LINE_ITEM[0].node,true);
375  tmp.node.setAttribute('index',index);
376  tmp.view[0].node.setAttribute('index',index);
377  if(str=="") tmp.view[0].node.innerHTML="&nbsp;";
378  else tmp.view[0].node.innerHTML=str;
379  tmp.view[0].node.onclick=function(){instance.editOption(this.getAttribute('index'))};
380  tmp.edit[0].input[0].node.setAttribute('original',str);
381  tmp.edit[0].input[0].node.setAttribute('index',index);
382  tmp.edit[0].input[0].node.value=str;
383  tmp.edit[0].input[0].node.onchange=function(){instance.changeOption(this);};
384  tmp.edit[0].input[0].node.onblur=function(){instance.changeOption(this);};
385  tmp.del[0].node.setAttribute('index',index);
386  tmp.del[0].node.setAttribute('original',str);
387  tmp.del[0].node.onclick=function(event){instance.deleteOption(this.getAttribute('index'));return false;}
388  this.optionsList.appendObject(tmp);
389}
390formBuilder.prototype.addNewOption=function(){
391  this.loadFormDataOption(this.optionsListAdd.input[0].node.value);
392  this.optionsListDrag=new DragDropListObject(this.optionsList.node);
393  this.optionsListAdd.input[0].node.value="";
394  this.optionsListAdd.input[0].node.focus();
395}
396formBuilder.prototype.deleteOption=function(index){
397  for(var i=0; i<this.optionsList.OPTIONS_LINE_ITEM.length; i++){
398    if(index==this.optionsList.OPTIONS_LINE_ITEM[i].node.getAttribute('index')){
399      this.optionsList.removeObject(this.optionsList.OPTIONS_LINE_ITEM,i);       
400      break;  
401    }    
402  }
403}
404formBuilder.prototype.editOption=function(index){
405  for(var i=0; i<this.optionsList.OPTIONS_LINE_ITEM.length; i++){
406    if(index==this.optionsList.OPTIONS_LINE_ITEM[i].node.getAttribute('index')){
407      this.optionsList.OPTIONS_LINE_ITEM[i].view[0].node.style["display"]="none";
408      this.optionsList.OPTIONS_LINE_ITEM[i].edit[0].node.style["display"]="";      
409      this.optionsList.OPTIONS_LINE_ITEM[i].edit[0].input[0].node.focus();    
410      break;  
411    }    
412  }
413}
414formBuilder.prototype.resetOption=function(index){
415  for(var i=0; i<this.optionsList.OPTIONS_LINE_ITEM.length; i++){
416    if(index==this.optionsList.OPTIONS_LINE_ITEM[i].node.getAttribute('index')){
417      this.optionsList.OPTIONS_LINE_ITEM[i].view[0].node.style["display"]="";
418      this.optionsList.OPTIONS_LINE_ITEM[i].edit[0].node.style["display"]="none";      
419      break;  
420    }    
421  }
422}
423formBuilder.prototype.changeOption=function(obj){
424  var index=obj.getAttribute('index');  
425  var item;
426  var str=obj.value;
427  for(var i=0; i<this.optionsList.OPTIONS_LINE_ITEM.length; i++){
428    if(index==this.optionsList.OPTIONS_LINE_ITEM[i].node.getAttribute('index')){
429      item=this.optionsList.OPTIONS_LINE_ITEM[i];
430      var original=item.edit[0].input[0].node.getAttribute('original');
431      if(original!=str){
432        var params=new AjaxFormContent();
433        params.addNameValue("pid",PREFS.Site_Dir);
434        params.addNameValue("DEBUG",1);  
435        params.addNameValue("mdl","Elements2/update_option.aj");
436        params.addContent(this.content.editTemplate[this.editingID].content[0].editTemplate[0].Element_ID[0].node);
437        params.addNameValue("QU_Option",original);  
438        params.addNameValue("QU_Option_NEW",str);  
439        ajaxPostFunction(params,function(sc,st,rt,rxml){ }, "ajax.iml");      
440      }
441      item.view[0].node.innerHTML=str;
442      item.view[0].node.style["display"]="";
443      item.edit[0].node.style["display"]="none";      
444      item.edit[0].input[0].node.setAttribute('original',str);
445      item.del[0].node.setAttribute('original',str);
446      break;        
447    }    
448  }
449}
450formBuilder.prototype.resetOptions=function(){
451  this.optionsList=new HTMLParse(this.optionsList.node);   
452  var str="";  
453  if(this.optionsList.OPTIONS_LINE_ITEM){
454    for(var i=0;i<this.optionsList.OPTIONS_LINE_ITEM.length;i++){
455      if(i>0)str=str+"\n";
456      str=str+this.optionsList.OPTIONS_LINE_ITEM[i].edit[0].input[0].node.value;
457    }
458  }
459  this.optionsList.node.parentNode.removeChild(this.optionsList.node);
460  if(this.optionsListAdd) this.optionsListAdd.node.parentNode.removeChild(this.optionsListAdd.node);
461  this.optionsList=null;
462  return str;
463}
464
465formBuilder.prototype.saveElement=function(obj){
466  var instance=this;
467  if(this.isEditing){
468    this.closeDefaultOptions();  
469    this.content.editTemplate[this.editingID].action[0].node.value="Edit";
470    this.content.editTemplate[this.editingID].action[0].node.onclick=function(evt){instance.editElement(this);};  
471    this.content.editTemplate[this.editingID].action[2].node.style["display"]="none";
472    this.content.editTemplate[this.editingID].action[3].node.style["display"]="none";
473    var type=this.content.editTemplate[this.editingID].content[0].element[0].Type[0].node.value;
474    if(type==1||type==3||type==4||type==5){
475      this.content.editTemplate[this.editingID].required[0].node.style["display"]="";    
476    }
477    this.isEditing=false;
478    this.mouseOver(this.content.editTemplate[this.editingID].node);    
479    if(this.content.editTemplate[this.editingID].content[0].element[0].Save_Function){
480      eval(this.content.editTemplate[this.editingID].content[0].element[0].Save_Function[0].node.innerHTML);
481    }else{
482      var params=new AjaxFormContent();
483      var fData;
484      var fNode=this.content.editTemplate[this.editingID].content[0].editTemplate[0];
485      if(this.optionsList){
486         fNode.Options[0].node.value=this.resetOptions();
487      }
488      params.addNameValue("pid",PREFS.Site_Dir);
489      params.addNameValue("DEBUG",1);  
490      params.addNameValue("FORM_Form_ID",this.formID);  
491      params.addNameValue("FORM_Ref_ID",this.formID);  
492      params.addNameValue("FORM_Ref_Level",this.refLevel);  
493      for(var i=0;i<this.elementDataFields.length;i++){
494        fData=eval("fNode."+this.elementDataFields[i]);
495        if(fData){
496          params.addContent(fData[0].node);
497        }
498      }
499      params.addNameValue("mdl","Elements2/update.aj");
500      ajaxPostFunction(params,function(sc,st,rt,rxml){    
501        var ct=new HTMLParse(rt);
502        var newContent=instance.processElementNode(ct.element[0]);
503        var oldContent=instance.content.editTemplate[instance.editingID];
504        instance.content.node.replaceChild(newContent.node,oldContent.node);
505        instance.content.editTemplate[instance.editingID]=newContent;
506        instance.dragger=new DragDropListObject(instance.content.node,function(){instance.sort();});
507        },
508        "ajax.iml");
509    }
510  }
511}
512formBuilder.prototype.closeEditElement=function(obj){
513  if(this.isEditing){
514    this.isEditing=false;
515    this.closeDefaultOptions();
516    var theElement=this.content.editTemplate[this.editingID].content[0].element[0];
517    var theForm=this.content.editTemplate[this.editingID].content[0].editTemplate[0];   
518    if(theForm) theForm.node.style["display"]="none";    
519    if(theElement) theElement.node.style["display"]="";      
520    this.content.editTemplate[this.editingID].action[0].node.value="Edit";
521    var instance=this;
522    this.content.editTemplate[this.editingID].action[0].node.onclick=function(evt){instance.editElement(this);};  
523    this.content.editTemplate[this.editingID].action[2].node.style["display"]="none";
524    this.content.editTemplate[this.editingID].action[3].node.style["display"]="none";
525    var type=theElement.Type[0].node.value;
526    if(type==1||type==3||type==4||type==5)  this.content.editTemplate[this.editingID].required[0].node.style["display"]="";    
527    this.mouseOver(this.content.editTemplate[this.editingID].node);        
528    if(this.content.editTemplate[this.editingID].content[0].element[0].Cancel_Function){
529      eval(this.content.editTemplate[this.editingID].content[0].element[0].Cancel_Function[0].node.innerHTML);
530    }
531    if(this.optionsList) this.resetOptions(); 
532  }
533}
534
535formBuilder.prototype.showDefaultOptions=function(){
536  if(this.isEditing){
537    this.defaultOptionsDest=null;
538    if(this.content.editTemplate[this.editingID].content[0].editTemplate[0].Default_Value)
539      this.defaultOptionsDest=this.content.editTemplate[this.editingID].content[0].editTemplate[0].Default_Value[0].node;
540    else if(this.content.editTemplate[this.editingID].content[0].editTemplate[0].Description)
541       this.defaultOptionsDest=this.content.editTemplate[this.editingID].content[0].editTemplate[0].Description[0].node;
542    $('[dataname=DEFAULT_OPTIONS]').show().position({of:this.defaultOptionsDest,my:"left+10 top+30",at:"right top",collision: 'fit'});   
543//    var pos=Geometry.upperLeftOffset(this.defaultOptionsDest);
544//    this.res.DEFAULT_OPTIONS[0].node.style["visibility"]="visible";
545//    this.res.DEFAULT_OPTIONS[0].node.style["left"]=pos.x+10;
546//    this.res.DEFAULT_OPTIONS[0].node.style["top"]=pos.y+30;
547  }
548}
549formBuilder.prototype.clearDefault=function(){
550  if(this.isEditing&&this.defaultOptionsDest){   
551    this.defaultOptionsDest.value="";
552    this.defaultOptionsDest.focus();
553  }
554}
555formBuilder.prototype.closeDefaultOptions=function(){
556     $('[dataname=DEFAULT_OPTIONS]').hide();
557//  this.res.DEFAULT_OPTIONS[0].node.style["visibility"]="hidden";
558}
559formBuilder.prototype.addDefault=function(val){
560  if(this.isEditing&&this.defaultOptionsDest){
561    this.defaultOptionsDest.value=this.defaultOptionsDest.value+val;
562    this.defaultOptionsDest.focus();
563  }
564}
565formBuilder.prototype.selectImage=function(){
566  if(this.isEditing){
567    var instance=this;
568    imageDragger.setPosition(this.content.editTemplate[this.editingID].node);
569    var src=this.content.editTemplate[this.editingID].content[0].editTemplate[0].ImagePreview[0].node.src;
570    var prefix=src.substring(0,src.lastIndexOf('/')>=0?src.lastIndexOf('/'):src.length);
571    var file=prefix.lastIndexOf('/')>=0?src.substring(prefix.lastIndexOf('/')+1,src.length):'';
572    imagePicker.open(function(img){instance.setImage(img);},"My Images","",file);
573  }
574}
575formBuilder.prototype.setImage=function(img){
576  var theForm=this.content.editTemplate[this.editingID].content[0].editTemplate[0];
577  theForm.Description[0].node.value=img;
578  if(img!=""){
579    theForm.ImagePreview[0].node.src=theForm.ImagePreview[0].node.getAttribute('imagepath')+"/"+img;    
580  }else{
581    theForm.ImagePreview[0].node.src="no_image.jpg";
582  }
583}
584
585/************************************    Add Element    *********************************************/
586
587formBuilder.prototype.addPredefined=function(){
588  if(this.isEditing){
589    alert("Please save your changes before adding a new element!");
590    return;
591  }
592  var params=new AjaxFormContent();
593  params.addNameValue("pid",PREFS.Site_Dir);
594  params.addNameValue("mdl","Form_Builder2/add_predefined.aj");
595  params.addNameValue('FORM_Form_ID',this.formID);
596  params.addNameValue('FORM_Ref_ID',this.formID);
597  params.addNameValue('FORM_Ref_Level',this.refLevel);
598  
599  params.fromNode(this.newElement.predefined[0].node);
600  var instance=this;
601  ajaxPostFunction(params,function(sc,st,rt,rxml){
602       var result=new HTMLParse(rt);       
603       for(var i=0; i<result.element.length; i++){
604         instance.content.appendObject(instance.processElementNode(result.element[i]));
605         if(result.element[i].FORM_FOOTER_SCRIPT)     eval(result.element[i].FORM_FOOTER_SCRIPT[0].node.innerHTML);
606       }
607       instance.dragger=new DragDropListObject(instance.content.node,function(){instance.sort();});
608     },
609     "ajax.iml");  
610}
611formBuilder.prototype.addNewElement=function(){
612  if(this.isEditing){
613    alert("Please save your changes before adding a new element!");
614    return;
615  }
616  var selectType=this.newElement.newElementForm[0].selectType[0].node;
617  var selectedType=selectType.options[selectType.selectedIndex].value;
618  if(selectedType==14||selectedType==15){
619    if(!PREFS.uDesignIT){
620      alert("uDesignIT! (the variable data component of your website) is currently not active. Please contact WebsitesForPrinters.com at 800-736-0688 for more information.");
621      return;
622    }else if(!PREFS.Pageflex_Available){
623      if(selectedType==14)  alert("Adding a uDesignIT! Preview requires the presence of a Pageflex Studio project file.");
624      else if(selectedType==15)  alert("Adding a uDesignIT! Image Upload requires the presence of a Pageflex Studio project file.");
625      return;
626    }
627  }
628  var params=new AjaxFormContent();
629  params.addNameValue("pid",PREFS.Site_Dir);
630  params.addNameValue("mdl","Form_Builder2/addElement.aj");
631  params.addNameValue('DEBUG',1);
632  params.addNameValue('FORM_Form_ID',this.formID);
633  params.addNameValue('FORM_Ref_ID',this.formID);
634  params.addNameValue('FORM_Ref_Level',this.refLevel);
635  
636  params.fromNode(this.newElement.newElementForm[0].node);
637  var instance=this;
638  ajaxPostFunction(params,function(sc,st,rt,rxml){
639       var result=new HTMLParse(rt);       
640       for(var i=0; i<result.element.length; i++){
641         instance.content.appendObject(instance.processElementNode(result.element[i],true));
642         if(result.element[i].FORM_FOOTER_SCRIPT)    eval(result.element[i].FORM_FOOTER_SCRIPT[0].node.innerHTML);
643         if(result.element[i].Pre_Edit_Function)    eval(result.element[i].Pre_Edit_Function[0].node.innerHTML);
644       }
645       instance.dragger=new DragDropListObject(instance.content.node,function(){instance.sort();});
646	   var type=result.element[0].Type[0].node.innerHTML;
647	   if(type!=14)  instance.showEditor(result.element[0].Form_Item_ID[0].node.innerHTML);
648     },
649     "ajax.iml");  
650}
651
652
653/************************************    Form Info    *********************************************/
654
655formBuilder.prototype.processFormInfo=function(){
656   if(this.refLevel==9){
657    var instance=this;
658//    this.formInfo.node.onmouseover=function(evt){this.className="fbElementHover";};
659//    this.formInfo.node.onmouseout=function(evt){this.className="fbElement";};
660    //setMouseOver(this.formInfo.action[0].node,'black-sm');
661    //setMouseOver(this.formInfo.action[1].node,'black-sm');
662    //setMouseOver(this.formInfo.action[2].node,'black-sm');    
663    //setMouseOver(this.formInfo.action[3].node,'black-sm');    
664    this.formInfo.action[2].node.style["display"]="none";
665    this.formInfo.action[3].node.style["display"]="none";
666    this.formInfo.action[2].node.onclick=function(evt){instance.updateFormInfo();};
667    this.formInfo.action[3].node.onclick=function(evt){instance.closeFormInfo();};
668    this.formInfo.action[1].node.onclick=function(evt){instance.deleteFormInfo();};
669    this.formInfo.action[0].node.onclick=function(evt){instance.editFormInfo();};
670    //setMouseOver(this.formInfo.content[0].customers_form[0].action[0].node,'green-sm');
671    this.formInfo.content[0].customers_form[0].action[0].node.onclick=function(evt){instance.addCustomer();};
672    this.processCustomers();   
673    if(this.formInfo.content[0].customers[0].listing){
674      this.formInfo.content[0].customers[0].listing[0].node.style["display"]="";    
675      this.formInfo.content[0].customers[0].listing[1].node.style["display"]="none";    
676    }    
677   } 
678}     
679
680formBuilder.prototype.processWeightInfo=function(){
681   if(this.refLevel==9||this.refLevel==11){
682    var instance=this;
683    //setMouseOver(this.weightInfo.action[0].node,'black-sm');
684    this.weightInfo.action[0].node.onclick=function(evt){instance.editWeightInfo();};
685    //setMouseOver(this.weightInfo.action[1].node,'black-sm');
686    this.weightInfo.action[1].node.onclick=function(evt){instance.closeWeightInfo();};
687    //setMouseOver(this.weightInfo.action[2].node,'black-sm');
688    this.weightInfo.action[2].node.onclick=function(evt){instance.closeWeightInfo();};  
689  }    
690}     
691
692
693formBuilder.prototype.editFormInfo=function(){
694   if(this.refLevel==9){
695    var instance=this;
696//    this.formInfo.node.onmouseover=null;
697//    this.formInfo.node.onmouseout=null;
698    this.formInfo.node.className="fbElementEdit";
699    this.formInfo.action[2].node.style["display"]="";
700    this.formInfo.action[3].node.style["display"]="";
701    this.formInfo.action[0].node.value="Close Without Saving";    
702    this.formInfo.action[0].node.onclick=function(evt){instance.closeFormInfo();};
703    var c=this.formInfo.content[0];
704    c.formLabel[0].node.style["display"]=""; c.formLabel[1].node.style["display"]="none";
705    if(c.formPP_Template_No){
706      c.formPP_Template_No[0].node.style["display"]=""; c.formPP_Template_No[1].node.style["display"]="none";
707    }
708    if(c.formPitStop_Profile) {c.formPitStop_Profile[0].node.style["display"]=""; c.formPitStop_Profile[1].node.style["display"]="none";}
709    if(c.formAsura_Profile) {c.formAsura_Profile[0].node.style["display"]=""; c.formAsura_Profile[1].node.style["display"]="none";}
710    if(c.formQty_Question) {c.formQty_Question[0].node.style["display"]=""; c.formQty_Question[1].node.style["display"]="none";}
711    c.formSubmit_Button[0].node.style["display"]=""; c.formSubmit_Button[1].node.style["display"]="none";
712    c.customers_form[0].node.style["display"]="";
713    if(this.formInfo.content[0].customers[0].listing){
714      this.formInfo.content[0].customers[0].listing[0].node.style["display"]="none";    
715      this.formInfo.content[0].customers[0].listing[1].node.style["display"]="";    
716    }
717   }     
718}     
719
720formBuilder.prototype.editWeightInfo=function(){
721  if(this.refLevel==9||this.refLevel==11){   
722    var instance=this;
723    this.weightInfo.node.className="fbElementEdit";
724    this.weightInfo.editor[0].node.style["display"]="";
725    this.weightInfo.action[0].node.onclick=function(evt){instance.closeWeightInfo();};
726    this.weightInfo.action[0].node.value="Close Without Saving";
727    this.weightInfo.content[0].node.style["display"]="none";
728    WeightCalcObj.open(this.weightInfo.editor[0].node);  
729  }
730}  
731
732formBuilder.prototype.closeFormInfo=function(){
733   if(this.refLevel==9){
734    var instance=this;
735//    this.formInfo.node.onmouseover=function(evt){this.className="fbElementHover";};
736//    this.formInfo.node.onmouseout=function(evt){this.className="fbElement";};
737    this.formInfo.node.className="fbElementHover";
738    this.formInfo.action[2].node.style["display"]="none";
739    this.formInfo.action[3].node.style["display"]="none";
740    this.formInfo.action[0].node.value="Edit";    
741    this.formInfo.action[0].node.onclick=function(evt){instance.editFormInfo();};
742    var c=this.formInfo.content[0];
743    c.formLabel[1].node.style["display"]=""; c.formLabel[0].node.style["display"]="none";
744    if(c.formPP_Template_No){
745      c.formPP_Template_No[1].node.style["display"]=""; c.formPP_Template_No[0].node.style["display"]="none";
746    }
747    if(c.formPitStop_Profile) {c.formPitStop_Profile[1].node.style["display"]=""; c.formPitStop_Profile[0].node.style["display"]="none";}
748    if(c.formAsura_Profile) {c.formAsura_Profile[1].node.style["display"]=""; c.formAsura_Profile[0].node.style["display"]="none";}
749    if(c.formQty_Question) {c.formQty_Question[1].node.style["display"]=""; c.formQty_Question[0].node.style["display"]="none";}    
750    c.formSubmit_Button[1].node.style["display"]=""; c.formSubmit_Button[0].node.style["display"]="none";
751    c.customers_form[0].node.style["display"]="none";
752    if(this.formInfo.content[0].customers[0].listing){
753      this.formInfo.content[0].customers[0].listing[0].node.style["display"]="";    
754      this.formInfo.content[0].customers[0].listing[1].node.style["display"]="none";    
755    }     
756   }
757}     
758
759formBuilder.prototype.closeWeightInfo=function(){
760  if(this.refLevel==9||this.refLevel==11){
761  var instance=this;
762  this.weightInfo.node.className="fbElementHover";
763  this.weightInfo.action[0].node.onclick=function(evt){instance.editWeightInfo();};
764  this.weightInfo.action[0].node.value="Edit";  
765  this.weightInfo.editor[0].node.style["display"]="none";
766  this.weightInfo.content[0].node.style["display"]="";  
767  }
768}
769
770formBuilder.prototype.updateFormInfo=function(){
771  if(this.refLevel==9){
772  var params=new AjaxFormContent();
773  params.addNameValue("pid",PREFS.Site_Dir);
774  params.addNameValue("mdl","Form_Builder2/update_info.aj");
775  params.addNameValue('FORM_Form_ID',this.formID);
776  params.fromNode(this.formInfo.node);
777  var instance=this;
778  ajaxPostFunction(params,function(sc,st,rt,rxml){  
779     var res=new HTMLParse(rt);
780     instance.formInfo.node.parentNode.removeChild(instance.formInfo.node);
781     instance.formInfo=new HTMLParse(res.formInfo[0].node);
782     instance.content.node.parentNode.insertBefore(instance.formInfo.node,instance.content.node);
783     instance.processFormInfo();
784     instance.closeFormInfo();  
785     },
786     "ajax.iml");  
787  }
788}
789
790formBuilder.prototype.processCustomers=function(){
791  if(this.formInfo.content[0].customers[0].listing){
792    var instance=this;
793    for(var i=0; i<this.formInfo.content[0].customers[0].listing[1].customerRow.length; i++){
794      //setMouseOver(this.formInfo.content[0].customers[0].listing[1].customerRow[i].removeCustomer[0].node,'red-sm');     
795      this.formInfo.content[0].customers[0].listing[1].customerRow[i].removeCustomer[0].node.onclick=function(){instance.removeCustomer(this);};
796    } 
797  }  
798}
799
800formBuilder.prototype.removeCustomer=function(button){
801 if(this.refLevel==9){
802  var params=new AjaxFormContent();
803  params.addNameValue("pid",PREFS.Site_Dir);
804  params.addNameValue("mdl","Form_Builder2/remove_cust.aj");
805  params.addNameValue('FORM_Form_ID',this.formID);  
806  params.addNameValue('DEBUG',1);  
807  params.addNameValue('FORM_Company_ID',button.getAttribute("Company_ID"));  
808  params.addNameValue('FORM_Branch_ID',button.getAttribute("Branch_ID"));  
809  params.addNameValue('FORM_Contact_ID',button.getAttribute("Contact_ID"));  
810  var instance=this;
811  ajaxPostFunction(params,function(sc,st,rt,rxml){
812       var tmp=new HTMLParse(rt);
813       instance.formInfo.content[0].customers[0].node.parentNode.replaceChild(tmp.customers[0].node,instance.formInfo.content[0].customers[0].node);
814       instance.formInfo.content[0].customers[0]=tmp.customers[0];
815       instance.processCustomers();       
816     },
817     "ajax.iml");    
818  }
819}
820
821formBuilder.prototype.addCustomer=function(){
822 if(this.refLevel==9){
823  var params=new AjaxFormContent();
824  params.addNameValue("pid",PREFS.Site_Dir);
825  params.addNameValue("mdl","Form_Builder2/add_cust.mdl");
826  params.addNameValue('FORM_Form_ID',this.formID);
827  params.fromNode(this.formInfo.content[0].customers_form[0].node);
828  var instance=this;
829  ajaxPostFunction(params,function(sc,st,rt,rxml){  
830       var tmp=new HTMLParse(rt);
831       instance.formInfo.content[0].customers[0].node.parentNode.replaceChild(tmp.customers[0].node,instance.formInfo.content[0].customers[0].node);
832       instance.formInfo.content[0].customers[0]=tmp.customers[0];
833       instance.processCustomers();       
834     },
835     "ajax.iml");    
836  }
837}
838
839
840function showHelpAlertIcons(){
841  $('.form_item_note_icons').show().each(function(){
842        var p=$(this).attr('form_item_id');		
843        $(this).position({
844		      my:'left top',
845		      at:'right top',
846			  of:'[dataname=element][form_item_id='+p+']'
847		  });
848     });
849}
850
851$(window).load(showHelpAlertIcons).resize(showHelpAlertIcons);
852$(function(){
853  $('.form_item_note_icons img').click(function(){
854       $('.form_note_popup').hide();
855       var id=$(this).closest('[form_item_id]').attr('form_item_id');
856	   var obj=null;
857	   if($(this).attr('obj_type')=="alert_button"){	    
858	     obj=$('.form_note_popup[obj_type=warning_message][form_item_id='+id+']');
859	   }else{
860	     obj=$('.form_note_popup[obj_type=help_message][form_item_id='+id+']');
861	   }
862	   obj.show().position({my:'center center', at:'center center', of:$(window)});
863    });
864	$('.form_note_popup .close_popup').click(function(){
865	    $(this).closest('.form_note_popup').hide();
866	});
867});
868$(document).ready(function() {
869	$('input[data-dateformat]').each(function() {
870		$(this).datepicker('destroy').datepicker(
871			{ 'minDate' : ($(this).data('datepast')==1)?null:new Date() },
872			{ 'dateFormat' : ($(this).data('dateformat')!="") ? $(this).data('dateformat') : 'mm/dd/yy' }
873		);
874	});
875});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.