var DragDropObject=Class.create({dragging:false,dragpos:-1,columns:new Array('col1','col2','col3','col4'),initialize:function(){Sortable.SERIALIZE_RULE=/^[^_\-][foli](.*)$/;this.grantFieldDragAbility();for(var i=0;i<this.columns.length;i++){this.grantMenuDragAbility(this.columns[i]);}},grantFieldDragAbility:function(){Sortable.create("formFields",{dropOnEmpty:false,containment:["formFields","col1","col2","col3","col4"],constraint:"vertical",scroll:window,only:'dragable',onUpdate:reorderField});},grantMenuDragAbility:function(col){Sortable.create(col,{dropOnEmpty:false,containment:[],constraint:false,scroll:window,onUpdate:addFieldAfterDraggingComplete});},returnButtonToAddFieldMenu:function(button){var menu=this.findMenuButtonBelongsTo(button);var elPos=button.className.replace("dragfld ","");if(menu.childNodes[elPos]){menu.insertBefore(button,menu.childNodes[elPos]);}
else menu.appendChild(button);},findMenuButtonBelongsTo:function(button){if(button.id&&button.id.startsWith('drag1'))return $('col1');else if(button.id&&button.id.startsWith('drag2'))return $('col2');else if(button.id&&button.id.startsWith('drag3'))return $('col3');else return $('col4');}});
var BulkAddObject=Class.create({pre_gender:new Array('Male','Female','Prefer Not to Answer'),pre_age:new Array('Under 18','18-24','25-34','35-44','45-54','55-64','65 or Above','Prefer Not to Answer'),pre_employment:new Array('Employed Full-Time','Employed Part-Time','Self-employed','Not employed, but looking for work','Not employed and not looking for work','Homemaker','Retired','Student','Prefer Not to Answer'),pre_income:new Array('Under $20,000','$20,000 - $30,000','$30,000 - $40,000','$40,000 - $50,000','$50,000 - $75,000','$75,000 - $100,000','$100,000 - $150,000','$150,000 or more','Prefer Not to Answer'),pre_education:new Array('Some High School','High School Graduate or Equivalent','Trade or Vocational Degree','Some College','Associate Degree','Bachelor\'s Degree','Graduate of Professional Degree','Prefer Not to Answer'),pre_marital:new Array('Single, Never Married','Married','Living with Partner','Separated','Divorced','Widowed','Prefer Not to Answer'),pre_race:new Array('White / Caucasian','Spanish / Hispanic / Latino','Black / African American','Asian','Pacific Islander','Native American','Other','Prefer Not to Answer'),pre_months:new Array('January','February','March','April','May','June','July','August','September','October','November','December'),pre_days:new Array('Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday'),pre_states:new Array('Alabama','Alaska','Arizona','Arkansas','California','Colorado','Connecticut','Delaware','Florida','Georgia','Hawaii','Idaho','Illinois','Indiana','Iowa','Kansas','Kentucky','Louisiana','Maine','Maryland','Massachusetts','Michigan','Minnesota','Mississippi','Missouri','Montana','Nebraska','Nevada','New Hampshire','New Jersey','New Mexico','New York','North Carolina','North Dakota','Ohio','Oklahoma','Oregon','Pennsylvania','Rhode Island','South Carolina','South Dakota','Tennessee','Texas','Utah','Vermont','Virginia','Washington','West Virginia','Wisconsin','Wyoming'),pre_continents:new Array('Africa','Antarctica','Asia','Australia','Europe','North America','South America'),pre_howoften:new Array('Everyday','Once a week','2 to 3 times a month','Once a month','Less than once a month'),pre_howlong:new Array('Less than a month','1-6 months','1-3 years','Over 3 Years','Never used'),pre_satisfied:new Array('Very Satisfied','Satisfied','Neutral','Unsatisfied','Very Unsatisfied','N/A'),pre_important:new Array('Very Important','Important','Neutral','Somewhat Important','Not at all Important','N/A'),pre_agree:new Array('Strongly Agree','Agree','Neutral','Disagree','Strongly Disagree','N/A'),pre_compare:new Array('Much Better','Somewhat Better','About the Same','Somewhat Worse','Much Worse','Don\'t Know'),pre_wouldyou:new Array('Definitely','Probably','Not Sure','Probably Not','Definitely Not'),pre_agree2:new Array('Strongly Disagree','Disagree','Neutral','Agree','Strongly Agree'),pre_compare2:new Array('Much Worse','Somewhat Worse','About the Same','Somewhat Better','Much Better'),pre_important2:new Array('Not at all Important','Somewhat Important','Neutral','Important','Very Important'),pre_satisfied2:new Array('Very Unsatisfied','Unsatisfied','Neutral','Satisfied','Very Satisfied'),pre_wouldyou2:new Array('Definitely Not','Probably Not','Not Sure','Probably','Definitely'),pre_ten:new Array('1','2','3','4','5','6','7','8','9','10'),initialize:function(){},getSet:function(category){return this[category].join('\n');}});var __BULKADD;function initBulkAdd(){__BULKADD=new BulkAddObject();}
function getBulkSet(category){return __BULKADD.getSet(category);}
var TabInterface=Class.create({activeAnimation:false,initialize:function(){},firstTab:function(){$('stage').className="afi";},secondTab:function(){$('stage').className="cfi";},thirdTab:function(){$('stage').className="cfo";},showSidebar:function(name){this.hideSidebars();this.toggleDisplay(name,'block');},hideSidebars:function(){this.toggleDisplay('addFields','none');this.toggleDisplay('fieldProperties','none');this.toggleDisplay('formProperties','none');},toggleDisplay:function(element,visible){$(element).style.display=visible;},showFields:function(pulse){if(pulse==true&&$('addFields').style.display=='block'&&!this.activeAnimation){this.activeAnimation=true;if(Prototype.Browser.IE){new Effect.Highlight('addFields',{startcolor:'#FFF7C0',endcolor:'#FDFCE9',afterFinish:function(){this.activeAnimation=false;}.bind(this)});}
else{new Effect.Shake('shake',3,{afterFinish:function(){this.activeAnimation=false;}.bind(this)});setTimeout(function(){this.activeAnimation=false}.bind(this),500);}}
else{this.showSidebar('addFields');this.firstTab();}},showFieldProperties:function(columnId){this.showSidebar('fieldProperties');this.secondTab();if(!columnId||columnId<0){$('noFieldSelected').style.display='block';$('fieldPos').style.display='none';$('allProps').style.display='none';}}});
var FormPropertiesObject=Class.create({initialize:function(){this.initCalendars();},populate:function(Form,Profile){this.Profile=Profile;this.Form=Form;this.name();this.description();this.labelAlign();this.captcha();this.receipt();this.ip();this.redirect();this.limit();this.setDates();this.language();},populateSingle:function(Form,Profile,attribute){this.Profile=Profile;this.Form=Form;this[attribute]();},name:function(){$('formName').value=this.Form.FormJson.Name;},description:function(){var desc=this.Form.FormJson.Description;if(desc!=''&&desc!=null)desc=desc.replace(/\<br \/\>/g,"\n");$('formDescription').value=desc;},labelAlign:function(){lab=$('formLabelAlign');lab.selectedIndex=1;for(var i=0;i<lab.options.length;i++){if(this.Form.FormJson.LabelAlign==lab.options[i].value){lab.selectedIndex=i;}}},captcha:function(){cap=$('formCaptcha');cap.selectedIndex=1;for(var i=0;i<cap.options.length;i++){if(this.Form.FormJson.UseCaptcha==cap.options[i].value){cap.selectedIndex=i;}}},limit:function(){var limit=this.Form.FormJson.EntryLimit;if(limit==0)limit='';$('formEntryLimit').value=limit;},email:function(){fieldVal=ACTIVE_FORM.data['email'];$('formEmailVal').value=fieldVal;this.setReplyTo();$('formEmail').onclick=function(){if(Element.hasClassName('formEmailDiv','hide')){Element.removeClassName('formEmailDiv','hide');updateForm(tempEmail,'email');$('formEmailVal').value=tempEmail;Field.activate($('formEmailVal'));}
else{Element.addClassName('formEmailDiv','hide');tempEmail=$('formEmailVal').value;updateForm('','email');}}
if(fieldVal==''){$('formEmail').checked=false;Element.addClassName('formEmailDiv','hide');}
else{$('formEmail').checked=true;Element.removeClassName('formEmailDiv','hide');}},receipt:function(){var sendToDropDown=$('formSendTo');sendToDropDown.options.length=0;sendToDropDown.options[0]=new Option(' ',' ');$('formReceiptDiv').addClassName('hide');$('formReceipt').checked=false;this.Form.FormJson.Fields.each(function(Field,index){if(Field.Typeof=='email'){sendToDropDown.options[sendToDropDown.options.length]=new Option(Field.Title,Field.ColumnId);if(Field.Validation=='email'){sendToDropDown.selectedIndex=sendToDropDown.options.length-1;$('formReceipt').checked=true;var replyto='';if(this.Form.FormJson.ReceiptReplyTo!=null)replyto=this.Form.FormJson.ReceiptReplyTo;$('receiptReplyTo').value=replyto;$('formReceiptDiv').removeClassName('hide');}}}.bind(this));if(sendToDropDown.options.length==1){sendToDropDown.options[0]=new Option('No Email Fields Found','');sendToDropDown.disabled=true;}
else sendToDropDown.disabled=false;},displayReceiptLightbox:function(){Lightbox.showUrl('/lightboxes/FormBuilder.Receipt.php',finishLoadingReceiptLightbox);},populateReceiptLightbox:function(Form){var from='';if(Form.FormJson.FromAddress!=null)from=Form.FormJson.FromAddress;var message='';if(Form.FormJson.ReceiptMessage!=null)message=Form.FormJson.ReceiptMessage;$('fromAddress').value=from;$('receiptMessage').value=message;if(Form.FormJson.ReceiptCopy=='1')$('receiptCopy').checked=true;else $('receiptCopy').checked=false;},language:function(){lang=$('formLanguage');lang.selectedIndex=3;for(var i=0;i<lang.options.length;i++){if(this.Form.FormJson.Language==lang.options[i].value){lang.selectedIndex=i;}}},password:function(){var fieldVal='';if(this.Form.FormJson.Password!=null)fieldVal=this.Form.FormJson.Password;$('formPasswordVal').value=fieldVal;if(!fieldVal||fieldVal==''||this.Profile.PlanId=='1'){$('formPassword').checked=false;Element.addClassName('formPasswordDiv','hide');}
else{$('formPassword').checked=true;Element.removeClassName('formPasswordDiv','hide');}},ip:function(){if(this.Form.FormJson.UniqueIP==1)$('formIp').checked=true;else $('formIp').checked=false;},redirect:function(){if(this.Form.FormJson.Redirect!=''&&this.Form.FormJson.Redirect!=null){Element.addClassName($('formMessageVal'),'hide');Element.removeClassName($('formRedirectVal'),'hide');$('formRedirect').checked=true;$('formRedirectVal').value=this.Form.FormJson.Redirect;}
else{Element.addClassName($('formRedirectVal'),'hide');Element.removeClassName($('formMessageVal'),'hide');$('formMessage').checked=true;var redirectMsg=this.Form.FormJson.RedirectMessage;if(redirectMsg!=''&&redirectMsg!=null)redirectMsg=redirectMsg.replace(/\<br \/\>/g,"\n");$('formMessageVal').value=redirectMsg;}},setDates:function(){var starting=this.Form.FormJson.StartDate;var ending=this.Form.FormJson.EndDate;if(starting!='2000-01-01 12:00:00'||ending!='2030-01-01 12:00:00'){$('formSchedule').checked=true;$('listStartDate').removeClassName('hide');$('listEndDate').removeClassName('hide');temp=starting.split(' ');sDate=temp[0];sTime=temp[1];this.setStartDate(sDate);this.setStartTime(sTime);temp=ending.split(' ');sDate=temp[0];sTime=temp[1];this.setEndDate(sDate);this.setEndTime(sTime);}},setStartDate:function(sDate){sDateArray=sDate.split('-');$('startDate-1').value=sDateArray[1];$('startDate-2').value=sDateArray[2];$('startDate').value=sDateArray[0];if(sDate=='2000-01-01'){$('startDate-1').value='';$('startDate-2').value='';$('startDate').value='';}},setStartTime:function(sTime){sTimeArray=sTime.split(':');hours=sTimeArray[0];minutes=sTimeArray[1];ampm='AM';if(hours>12){ampm='PM';hours=hours-12;}
this.dropdownSelection('startTime-0',hours);this.dropdownSelection('startTime-1',minutes);this.dropdownSelection('startTime-2',ampm);},setEndDate:function(sDate){sDateArray=sDate.split('-');$('endDate-1').value=sDateArray[1];$('endDate-2').value=sDateArray[2];$('endDate').value=sDateArray[0];if(sDate=='2030-01-01'){$('endDate-1').value='';$('endDate-2').value='';$('endDate').value='';}},setEndTime:function(sTime){sTimeArray=sTime.split(':');hours=sTimeArray[0];minutes=sTimeArray[1];ampm='AM';if(hours>=12){ampm='PM';hours=hours-12;}
this.dropdownSelection('endTime-0',hours);this.dropdownSelection('endTime-1',minutes);this.dropdownSelection('endTime-2',ampm);},dropdownSelection:function(dropdown,value){var drop=$(dropdown);for(var i=0;i<drop.length;i++){if(drop.options[i].value==value||'0'+drop.options[i].value==value){drop.selectedIndex=i;}}},initCalendars:function(){Calendar.setup({inputField:"startDate",displayArea:"calStart",button:"pickStart",ifFormat:"%B %e, %Y",onSelect:selectFormActivity});Calendar.setup({inputField:"endDate",displayArea:"calEnd",button:"pickEnd",ifFormat:"%B %e, %Y",onSelect:selectFormActivity});}});
var FieldPropertiesObject=Class.create({show:'',initialize:function(){this.show=new Array();this.show['text']=new Array('types','size','required','unique','isPrivate','textDefault','encryption','range','instructions');this.show['textarea']=new Array('types','size','required','unique','isPrivate','textDefault','range','instructions');this.show['select']=new Array('types','size','choices','required','isPrivate','populate','instructions');this.show['radio']=new Array('types','layout','choices','required','isPrivate','randomize','other','populate','instructions');this.show['checkbox']=new Array('types','layout','choices','required','isPrivate','instructions');this.show['likert']=new Array('types','required','isPrivate','likert','numbers','na');this.show['name']=new Array('types','required','isPrivate','name','instructions');this.show['shortname']=new Array('types','required','isPrivate','name','instructions');this.show['date']=new Array('types','required','unique','isPrivate','date','dateDefault','instructions');this.show['eurodate']=new Array('types','required','unique','isPrivate','date','euroDateDefault','instructions');this.show['time']=new Array('types','required','unique','isPrivate','instructions');this.show['phone']=new Array('types','required','unique','isPrivate','phone','phoneDefault','instructions');this.show['europhone']=new Array('types','required','unique','isPrivate','phone','textDefault','instructions');this.show['address']=new Array('types','required','isPrivate','addressDefault','instructions');this.show['money']=new Array('types','required','unique','isPrivate','currency','range','instructions');this.show['linked']=new Array('types','required','unique','isPrivate','instructions');this.show['url']=new Array('types','size','required','unique','isPrivate','textDefault','instructions');this.show['email']=new Array('types','size','required','unique','isPrivate','textDefault','instructions');this.show['number']=new Array('types','size','required','unique','isPrivate','textDefault','range','instructions');this.show['rating']=new Array('types','option','instructions');this.show['tags']=new Array('types','option','instructions');this.show['file']=new Array('types','required','isPrivate','instructions');this.show['password']=new Array('types','option','instructions');this.show['math']=new Array('types','option','instructions');this.show['section']=new Array('types','isPrivate','instructions');this.show['page']=new Array('types','buttons');},display:function(Field){this.Field=Field;this.hideAll();this.title();for(var x=0;x<this.show[this.Field.Typeof].length;x++){this[this.show[this.Field.Typeof][x]]();}
this.position(Field.Pos);this.ClassNames();this.listButtons();$('fieldPos').style.display='block';$('allProps').style.display='block';},hideAll:function(){$('listSecurity').style.display='none';$('listType').style.display='none';$('listInstructions').style.display='none';$('listPopulate').style.display='none';$('listTextDefault').style.display='none';$('listPhoneDefault').style.display='none';$('listDateDefault').style.display='none';$('listEuroDateDefault').style.display='none';$('listAddressDefault').style.display='none';$('listDateFormat').style.display='none';$('listPhoneFormat').style.display='none';$('listMoneyFormat').style.display='none';$('listSize').style.display='none';$('listNameFormat').style.display='none';$('listChoices').style.display='none';$('listOptions').style.display='none';$('listRange').style.display='none';$('listNextButtons').style.display='none';$('listPreviousButtons').style.display='none';$('listLikert').style.display='none';$('listLayout').style.display='none';$('noFieldSelected').style.display='none';$('listButtons').style.display='none';$('fieldPos').style.display='none';$('allProps').style.display='none';},onFieldUpdate:function(Field,parameter){switch(parameter){case'IsRequired':if(Field.Typeof=='select')this.highlightDefaultIfRequired(Field);break;case'IsDefault':if(Field.Typeof=='select')this.highlightDefaultIfRequired(Field);break;}},listButtons:function(){$('listButtons').style.display='block';$('listButtonsDuplicate').onclick=function(event){duplicateField(this.Field.ColumnId,event);return false;}.bind(this);$('listButtonsDelete').onclick=function(event){removeField(this.Field.ColumnId,event);return false;}.bind(this);},position:function(val){$('fieldPos').innerHTML=(parseInt(val)+1)+'.';},title:function(){$('fieldTitle').value=this.Field.Title;},types:function(){$('listType').style.display='block';var func=this.typeNotify;var type=this.Field.Typeof;if(this.Field.HasntBeenSaved){$('fieldType').disabled=false;Event.stopObserving('fieldType','click',func);}
else{$('fieldType').disabled=true;Event.observe('fieldType','click',func,false);}
if(type=='name')type='shortname';if(type=='europhone')type='phone';if(type=='eurodate')type='date';for(var i=0;i<$('fieldType').options.length;i++){if($('fieldType').options[i].value==type){$('fieldType').options[i].selected=true;break;}}},typeNotify:function(){alert('Since this field has already been saved to your account, the field type can no longer be changed.');},size:function(){$('listSize').style.display='block';for(var i=0;i<$('fieldSize').options.length;i++){if($('fieldSize').options[i].value==this.Field.Size){$('fieldSize').options[i].selected=true;break;}}},layout:function(){$('listLayout').style.display='block';var setting='';if(this.Field.Settings.indexOf('notStacked')!=-1)setting='notStacked';if(this.Field.Settings.indexOf('twoColumns')!=-1)setting='twoColumns';if(this.Field.Settings.indexOf('threeColumns')!=-1)setting='threeColumns';for(var i=0;i<$('fieldLayout').options.length;i++){if($('fieldLayout').options[i].value==setting){$('fieldLayout').options[i].selected=true;break;}}},required:function(){$('listOptions').style.display='block';(this.Field.IsRequired=='1')?$('fieldRequired').checked=true:$('fieldRequired').checked=false;var ftype=this.Field.Typeof;(ftype=='checkbox'||ftype=='radio'||ftype=='select'||ftype=='name'||ftype=='shortname'||ftype=='address'||ftype=='likert')?this.toggleUnique('hide'):this.toggleUnique('show');(ftype=='text'&&CLIENT_JSON.Profile.PlanId>=3)?this.toggleEncrypted('show'):this.toggleEncrypted('hide');(ftype=='radio')?this.toggleRandomize('show'):this.toggleRandomize('hide');(ftype=='radio')?this.toggleOther('show'):this.toggleOther('hide');(ftype=='likert')?this.toggleNumbers('show'):this.toggleNumbers('hide');(ftype=='likert')?this.toggleNA('show'):this.toggleNA('hide');},toggleRandomize:function(view){var randoms=document.getElementsByClassName('fieldRandomToggle');for(var i=0;i<randoms.length;i++){(view=='hide')?randoms[i].addClassName('hide'):randoms[i].removeClassName('hide');}},toggleOther:function(view){if($('fieldOther')){var others=document.getElementsByClassName('fieldOtherToggle');for(var i=0;i<others.length;i++){(view=='hide')?others[i].addClassName('hide'):others[i].removeClassName('hide');}}},toggleNumbers:function(view){var numbs=document.getElementsByClassName('fieldNumbersToggle');for(var i=0;i<numbs.length;i++){(view=='hide')?numbs[i].addClassName('hide'):numbs[i].removeClassName('hide');}},toggleNA:function(view){var nonapp=document.getElementsByClassName('fieldNAToggle');for(var i=0;i<nonapp.length;i++){(view=='hide')?nonapp[i].addClassName('hide'):nonapp[i].removeClassName('hide');}},randomize:function(){(this.Field.Validation=='rand')?$('fieldRandom').checked=true:$('fieldRandom').checked=false;},numbers:function(){(this.Field.Settings.indexOf('hideNumbers')!=-1)?$('fieldNumbers').checked=true:$('fieldNumbers').checked=false;},buttons:function(){$('listNextButtons').style.display='block';var btn=this.Field.ChoicesText;$('nextButtonsText').value=btn;if(btn.include('http')&&btn.include('.')){$('nextButtonLink').checked=true;}
else{$('nextButtonString').checked=true;}
$('listPreviousButtons').style.display='block';$('previousButtonsText').value=this.Field.DefaultVal;},other:function(){if($('fieldOther')){(this.Field.Settings.indexOf('other')!=-1)?$('fieldOther').checked=true:$('fieldOther').checked=false;}},na:function(){(this.Field.Validation=='na')?$('fieldNA').checked=true:$('fieldNA').checked=false;},toggleUnique:function(view){uniques=document.getElementsByClassName('fieldUniqueToggle');for(var i=0;i<uniques.length;i++){(view=='hide')?uniques[i].addClassName('hide'):uniques[i].removeClassName('hide');}},unique:function(){(this.Field.IsUnique=='1')?$('fieldUnique').checked=true:$('fieldUnique').checked=false;},isPrivate:function(){$('listSecurity').style.display='block';(this.Field.IsPrivate=='1')?$('fieldPrivate').checked=true:$('fieldPublic').checked=true;},encryption:function(){(this.Field.IsEncrypted=='1')?$('fieldEncrypted').checked=true:$('fieldEncrypted').checked=false;var func=this.encryptNotify;if(this.Field.HasntBeenSaved){$('fieldEncrypted').disabled=false;Event.stopObserving('fieldEncrypted','click',func);}
else{$('fieldEncrypted').disabled=true;Event.observe('fieldEncrypted','click',func,false);}},encryptNotify:function(){alert('Once a field has been encrypted it cannot be changed.');},toggleEncrypted:function(view){encrypts=document.getElementsByClassName('fieldEncryptedToggle');for(var i=0;i<encrypts.length;i++){(view=='hide')?encrypts[i].addClassName('hide'):encrypts[i].removeClassName('hide');}},range:function(){$('listRange').style.display='block';this.determineRangeDropDownTypes();var minRange='0';var maxRange='';if(parseInt(this.Field.RangeMin)>0)minRange=this.Field.RangeMin;if(parseInt(this.Field.RangeMax)>0&&parseInt(this.Field.RangeMax)>=minRange)maxRange=this.Field.RangeMax;$('fieldRangeMin').value=minRange;$('fieldRangeMax').value=maxRange;for(var i=0;i<$('fieldRangeType').options.length;i++){if($('fieldRangeType').options[i].value==this.Field.RangeType){$('fieldRangeType').options[i].selected=true;break;}}},determineRangeDropDownTypes:function(){var el=$('fieldRangeType');el.options.length=0;if(this.Field.Typeof=='text'||this.Field.Typeof=='textarea'){el.options[0]=new Option('Characters','character');el.options[1]=new Option('Words','word');}
if(this.Field.Typeof=='number'){el.options[0]=new Option('Value','value');el.options[1]=new Option('Digits','digit');}
if(this.Field.Typeof=='money'){el.options[0]=new Option('Value','value');}},populate:function(){$('listPopulate').style.display='block';},textDefault:function(){$('listTextDefault').style.display='block';$('fieldDefault').value=this.Field.DefaultVal;},phoneDefault:function(){$('listPhoneDefault').style.display='block';fieldVal=this.Field.DefaultVal;$('fieldPhoneDefault1').value=fieldVal.substring(0,3);$('fieldPhoneDefault2').value=fieldVal.substring(3,6);$('fieldPhoneDefault3').value=fieldVal.substring(6,10);},addressDefault:function(){$('listAddressDefault').style.display='block';fieldVal=this.Field.SubFields[5].DefaultVal;countries=$('fieldCountries');for(var i=0;i<countries.options.length;i++){if(countries.options[i].value==fieldVal)countries.selectedIndex=i;}},dateDefault:function(){$('listDateDefault').style.display='block';$('fieldDateDefault').value=this.Field.DefaultVal;},euroDateDefault:function(){$('listEuroDateDefault').style.display='block';$('fieldEuroDateDefault').value=this.Field.DefaultVal;},date:function(){$('listDateFormat').style.display='block';(this.Field.Typeof=='date')?$('fieldDateAmerican').selected=true:$('fieldDateEuro').selected=true;},name:function(){$('listNameFormat').style.display='block';if(this.Field.HasntBeenSaved)$('nameFormat').disabled=false;else $('nameFormat').disabled=true;(this.Field.Typeof=='shortname')?$('fieldNameNormal').selected=true:$('fieldNameExtended').selected=true;},phone:function(){$('listPhoneFormat').style.display='block';(this.Field.Typeof=='phone')?$('fieldPhoneAmerican').selected=true:$('fieldPhoneEuro').selected=true;},currency:function(){var validation=this.Field.Validation;$('listMoneyFormat').style.display='block';if(validation=='euro')$('fieldMoneyEuro').selected=true;else if(validation=='pound')$('fieldMoneyPound').selected=true;else if(validation=='yen')$('fieldMoneyYen').selected=true;else if(validation=='pesos')$('fieldMoneyPesos').selected=true;else $('fieldMoneyAmerican').selected=true;},instructions:function(){$('listInstructions').style.display='block';$('fieldInstructions').value=this.Field.Instructions;},ClassNames:function(){$('fieldClassNames').value=this.Field.ClassNames;},choices:function(){$('listChoices').style.display='block';$('fieldChoices').innerHTML='';var choicesMarkup='';if(this.Field.Typeof=='checkbox'){this.Field.SubFields.each(function(num,index){choicesMarkup+=this[this.Field.Typeof+'Markup'](num,index);}.bind(this));}
else{this.Field.Choices.each(function(num,index){choicesMarkup+=this[this.Field.Typeof+'Markup'](num,index);}.bind(this));}
$('fieldChoices').innerHTML=choicesMarkup;if(this.Field.Typeof=='radio'&&this.Field.Settings.indexOf('other')!=-1){var list=$('fieldChoices');var listEl=$('fieldChoices').down('li',$('fieldChoices').childElements().length-1);this.highlightRadioOther(listEl);list.down('li',list.childElements().length-1).down('img').remove();}},radioMarkup:function(choice,index){var selected='';if(choice.IsDefault=='1')selected='checked="checked"';var ret='<li>'+'<input name="allChoices" class="" type="radio" onclick="changeRadioDefault(this)" '+selected+' title="Make this choice pre-selected." /> '+'<input class="text" type="text" maxlength="150" autocomplete="off" '+'value="'+choice.Choice.gsub("\"","&quot;")+'" onkeyup="updateChoice(this);" /> '+'<img src="/images/icons/add.png" onclick="addRadio(this)" alt="Add" title="Add another choice."/> ';ret+='<img src="/images/icons/delete.png" onclick="deleteRadio(this)" alt="Delete" title="Delete this choice."/>';return ret+'</li>';},highlightRadioOther:function(choiceToHighlight){if(!choiceToHighlight.hasClassName('dropReq')){choiceToHighlight.addClassName('dropReq');choiceToHighlight.insert({top:'<a href="#" onclick="toolTipToggle(this, event); return false;" class="tooltip" title="About Other Field"'+'rel="This is the label for the alternative text input for your multiple choice field. It allows your user to enter their own value if '+'none of the other choices are appropriate. Note : If this choice is selected, but no value is entered by the user, this label will be submitted instead.">(?)</a>'});}},insertChoice:function(ctrl,value,type){var choice={"Choice":value,"IsDefault":"0"}
if(type=='checkbox'||type=='statement'){choice={"ChoicesText":value,"DefaultVal":"0"}}
var markup=this[type+'Markup'](choice,1);ctrl.insert({after:markup});},deleteChoice:function(ctrl){Element.remove(ctrl);},selectMarkup:function(choice,index){var selected='';var defaultClass='';var linkTip='';if(choice.IsDefault=='1'){selected='checked="checked"';if(this.Field.IsRequired=='1'){defaultClass='class="dropReq"';linkTip='<a href="#" onclick="toolTipToggle(this, event); return false;" class="tooltip" title="About Required Drop Downs"'+'rel="This is the default drop down choice. When you make a drop down field required, '+'you are essentially telling the user they have to make a choice. If they leave '+'the drop down on the default choice (the one that is selected when the page loads), '+'Wufoo will consider that as not making a choice and will throw an error if not changed.">(?)</a>';}}
return'<li '+defaultClass+'>'+linkTip+'<input name="allChoices" class="" type="radio" onclick="changeSelectDefault(this)" '+selected+' title="Make this choice pre-selected." /> '+'<input class="text" type="text" maxlength="150" autocomplete="off" '+'value="'+choice.Choice.gsub("\"","&quot;")+'" onkeyup="updateChoice(this);" /> '+'<img src="/images/icons/add.png" onclick="addSelect(this)" alt="Add" title="Add another choice."/> '+'<img src="/images/icons/delete.png" onclick="deleteSelect(this)" alt="Delete" title="Delete this choice."/>'+'</li>';},highlightDefaultIfRequired:function(Field){this.unhighlightOldDefaultChoice();if(Field.Typeof=='select'&&Field.IsRequired=='1'){var choiceToHighlight='';Field.Choices.each(function(num,index){if(num.IsDefault=='1'){choiceToHighlight=$('fieldChoices').down('li',index);}});if(choiceToHighlight!=''){if(!choiceToHighlight.hasClassName('dropReq')){choiceToHighlight.addClassName('dropReq');choiceToHighlight.insert({top:'<a href="#" onclick="toolTipToggle(this, event); return false;" class="tooltip" title="About Required Dropdowns"'+'rel="This is the default down choice. When you make a drop down field required, '+'you are essentially telling the user they have to make a choice. So, if they leave '+'the drop down on the default choice (the one that is selected when the page loads), '+'Wufoo will consider that as not making a choice and throw an error.">(?)</a>'});}}}},unhighlightOldDefaultChoice:function(){var oldReq=$$('.dropReq')[0];if(oldReq){var link=oldReq.down('a');if(link)link.remove();oldReq.removeClassName('dropReq');}},checkboxMarkup:function(choice,index){var selected='';if(choice.DefaultVal=='1')selected='checked="checked"';var ret='<li>'+'<input name="allChoices" class="" type="checkbox" onclick="changeCheckboxDefault(this)" '+selected+' title="Make this choice pre-selected." /> '+'<input class="text" type="text" maxlength="150" autocomplete="off" '+'value="'+choice.ChoicesText.gsub("\"","&quot;")+'" onkeyup="updateChoice(this);" /> '+'<img src="/images/icons/add.png" onclick="addCheckbox(this)" alt="Add" title="Add another choice."/> ';if(index!=0)ret+='<img src="/images/icons/delete.png" onclick="deleteCheckbox(this)" alt="Delete" title="Delete this choice."/>';return ret+'</li>';},likert:function(){$('listLikert').style.display='block';this.likertColumns();this.likertStatements();},likertColumns:function(){$('likertColumns').innerHTML='';var markup='';this.Field.Choices.each(function(num,index){markup+=this.columnMarkup(num,index);}.bind(this));$('likertColumns').innerHTML=markup;if(this.Field.Validation=='na'){var list=$('likertColumns');var listEl=$('likertColumns').down('li',$('likertColumns').childElements().length-1);this.highlightLikertColumn(listEl);list.down('li',list.childElements().length-1).down('img').remove();}},columnMarkup:function(choice,index){var selected='';if(choice.IsDefault=='1')selected='checked="checked"';var ret='<li>'+'<input name="allChoices" type="radio" '+selected+' onclick="changeLikertDefault(this);" title="Make this column pre-selected." /> '+'<input class="text" type="text" value="'+choice.Choice.gsub("\"","&quot;")+'" onkeyup="updateChoice(this);" /> '+'<img src="/images/icons/add.png" alt="Add" onclick="addLikertChoice(this);" title="Add another choice."/> ';if(index!=0)ret+='<img src="/images/icons/delete.png" alt="Delete" onclick="deleteLikertChoice(this);" title="Delete this column."/> ';return ret+'</li>';},highlightLikertColumn:function(choiceToHighlight){if(!choiceToHighlight.hasClassName('dropReq')){choiceToHighlight.addClassName('dropReq');choiceToHighlight.insert({top:'<a href="#" onclick="toolTipToggle(this, event); return false;" class="tooltip" title="About Likert Non Applicable"'+'rel="This choice represents a null selection, and will have a score of 0 assigned to it. '+'It is ideal for situations where you wish to make a likert field required, but you still want to allow users to opt out of certain questions.">(?)</a>'});}},likertStatements:function(){$('likertStatements').innerHTML='';var markup='';this.Field.SubFields.each(function(num,index){markup+=this.statementMarkup(num,index);}.bind(this));$('likertStatements').innerHTML=markup;},statementMarkup:function(choice,index){var ret='<li>'+'<input class="text statement" type="text" value="'+choice.ChoicesText.gsub("\"","&quot;")+'" onkeyup="updateChoice(this);" /> '+'<img src="/images/icons/add.png" alt="Add" onclick="addLikertStatement(this);" title="Add another choice."/> ';if(index!=0)ret+='<img src="/images/icons/delete.png" alt="Delete" onclick="deleteLikertStatement(this)" title="Delete this choice."/> ';return ret+'</li>';}});
var FormPreviewObject=Class.create({initialize:function(){},modify:function(value,parameter,Form,Field){if(this[parameter]){this[parameter](value,Form,Field);}},Name:function(value,Form,Field){if($('fname'))$('fname').innerHTML=Form.FormJson.Name;},Description:function(value,Form,Field){if($('fdescription'))$('fdescription').innerHTML=Form.FormJson.Description.replace(/\n/g,"<br />");},Language:function(value,Form,Field){if(value=='preview'){$('formLanguage').selectedIndex=10;window.open('http://wufoo.com/translate/','','width=700,height=500,toolbar=yes,location=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes');}},LabelAlign:function(value,Form,Field){$('formPreview').className='wufoo '+Form.FormJson.LabelAlign;},EntryLimit:function(value,Form,Field){if(Form.FormJson.EntryLimit==0)$('formEntryLimit').value='';},StartDate:function(value,Form,Field){},EndDate:function(value,Form,Field){},PageHeader:function(value,Form,Field){var circle=$('pagecircle'+Field.Page);if(circle){circle.innerHTML=value;}},replaceHeader:function(markup){$('pageHeader').innerHTML=markup;}});
var AccountProfile=Class.create({data:'',initialize:function(){this.data=CLIENT_JSON.Profile;this.initUnlock();},initUnlock:function(){Event.observe(window,'unload',this.unlock.bind(this),false);},unlock:function(){},permissionToAddField:function(type,fieldCount,changing){if(type=='file'&&this.data.Plan.Upload=='0'){lightbox('Upgrade Required','In order to add a file upload field, you must upgrade your Wufoo subscription. To do so, click on the "Account" link at the top of this page.');return false;}
if(fieldCount>=this.data.Plan.FieldCount&&!changing){lightbox('Upgrade Required','In order to add more fields, you must upgrade your Wufoo subscription. To do so, click on the "Account" link at the top of this page.');return false;}
return true;}});
var FormObject=Class.create({data:'',initialize:function(){this.FormJson=FORM_JSON;},set:function(value,parameter){switch(parameter){case'EntryLimit':if(value>0&&value<99999999999)value=value;else value=0;break;case'Language':if(value=='preview')value='english';case'StartDate':if(value=='live'){var d=$F('startDate')+'-'+$F('startDate-1')+'-'+$F('startDate-2');if(d=='--')d='2000-01-01';var hour=$F('startTime-0');if($F('startTime-2')=='PM')hour=parseInt(hour)+12;var t=hour+':'+$F('startTime-1')+':00';value=d+' '+t;}
break;case'EndDate':if(value=='live'){var d=$F('endDate')+'-'+$F('endDate-1')+'-'+$F('endDate-2');if(d=='--')d='2030-01-01';var hour=$F('endTime-0');if($F('endTime-2')=='PM')hour=parseInt(hour)+12;var t=hour+':'+$F('endTime-1')+':00';value=d+' '+t;}
break;case'UseCaptcha':addCaptchaToPreview(value);break;default:break;}
this.FormJson[parameter]=value;},setField:function(value,parameter,columnId){var ret=false;switch(parameter){case'Validation':if(value=='email'){this.eraseValidationIfEmail();}
break;}
this.FormJson.Fields.each(function(Field,index){if(Field.ColumnId==columnId){Field[parameter]=value;switch(parameter){case'RangeMin':Field.RangeType=$F('fieldRangeType');if(!(parseInt(value)>=0)){$('fieldRangeMin').value='';Field.RangeMin=0;}
break;case'RangeMax':Field.RangeType=$F('fieldRangeType');if(!(parseInt(value)>0)){$('fieldRangeMax').value='';Field.RangeMax=0;}
break;case'Validation':if(value=='email'){Field[parameter]=value;}
break;case'DefaultVal':if(Field.Typeof=='address'){Field.DefaultVal='';Field.SubFields[5].DefaultVal=value;}
break;case'IsEncrypted':var countOfEncryptedFields=this.instancesOfProperty('IsEncrypted','1');if(countOfEncryptedFields==1&&value=='1')Lightbox.showUrl('/lightboxes/build-encrypt.php');if(countOfEncryptedFields>5){Field.IsEncrypted='0';$('fieldEncrypted').checked=false;alert('You may only have up to 5 encrypted fields.');}
break;default:break;}
ret=Field;}}.bind(this));return ret;},setChoice:function(value,parameter,columnId,position,ctrl){var ret=false;this.FormJson.Fields.each(function(Field,index){if(Field.ColumnId==columnId){if(Field.Typeof=='checkbox'){if(Field.SubFields[position]){Field.SubFields[position]['ChoicesText']=value;}}
else if(Field.Typeof=='likert'){if(ctrl.up('ul').id=='likertStatements'){if(Field.SubFields[position]){Field.SubFields[position]['ChoicesText']=value;}}
else{if(Field.Choices[position]){Field.Choices[position][parameter]=value;}}}
else{if(Field.Choices[position]){Field.Choices[position][parameter]=value;}}
ret=Field;}}.bind(this));return ret;},appendToClassNames:function(setting,columnId){this.FormJson.Fields.each(function(Field,index){if(Field.ColumnId==columnId){Field.ClassNames=Field.ClassNames+' '+setting;}}.bind(this));},removeFromClassNames:function(setting,columnId){this.FormJson.Fields.each(function(Field,index){if(Field.ColumnId==columnId){Field.ClassNames=Field.ClassNames.gsub(setting,'');}}.bind(this));},addSetting:function(setting,columnId){this.FormJson.Fields.each(function(Field,index){if(Field.ColumnId==columnId){Field.Settings.push(setting);}}.bind(this));},removeSetting:function(setting,columnId){this.FormJson.Fields.each(function(Field,index){if(Field.ColumnId==columnId){Field.Settings=Field.Settings.without(setting);}}.bind(this));},eraseValidationIfEmail:function(){this.FormJson.Fields.each(function(Field,index){if(Field.Typeof=='email'&&Field.Validation=='email'){Field.Validation='';}});},permissionToAddField:function(type){if(type=='textarea'){if(this.instancesOfField(type)>=10){lightbox('Size Restriction','Due to storage space restrictions, a form may have no more than 10 Paragraph fields. The best option is to try and structure certain fields as Single Line text fields.');return false;}}
return true;},instancesOfField:function(type){var tc=0;this.FormJson.Fields.each(function(Field,index){if(Field.Typeof==type)tc++;});return tc;},instancesOfProperty:function(property,value){var tc=0;this.FormJson.Fields.each(function(Field,index){if(Field[property]==value)tc++;});return tc;},selectFieldByColumnId:function(columnId){var ret=this.FormJson.Fields.find(function(Field){return Field.ColumnId==columnId;});return ret;},pageHasNoFields:function(columnId){var nofieldsonpage=true;var prev=$('foli'+columnId).previous();if(prev&&prev.title=='This page has no fields!')prev=prev.previous();if(prev&&!prev.hasClassName('buttons'))nofieldsonpage=false;return nofieldsonpage;}});
var FormEngineObject=Class.create({initialize:function(){Event.observe('wuform','mousedown',selectForm,false);Event.observe($('saveForm'),'click',saveForm,false);$('saveForm').onclick=function(){return false;}},save:function(Form){var url=document.URL.split('/');var urlToUse='/build/';if(url[url.length-2]!='build')urlToUse+=url[url.length-2]+'/';Event.stopObserving($('saveForm'),'click',saveForm,false);var myAjax=new Ajax.Request(urlToUse,{method:'post',parameters:'action=save&form='+encodeURIComponent(Object.toJSON(Form.FormJson)),onComplete:function(r){var ret=r.responseText.evalJSON();Event.observe($('saveForm'),'click',saveForm,false);finishSaving(ret);}.bind(this)});},fetchPageHeader:function(Form){var myAjax=new Ajax.Request('/build/',{method:'post',parameters:'action=pageheader&form='+encodeURIComponent(Object.toJSON(Form.FormJson)),onComplete:function(r){ret=r.responseText.evalJSON();finishPageHeaders(ret);}.bind(this)});},addField:function(Form,json){json.HasntBeenSaved=true;if(json.Typeof=='checkbox'||json.Typeof=='likert'){json.SubFields.each(function(num,index){num.HasntBeenSaved=true;});}
Form.FormJson.Fields.push(json);},removeField:function(Form,Field){var i=-1;Form.FormJson.Fields.each(function(F,index){if(F.ColumnId==Field.ColumnId){i=index;}});if(i>=0)Form.FormJson.Fields.splice(i,1);},addChoice:function(Field,Choice,pos){Field.Choices.splice((pos+1),0,Choice);},removeChoice:function(Field,pos){Field.Choices.splice(pos,1);},addSubField:function(Field,SubField,pos){SubField.HasntBeenSaved=true;Field.SubFields.splice((pos+1),0,SubField);},removeSubField:function(Field,pos){Field.SubFields.splice(pos,1);},setDefaultChoice:function(Field,pos,forceDefault){Field.Choices.each(function(choice,index){if(index==pos&&(choice.IsDefault==0||forceDefault||Field.Typeof=='select'))choice.IsDefault=1;else if(index==pos&&choice.IsDefault==1)choice.IsDefault=0;else if(Field.Typeof!='checkbox')choice.IsDefault=0;});},setDefaultCheckboxChoice:function(Field,pos){Field.SubFields.each(function(subfield,index){if(index==pos&&subfield.DefaultVal==0)subfield.DefaultVal=1;else if(index==pos&&subfield.DefaultVal==1)subfield.DefaultVal=0;});}});
var FieldObject=Class.create({initialize:function(){}});
var FieldEngineObject=Class.create({lastColumnId:1,attributes:{"text":{"FieldCount":1},"email":{"FieldCount":1},"url":{"FieldCount":1},"number":{"FieldCount":1},"textarea":{"FieldCount":1},"file":{"FieldCount":1},"section":{"FieldCount":1},"page":{"FieldCount":1},"time":{"FieldCount":1},"money":{"FieldCount":1},"phone":{"FieldCount":1},"europhone":{"FieldCount":1},"date":{"FieldCount":1},"eurodate":{"FieldCount":1},"shortname":{"FieldCount":2},"name":{"FieldCount":4},"address":{"FieldCount":6},"select":{"FieldCount":1},"radio":{"FieldCount":1},"checkbox":{"FieldCount":100},"likert":{"FieldCount":100}},initialize:function(Form){this.lastColumnId=1;this.formUrl=Form.FormJson.Url;this.Form=Form;Form.FormJson.Fields.each(function(Field,index){this.updateLastColumnId(Field);this.attachLoadEvents(Field.ColumnId);}.bind(this));},attachLoadEvents:function(id){obj=$('foli'+id);if(obj){Event.observe(obj,'click',selectField.bind(obj),false);Event.observe(obj,'mousedown',function(){this.style.cursor='move';}.bind(obj),false);Event.observe(obj,'mouseup',function(){this.style.cursor='pointer';}.bind(obj),false);}},updateLastColumnId:function(field){var newMax=parseInt(field.ColumnId)+this.attributes[field.Typeof].FieldCount;if(newMax>=this.lastColumnId)this.lastColumnId=newMax+1;},generateNewColumnId:function(type){ret=this.lastColumnId;this.lastColumnId+=this.attributes[type].FieldCount;return ret;},addField:function(type,insertAfterElement){var columnId=this.generateNewColumnId(type);var myAjax=new Ajax.Request('/build/',{method:'post',parameters:'action=addfield&type='+type+'&fieldId='+columnId,onComplete:function(r){ret=r.responseText.evalJSON();if(type!='page')finishAddingField(ret,insertAfterElement);else finishAddingPage(ret,insertAfterElement);}.bind(this)});},duplicateField:function(field){var columnId=this.generateNewColumnId(field.Typeof);var myAjax=new Ajax.Request('/build/',{method:'post',parameters:'action=addfield&type='+field.Typeof+'&fieldId='+columnId+'&field='+encodeURIComponent(Object.toJSON(field)),onComplete:function(r){ret=r.responseText.evalJSON();finishAddingField(ret,'foli'+field.ColumnId);}});},changeField:function(field,newType,sameDbColumn){var columnId=field.ColumnId;if(!sameDbColumn)columnId=this.generateNewColumnId(newType);var myAjax=new Ajax.Request('/build/',{method:'post',parameters:'action=changefield&type='+newType+'&fieldId='+columnId+'&field='+encodeURIComponent(Object.toJSON(field)),onComplete:function(r){ret=r.responseText.evalJSON();finishChangingField(ret,field.ColumnId,sameDbColumn);}});},deleteField:function(field){var myAjax=new Ajax.Request('/build/',{method:'post',parameters:'action=delete&field='+encodeURIComponent(Object.toJSON(field))+'&url='+this.formUrl,onComplete:function(r){ret=r.responseText.evalJSON();finishDeletingField(ret);}});},deleteCheckboxChoice:function(field,ctrl){var myAjax=new Ajax.Request('/build/',{method:'post',parameters:'action=delete&field='+encodeURIComponent(Object.toJSON(field))+'&url='+this.formUrl,onComplete:function(r){ret=r.responseText.evalJSON();finishDeletingCheckbox(ret,ctrl);}});},deleteLikertStatement:function(field,ctrl){var myAjax=new Ajax.Request('/build/',{method:'post',parameters:'action=delete&field='+encodeURIComponent(Object.toJSON(field))+'&url='+this.formUrl,onComplete:function(r){ret=r.responseText.evalJSON();finishDeletingLikertStatement(ret,ctrl);}});},displayField:function(field){var myAjax=new Ajax.Request('/build/',{method:'post',parameters:'action=displayfield&field='+encodeURIComponent(Object.toJSON(field)),onComplete:function(r){ret=r.responseText.evalJSON();finishDisplayingField(ret);}});}});
var FieldPreviewObject=Class.create({initialize:function(){},addField:function(markup,insertAfterElement){if(insertAfterElement=='top')$('formFields').insert({top:markup});else if($(insertAfterElement))$(insertAfterElement).insert({after:markup});else{var lastChild=$('formFields').lastChild;if(!lastChild||lastChild.hasClassName('dragable')||lastChild.hasClassName('paging-context')){$('formFields').insert({bottom:markup});}
else lastChild.previous().insert({after:markup});}},modify:function(value,parameter,Field){if(this[parameter]){this[parameter](value,Field);}},Title:function(value,Field){if(Field.Title.length>100){if(!$('fieldTitle').hasClassName('expand'))$('fieldTitle').addClassName('expand');}
else $('fieldTitle').removeClassName('expand');if($('title'+Field.ColumnId)){el=$('title'+Field.ColumnId);value=Field.Title+'<span class="req" id="req_'+Field.ColumnId+'"></span>';if(el)el.innerHTML=value.replace(/\n/g,"<br />");}},Instructions:function(value,Field){el=$('instruct'+Field.ColumnId);if(el){if(Field.Instructions!='')el.removeClassName('hide');else el.addClassName('hide');if(Field.Typeof!='section')el.down().innerHTML=Field.Instructions.replace(/\n/g,"<br />");else el.innerHTML=Field.Instructions.replace(/\n/g,"<br />");}},Size:function(value,Field){$('Field'+Field.ColumnId).removeClassName('small').removeClassName('medium').removeClassName('large');$('Field'+Field.ColumnId).addClassName(Field.Size);},IsRequired:function(value,Field){el=$('req_'+Field.ColumnId);(el&&value=='1')?el.innerHTML=' *':el.innerHTML='';},IsPrivate:function(value,Field){(Field.IsPrivate==1)?Element.addClassName('foli'+Field.ColumnId,'private'):Element.removeClassName('foli'+Field.ColumnId,'private');},Validation:function(value,Field){if(Field.Typeof=='money'){updateFieldDisplay();}},DefaultVal:function(value,Field){switch(Field.Typeof){case'date':break;case'eurodate':break;case'phone':this.defaultPhone(value,Field);break;case'address':this.defaultAddress(value,Field);break;case'page':this.defaultPage(value,Field);break;default:this.defaultText(value,Field);break;}},defaultText:function(value,Field){$('Field'+Field.ColumnId).value=value;},defaultPhone:function(value,Field){$('Field'+Field.ColumnId).value=value.substring(0,3);;$('Field'+Field.ColumnId+'-1').value=value.substring(3,6);;$('Field'+Field.ColumnId+'-2').value=value.substring(6,10);;},defaultAddress:function(value,Field){var countryDropDown=$('foli'+Field.ColumnId).down('select');for(var i=0;i<countryDropDown.options.length;i++){if(countryDropDown.options[i].value==value)countryDropDown.selectedIndex=i;}},defaultPage:function(value,Field){$('previousPageButton'+Field.ColumnId).innerHTML=Field.DefaultVal;},defaultDate:function(value,Field){if(value!=''){var myAjax=new Ajax.Request('/build/',{method:'post',parameters:'action=strtotime&time='+value,onComplete:function(r){ret=r.responseText.evalJSON();defaultVal=ret.response.date.split('/');$('Field'+Field.ColumnId+'-2').value=defaultVal[1];$('Field'+Field.ColumnId+'-1').value=defaultVal[0];$('Field'+Field.ColumnId).value=defaultVal[2];if(Field.Typeof=='eurodate'){$('Field'+Field.ColumnId+'-2').value=defaultVal[0];$('Field'+Field.ColumnId+'-1').value=defaultVal[1];}}});}
else{$('Field'+Field.ColumnId+'-2').value='';$('Field'+Field.ColumnId+'-1').value='';$('Field'+Field.ColumnId).value='';}},ChoicesText:function(value,Field){if(Field.Typeof=='page'){$('nextPageButton'+Field.ColumnId).value=value;}},choiceDefault:function(field,position,ctrl){switch(field.Typeof){case'radio':this.defaultRadio(field,position,ctrl);break;case'select':this.defaultSelect(field,position,ctrl);break;case'checkbox':this.defaultCheckbox(field,position,ctrl);break;case'likert':this.defaultLikert(field,position,ctrl);break;}},defaultRadio:function(field,position,ctrl){var i=$('foli'+field.ColumnId).down('input',(position+1));if(i.checked){i.checked=false;ctrl.checked=false;}
else i.checked=true;},defaultLikert:function(field,position,ctrl){var el=$('foli'+field.ColumnId);var body=el.down('tbody');body.childElements().each(function(num,index){var i=num.down('td',position).down('input');if(i.checked){i.checked=false;ctrl.checked=false;}
else i.checked=true;});},defaultSelect:function(field,position,ctrl){$('Field'+field.ColumnId).selectedIndex=position;},defaultCheckbox:function(field,position,ctrl){var i=$('foli'+field.ColumnId).down('input',position);if(i.checked)i.checked=false;else i.checked=true;},removeField:function(Field){var ctrl=$('foli'+Field.ColumnId);if($('nfip'+Field.ColumnId)){$('nfip'+Field.ColumnId).remove();}
Effect.Fade(ctrl,{duration:.5,afterFinish:function(){ctrl.remove();__BUILD.updatePositionsByHtml();}.bind(this)});},removeFieldWithoutAnimation:function(Field){$('foli'+Field.ColumnId).remove();},updateAfterReorder:function(Field,Form){switch(Field.Typeof){case'section':this.SectionLine(Field);break;case'page':this.updatePageCounter(Field,Form);break;default:break;}},SectionLine:function(Field){if(Field.Typeof=='section'){var el=$('foli'+Field.ColumnId);if(Field.Pos==0)el.addClassName('first');else el.removeClassName('first');}},modifyChoice:function(Field,value,pos,ctrl){switch(Field.Typeof){case'radio':if(value=='')value='&nbsp;'
var el=$('foli'+Field.ColumnId).down('div');el.down('label',pos).innerHTML=value;break;case'select':var el=$('Field'+Field.ColumnId);el.down(pos).innerHTML=value;break;case'checkbox':if(value=='')value='&nbsp;';var el=$('foli'+Field.ColumnId).down('div');el.down('label',pos).innerHTML=value;break;case'likert':if(ctrl.up('ul').id=='likertColumns'){var el=$('foli'+Field.ColumnId).down('thead');el.down('td',pos).innerHTML=value;}
else{var el=$('foli'+Field.ColumnId).down('tbody');el.down('tr',pos).down('th').innerHTML=value;}
break;}},addChoice:function(Field,pos,value){switch(Field.Typeof){case'radio':this.addRadioChoice(Field,pos,value);break;case'select':this.addSelectChoice(Field,pos,value);break;case'checkbox':this.addCheckboxChoice(Field,pos);break;case'likert':this.addLikertChoice(Field,pos);break;}},deleteChoice:function(Field,pos){switch(Field.Typeof){case'radio':this.deleteRadioChoice(Field,pos);break;case'select':this.deleteSelectChoice(Field,pos);break;case'checkbox':this.deleteCheckboxChoice(Field,pos);break;case'likert':this.deleteLikertChoice(Field,pos);break;}},addRadioChoice:function(Field,pos,value){if(value=='')value='&nbsp;';var el=$('foli'+Field.ColumnId).down('div');var markup='<span><input disabled="disabled" id="Field'+Field.ColumnId+'_'+(pos+1)+'"'+' name="Field'+Field.ColumnId+'"'+' class="field radio" type="radio" />'+'<label class="choice" for="Field'+Field.ColumnId+'_'+(pos+1)+'">'+value+'</label></span>';el.down().next('span',pos).insert({after:markup});},deleteRadioChoice:function(Field,pos){var el=$('foli'+Field.ColumnId).down('div');var i=el.down('span',pos);Element.remove(i);},addLikertChoice:function(Field,pos){var el=$('foli'+Field.ColumnId);var tr=el.down('tr',pos+1);var newEl=tr.cloneNode(true);var uniquename=pos+(Math.floor(Math.random()*1000000+1));newEl.childElements().each(function(child,index){if(child.down()&&child.down('input')){var radio=child.down('input');radio.id=radio.id+'_'+index;radio.name=radio.name+'_'+uniquename;}});tr.insert({after:newEl});el.down('tr',pos+2).down('th').innerHTML='&nbsp;';this.highlightLikertStatements(Field);},highlightLikertStatements:function(Field){var el=$('foli'+Field.ColumnId);var body=el.down('tbody');var highlight='';body.childElements().each(function(tr,index){tr.className=highlight;if(highlight=='')highlight='alt';else highlight='';});},deleteLikertChoice:function(Field,pos){var el=$('foli'+Field.ColumnId);var tr=el.down('tr',pos+1);tr.remove();},addSelectChoice:function(Field,pos,value){if(Prototype.Browser.IE){var optn=document.createElement("OPTION");optn.text=value;optn.value=value;$('Field'+Field.ColumnId).options.add(optn,pos+1);}
else $('Field'+Field.ColumnId).down(pos).insert({after:'<option value="'+value+'">'+value+'</option>'});},deleteSelectChoice:function(Field,pos){$('Field'+Field.ColumnId).down(pos).remove();},addCheckboxChoice:function(Field,pos){var lastCheckbox=$('foli'+Field.ColumnId).down('span',(pos+1));var markup='<span><input disabled="disabled" id="Field'+Field.ColumnId+'_'+(pos+1)+'"'+' name="Field'+Field.ColumnId+'"'+' class="field checkbox" type="checkbox" />'+'<label class="choice" for="Field'+Field.ColumnId+'_'+(pos+1)+'">&nbsp;</label></span>';lastCheckbox.insert({after:markup});},deleteCheckboxChoice:function(Field,pos){var el=$('foli'+Field.ColumnId).down('div');var i=el.down('span',pos);Element.remove(i);},addNoFieldsInPage:function(columnId,Form){if(!$('nfip'+columnId)){var markup='<div id="nfip'+columnId+'" class="nofieldsonpage notice" title="This page has no fields!">'+$('nofieldsonpage').innerHTML+'</div>';var location='top';if($('foli'+columnId).previous())location=$('foli'+columnId).previous();this.addField(markup,location);}},removeNoFieldsInPage:function(Form,Field){if(!Form.pageHasNoFields(Field.ColumnId)){if($('nfip'+Field.ColumnId)){$('nfip'+Field.ColumnId).remove();}}
else{this.addNoFieldsInPage(Field.ColumnId,Form);}},updatePageCounter:function(Field,Form){var pages=Form.instancesOfField('page');var prevbutton=$$('#foli'+Field.ColumnId+' .hasprev')[0];var nextbutton=$$('#foli'+Field.ColumnId+' .hasnext')[0];$('pagecurrent'+Field.ColumnId).innerHTML=Field.Page;$('pagetotal'+Field.ColumnId).innerHTML=pages;if(Field.Page==1)prevbutton.addClassName('hide');else prevbutton.removeClassName('hide');if(Field.Page==pages)nextbutton.addClassName('hide');else nextbutton.removeClassName('hide');},handlePagingAfterAction:function(Form){Form.FormJson.Fields.each(function(Field,index){if(Field.Typeof=='page'){this.removeNoFieldsInPage(Form,Field);}}.bind(this));},removeDragable:function(ColumnId){$('foli'+ColumnId).removeClassName('dragable');}});
var Interface=Class.create({scrolling:false,afterScrollTime:0,scrollTime:-1,initialize:function(){this.initButtons();},hideStatus:function(){hideStatus();},initButtons:function(){this.adjustButtons();Event.observe(window,'scroll',this.adjustButtons.bind(this),false);Event.observe(window,'resize',this.adjustButtons.bind(this),false);Event.observe(window,'scroll',this.afterScroll.bind(this),false);},showSaveButton:function(){Element.removeClassName('formButtons','hide');},hideSaveButton:function(){Element.addClassName('formButtons','hide');},showNoFields:function(){Element.removeClassName('container','hasFields');},hideNoFields:function(){Element.addClassName('container','hasFields');},highlightField:function(id){if(id>=0){Element.addClassName('foli'+id,'editing focused');}
this.unhighlightForm();},unhighlightField:function(id){if(id>=0){Element.removeClassName('foli'+id,'editing');Element.removeClassName('foli'+id,'focused');}},highlightForm:function(){Element.addClassName('wuform','editing');new Effect.ScrollTo('container',{duration:.2});},unhighlightForm:function(){Element.removeClassName('wuform','editing');},showFormActivity:function(){$('listStartDate').removeClassName('hide');$('listEndDate').removeClassName('hide');},hideFormActivity:function(){$('listStartDate').addClassName('hide');$('listEndDate').addClassName('hide');},showFormPassword:function(){Element.removeClassName('formPasswordDiv','hide');},hideFormPassword:function(){Element.addClassName('formPasswordDiv','hide');},showFormConfirmationMessage:function(){Element.removeClassName('formMessageVal','hide');Element.addClassName('formRedirectVal','hide');},showFormRedirectUrl:function(){Element.addClassName('formMessageVal','hide');Element.removeClassName('formRedirectVal','hide');},showConfirmationEmailToUser:function(){$('formReceiptDiv').removeClassName('hide');},hideConfirmationEmailToUser:function(){$('formReceiptDiv').addClassName('hide');},snapFieldProperties:function(list){if(list.innerHTML){propsPos=$(list).cumulativeOffset()[1]-150;if(propsPos<0)propsPos=0;$('fieldProperties').style.marginTop=propsPos+'px';}},adjustButtons:function(){var scrollCovered=document.viewport.getScrollOffsets()['top']+document.viewport.getHeight();(document.viewport.getHeight()<=$('build').offsetHeight&&scrollCovered<=$('container').offsetHeight*.96)?$('container').addClassName('tooLong'):$('container').removeClassName('tooLong');},adjustAdd:function(){if(document.viewport.getHeight()>=550&&document.viewport.getScrollOffsets()['top']>=document.viewport.getHeight()*.20){offset=(document.viewport.getHeight()/2)-($('addFields').offsetHeight/2)-75;}
else{offset=0;}
var value=document.viewport.getScrollOffsets()['top']+offset+'px';$('addFields').morph('margin-top:'+value,{duration:.5});},afterScroll:function(){if(!this.scrolling){this.scrolling=true;this.scrollTime=new Date().getTime();setTimeout(this.scrollCheck.bind(this),100);}},scrollCheck:function(){if(this.scrollTime==this.afterScrollTime){this.scrolling=false;this.afterScrollTime=0;this.scrollTime=-1;this.adjustAdd();}
else{this.afterScrollTime=this.scrollTime;setTimeout(arguments.callee.bind(this),100);}}});
var FormBuilder=Class.create({UI:new Interface(),Tabs:new TabInterface(),Profile:new AccountProfile(),Form:new FormObject(),FormEngine:new FormEngineObject(),FormPreview:new FormPreviewObject(),Field:new FieldObject(),FieldPreview:'',FieldProperties:new FieldPropertiesObject(),FieldEngine:'',FormProperties:'',DragDrop:'',hasntSaved:false,activeField:'',initialize:function(){this.FieldEngine=new FieldEngineObject(this.Form);this.FormProperties=new FormPropertiesObject();this.FieldPreview=new FieldPreviewObject();this.DragDrop=new DragDropObject();this.updatePositionsByHtml();window.onbeforeunload=this.wannaLeave.bind(this);this.UI.hideStatus();},wannaLeave:function(){unlockSession()
if(this.hasntSaved){return"YOU HAVEN'T SAVED YET AND\nYOU'LL BE ABANDONING YOUR CHANGES.";}},selectForm:function(){this.UI.unhighlightField(this.activeField);this.UI.highlightForm();this.FormProperties.populate(this.Form,this.Profile);this.Tabs.showSidebar('formProperties');this.Tabs.thirdTab();this.activeField=-1;this.UI.adjustButtons();},updateForm:function(value,parameter){this.Form.set(value,parameter);this.FormPreview.modify(value,parameter,this.Form);this.hasntSaved=true;},saveForm:function(){$('statusText').innerHTML='Saving form data ...';$('saveForm').innerHTML='<img src="/images/icons/arrow_refresh.png" /> Saving';this.Form.set($('main').offsetHeight,'OffsetHeight');this.FormEngine.save(this.Form);},processSaveSuccess:function(ret){this.hasntSaved=false;if(ret.response.firstForm==true)document.location='/admin/';else Lightbox.showUrl('/lightboxes/FormBuilder.Wdywtdn.php?url='+ret.response.url,false,'modal');},processSaveError:function(ret){$('saveForm').innerHTML='<img src="/images/icons/tick.png" /> Save Form';Lightbox.showContent(ret.response.lbmarkup);},showFormActivity:function(){this.UI.showFormActivity();},hideFormActivity:function(){this.UI.hideFormActivity();this.Form.set('2000-01-01 12:00:00','StartDate');this.Form.set('2030-01-01 12:00:00','EndDate');},showFormPassword:function(){this.UI.showFormPassword();},hideFormPassword:function(){this.UI.hideFormPassword();this.Form.set('','Password');$('formPasswordVal').value='';},showFormRedirectUrl:function(){this.Form.set($F('formRedirectVal'),'Redirect');this.UI.showFormRedirectUrl();},showFormConfirmationMessage:function(){this.Form.set('','Redirect');this.UI.showFormConfirmationMessage();},addCaptchaToPreview:function(useCaptcha){if(useCaptcha==2)$('forceCaptcha').removeClassName('hide');else $('forceCaptcha').addClassName('hide');},showConfirmationEmailToUser:function(){this.UI.showConfirmationEmailToUser();},hideConfirmationEmailToUser:function(){this.Form.eraseValidationIfEmail();$('formSendTo').selectedIndex=0;this.UI.hideConfirmationEmailToUser();},displayReceiptLightbox:function(){this.FormProperties.displayReceiptLightbox();},finishLoadingReceiptLightbox:function(){if(this.Form.FormJson.FormId>0){$('receiptApi').innerHTML=$('receiptApi').innerHTML+' or view <a id="api" target="_blank" href="https://'+document.domain+'/api/code/'+this.Form.FormJson.FormId+'/">API Settings</a> for this form.';}
this.FormProperties.populateReceiptLightbox(this.Form);this.UI.hideStatus();},finishPageHeaders:function(ret){this.FormPreview.replaceHeader(ret.response.markup);},showFields:function(pulse){this.UI.unhighlightField(this.activeField);this.UI.unhighlightForm();this.Tabs.showFields(pulse);this.UI.adjustButtons();this.activeField=-1;},selectField:function(ctrl){var columnId=-1;if(ctrl.id)columnId=ctrl.id.replace('foli','');else{if(this.Form.FormJson.Fields[0])columnId=this.Form.FormJson.Fields[0].ColumnId;}
if(columnId!=this.activeField||columnId==-1){this.UI.unhighlightField(this.activeField);if(columnId>=0)this.activeField=columnId;this.Tabs.showFieldProperties(columnId);this.UI.highlightField(columnId);if(columnId>=0)this.FieldProperties.display(this.Form.selectFieldByColumnId(columnId));this.UI.snapFieldProperties(ctrl);this.UI.adjustButtons();}},addField:function(type,insertAfterElement){if(this.Profile.permissionToAddField(type,this.Form.FormJson.Fields.length,false)&&this.Form.permissionToAddField(type)){$('statusText').innerHTML='Adding a new field ...';this.FieldEngine.addField(type,insertAfterElement);this.UI.hideNoFields();this.UI.showSaveButton();this.UI.adjustButtons();this.hasntSaved=true;}},processAddSuccess:function(ret,insertAfterElement,nodrag){this.FieldPreview.addField(ret.response.html,insertAfterElement,nodrag);this.FormEngine.addField(this.Form,ret.response.json.evalJSON());this.updatePositionsByHtml();if(!nodrag)this.DragDrop.grantFieldDragAbility();this.FieldPreview.handlePagingAfterAction(this.Form);Event.observe($('foli'+ret.response.id),'click',selectField.bind($('foli'+ret.response.id)),false);},finishAddingPage:function(ret,insertAfterElement){var nodrag=false;var pages=this.Form.instancesOfField('page');if(pages==1)nodrag=true;this.processAddSuccess(ret,insertAfterElement,nodrag);if(pages==0)this.addField('page','');if(pages==1)this.FieldPreview.removeDragable(ret.response.id);this.FormEngine.fetchPageHeader(this.Form);},processAddError:function(ret){Lightbox.showContent(ret.response.lbmarkup);},addFieldAfterDraggingComplete:function(){var insertAfter='top';var dragDropBox=$('formFields').select('.dragfld')[0];var fieldType=dragDropBox.id.replace('drag1_','').replace('drag2_','').replace('drag3_','').replace('drag4_','');if(dragDropBox.previous())insertAfter=dragDropBox.previous().id;this.addField(fieldType,insertAfter);this.DragDrop.returnButtonToAddFieldMenu(dragDropBox);},duplicateField:function(columnId,e){var fieldToDuplicate=this.Form.selectFieldByColumnId(columnId);if(this.Profile.permissionToAddField(fieldToDuplicate.Typeof,this.Form.FormJson.Fields.length)&&this.Form.permissionToAddField(fieldToDuplicate.Typeof)){$('statusText').innerHTML='Adding a new field ...';this.FieldEngine.duplicateField(fieldToDuplicate);}},deleteField:function(columnId,e){if(!e)var e=window.event;e.cancelBubble=true;if(e.stopPropagation)e.stopPropagation();if(this.Form.FormJson.Fields.length>1||this.Form.FormJson.FormId<1){var fieldToDelete=this.Form.selectFieldByColumnId(columnId);if(fieldToDelete.HasntBeenSaved){this.finishDeletingField({'ColumnId':columnId});}
else{Lightbox.showUrl('/lightboxes/Field.Delete.php',function(){$('deleteFieldId').value=fieldToDelete.ColumnId;},'error');}}
else{lightbox('Unable to delete this field!','You must have at least 1 field in your form.');}},continueDeletingField:function(){var fieldToDelete=this.Form.selectFieldByColumnId($F('deleteFieldId'));Lightbox.close();this.FieldEngine.deleteField(fieldToDelete);},finishDeletingField:function(ret){var field=this.Form.selectFieldByColumnId(ret.ColumnId);this.FieldPreview.removeField(field);this.FormEngine.removeField(this.Form,field);this.Tabs.showFieldProperties(-1);this.activeField=-1;if(this.Form.FormJson.Fields.length<=0){this.UI.showNoFields();this.UI.hideSaveButton();}
this.UI.adjustButtons();this.checkAndDeleteLastPage();},checkAndDeleteLastPage:function(){if(this.Form.instancesOfField('page')==1){var id=$('formFields').lastChild.id;id=id.replace('foli','');this.deleteField(id);}},processDeleteError:function(ret){Lightbox.showContent(ret.response.lbmarkup);},updatePositionsByHtml:function(){var allFields=$('formFields');allFields.cleanWhitespace();var page=1;var count=0;$A(allFields.childNodes).each(function(num,index){if(num.id.startsWith('foli')){field_in_loop=num.id.replace('foli','');var f=this.Form.setField(count,'Pos',field_in_loop);f.Page=page;if(f.Typeof=='page')page+=1;this.FieldPreview.updateAfterReorder(f,this.Form);if(this.activeField==f.ColumnId)this.FieldProperties.position(f.Pos);count++;}}.bind(this));this.FieldPreview.handlePagingAfterAction(this.Form);},updateField:function(value,parameter,columnId){if(!columnId)columnId=this.activeField;var Field=this.Form.setField(value,parameter,columnId);if(!this.updatePageBreak(value,parameter,Field)){this.FieldPreview.modify(value,parameter,Field);this.FieldProperties.onFieldUpdate(Field,parameter);}
this.hasntSaved=true;},updatePageBreak:function(value,parameter,Field){var ret=false;if(Field.Typeof=='page'){if(parameter=='Title'){this.FormPreview.modify(value,'PageHeader',this.Form,Field);ret=true;}}
return ret;},removeEncryption:function(){this.updateField('0','IsEncrypted');$('fieldEncrypted').checked=false;Lightbox.close();},defaultDate:function(value){var field=this.Form.selectFieldByColumnId(this.activeField);this.FieldPreview.defaultDate(value,field);},updateFieldDisplay:function(){var fieldToChange=this.Form.selectFieldByColumnId(this.activeField);this.FieldEngine.displayField(fieldToChange);},finishDisplayingField:function(ret){var insertAfter=$('foli'+ret.response.id).previous();if(!insertAfter)insertAfter='top';else insertAfter=insertAfter.id;$('foli'+ret.response.id).remove();this.FieldPreview.addField(ret.response.html,insertAfter);this.DragDrop.grantFieldDragAbility();Event.observe($('foli'+ret.response.id),'click',selectField.bind($('foli'+ret.response.id)),false);this.UI.highlightField(ret.response.id);},changeFieldType:function(newType,sameDbColumn){if(this.Profile.permissionToAddField(newType,this.Form.FormJson.Fields.length,true)&&this.Form.permissionToAddField(newType)){var fieldToChange=this.Form.selectFieldByColumnId(this.activeField);this.FieldEngine.changeField(fieldToChange,newType,sameDbColumn);this.hasntSaved=true;}},finishChangingField:function(ret,originalField,sameDbColumn){var originalField=this.Form.selectFieldByColumnId(originalField);this.FormEngine.removeField(this.Form,originalField);this.processAddSuccess(ret,'foli'+originalField.ColumnId);this.FieldPreview.removeFieldWithoutAnimation(originalField);this.updatePositionsByHtml();this.activeField=-1;if(sameDbColumn&&!originalField.HasntBeenSaved){var newField=this.Form.selectFieldByColumnId(ret.response.id);newField.HasntBeenSaved=false;}
this.selectField($('foli'+ret.response.id));Event.observe($('foli'+ret.response.id),'click',selectField.bind($('foli'+ret.response.id)),false);},toggleChoicesLayout:function(setting){var settings=new Array('notStacked','twoColumns','threeColumns');for(var i=0;i<settings.length;i++){this.Form.removeSetting(settings[i],this.activeField);$('foli'+this.activeField).removeClassName(settings[i]);}
this.Form.addSetting(setting,this.activeField);$('foli'+this.activeField).addClassName(setting);},updateChoice:function(ctrl){var position=$(ctrl).up().previousSiblings().length;var value=$F(ctrl);var fieldBeingUpdated=this.Form.setChoice(value,'Choice',this.activeField,position,ctrl);this.FieldPreview.modifyChoice(fieldBeingUpdated,value,position,ctrl);this.hasntSaved=true;},addChoice:function(ctrl,value){var position=$(ctrl).up().previousSiblings().length;if(!value)value='';var field=this.Form.selectFieldByColumnId(this.activeField);this.FieldProperties.insertChoice(ctrl.up(),value,field.Typeof);if(field.Typeof=='checkbox')this.FormEngine.addSubField(field,{"Title":"","ChoicesText":value,"DefaultVal":"0"},position);else this.FormEngine.addChoice(field,{"Choice":value,"IsDefault":"0"},position);this.FieldPreview.addChoice(field,position,value);},addSubField:function(ctrl,value){var position=$(ctrl).up().previousSiblings().length;if(!value)value='';var field=this.Form.selectFieldByColumnId(this.activeField);var ftype=field.Typeof;if(field.Typeof=='likert')ftype='statement';if(field.SubFields.length<95){this.FieldProperties.insertChoice(ctrl.up(),value,ftype);this.FormEngine.addSubField(field,{"Title":"","ChoicesText":value,"DefaultVal":"0"},position);this.FieldPreview.addChoice(field,position,value);}
else{alert('This field is allowed a maximum of 95 options.');}},deleteSubField:function(ctrl,value){var field=this.Form.selectFieldByColumnId(this.activeField);var position=$(ctrl).up().previousSiblings().length;if(position==0&&field.SubFields&&field.SubFields.length==1){Element.previous(ctrl,'input').value='';this.updateChoice(Element.previous(ctrl,'input'));}
else{this.FieldProperties.deleteChoice(ctrl.parentNode);this.FieldPreview.deleteChoice(field,position);this.FormEngine.removeSubField(field,position);if(field.Typeof=='likert')this.FieldPreview.highlightLikertStatements(field);}},addLikertChoice:function(ctrl,value){var position=$(ctrl).up().previousSiblings().length;if(!value)value='';var field=this.Form.selectFieldByColumnId(this.activeField);if(field.Choices.length<10||(field.Choices.length<11&&field.Validation=='na')){this.FieldProperties.insertChoice(ctrl.up(),value,'column');this.FormEngine.addChoice(field,{"Choice":value,"IsDefault":"0"},position);this.FieldEngine.displayField(field);}
else{alert('This field is allowed a maximum of 10 columns.');}},deleteLikertChoice:function(ctrl,value){var field=this.Form.selectFieldByColumnId(this.activeField);var position=$(ctrl).up().previousSiblings().length;if(position==0&&field.Choices&&field.Choices.length==1){Element.previous(ctrl,'input').value='';this.updateChoice(Element.previous(ctrl,'input'));}
else{var toggleNa=false;if(!$(ctrl).up().next())toggleNa=true;this.FieldProperties.deleteChoice(ctrl.parentNode);this.FormEngine.removeChoice(field,position);this.FieldEngine.displayField(field);if(toggleNa&&field.Validation=='na'){$('fieldNA').checked=false;this.updateField(field.ColumnId,'Validation');}}},deleteChoice:function(ctrl){var field=this.Form.selectFieldByColumnId(this.activeField);var position=$(ctrl).up().previousSiblings().length;if(position==0&&((field.Choices&&field.Choices.length==1)||(field.SubFields&&field.SubFields.length==1))){Element.previous(ctrl,'input').value='';this.updateChoice(Element.previous(ctrl,'input'));}
else{var toggleOther=false;if(!$(ctrl).up().next())toggleOther=true;this.FieldProperties.deleteChoice(ctrl.parentNode);this.FieldPreview.deleteChoice(field,position);if(field.Typeof=='checkbox')this.FormEngine.removeSubField(field,position);else this.FormEngine.removeChoice(field,position);if(field.Typeof=='radio'&&field.Settings.indexOf('other')!=-1&&toggleOther){this.Form.removeSetting('other',this.activeField);$('fieldOther').checked=false;this.updateFieldDisplay();}}},changeChoiceDefault:function(ctrl){var field=this.Form.selectFieldByColumnId(this.activeField);var position=$(ctrl).up().previousSiblings().length;if(field.Typeof=='checkbox')this.FormEngine.setDefaultCheckboxChoice(field,position);else this.FormEngine.setDefaultChoice(field,position);this.FieldPreview.choiceDefault(field,position,ctrl);this.FieldProperties.onFieldUpdate(field,'IsDefault');},toggleRadioOther:function(checked){var list=$('fieldChoices');var clickedEl=list.down('li',list.childElements().length-1).down('img');if(checked){this.Form.addSetting('other',this.activeField);this.addChoice(clickedEl,'Other');this.FieldProperties.highlightRadioOther(list.down('li',list.childElements().length-1));list.down('li',list.childElements().length-1).down('img').remove();this.updateFieldDisplay();}
else{this.Form.removeSetting('other',this.activeField);this.deleteChoice(clickedEl);this.updateFieldDisplay();}},processBulkAddition:function(choices){var field=this.Form.selectFieldByColumnId(this.activeField);if(!this.currentlyAddingChoices){this.currentlyAddingChoices=true;choices.each(function(choice){ctrl=$('fieldChoices').down('li',$('fieldChoices').childElements().length-1);choiceTextField=ctrl.down('img');if(choiceTextField.parentNode.hasClassName('dropReq')&&field.Typeof!='select'){ctrl=$('fieldChoices').down('li',$('fieldChoices').childElements().length-1);choiceTextField=ctrl.previous().down('img');}
this.addChoice(choiceTextField,choice);}.bind(this));}
this.currentlyAddingChoices=false;},processBulkLikertAddition:function(choices){var field=this.Form.selectFieldByColumnId(this.activeField);var showAlert=false;if(field.Choices.length+choices.length>10&&field.Validation!='na')showAlert=true;if(field.Choices.length+choices.length>11&&field.Validation=='na')showAlert=true;if(!this.currentlyAddingChoices){this.currentlyAddingChoices=true;choices.each(function(choice){if(field.Choices.length<10||(field.Choices.length<11&&field.Validation=='na')){var ctrl=$('likertColumns').lastChild.childNodes[2];if(field.Validation=='na'){ctrl=$('likertColumns').down('li',$('likertColumns').childElements().length-1);ctrl=ctrl.previous().childNodes[2];}
var position=$(ctrl).up().previousSiblings().length;this.FieldProperties.insertChoice(ctrl.up(),choice,'column');this.FormEngine.addChoice(field,{"Choice":choice,"IsDefault":"0"},position);}}.bind(this));}
this.currentlyAddingChoices=false;this.FieldEngine.displayField(field);if(showAlert)alert('Not all choices were added since the maximum of 10 choices was exceeded.');},deleteCheckbox:function(ctrl){var field=this.Form.selectFieldByColumnId(this.activeField);var position=$(ctrl).up().previousSiblings().length;subfield=field.SubFields[position];if(subfield.HasntBeenSaved||confirm('Deleting this choice will also delete all data associated with it. This cannot be undone. Are you sure you want to delete this choice?')){if(subfield.HasntBeenSaved)this.deleteChoice(ctrl);else{subfield.Typeof='text';subfield.FormId=field.FormId;this.FieldEngine.deleteCheckboxChoice(subfield,ctrl);}}},deleteLikertStatement:function(ctrl){var field=this.Form.selectFieldByColumnId(this.activeField);var position=$(ctrl).up().previousSiblings().length;subfield=field.SubFields[position];if(subfield.HasntBeenSaved||confirm('Deleting this choice will also delete all data associated with it. This cannot be undone. Are you sure you want to delete this choice?')){if(subfield.HasntBeenSaved)this.deleteSubField(ctrl);else{subfield.Typeof='text';subfield.FormId=field.FormId;this.FieldEngine.deleteLikertStatement(subfield,ctrl);}}},toggleLikertNumbers:function(checked){if(checked){this.Form.addSetting('hideNumbers',this.activeField);$('foli'+this.activeField).addClassName('hideNumbers');}
else{this.Form.removeSetting('hideNumbers',this.activeField);$('foli'+this.activeField).removeClassName('hideNumbers');}},toggleLikertNonApplicable:function(checked){var list=$('likertColumns');var clickedEl=list.down('li',list.childElements().length-1).down('img');if(checked){this.updateField('na','Validation');this.addLikertChoice(clickedEl,'N/A');this.FieldProperties.highlightLikertColumn(list.down('li',list.childElements().length-1));list.down('li',list.childElements().length-1).down('img').remove();}
else{this.updateField('','Validation');this.deleteLikertChoice(clickedEl);}}});
var __BUILD;Event.observe(window,'load',init,false);function init(){__BUILD=new FormBuilder();initBulkAdd();}
function selectForm(){__BUILD.selectForm();}
function updateForm(value,parameter){if(value.replace)value=value.replace(/\\\"/g,"\\ \"");__BUILD.updateForm(value,parameter);}
function saveForm(){__BUILD.saveForm();}
function finishSaving(ret){if(ret.success=='false')__BUILD.processSaveError(ret);else __BUILD.processSaveSuccess(ret);}
function addCaptchaToPreview(useCaptcha){__BUILD.addCaptchaToPreview(useCaptcha);}
function toggleFormConfirmationEmail(setting){if(setting)__BUILD.showConfirmationEmailToUser();else __BUILD.hideConfirmationEmailToUser();}
function displayReceiptLightbox(){__BUILD.displayReceiptLightbox();}
function finishLoadingReceiptLightbox(){__BUILD.finishLoadingReceiptLightbox();}
function toggleFormActivity(setting){if(setting)__BUILD.showFormActivity();else __BUILD.hideFormActivity();}
function selectFormActivity(cal){var p=cal.params;var update=(cal.dateClicked||p.electric);year=p.inputField.id;day=year+'-2';month=year+'-1';document.getElementById(month).value=cal.date.print('%m');document.getElementById(day).value=cal.date.print('%e');document.getElementById(year).value=cal.date.print('%Y');if(year=='startDate')updateForm('live','StartDate');if(year=='endDate')updateForm('live','EndDate');}
function toggleFormPassword(setting){if(setting)__BUILD.showFormPassword();else __BUILD.hideFormPassword();}
function toggleFormRedirect(setting){if(setting=='url')__BUILD.showFormRedirectUrl();else __BUILD.showFormConfirmationMessage();}
function finishPageHeaders(ret){if(ret.success=='false')__BUILD.processSaveError(ret);else __BUILD.finishPageHeaders(ret);}
function showFields(pulse){__BUILD.showFields(pulse);}
function selectField(ctrl){__BUILD.selectField(this);}
function addField(type){__BUILD.addField(type);}
function addFieldAfterDraggingComplete(){__BUILD.addFieldAfterDraggingComplete();}
function finishAddingField(ret,insertAfterElement){if(ret.success=='false')__BUILD.processAddError(ret);else __BUILD.processAddSuccess(ret,insertAfterElement);}
function finishAddingPage(ret,insertAfterElement){if(ret.success=='false')__BUILD.processAddError(ret);else __BUILD.finishAddingPage(ret,insertAfterElement);}
function duplicateField(columnId,e){__BUILD.duplicateField(columnId,e);}
function continueDeletingField(){__BUILD.continueDeletingField();}
function changeFieldType(newType,sameDbColumn){__BUILD.changeFieldType(newType,sameDbColumn);}
function finishChangingField(ret,originalField,sameDbColumn){if(ret.success=='false')__BUILD.processAddError(ret);else __BUILD.finishChangingField(ret,originalField,sameDbColumn);}
function removeField(columnId,e){__BUILD.deleteField(columnId,e);}
function finishDeletingField(ret){if(ret.success=='false')__BUILD.processDeleteError(ret);else __BUILD.finishDeletingField(ret.response);}
function updateProperties(value,parameter,pos){if(value.replace)value=value.replace(/\\\"/g,"\\ \"");__BUILD.updateField(value,parameter,pos);}
function updateFieldDisplay(){__BUILD.updateFieldDisplay();}
function finishDisplayingField(ret){if(ret.success=='false')__BUILD.processAddError(ret);else __BUILD.finishDisplayingField(ret);}
function defaultDate(value){__BUILD.defaultDate(value);}
function reorderField(){__BUILD.updatePositionsByHtml();}
function removeEncryption(){__BUILD.removeEncryption();}
function toggleLikertNumbers(checked){__BUILD.toggleLikertNumbers(checked);}
function toggleLikertNonApplicable(checked){__BUILD.toggleLikertNonApplicable(checked);}
function toggleChoicesLayout(setting){__BUILD.toggleChoicesLayout(setting);}
function updateChoice(ctrl){__BUILD.updateChoice(ctrl);}
function addRadio(ctrl,value){__BUILD.addChoice(ctrl,value);}
function deleteRadio(ctrl){__BUILD.deleteChoice(ctrl);}
function changeRadioDefault(ctrl){__BUILD.changeChoiceDefault(ctrl);}
function toggleRadioOther(checked){__BUILD.toggleRadioOther(checked);}
function addSelect(ctrl,value){__BUILD.addChoice(ctrl,value);}
function deleteSelect(ctrl){__BUILD.deleteChoice(ctrl);}
function changeSelectDefault(ctrl){__BUILD.changeChoiceDefault(ctrl);}
function processBulkAddition(choices){__BUILD.processBulkAddition(choices);}
function addCheckbox(ctrl,value){__BUILD.addSubField(ctrl,value);}
function deleteCheckbox(ctrl){__BUILD.deleteCheckbox(ctrl);}
function finishDeletingCheckbox(ret,ctrl){if(ret.success=='false')__BUILD.processDeleteError(ret);else __BUILD.deleteChoice(ctrl);}
function changeCheckboxDefault(ctrl){__BUILD.changeChoiceDefault(ctrl);}
function addLikertStatement(ctrl,value){__BUILD.addSubField(ctrl,value);}
function deleteLikertStatement(ctrl,value){__BUILD.deleteLikertStatement(ctrl,value);}
function finishDeletingLikertStatement(ret,ctrl){if(ret.success=='false')__BUILD.processDeleteError(ret);else __BUILD.deleteSubField(ctrl);}
function addLikertChoice(ctrl,value){__BUILD.addLikertChoice(ctrl,value);}
function deleteLikertChoice(ctrl,value){__BUILD.deleteLikertChoice(ctrl,value);}
function processBulkLikertAddition(choices){__BUILD.processBulkLikertAddition(choices);}
function changeLikertDefault(ctrl){__BUILD.changeChoiceDefault(ctrl);}
Calendar=function(firstDayOfWeek,dateStr,onSelected,onClose){this.activeDiv=null;this.currentDateEl=null;this.getDateStatus=null;this.getDateToolTip=null;this.getDateText=null;this.timeout=null;this.onSelected=onSelected||null;this.onClose=onClose||null;this.dragging=false;this.hidden=false;this.minYear=1970;this.maxYear=2050;this.dateFormat=Calendar._TT["DEF_DATE_FORMAT"];this.ttDateFormat=Calendar._TT["TT_DATE_FORMAT"];this.isPopup=true;this.weekNumbers=true;this.firstDayOfWeek=typeof firstDayOfWeek=="number"?firstDayOfWeek:Calendar._FD;this.showsOtherMonths=false;this.dateStr=dateStr;this.ar_days=null;this.showsTime=false;this.time24=true;this.yearStep=2;this.hiliteToday=true;this.multiple=null;this.table=null;this.element=null;this.tbody=null;this.firstdayname=null;this.monthsCombo=null;this.yearsCombo=null;this.hilitedMonth=null;this.activeMonth=null;this.hilitedYear=null;this.activeYear=null;this.dateClicked=false;if(typeof Calendar._SDN=="undefined"){if(typeof Calendar._SDN_len=="undefined")
Calendar._SDN_len=3;var ar=new Array();for(var i=8;i>0;){ar[--i]=Calendar._DN[i].substr(0,Calendar._SDN_len);}
Calendar._SDN=ar;if(typeof Calendar._SMN_len=="undefined")
Calendar._SMN_len=3;ar=new Array();for(var i=12;i>0;){ar[--i]=Calendar._MN[i].substr(0,Calendar._SMN_len);}
Calendar._SMN=ar;}};Calendar._C=null;Calendar.is_ie=(/msie/i.test(navigator.userAgent)&&!/opera/i.test(navigator.userAgent));Calendar.is_ie5=(Calendar.is_ie&&/msie 5\.0/i.test(navigator.userAgent));Calendar.is_opera=/opera/i.test(navigator.userAgent);Calendar.is_khtml=/Konqueror|Safari|KHTML/i.test(navigator.userAgent);Calendar.getAbsolutePos=function(el){var SL=0,ST=0;var is_div=/^div$/i.test(el.tagName);if(is_div&&el.scrollLeft)
SL=el.scrollLeft;if(is_div&&el.scrollTop)
ST=el.scrollTop;var r={x:el.offsetLeft-SL,y:el.offsetTop-ST};if(el.offsetParent){var tmp=this.getAbsolutePos(el.offsetParent);r.x+=tmp.x;r.y+=tmp.y;}
return r;};Calendar.isRelated=function(el,evt){var related=evt.relatedTarget;if(!related){var type=evt.type;if(type=="mouseover"){related=evt.fromElement;}else if(type=="mouseout"){related=evt.toElement;}}
while(related){if(related==el){return true;}
related=related.parentNode;}
return false;};Calendar.removeClass=function(el,className){if(!(el&&el.className)){return;}
var cls=el.className.split(" ");var ar=new Array();for(var i=cls.length;i>0;){if(cls[--i]!=className){ar[ar.length]=cls[i];}}
el.className=ar.join(" ");};Calendar.addClass=function(el,className){Calendar.removeClass(el,className);el.className+=" "+className;};Calendar.getElement=function(ev){var f=Calendar.is_ie?window.event.srcElement:ev.currentTarget;while(f.nodeType!=1||/^div$/i.test(f.tagName))
f=f.parentNode;return f;};Calendar.getTargetElement=function(ev){var f=Calendar.is_ie?window.event.srcElement:ev.target;while(f.nodeType!=1)
f=f.parentNode;return f;};Calendar.stopEvent=function(ev){ev||(ev=window.event);if(Calendar.is_ie){ev.cancelBubble=true;ev.returnValue=false;}else{ev.preventDefault();ev.stopPropagation();}
return false;};Calendar.addEvent=function(el,evname,func){if(el.attachEvent){el.attachEvent("on"+evname,func);}else if(el.addEventListener){el.addEventListener(evname,func,true);}else{el["on"+evname]=func;}};Calendar.removeEvent=function(el,evname,func){if(el.detachEvent){el.detachEvent("on"+evname,func);}else if(el.removeEventListener){el.removeEventListener(evname,func,true);}else{el["on"+evname]=null;}};Calendar.createElement=function(type,parent){var el=null;if(document.createElementNS){el=document.createElementNS("http://www.w3.org/1999/xhtml",type);}else{el=document.createElement(type);}
if(typeof parent!="undefined"){parent.appendChild(el);}
return el;};Calendar._add_evs=function(el){with(Calendar){addEvent(el,"mouseover",dayMouseOver);addEvent(el,"mousedown",dayMouseDown);addEvent(el,"mouseout",dayMouseOut);if(is_ie){addEvent(el,"dblclick",dayMouseDblClick);el.setAttribute("unselectable",true);}}};Calendar.findMonth=function(el){if(typeof el.month!="undefined"){return el;}else if(typeof el.parentNode.month!="undefined"){return el.parentNode;}
return null;};Calendar.findYear=function(el){if(typeof el.year!="undefined"){return el;}else if(typeof el.parentNode.year!="undefined"){return el.parentNode;}
return null;};Calendar.showMonthsCombo=function(){var cal=Calendar._C;if(!cal){return false;}
var cal=cal;var cd=cal.activeDiv;var mc=cal.monthsCombo;if(cal.hilitedMonth){Calendar.removeClass(cal.hilitedMonth,"hilite");}
if(cal.activeMonth){Calendar.removeClass(cal.activeMonth,"active");}
var mon=cal.monthsCombo.getElementsByTagName("div")[cal.date.getMonth()];Calendar.addClass(mon,"active");cal.activeMonth=mon;var s=mc.style;s.display="block";if(cd.navtype<0)
s.left=cd.offsetLeft+"px";else{var mcw=mc.offsetWidth;if(typeof mcw=="undefined")
mcw=50;s.left=(cd.offsetLeft+cd.offsetWidth-mcw)+"px";}
s.top=(cd.offsetTop+cd.offsetHeight)+"px";};Calendar.showYearsCombo=function(fwd){var cal=Calendar._C;if(!cal){return false;}
var cal=cal;var cd=cal.activeDiv;var yc=cal.yearsCombo;if(cal.hilitedYear){Calendar.removeClass(cal.hilitedYear,"hilite");}
if(cal.activeYear){Calendar.removeClass(cal.activeYear,"active");}
cal.activeYear=null;var Y=cal.date.getFullYear()+(fwd?1:-1);var yr=yc.firstChild;var show=false;for(var i=12;i>0;--i){if(Y>=cal.minYear&&Y<=cal.maxYear){yr.innerHTML=Y;yr.year=Y;yr.style.display="block";show=true;}else{yr.style.display="none";}
yr=yr.nextSibling;Y+=fwd?cal.yearStep:-cal.yearStep;}
if(show){var s=yc.style;s.display="block";if(cd.navtype<0)
s.left=cd.offsetLeft+"px";else{var ycw=yc.offsetWidth;if(typeof ycw=="undefined")
ycw=50;s.left=(cd.offsetLeft+cd.offsetWidth-ycw)+"px";}
s.top=(cd.offsetTop+cd.offsetHeight)+"px";}};Calendar.tableMouseUp=function(ev){var cal=Calendar._C;if(!cal){return false;}
if(cal.timeout){clearTimeout(cal.timeout);}
var el=cal.activeDiv;if(!el){return false;}
var target=Calendar.getTargetElement(ev);ev||(ev=window.event);Calendar.removeClass(el,"active");if(target==el||target.parentNode==el){Calendar.cellClick(el,ev);}
var mon=Calendar.findMonth(target);var date=null;if(mon){date=new Date(cal.date);if(mon.month!=date.getMonth()){date.setMonth(mon.month);cal.setDate(date);cal.dateClicked=false;cal.callHandler();}}else{var year=Calendar.findYear(target);if(year){date=new Date(cal.date);if(year.year!=date.getFullYear()){date.setFullYear(year.year);cal.setDate(date);cal.dateClicked=false;cal.callHandler();}}}
with(Calendar){removeEvent(document,"mouseup",tableMouseUp);removeEvent(document,"mouseover",tableMouseOver);removeEvent(document,"mousemove",tableMouseOver);cal._hideCombos();_C=null;return stopEvent(ev);}};Calendar.tableMouseOver=function(ev){var cal=Calendar._C;if(!cal){return;}
var el=cal.activeDiv;var target=Calendar.getTargetElement(ev);if(target==el||target.parentNode==el){Calendar.addClass(el,"hilite active");Calendar.addClass(el.parentNode,"rowhilite");}else{if(typeof el.navtype=="undefined"||(el.navtype!=50&&(el.navtype==0||Math.abs(el.navtype)>2)))
Calendar.removeClass(el,"active");Calendar.removeClass(el,"hilite");Calendar.removeClass(el.parentNode,"rowhilite");}
ev||(ev=window.event);if(el.navtype==50&&target!=el){var pos=Calendar.getAbsolutePos(el);var w=el.offsetWidth;var x=ev.clientX;var dx;var decrease=true;if(x>pos.x+w){dx=x-pos.x-w;decrease=false;}else
dx=pos.x-x;if(dx<0)dx=0;var range=el._range;var current=el._current;var count=Math.floor(dx/10)%range.length;for(var i=range.length;--i>=0;)
if(range[i]==current)
break;while(count-->0)
if(decrease){if(--i<0)
i=range.length-1;}else if(++i>=range.length)
i=0;var newval=range[i];el.innerHTML=newval;cal.onUpdateTime();}
var mon=Calendar.findMonth(target);if(mon){if(mon.month!=cal.date.getMonth()){if(cal.hilitedMonth){Calendar.removeClass(cal.hilitedMonth,"hilite");}
Calendar.addClass(mon,"hilite");cal.hilitedMonth=mon;}else if(cal.hilitedMonth){Calendar.removeClass(cal.hilitedMonth,"hilite");}}else{if(cal.hilitedMonth){Calendar.removeClass(cal.hilitedMonth,"hilite");}
var year=Calendar.findYear(target);if(year){if(year.year!=cal.date.getFullYear()){if(cal.hilitedYear){Calendar.removeClass(cal.hilitedYear,"hilite");}
Calendar.addClass(year,"hilite");cal.hilitedYear=year;}else if(cal.hilitedYear){Calendar.removeClass(cal.hilitedYear,"hilite");}}else if(cal.hilitedYear){Calendar.removeClass(cal.hilitedYear,"hilite");}}
return Calendar.stopEvent(ev);};Calendar.tableMouseDown=function(ev){if(Calendar.getTargetElement(ev)==Calendar.getElement(ev)){return Calendar.stopEvent(ev);}};Calendar.calDragIt=function(ev){var cal=Calendar._C;if(!(cal&&cal.dragging)){return false;}
var posX;var posY;if(Calendar.is_ie){posY=window.event.clientY+document.body.scrollTop;posX=window.event.clientX+document.body.scrollLeft;}else{posX=ev.pageX;posY=ev.pageY;}
cal.hideShowCovered();var st=cal.element.style;st.left=(posX-cal.xOffs)+"px";st.top=(posY-cal.yOffs)+"px";return Calendar.stopEvent(ev);};Calendar.calDragEnd=function(ev){var cal=Calendar._C;if(!cal){return false;}
cal.dragging=false;with(Calendar){removeEvent(document,"mousemove",calDragIt);removeEvent(document,"mouseup",calDragEnd);tableMouseUp(ev);}
cal.hideShowCovered();};Calendar.dayMouseDown=function(ev){var el=Calendar.getElement(ev);if(el.disabled){return false;}
var cal=el.calendar;cal.activeDiv=el;Calendar._C=cal;if(el.navtype!=300)with(Calendar){if(el.navtype==50){el._current=el.innerHTML;addEvent(document,"mousemove",tableMouseOver);}else
addEvent(document,Calendar.is_ie5?"mousemove":"mouseover",tableMouseOver);addClass(el,"hilite active");addEvent(document,"mouseup",tableMouseUp);}else if(cal.isPopup){cal._dragStart(ev);}
if(el.navtype==-1||el.navtype==1){if(cal.timeout)clearTimeout(cal.timeout);cal.timeout=setTimeout("Calendar.showMonthsCombo()",250);}else if(el.navtype==-2||el.navtype==2){if(cal.timeout)clearTimeout(cal.timeout);cal.timeout=setTimeout((el.navtype>0)?"Calendar.showYearsCombo(true)":"Calendar.showYearsCombo(false)",250);}else{cal.timeout=null;}
return Calendar.stopEvent(ev);};Calendar.dayMouseDblClick=function(ev){Calendar.cellClick(Calendar.getElement(ev),ev||window.event);if(Calendar.is_ie){document.selection.empty();}};Calendar.dayMouseOver=function(ev){var el=Calendar.getElement(ev);if(Calendar.isRelated(el,ev)||Calendar._C||el.disabled){return false;}
if(el.ttip){if(el.ttip.substr(0,1)=="_"){el.ttip=el.caldate.print(el.calendar.ttDateFormat)+el.ttip.substr(1);}
el.calendar.tooltips.innerHTML=el.ttip;}
if(el.navtype!=300){Calendar.addClass(el,"hilite");if(el.caldate){Calendar.addClass(el.parentNode,"rowhilite");}}
return Calendar.stopEvent(ev);};Calendar.dayMouseOut=function(ev){with(Calendar){var el=getElement(ev);if(isRelated(el,ev)||_C||el.disabled)
return false;removeClass(el,"hilite");if(el.caldate)
removeClass(el.parentNode,"rowhilite");if(el.calendar)
el.calendar.tooltips.innerHTML=_TT["SEL_DATE"];return stopEvent(ev);}};Calendar.cellClick=function(el,ev){var cal=el.calendar;var closing=false;var newdate=false;var date=null;if(typeof el.navtype=="undefined"){if(cal.currentDateEl){Calendar.removeClass(cal.currentDateEl,"selected");Calendar.addClass(el,"selected");closing=(cal.currentDateEl==el);if(!closing){cal.currentDateEl=el;}}
cal.date.setDateOnly(el.caldate);date=cal.date;var other_month=!(cal.dateClicked=!el.otherMonth);if(!other_month&&!cal.currentDateEl)
cal._toggleMultipleDate(new Date(date));else
newdate=!el.disabled;if(other_month)
cal._init(cal.firstDayOfWeek,date);}else{if(el.navtype==200){Calendar.removeClass(el,"hilite");cal.callCloseHandler();return;}
date=new Date(cal.date);if(el.navtype==0)
date.setDateOnly(new Date());cal.dateClicked=false;var year=date.getFullYear();var mon=date.getMonth();function setMonth(m){var day=date.getDate();var max=date.getMonthDays(m);if(day>max){date.setDate(max);}
date.setMonth(m);};switch(el.navtype){case 400:Calendar.removeClass(el,"hilite");var text=Calendar._TT["ABOUT"];if(typeof text!="undefined"){text+=cal.showsTime?Calendar._TT["ABOUT_TIME"]:"";}else{text="Help and about box text is not translated into this language.\n"+"If you know this language and you feel generous please update\n"+"the corresponding file in \"lang\" subdir to match calendar-en.js\n"+"and send it back to <mihai_bazon@yahoo.com> to get it into the distribution  ;-)\n\n"+"Thank you!\n"+"http://dynarch.com/mishoo/calendar.epl\n";}
alert(text);return;case-2:if(year>cal.minYear){date.setFullYear(year-1);}
break;case-1:if(mon>0){setMonth(mon-1);}else if(year-->cal.minYear){date.setFullYear(year);setMonth(11);}
break;case 1:if(mon<11){setMonth(mon+1);}else if(year<cal.maxYear){date.setFullYear(year+1);setMonth(0);}
break;case 2:if(year<cal.maxYear){date.setFullYear(year+1);}
break;case 100:cal.setFirstDayOfWeek(el.fdow);return;case 50:var range=el._range;var current=el.innerHTML;for(var i=range.length;--i>=0;)
if(range[i]==current)
break;if(ev&&ev.shiftKey){if(--i<0)
i=range.length-1;}else if(++i>=range.length)
i=0;var newval=range[i];el.innerHTML=newval;cal.onUpdateTime();return;case 0:if((typeof cal.getDateStatus=="function")&&cal.getDateStatus(date,date.getFullYear(),date.getMonth(),date.getDate())){return false;}
break;}
if(!date.equalsTo(cal.date)){cal.setDate(date);newdate=true;}else if(el.navtype==0)
newdate=closing=true;}
if(newdate){ev&&cal.callHandler();}
if(closing){Calendar.removeClass(el,"hilite");ev&&cal.callCloseHandler();}};Calendar.prototype.create=function(_par){var parent=null;if(!_par){parent=document.getElementsByTagName("body")[0];this.isPopup=true;}else{parent=_par;this.isPopup=false;}
this.date=this.dateStr?new Date(this.dateStr):new Date();var table=Calendar.createElement("table");this.table=table;table.cellSpacing=0;table.cellPadding=0;table.calendar=this;Calendar.addEvent(table,"mousedown",Calendar.tableMouseDown);var div=Calendar.createElement("div");this.element=div;div.className="calendar";if(this.isPopup){div.style.position="absolute";div.style.display="none";}
div.appendChild(table);var thead=Calendar.createElement("thead",table);var cell=null;var row=null;var cal=this;var hh=function(text,cs,navtype,clsnm){cell=Calendar.createElement("td",row);cell.colSpan=cs;cell.className="button";if(navtype!=0&&Math.abs(navtype)<=2)
cell.className+=" nav";if(clsnm)cell.className+=" "+clsnm;Calendar._add_evs(cell);cell.calendar=cal;cell.navtype=navtype;cell.innerHTML="<div unselectable='on'>"+text+"</div>";return cell;};row=Calendar.createElement("tr",thead);var title_length=6;(this.isPopup)&&--title_length;(this.weekNumbers)&&++title_length;hh("?",1,400,'question').ttip=Calendar._TT["INFO"];this.title=hh("",title_length,300);this.title.className="title";if(this.isPopup){this.title.ttip=Calendar._TT["DRAG_TO_MOVE"];this.title.style.cursor="move";hh("&#x00d7;",1,200,'close').ttip=Calendar._TT["CLOSE"];}
row=Calendar.createElement("tr",thead);row.className="headrow";this._nav_py=hh("&#x00ab;",1,-2);this._nav_py.ttip=Calendar._TT["PREV_YEAR"];this._nav_pm=hh("&#x2039;",1,-1);this._nav_pm.ttip=Calendar._TT["PREV_MONTH"];this._nav_now=hh(Calendar._TT["TODAY"],this.weekNumbers?4:3,0);this._nav_now.ttip=Calendar._TT["GO_TODAY"];this._nav_nm=hh("&#x203a;",1,1);this._nav_nm.ttip=Calendar._TT["NEXT_MONTH"];this._nav_ny=hh("&#x00bb;",1,2);this._nav_ny.ttip=Calendar._TT["NEXT_YEAR"];row=Calendar.createElement("tr",thead);row.className="daynames";if(this.weekNumbers){cell=Calendar.createElement("td",row);cell.className="name wn";cell.innerHTML=Calendar._TT["WK"];}
for(var i=7;i>0;--i){cell=Calendar.createElement("td",row);if(!i){cell.navtype=100;cell.calendar=this;Calendar._add_evs(cell);}}
this.firstdayname=(this.weekNumbers)?row.firstChild.nextSibling:row.firstChild;this._displayWeekdays();var tbody=Calendar.createElement("tbody",table);this.tbody=tbody;for(i=6;i>0;--i){row=Calendar.createElement("tr",tbody);if(this.weekNumbers){cell=Calendar.createElement("td",row);}
for(var j=7;j>0;--j){cell=Calendar.createElement("td",row);cell.calendar=this;Calendar._add_evs(cell);}}
if(this.showsTime){row=Calendar.createElement("tr",tbody);row.className="time";cell=Calendar.createElement("td",row);cell.className="time";cell.colSpan=2;cell.innerHTML=Calendar._TT["TIME"]||"&nbsp;";cell=Calendar.createElement("td",row);cell.className="time";cell.colSpan=this.weekNumbers?4:3;(function(){function makeTimePart(className,init,range_start,range_end){var part=Calendar.createElement("span",cell);part.className=className;part.innerHTML=init;part.calendar=cal;part.ttip=Calendar._TT["TIME_PART"];part.navtype=50;part._range=[];if(typeof range_start!="number")
part._range=range_start;else{for(var i=range_start;i<=range_end;++i){var txt;if(i<10&&range_end>=10)txt='0'+i;else txt=''+i;part._range[part._range.length]=txt;}}
Calendar._add_evs(part);return part;};var hrs=cal.date.getHours();var mins=cal.date.getMinutes();var t12=!cal.time24;var pm=(hrs>12);if(t12&&pm)hrs-=12;var H=makeTimePart("hour",hrs,t12?1:0,t12?12:23);var span=Calendar.createElement("span",cell);span.innerHTML=":";span.className="colon";var M=makeTimePart("minute",mins,0,59);var AP=null;cell=Calendar.createElement("td",row);cell.className="time";cell.colSpan=2;if(t12)
AP=makeTimePart("ampm",pm?"pm":"am",["am","pm"]);else
cell.innerHTML="&nbsp;";cal.onSetTime=function(){var pm,hrs=this.date.getHours(),mins=this.date.getMinutes();if(t12){pm=(hrs>=12);if(pm)hrs-=12;if(hrs==0)hrs=12;AP.innerHTML=pm?"pm":"am";}
H.innerHTML=(hrs<10)?("0"+hrs):hrs;M.innerHTML=(mins<10)?("0"+mins):mins;};cal.onUpdateTime=function(){var date=this.date;var h=parseInt(H.innerHTML,10);if(t12){if(/pm/i.test(AP.innerHTML)&&h<12)
h+=12;else if(/am/i.test(AP.innerHTML)&&h==12)
h=0;}
var d=date.getDate();var m=date.getMonth();var y=date.getFullYear();date.setHours(h);date.setMinutes(parseInt(M.innerHTML,10));date.setFullYear(y);date.setMonth(m);date.setDate(d);this.dateClicked=false;this.callHandler();};})();}else{this.onSetTime=this.onUpdateTime=function(){};}
var tfoot=Calendar.createElement("tfoot",table);row=Calendar.createElement("tr",tfoot);row.className="footrow";cell=hh(Calendar._TT["SEL_DATE"],this.weekNumbers?8:7,300);cell.className="ttip";if(this.isPopup){cell.ttip=Calendar._TT["DRAG_TO_MOVE"];cell.style.cursor="move";}
this.tooltips=cell;div=Calendar.createElement("div",this.element);this.monthsCombo=div;div.className="combo";for(i=0;i<Calendar._MN.length;++i){var mn=Calendar.createElement("div");mn.className=Calendar.is_ie?"label-IEfix":"label";mn.month=i;mn.innerHTML=Calendar._SMN[i];div.appendChild(mn);}
div=Calendar.createElement("div",this.element);this.yearsCombo=div;div.className="combo";for(i=12;i>0;--i){var yr=Calendar.createElement("div");yr.className=Calendar.is_ie?"label-IEfix":"label";div.appendChild(yr);}
this._init(this.firstDayOfWeek,this.date);parent.appendChild(this.element);};Calendar.prototype._init=function(firstDayOfWeek,date){var today=new Date(),TY=today.getFullYear(),TM=today.getMonth(),TD=today.getDate();this.table.style.visibility="hidden";var year=date.getFullYear();if(year<this.minYear){year=this.minYear;date.setFullYear(year);}else if(year>this.maxYear){year=this.maxYear;date.setFullYear(year);}
this.firstDayOfWeek=firstDayOfWeek;this.date=new Date(date);var month=date.getMonth();var mday=date.getDate();var no_days=date.getMonthDays();date.setDate(1);var day1=(date.getDay()-this.firstDayOfWeek)%7;if(day1<0)
day1+=7;date.setDate(-day1);date.setDate(date.getDate()+1);var row=this.tbody.firstChild;var MN=Calendar._SMN[month];var ar_days=this.ar_days=new Array();var weekend=Calendar._TT["WEEKEND"];var dates=this.multiple?(this.datesCells={}):null;for(var i=0;i<6;++i,row=row.nextSibling){var cell=row.firstChild;if(this.weekNumbers){cell.className="day wn";cell.innerHTML=date.getWeekNumber();cell=cell.nextSibling;}
row.className="daysrow";var hasdays=false,iday,dpos=ar_days[i]=[];for(var j=0;j<7;++j,cell=cell.nextSibling,date.setDate(iday+1)){iday=date.getDate();var wday=date.getDay();cell.className="day";cell.pos=i<<4|j;dpos[j]=cell;var current_month=(date.getMonth()==month);if(!current_month){if(this.showsOtherMonths){cell.className+=" othermonth";cell.otherMonth=true;}else{cell.className="emptycell";cell.innerHTML="&nbsp;";cell.disabled=true;continue;}}else{cell.otherMonth=false;hasdays=true;}
cell.disabled=false;cell.innerHTML=this.getDateText?this.getDateText(date,iday):iday;if(dates)
dates[date.print("%Y%m%d")]=cell;if(this.getDateStatus){var status=this.getDateStatus(date,year,month,iday);if(this.getDateToolTip){var toolTip=this.getDateToolTip(date,year,month,iday);if(toolTip)
cell.title=toolTip;}
if(status===true){cell.className+=" disabled";cell.disabled=true;}else{if(/disabled/i.test(status))
cell.disabled=true;cell.className+=" "+status;}}
if(!cell.disabled){cell.caldate=new Date(date);cell.ttip="_";if(!this.multiple&&current_month&&iday==mday&&this.hiliteToday){cell.className+=" selected";this.currentDateEl=cell;}
if(date.getFullYear()==TY&&date.getMonth()==TM&&iday==TD){cell.className+=" today";cell.ttip+=Calendar._TT["PART_TODAY"];}
if(weekend.indexOf(wday.toString())!=-1)
cell.className+=cell.otherMonth?" oweekend":" weekend";}}
if(!(hasdays||this.showsOtherMonths))
row.className="emptyrow";}
this.title.innerHTML=Calendar._MN[month]+" "+year;this.onSetTime();this.table.style.visibility="visible";this._initMultipleDates();};Calendar.prototype._initMultipleDates=function(){if(this.multiple){for(var i in this.multiple){var cell=this.datesCells[i];var d=this.multiple[i];if(!d)
continue;if(cell)
cell.className+=" selected";}}};Calendar.prototype._toggleMultipleDate=function(date){if(this.multiple){var ds=date.print("%Y%m%d");var cell=this.datesCells[ds];if(cell){var d=this.multiple[ds];if(!d){Calendar.addClass(cell,"selected");this.multiple[ds]=date;}else{Calendar.removeClass(cell,"selected");delete this.multiple[ds];}}}};Calendar.prototype.setDateToolTipHandler=function(unaryFunction){this.getDateToolTip=unaryFunction;};Calendar.prototype.setDate=function(date){if(!date.equalsTo(this.date)){this._init(this.firstDayOfWeek,date);}};Calendar.prototype.refresh=function(){this._init(this.firstDayOfWeek,this.date);};Calendar.prototype.setFirstDayOfWeek=function(firstDayOfWeek){this._init(firstDayOfWeek,this.date);this._displayWeekdays();};Calendar.prototype.setDateStatusHandler=Calendar.prototype.setDisabledHandler=function(unaryFunction){this.getDateStatus=unaryFunction;};Calendar.prototype.setRange=function(a,z){this.minYear=a;this.maxYear=z;};Calendar.prototype.callHandler=function(){if(this.onSelected){this.onSelected(this,this.date.print(this.dateFormat));}};Calendar.prototype.callCloseHandler=function(){if(this.onClose){this.onClose(this);}
this.hideShowCovered();};Calendar.prototype.destroy=function(){var el=this.element.parentNode;el.removeChild(this.element);Calendar._C=null;window._dynarch_popupCalendar=null;};Calendar.prototype.reparent=function(new_parent){var el=this.element;el.parentNode.removeChild(el);new_parent.appendChild(el);};Calendar._checkCalendar=function(ev){var calendar=window._dynarch_popupCalendar;if(!calendar){return false;}
var el=Calendar.is_ie?Calendar.getElement(ev):Calendar.getTargetElement(ev);for(;el!=null&&el!=calendar.element;el=el.parentNode);if(el==null){window._dynarch_popupCalendar.callCloseHandler();return Calendar.stopEvent(ev);}};Calendar.prototype.show=function(){var rows=this.table.getElementsByTagName("tr");for(var i=rows.length;i>0;){var row=rows[--i];Calendar.removeClass(row,"rowhilite");var cells=row.getElementsByTagName("td");for(var j=cells.length;j>0;){var cell=cells[--j];Calendar.removeClass(cell,"hilite");Calendar.removeClass(cell,"active");}}
this.element.style.display="block";this.hidden=false;if(this.isPopup){window._dynarch_popupCalendar=this;Calendar.addEvent(document,"mousedown",Calendar._checkCalendar);}
this.hideShowCovered();};Calendar.prototype.hide=function(){if(this.isPopup){Calendar.removeEvent(document,"mousedown",Calendar._checkCalendar);}
this.element.style.display="none";this.hidden=true;this.hideShowCovered();};Calendar.prototype.showAt=function(x,y){var s=this.element.style;s.left=x+"px";s.top=y+"px";this.show();};Calendar.prototype.showAtElement=function(el,opts){var self=this;var p=Calendar.getAbsolutePos(el);if(!opts||typeof opts!="string"){this.showAt(p.x,p.y+el.offsetHeight);return true;}
function fixPosition(box){if(box.x<0)
box.x=0;if(box.y<0)
box.y=0;var cp=document.createElement("div");var s=cp.style;s.position="absolute";s.right=s.bottom=s.width=s.height="0px";document.body.appendChild(cp);var br=Calendar.getAbsolutePos(cp);document.body.removeChild(cp);br.y+=window.scrollY;br.x+=window.scrollX;var tmp=box.x+box.width-br.x;if(tmp>0)box.x-=tmp;tmp=box.y+box.height-br.y;if(tmp>0)box.y-=tmp;};this.element.style.display="block";Calendar.continuation_for_khtml_browser=function(){var w=self.element.offsetWidth;var h=self.element.offsetHeight;self.element.style.display="none";var valign=opts.substr(0,1);var halign="l";if(opts.length>1){halign=opts.substr(1,1);}
switch(valign){case"T":p.y-=h;break;case"B":p.y+=el.offsetHeight;break;case"C":p.y+=(el.offsetHeight-h)/2;break;case"t":p.y+=el.offsetHeight-h;break;case"b":break;}
switch(halign){case"L":p.x-=w;break;case"R":p.x+=el.offsetWidth;break;case"C":p.x+=(el.offsetWidth-w)/2;break;case"l":p.x+=el.offsetWidth-w;break;case"r":break;}
p.width=w;p.height=h+40;self.monthsCombo.style.display="none";fixPosition(p);self.showAt(p.x,p.y);};if(Calendar.is_khtml)
setTimeout("Calendar.continuation_for_khtml_browser()",10);else
Calendar.continuation_for_khtml_browser();};Calendar.prototype.setDateFormat=function(str){this.dateFormat=str;};Calendar.prototype.setTtDateFormat=function(str){this.ttDateFormat=str;};Calendar.prototype.parseDate=function(str,fmt){if(!fmt)
fmt=this.dateFormat;this.setDate(Date.parseDate(str,fmt));};Calendar.prototype.hideShowCovered=function(){if(!Calendar.is_ie&&!Calendar.is_opera)
return;function getVisib(obj){var value=obj.style.visibility;if(!value){if(document.defaultView&&typeof(document.defaultView.getComputedStyle)=="function"){if(!Calendar.is_khtml)
value=document.defaultView.getComputedStyle(obj,"").getPropertyValue("visibility");else
value='';}else if(obj.currentStyle){value=obj.currentStyle.visibility;}else
value='';}
return value;};var tags=new Array("applet","iframe","select");var el=this.element;var p=Calendar.getAbsolutePos(el);var EX1=p.x;var EX2=el.offsetWidth+EX1;var EY1=p.y;var EY2=el.offsetHeight+EY1;for(var k=tags.length;k>0;){var ar=document.getElementsByTagName(tags[--k]);var cc=null;for(var i=ar.length;i>0;){cc=ar[--i];p=Calendar.getAbsolutePos(cc);var CX1=p.x;var CX2=cc.offsetWidth+CX1;var CY1=p.y;var CY2=cc.offsetHeight+CY1;if(this.hidden||(CX1>EX2)||(CX2<EX1)||(CY1>EY2)||(CY2<EY1)){if(!cc.__msh_save_visibility){cc.__msh_save_visibility=getVisib(cc);}
cc.style.visibility=cc.__msh_save_visibility;}else{if(!cc.__msh_save_visibility){cc.__msh_save_visibility=getVisib(cc);}
cc.style.visibility="hidden";}}}};Calendar.prototype._displayWeekdays=function(){var fdow=this.firstDayOfWeek;var cell=this.firstdayname;var weekend=Calendar._TT["WEEKEND"];for(var i=0;i<7;++i){cell.className="day name";var realday=(i+fdow)%7;if(i){cell.ttip=Calendar._TT["DAY_FIRST"].replace("%s",Calendar._DN[realday]);cell.navtype=100;cell.calendar=this;cell.fdow=realday;Calendar._add_evs(cell);}
if(weekend.indexOf(realday.toString())!=-1){Calendar.addClass(cell,"weekend");}
cell.innerHTML=Calendar._SDN[(i+fdow)%7];cell=cell.nextSibling;}};Calendar.prototype._hideCombos=function(){this.monthsCombo.style.display="none";this.yearsCombo.style.display="none";};Calendar.prototype._dragStart=function(ev){if(this.dragging){return;}
this.dragging=true;var posX;var posY;if(Calendar.is_ie){posY=window.event.clientY+document.body.scrollTop;posX=window.event.clientX+document.body.scrollLeft;}else{posY=ev.clientY+window.scrollY;posX=ev.clientX+window.scrollX;}
var st=this.element.style;this.xOffs=posX-parseInt(st.left);this.yOffs=posY-parseInt(st.top);with(Calendar){addEvent(document,"mousemove",calDragIt);addEvent(document,"mouseup",calDragEnd);}};Date._MD=new Array(31,28,31,30,31,30,31,31,30,31,30,31);Date.SECOND=1000;Date.MINUTE=60*Date.SECOND;Date.HOUR=60*Date.MINUTE;Date.DAY=24*Date.HOUR;Date.WEEK=7*Date.DAY;Date.parseDate=function(str,fmt){var today=new Date();var y=0;var m=-1;var d=0;var a=str.split(/\W+/);var b=fmt.match(/%./g);var i=0,j=0;var hr=0;var min=0;for(i=0;i<a.length;++i){if(!a[i])
continue;switch(b[i]){case"%d":case"%e":d=parseInt(a[i],10);break;case"%m":m=parseInt(a[i],10)-1;break;case"%Y":case"%y":y=parseInt(a[i],10);(y<100)&&(y+=(y>29)?1900:2000);break;case"%b":case"%B":for(j=0;j<12;++j){if(Calendar._MN[j].substr(0,a[i].length).toLowerCase()==a[i].toLowerCase()){m=j;break;}}
break;case"%H":case"%I":case"%k":case"%l":hr=parseInt(a[i],10);break;case"%P":case"%p":if(/pm/i.test(a[i])&&hr<12)
hr+=12;else if(/am/i.test(a[i])&&hr>=12)
hr-=12;break;case"%M":min=parseInt(a[i],10);break;}}
if(isNaN(y))y=today.getFullYear();if(isNaN(m))m=today.getMonth();if(isNaN(d))d=today.getDate();if(isNaN(hr))hr=today.getHours();if(isNaN(min))min=today.getMinutes();if(y!=0&&m!=-1&&d!=0)
return new Date(y,m,d,hr,min,0);y=0;m=-1;d=0;for(i=0;i<a.length;++i){if(a[i].search(/[a-zA-Z]+/)!=-1){var t=-1;for(j=0;j<12;++j){if(Calendar._MN[j].substr(0,a[i].length).toLowerCase()==a[i].toLowerCase()){t=j;break;}}
if(t!=-1){if(m!=-1){d=m+1;}
m=t;}}else if(parseInt(a[i],10)<=12&&m==-1){m=a[i]-1;}else if(parseInt(a[i],10)>31&&y==0){y=parseInt(a[i],10);(y<100)&&(y+=(y>29)?1900:2000);}else if(d==0){d=a[i];}}
if(y==0)
y=today.getFullYear();if(m!=-1&&d!=0)
return new Date(y,m,d,hr,min,0);return today;};Date.prototype.getMonthDays=function(month){var year=this.getFullYear();if(typeof month=="undefined"){month=this.getMonth();}
if(((0==(year%4))&&((0!=(year%100))||(0==(year%400))))&&month==1){return 29;}else{return Date._MD[month];}};Date.prototype.getDayOfYear=function(){var now=new Date(this.getFullYear(),this.getMonth(),this.getDate(),0,0,0);var then=new Date(this.getFullYear(),0,0,0,0,0);var time=now-then;return Math.floor(time/Date.DAY);};Date.prototype.getWeekNumber=function(){var d=new Date(this.getFullYear(),this.getMonth(),this.getDate(),0,0,0);var DoW=d.getDay();d.setDate(d.getDate()-(DoW+6)%7+3);var ms=d.valueOf();d.setMonth(0);d.setDate(4);return Math.round((ms-d.valueOf())/(7*864e5))+1;};Date.prototype.equalsTo=function(date){return((this.getFullYear()==date.getFullYear())&&(this.getMonth()==date.getMonth())&&(this.getDate()==date.getDate())&&(this.getHours()==date.getHours())&&(this.getMinutes()==date.getMinutes()));};Date.prototype.setDateOnly=function(date){var tmp=new Date(date);this.setDate(1);this.setFullYear(tmp.getFullYear());this.setMonth(tmp.getMonth());this.setDate(tmp.getDate());};Date.prototype.print=function(str){var m=this.getMonth();var d=this.getDate();var y=this.getFullYear();var wn=this.getWeekNumber();var w=this.getDay();var s={};var hr=this.getHours();var pm=(hr>=12);var ir=(pm)?(hr-12):hr;var dy=this.getDayOfYear();if(ir==0)
ir=12;var min=this.getMinutes();var sec=this.getSeconds();s["%a"]=Calendar._SDN[w];s["%A"]=Calendar._DN[w];s["%b"]=Calendar._SMN[m];s["%B"]=Calendar._MN[m];s["%C"]=1+Math.floor(y/100);s["%d"]=(d<10)?("0"+d):d;s["%e"]=d;s["%H"]=(hr<10)?("0"+hr):hr;s["%I"]=(ir<10)?("0"+ir):ir;s["%j"]=(dy<100)?((dy<10)?("00"+dy):("0"+dy)):dy;s["%k"]=hr;s["%l"]=ir;s["%m"]=(m<9)?("0"+(1+m)):(1+m);s["%M"]=(min<10)?("0"+min):min;s["%n"]="\n";s["%p"]=pm?"PM":"AM";s["%P"]=pm?"pm":"am";s["%s"]=Math.floor(this.getTime()/1000);s["%S"]=(sec<10)?("0"+sec):sec;s["%t"]="\t";s["%U"]=s["%W"]=s["%V"]=(wn<10)?("0"+wn):wn;s["%u"]=w+1;s["%w"]=w;s["%y"]=(''+y).substr(2,2);s["%Y"]=y;s["%%"]="%";var re=/%./g;if(!Calendar.is_ie5&&!Calendar.is_khtml)
return str.replace(re,function(par){return s[par]||par;});var a=str.match(re);for(var i=0;i<a.length;i++){var tmp=s[a[i]];if(tmp){re=new RegExp(a[i],'g');str=str.replace(re,tmp);}}
return str;};Date.prototype.__msh_oldSetFullYear=Date.prototype.setFullYear;Date.prototype.setFullYear=function(y){var d=new Date(this);d.__msh_oldSetFullYear(y);if(d.getMonth()!=this.getMonth())
this.setDate(28);this.__msh_oldSetFullYear(y);};window._dynarch_popupCalendar=null;function selectDate(cal){var p=cal.params;var update=(cal.dateClicked||p.electric);year=p.inputField.id;day=year+'-2';month=year+'-1';document.getElementById(month).value=cal.date.print('%m');document.getElementById(day).value=cal.date.print('%e');document.getElementById(year).value=cal.date.print('%Y');}
function selectEuroDate(cal){var p=cal.params;var update=(cal.dateClicked||p.electric);year=p.inputField.id;day=year+'-1';month=year+'-2';document.getElementById(month).value=cal.date.print('%m');document.getElementById(day).value=cal.date.print('%e');document.getElementById(year).value=cal.date.print('%Y');}
Calendar._DN=new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday");Calendar._SDN=new Array("S","M","T","W","T","F","S","S");Calendar._FD=0;Calendar._MN=new Array("January","February","March","April","May","June","July","August","September","October","November","December");Calendar._SMN=new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");Calendar._TT={};Calendar._TT["INFO"]="About the Calendar";Calendar._TT["ABOUT"]="DHTML Date/Time Selector\n"+"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n"+"For latest version visit:\n http://www.dynarch.com/projects/calendar/\n"+"Distributed under GNU LGPL.\n See http://gnu.org/licenses/lgpl.html for details."+"\n\n"+"Date selection:\n"+"- Use the \xab, \xbb buttons to select year\n"+"- Use the "+String.fromCharCode(0x2039)+", "+String.fromCharCode(0x203a)+" buttons to select month\n"+"- Hold mouse button for faster selection.";Calendar._TT["ABOUT_TIME"]="\n\n"+"Time selection:\n"+"- Click on any of the time parts to increase it\n"+"- or Shift-click to decrease it\n"+"- or click and drag for faster selection.";Calendar._TT["PREV_YEAR"]="Prev. Year (Hold for Menu)";Calendar._TT["PREV_MONTH"]="Prev. Month (Hold for Menu)";Calendar._TT["GO_TODAY"]="Go to Today";Calendar._TT["NEXT_MONTH"]="Next Month (Hold for Menu)";Calendar._TT["NEXT_YEAR"]="Next Year (Hold for Menu)";Calendar._TT["SEL_DATE"]="Select Date";Calendar._TT["DRAG_TO_MOVE"]="Drag to Move";Calendar._TT["PART_TODAY"]=" (Today)";Calendar._TT["DAY_FIRST"]="Display %ss first";Calendar._TT["WEEKEND"]="0,6";Calendar._TT["CLOSE"]="Close Calendar";Calendar._TT["TODAY"]="Today";Calendar._TT["TIME_PART"]="(Shift-)Click or Drag to Change Value";Calendar._TT["DEF_DATE_FORMAT"]="%Y-%m-%d";Calendar._TT["TT_DATE_FORMAT"]="%b %e, %Y";Calendar._TT["WK"]="wk";Calendar._TT["TIME"]="Time:";
Calendar.setup=function(params){function param_default(pname,def){if(typeof params[pname]=="undefined"){params[pname]=def;}};param_default("inputField",null);param_default("displayArea",null);param_default("button",null);param_default("eventName","click");param_default("ifFormat","%Y/%m/%d");param_default("daFormat","%Y/%m/%d");param_default("singleClick",true);param_default("disableFunc",null);param_default("dateStatusFunc",params["disableFunc"]);param_default("dateText",null);param_default("firstDay",null);param_default("align","BR");param_default("range",[1900,2999]);param_default("weekNumbers",false);param_default("flat",null);param_default("flatCallback",null);param_default("onSelect",null);param_default("onClose",null);param_default("onUpdate",null);param_default("date",null);param_default("showsTime",false);param_default("timeFormat","24");param_default("electric",true);param_default("step",2);param_default("position",null);param_default("cache",false);param_default("showOthers",false);param_default("multiple",null);var tmp=["inputField","displayArea","button"];for(var i in tmp){if(typeof params[tmp[i]]=="string"){params[tmp[i]]=document.getElementById(params[tmp[i]]);}}
if(!(params.flat||params.multiple||params.inputField||params.displayArea||params.button)){alert("Calendar.setup:\n  Nothing to setup (no fields found).  Please check your code");return false;}
function onSelect(cal){var p=cal.params;var update=(cal.dateClicked||p.electric);if(update&&p.inputField){p.inputField.value=cal.date.print(p.ifFormat);if(typeof p.inputField.onchange=="function")
p.inputField.onchange();}
if(update&&p.displayArea)
p.displayArea.innerHTML=cal.date.print(p.daFormat);if(update&&typeof p.onUpdate=="function")
p.onUpdate(cal);if(update&&p.flat){if(typeof p.flatCallback=="function")
p.flatCallback(cal);}
if(update&&p.singleClick&&cal.dateClicked)
cal.callCloseHandler();};if(params.flat!=null){if(typeof params.flat=="string")
params.flat=document.getElementById(params.flat);if(!params.flat){alert("Calendar.setup:\n  Flat specified but can't find parent.");return false;}
var cal=new Calendar(params.firstDay,params.date,params.onSelect||onSelect);cal.showsOtherMonths=params.showOthers;cal.showsTime=params.showsTime;cal.time24=(params.timeFormat=="24");cal.params=params;cal.weekNumbers=params.weekNumbers;cal.setRange(params.range[0],params.range[1]);cal.setDateStatusHandler(params.dateStatusFunc);cal.getDateText=params.dateText;if(params.ifFormat){cal.setDateFormat(params.ifFormat);}
if(params.inputField&&typeof params.inputField.value=="string"){cal.parseDate(params.inputField.value);}
cal.create(params.flat);cal.show();return false;}
var triggerEl=params.button||params.displayArea||params.inputField;triggerEl["on"+params.eventName]=function(){var dateEl=params.inputField||params.displayArea;var dateFmt=params.inputField?params.ifFormat:params.daFormat;var mustCreate=false;var cal=window.calendar;if(dateEl)
params.date=Date.parseDate(dateEl.value||dateEl.innerHTML,dateFmt);if(!(cal&&params.cache)){window.calendar=cal=new Calendar(params.firstDay,params.date,params.onSelect||onSelect,params.onClose||function(cal){cal.hide();});cal.showsTime=params.showsTime;cal.time24=(params.timeFormat=="24");cal.weekNumbers=params.weekNumbers;mustCreate=true;}else{if(params.date)
cal.setDate(params.date);cal.hide();}
if(params.multiple){cal.multiple={};for(var i=params.multiple.length;--i>=0;){var d=params.multiple[i];var ds=d.print("%Y%m%d");cal.multiple[ds]=d;}}
cal.showsOtherMonths=params.showOthers;cal.yearStep=params.step;cal.setRange(params.range[0],params.range[1]);cal.params=params;cal.setDateStatusHandler(params.dateStatusFunc);cal.getDateText=params.dateText;cal.setDateFormat(dateFmt);if(mustCreate)
cal.create();cal.refresh();if(!params.position)
cal.showAtElement(params.button||params.displayArea||params.inputField,params.align);else
cal.showAt(params.position[0],params.position[1]);return false;};return cal;};