LOG_IN_CONTENT=false;LOG_AT_ALL=true;var fx={};var utils={asId:function(id){var ret=id;if(id.charAt[0]!=='#'){ret='#'+ret;}
return ret.replace(/\[/g,'\\[').replace(/\]/g,'\\]');},log:function(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){if(!LOG_AT_ALL){return;}
if((typeof(console)!=='undefined')&&(typeof(console.log)!=='undefined')){if(a10){console.log(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10);}
else if(a9){console.log(a1,a2,a3,a4,a5,a6,a7,a8,a9);}
else if(a8){console.log(a1,a2,a3,a4,a5,a6,a7,a8);}
else if(a7){console.log(a1,a2,a3,a4,a5,a6,a7);}
else if(a6){console.log(a1,a2,a3,a4,a5,a6);}
else if(a5){console.log(a1,a2,a3,a4,a5);}
else if(a4){console.log(a1,a2,a3,a4);}
else if(a3){console.log(a1,a2,a3);}
else if(a2){console.log(a1,a2);}
else if(a1){console.log(a1);}
else{console.log("Wtf?");}}else if(LOG_IN_CONTENT){var xx=$('<div></div>');xx.text(arguments[0].toString()+' ');$('#content').append(xx);}}};fx.utils=utils;var asId=utils.asId;var log=fx.utils.log;fx.pageCache={__cache:{},__clearTimerId:null,clear:function(){fx.pageCache.__clearTimer();fx.pageCache.__clearHelper();},__clearHelper:function(){fx.pageCache.__cache={};fx.utils.log('Cache cleared');},__clearTimer:function(){if(fx.pageCache.__clearTimerId){clearTimeout(fx.pageCache.__clearTimerId);fx.pageCache.__clearTimerId=null;}},get:function(key){return fx.pageCache.__cache[key];},set:function(key,page){fx.pageCache.__clearTimer();fx.pageCache.__clearTimerId=setTimeout(fx.pageCache.__clearHelper,5*60*1000);fx.pageCache.__cache[key]=page;}};fx.timers={__timersList:[],add:function(f){fx.timers.__timersList.push(f);},fire:function(){try{var len=fx.timers.__timersList.length;for(var i=0;i<len;i++){try{fx.timers.__timersList[i]();}catch(e){}}}catch(e){}}};fx.updaters={__updatersList:[],add:function(f){fx.updaters.__updatersList.push(f);},fire:function(){try{var len=fx.updaters.__updatersList.length;for(var i=0;i<len;i++){try{fx.updaters.__updatersList[i]();}catch(e){}}}catch(e){}}};function requestError(){topMessageError("Oops! Request to our server has failed. Please retry your operation again.",true);}
function readForm(formId,initialParams){var params=initialParams?initialParams:{};$('#'+formId+' :input').not(':button').each(function(){var jThis=$(this);var name=jThis.attr('name');if(name){params[name]=jThis.val();}});return params;}
var callInProgressCount=0;var lastPageLoaderRequest=null;function callActionErrorPageLoader(req,textStatus,errorThrown){lastPageLoaderRequest=null;callActionError(req,textStatus,errorThrown);}
function callActionError(req,textStatus,errorThrown){if(callInProgressCount>0){callInProgressCount-=1;}
log("callAction has failed: ",textStatus,errorThrown);requestError();}
function callActionSuccess(data,textStatus,completeMessage){if(callInProgressCount>0){callInProgressCount-=1;}
lastPageLoaderRequest=null;if(textStatus!=='success'){log('Ajax got: '+textStatus);return;}
if(completeMessage){topMessageInfo(completeMessage,false);}
else{topMessageHide();}
doOp(data);}
function callAction(action,objectType,objectId,paramsAsObject,progressMessage,completeMessage){log("Action: "+action+" to "+objectType+'/'+objectId+'\nParams: ',paramsAsObject);var url='/a/'+objectType+'/'+action;if(objectId){url+='/'+objectId;}
var jsonParams;if(paramsAsObject){jsonParams=JSON.stringify(paramsAsObject);}else{jsonParams='';}
var reqData={'params':jsonParams};var ajaxParams={type:'POST',url:url,data:reqData,dataType:'json',timeout:30000,cache:false};var itIsPageLoaderRequest=((objectType==='page-loader')&&(action==='load-one-page'));if(itIsPageLoaderRequest){if(lastPageLoaderRequest){log("Killing lastPageLoaderRequest");lastPageLoaderRequest.abort();lastPageLoaderRequest=null;}
ajaxParams.error=callActionErrorPageLoader;ajaxParams.success=function(data,textStatus){lastPageLoaderRequest=null;fx.pageCache.set(objectId,data);callActionSuccess(data,textStatus,completeMessage);};}else{fx.pageCache.clear();ajaxParams.error=callActionError;ajaxParams.success=function(data,textStatus){callActionSuccess(data,textStatus,completeMessage);};}
var req=$.ajax(ajaxParams);callInProgressCount+=1;if(itIsPageLoaderRequest){lastPageLoaderRequest=req;}
if(progressMessage){topMessageInfo(progressMessage,true);}}
function doOp(data){if(typeof(data['op'])!=='undefined'){data=[data];}
$.each(data,function(){var op=this;log("Got op:",op);if(op.op=='home-link'){$('#home-link-text').text(op.text);$('#home-link-a').attr('href',op.url);if(op.show==='yes'){$('#topline-go-to-main-page').show();}else{$('#topline-go-to-main-page').hide();}}else if(op.op=='fill-page'){document.title=op.title;$('#menu').html(op.menu);$('#content').html(op.content);$('#username').html(op.username);$('#header').html(op.header);$('#global-schema-settings-block').html(op.settings);fx.updaters.fire();}else if(op.op=='alert'){alert(op.msg);}else if(op.op=='redirect'){window.location=op.location;}else if(op.op=='load'){loadOnePage(op.location,op.message);window.location=op.location;}else if(op.op=='reload'){loadOnePage(location.hash,op.message);}else if(op.op=='set'){$('#'+op.target).html(op.html);fx.updaters.fire();}else if(op.op=='set-title'){document.title=op.title;}else if(op.op=='top-message'){topMessageInfo(op.message,false);}else if(op.op=='top-error'){topMessageError(op.message,false);}else if(op.op=='error'){requestError();}else{log('Got wrong op: ',op);requestError();}});}
var vTopMessageTimer=null;function topMessageTimerClear(){if(vTopMessageTimer!==null){clearTimeout(vTopMessageTimer);vTopMessageTimer=null;}}
function topMessageTimerSet(delay){topMessageTimerClear();vTopMessageTimer=setTimeout(topMessageHide,delay*1000);}
function topMessageHide(){topMessageTimerClear();$('#top-message').hide();}
function _topMessageShow(text,cl,delay){topMessageHide();var jMsg=$('#top-message');jMsg.attr('class','').addClass(cl).find('.message').text(text);if(!delay){jMsg.find('.loading').show();}else{jMsg.find('.loading').hide();}
var topOffset=jQuery(document).scrollTop()+2;var leftOffset=jQuery(window).width()/2-jMsg.width()/2;jMsg.css({'top':topOffset+'px','left':leftOffset+'px','display':'block'});jMsg.show();if(delay){topMessageTimerSet(delay);}}
function topMessageInfo(text,permanent){_topMessageShow(text,'top-message-info',permanent?null:10);}
function topMessageError(text,permanent){_topMessageShow(text,'top-message-error',permanent?null:25);}
function getDataAttrs(elem){var attrs=elem.attributes;var len=attrs.length;var ret={};for(var i=0;i<len;i++){var attr=attrs.item(i);if(attr.name.indexOf('data-')===0){ret[attr.name.substr(5)]=attr.value;}}
return ret;}
function ask1Value(text,initial){return prompt(text,initial);}
jQuery.fn.resetForm=function(){return this.each(function(){jQuery(this).find(':input').not(':button').each(function(){var jInput=$(this);var dataInitial=jInput.attr('data-initial');if(dataInitial!==undefined){jInput.val(dataInitial);if(jInput.hasClass('alt-watched')){jInput.setAlt(true);}}});jQuery(this).find('.temp-hidden').removeClass('temp-hidden');jQuery(this).find('.temp-visible').each(function(){var $this=jQuery(this);if($this.hasClass('hidden')){$this.removeClass('temp-visible');}else{$this.remove();}});});};jQuery.fn.setAlt=function(forceUpdate){return this.each(function(){var jInput=jQuery(this);var title=jInput.attr('title');if(forceUpdate){jInput.removeClass('temp-value');}
if(!jInput.hasClass('temp-value')){if(jInput.val()===''){jInput.addClass('temp-value').val(title);}else if(jInput.val()===title){jInput.addClass('temp-value');}}});};jQuery.fn.clearAlt=function(){return this.each(function(){var jInput=jQuery(this);if(jInput.hasClass('temp-value')){jInput.removeClass('temp-value');}
if(jInput.val()===jInput.attr('title')){jInput.val('');}});};jQuery.fn.setSizesInStyle=function(replaceStyle){return this.each(function(){var $block=jQuery(this);var w,h;w=$block.width();h=$block.height();if(replaceStyle){$block.attr('style','width:'+w+'px;height:'+h+'px');}else{$block.width(w).height(h);}});};function setupAltOnInputs(){$('.alt-show').not('.alt-watched').focus(function(){$(this).clearAlt();}).blur(function(){$(this).setAlt();}).setAlt().addClass('alt-watched');}
function setupSimpleSortable(){$(".simple-sortable").sortable();$(".simple-sortable").disableSelection();}
fx.updaters.add(setupAltOnInputs);fx.updaters.add(setupSimpleSortable);var pageLoadQueue=[];var lastLocation=location.hash;function pageLoadWorker(){var loadLoc=pageLoadQueue.pop();if(loadLoc!==lastLocation){lastLocation=loadLoc;loadOnePage(loadLoc,null);}}
function loadOnePage(loc,completeMessage){if(!loc){loc=location.hash;}
lastLocation=loc;var encodedLoc=encodeURIComponent(loc);var opFromCache=fx.pageCache.get(encodedLoc);if(opFromCache){fx.utils.log('Got from cache: ',encodedLoc);doOp(opFromCache);}else{callAction('load-one-page','page-loader',encodedLoc,null,'Loading...',completeMessage);}
try{if(typeof(pageTracker)!=='undefined'){pageTracker._trackPageview('/crm'+loc);}}catch(e){}}
function updateLocation(useForce){var newLocation=location.hash;if((lastLocation!==newLocation)||(useForce===true)){log("New location: ",newLocation);lastLocation=newLocation;loadOnePage(newLocation,null);}}
function linkButtClicked(event){lastLocation=null;return true;}
function onePageSetup(){fx.updaters.fire();if(!window['fxDoOnePageSetup']){return;}
if(location.pathname==='/demo'){$('.logout-menu-link').remove();}
loadOnePage();$('a.link-butt').live('click',linkButtClicked);fx.timers.add(updateLocation);setInterval(fx.timers.fire,100);}
$(document).ready(onePageSetup);jQuery.fn.matchClass=function(matchRegExp){if(this.length!==1){throw"Need exactly one element to check classes.";}
var matchResult;$.grep(this.attr('class').split(' '),function(cl){var currMatch=cl.match(matchRegExp);if(currMatch){matchResult=currMatch;return true;}else{return false;}});if(!matchResult){throw"No class matches.";}else{return matchResult;}};jQuery.fn.calendarClaim=function(){return this.addClass('calendar-claimed-item');};jQuery.fn.calendarUnClaim=function(){return this.removeClass('calendar-claimed-item');};jQuery.fn.calendarIsClaimed=function(){return this.hasClass('calendar-claimed-item');};jQuery.fn.placeAlong=function($container,$popup){var $block=this;if($block.length===0){return $block;}else if($block.length>1){throw"Can't place popup near multiple blocks.";}
var blockPosition=$block.position();var blockHeight=$block.height();var blockWidth=$block.width();var windowHeight=$container.height()-10;var windowWidth=$container.width()-10;var popupHeight=$popup.height();var popupWidth=$popup.width();var newPopupTop;var newPopupLeft;if(blockPosition.top+blockHeight+popupHeight<windowHeight){newPopupTop=blockPosition.top+blockHeight;if(blockPosition.left+popupWidth<windowWidth){newPopupLeft=blockPosition.left-1;}else{newPopupLeft=windowWidth-popupWidth;}}else if(blockPosition.left+blockWidth+popupWidth<windowWidth){newPopupLeft=blockPosition.left+blockWidth+5;if(blockPosition.top+popupHeight<windowHeight){newPopupTop=blockPosition.top;}else{newPopupTop=blockPosition.top+blockHeight-popupHeight;}}else if(blockPosition.left-popupWidth>0){newPopupLeft=blockPosition.left-popupWidth-10;if(blockPosition.top+popupHeight<windowHeight){newPopupTop=blockPosition.top;}else{newPopupTop=blockPosition.top+blockHeight-popupHeight;}}else{newPopupTop=blockPosition.top-popupHeight;if(blockPosition.left+popupWidth<windowWidth){newPopupLeft=blockPosition.left;}else{newPopupLeft=windowWidth-popupWidth;}}
log("Window: ",windowWidth,'x',windowHeight,' block: ',blockPosition.left,'x',blockPosition.top,' Popup: ',newPopupLeft,'x',newPopupTop);$popup.css('top',newPopupTop).css('left',newPopupLeft);return this;};var calendarWeekly={rewind:function(){var calendarStart=$('.calendar-weekly-grid tr').eq(1).attr('data-yyyymmdd');callAction('rewind-weekly-calendar','calendar',null,{'current':calendarStart},'Loading...');},forward:function(){var calendarStart=$('.calendar-weekly-grid tr').eq(1).attr('data-yyyymmdd');callAction('forward-weekly-calendar','calendar',null,{'current':calendarStart},'Loading...');},getPopup:function(){return $('#calendar-weekly-edit-popup');},showPopup:function($event,$popup){if(!$popup){$popup=calendarWeekly.getPopup();}
$event.placeAlong(calendar.getBottom(),$popup);$popup.show();},cancelEdit:function(){var $popup=calendarWeekly.getPopup();var $event=$popup.data('event-element');if(($event)&&($event.attr('data-id')==='[new]')){$event.remove();}
$popup.hide();},getParamsFromEvent:function($event){return{event:$event.attr('data-id'),time:$event.closest('td').attr('data-hhmm'),date:$event.closest('tr').attr('data-yyyymmdd'),minutes:calendarWeekly.getEventMinutes($event),related:$event.find('.calendar-weekly-event-related').attr('data-id')};},saveEvent:function(){var $popup=calendarWeekly.getPopup();if($popup.css('display')==='none'){return true;}
var $event=$popup.data('event-element');var params=calendarWeekly.getParamsFromEvent($event);params.label=$popup.find('.calendar-weekly-popup-label').val();$popup.hide();callAction('save-event-label','calendar',null,params,'Saving...','Saved.');},deleteEvent:function(){var $popup=calendarWeekly.getPopup();if($popup.css('display')==='none'){return true;}
if(!confirm("Are you sure you want to delete event?")){return;}
var $event=$popup.data('event-element');var params=calendarWeekly.getParamsFromEvent($event);$popup.hide();callAction('delete-event','calendar',null,params,'Deleting...','Deleted.');},editEvent:function(butt){calendarWeekly.cancelEdit();var $event=$(butt);if(!$event.hasClass('calendar-weekly-event')){$event=$event.closest('.calendar-weekly-event');}
var eventDataId=$event.attr('data-id');var $popup=calendarWeekly.getPopup();var $popupLabelInput=$popup.find('.calendar-weekly-popup-label');$popupLabelInput.val($event.find('.calendar-weekly-event-label-value').text());$popup.find('.calendar-weekly-popup-related').text($event.find('.calendar-weekly-event-related'));$popup.data('event-element',$event);calendarWeekly.showPopup($event,$popup);$popupLabelInput.focus();},dropStop:function(event,ui){log("Drop on calendar: ",event,ui);var $cell=$(this);var $event=$(ui.draggable);if($event.hasClass('board-doc-block')){var $newEvent=$('.calendar-weekly-template .calendar-weekly-event').clone();$newEvent.removeAttr('style');$newEvent.find('.calendar-weekly-event-related').attr('data-id',$event.attr('data-id'));calendarWeekly.updateEventTime($cell,$newEvent);$newEvent.appendTo($cell).setSizesInStyle();calendarWeekly.initEvents($newEvent,$cell.width());calendarWeekly.editEvent($newEvent);}else{$event.setSizesInStyle(true).appendTo($cell);var $popup=calendarWeekly.getPopup();if($popup.css('display')!='none'){calendarWeekly.showPopup($event,$popup);}
var params={event:$event.attr('data-id'),time:$cell.attr('data-hhmm'),date:$cell.closest('tr').attr('data-yyyymmdd')};callAction('save-event-time','calendar',null,params,'Saving...','Saved.');}},getEventMinutes:function($event){var m=/calendar-weekly-event-length-([\d]+)/;return parseInt($event.matchClass(m)[1],10);},resizeStop:function(event,ui){var oldWidth=ui.originalSize.width;var newWidth=ui.helper.width();log("Was: ",oldWidth,', now: ',newWidth);var $event=$(ui.helper);var oldEventLength=calendarWeekly.getEventMinutes($event);log('Old event length: ',oldEventLength);var newEventLength=oldEventLength*newWidth/oldWidth;log('New event length: ',newEventLength);ui.helper.removeClass('calendar-weekly-event-length-'+oldEventLength).addClass('calendar-weekly-event-length-'+newEventLength).setSizesInStyle(true);var $popup=calendarWeekly.getPopup();if($popup.css('display')!='none'){calendarWeekly.showPopup(ui.helper,$popup);}
var params=calendarWeekly.getParamsFromEvent($event);params.minutes=newEventLength;callAction('save-event-minutes','calendar',null,params,'Saving...','Saved.');return;},initEvents:function($events,cellWidth){$events.disableSelection();$events.draggable({forcePlaceholderSize:true,cursorAt:{left:10,top:22},revert:'invalid',revertDuration:200,zIndex:1000,scroll:false});$events.resizable({handles:'e',grid:[cellWidth,0],minWidth:cellWidth,stop:calendarWeekly.resizeStop,resize:function(event,ui){var $popup=calendarWeekly.getPopup();if($popup.css('display')!='none'){calendarWeekly.showPopup($(ui.helper),$popup);}}});},initGrid:function(){var cellWidth=calendarWeekly.updateGridSize();var $events=$('.calendar-weekly-grid .calendar-weekly-event');$events.setSizesInStyle();calendarWeekly.initEvents($events,cellWidth);var $gridCells=$('.calendar-weekly-grid').find('.c0, .c15, .c30, .c45');$gridCells.droppable({accept:'.calendar-weekly-event, .board-doc-block',drop:calendarWeekly.dropStop,tolerance:'pointer',greedy:true,over:function(event,ui){calendar.claimItem(event,ui);var $event=$(ui.draggable),$cell=$(this);calendarWeekly.updateEventTime($cell,$event);if($event.hasClass('calendar-weekly-event')){var $popup=calendarWeekly.getPopup();if($popup.css('display')!='none'){calendarWeekly.showPopup($event,$popup);}}},out:calendar.releaseItem});calendar.getBottom().droppable({accept:'.board-doc-block',drop:function(){return false;},over:calendar.claimItem,out:calendar.releaseItem});},updateGridSize:function(){var $grid=$('.calendar-weekly-grid');var $gridWrapper=$grid.closest('.calendar-weekly-grid-wrapper');$gridWrapper.removeAttr('style');var m=/calendar-weekly-hours-([\d]+)/;var gridHours;try{gridHours=parseInt($grid.matchClass(m)[1],10);}catch(e){}
var cellsNumber=(gridHours+1.5)*4;var correctTotalWidth=Math.floor($gridWrapper.width()/cellsNumber)*cellsNumber;$gridWrapper.width(correctTotalWidth);$grid.width(correctTotalWidth);return correctTotalWidth/cellsNumber;},updateEventTime:function($cell,$event){$event.find('.calendar-weekly-event-time').text($cell.attr('data-time'));},checkPopupCancel:function(event){if(event.keyCode==27){calendarWeekly.cancelEdit();}},checkPopupEnter:function(event){if(event.keyCode==13){calendarWeekly.saveEvent();}}};var calendar={contentAndMenuMoveUp:function(){var calendarHeight=calendar.getBottom().height();var windowHeight=$(window).height();var winStyle='overflow:auto;height:'.concat(windowHeight-calendarHeight).concat('px');$('#content-and-menu').attr('style',winStyle);},contentAndMenuMoveDown:function(){$('#content-and-menu').removeAttr('style');},getBottom:function(){return $('#calendar-bottom');},bottomClose:function(){calendar.contentAndMenuMoveDown();calendar.getBottom().slideUp(200,boardSetupPadding);},bottomOpen:function(){callAction('fill-calendar','calendar');calendar.getBottom().slideDown(200,function(){calendar.contentAndMenuMoveUp();boardSetupPadding();});},updateAllSizes:function(){var $calendar=calendar.getBottom();if($calendar.css('display')!=='none'){calendar.contentAndMenuMoveUp();calendarWeekly.updateGridSize();calendarWeekly.getPopup().hide();}else{calendar.contentAndMenuMoveDown();}
boardSetupPadding();},claimItem:function(event,ui){var $helper=$(ui.helper);if($helper.hasClass('board-doc-block')){$helper.calendarClaim();}},releaseItem:function(event,ui){$(ui.helper).calendarUnClaim();}};$('.calendar-weekly-popup-label').live('keydown',calendarWeekly.checkPopupEnter);$('body').keydown(calendarWeekly.checkPopupCancel);$(window).resize(calendar.updateAllSizes);fx.updaters.add(calendarWeekly.initGrid);var docs={collectInputsForFieldBlock:function($block){var fieldInputs={};$block.find(':input').not('.temp-value').each(function(){var $input=$(this);fieldInputs[$input.attr('name')]=$input.val();});return{'name':$block.attr('data-name'),'class':$block.attr('data-class'),'inputs':fieldInputs};},saveClicked:function(editId,viewId){var $edit=$(utils.asId(editId));var $fieldBlocks=$edit.find('.field-block');var fields=[];$fieldBlocks.each(function(){var $block=$(this);fields.push(docs.collectInputsForFieldBlock($block));});var $nameFieldBlock=$edit.find('.name-field-block');var docParams={'type-id':$edit.attr('data-data'),'fields':fields,'nameField':docs.collectInputsForFieldBlock($nameFieldBlock)};callAction('save','doc',$edit.attr('data-object-id'),docParams,'Saving...',null);},cancelClicked:function(editId,viewId){var $view=$(utils.asId(viewId));var $edit=$(utils.asId(editId));$edit.addClass('hidden').resetForm();$view.removeClass('hidden');},editClicked:function(editId,viewId){var $view=$(utils.asId(viewId));var $edit=$(utils.asId(editId));$view.addClass('hidden');$edit.removeClass('hidden');},deleteClicked:function(editId,viewId){if(confirm("Are you sure you want to move this to trash?")){callAction('remove','doc',$(utils.asId(editId)).attr('data-object-id'),null,'Removing...','Removed');}}};var docType={changeTo1field:function(editId){var $edit=$(asId(editId));$edit.find('.name-field-2').addClass('hidden');$edit.find('.name-field-1').removeClass('hidden');},changeTo2fields:function(editId){var $edit=$(asId(editId));$edit.find('.name-field-1').addClass('hidden');$edit.find('.name-field-2').removeClass('hidden');},saveClicked:function(editId){var $editForm=$(asId(editId));var $fieldRows=$editForm.find('.doctype-field-design-row').not('.hidden, .temp-hidden');var fieldsParams=[];$fieldRows.each(function(){var $thisRow=$(this);var fieldName=$thisRow.find('.compact-form-row-label').text();if(fieldName){fieldName=fieldName.substring(0,fieldName.length-1);}
fieldsParams.push({'name':fieldName,'class':$thisRow.find('.doctype-field-example-wrapper').attr('data-field-class')});});var $doctypeNameRow=$editForm.find('.doctype-name-row');var singleName=$doctypeNameRow.find(':input[name=single]').val();var pluralName=$doctypeNameRow.find(':input[name=plural]').val();var nameFieldParam={'name':''};var $1fieldBlock=$editForm.find('.name-field-1');if(!$1fieldBlock.hasClass('hidden')){nameFieldParam['class']=$1fieldBlock.attr('data-field-class');}
var $2fieldsBlock=$editForm.find('.name-field-2');if(!$2fieldsBlock.hasClass('hidden')){nameFieldParam['class']=$2fieldsBlock.attr('data-field-class');}
callAction('save','doctype',$editForm.attr('data-object-id'),{'type-name':singleName,'plural-name':pluralName,'nameField':nameFieldParam,fields:fieldsParams},'Saving...','Saved');},addFieldClicked:function(editId){var $editForm=$(asId(editId));var $addFieldRow=$editForm.find('.settings-doctype-add-field-row');var $addFieldError=$(asId(editId+'-add-field-error'));var $fieldLabelInput=$addFieldRow.find(':input[name=field-label]');var fieldLabel=$fieldLabelInput.val();if(!fieldLabel){$addFieldError.text("Please enter new field name.");return;}else{$addFieldError.text("");}
var fieldClass=$addFieldRow.find('select[name=field-class]').val();var $exampleFieldRow=$(asId(editId+'-'+fieldClass));var $newFieldRow=$exampleFieldRow.clone().removeClass('hidden').addClass('temp-visible');$newFieldRow.find('.compact-form-row-label').text(fieldLabel+':');$exampleFieldRow.before($newFieldRow);$fieldLabelInput.val('');},cancelClicked:function(editId){var $edit=$(asId(editId));$edit.addClass('hidden').resetForm();$('#settings-doctypes-list').removeClass('hidden');},editClicked:function(editId){var $edit=$(asId(editId));$('#settings-doctypes-list').addClass('hidden');$edit.removeClass('hidden');},deleteClicked:function(editId){if(confirm("Are you sure you want to move this to the trash?")){callAction('remove','doctype',$(asId(editId)).attr('data-object-id'),null,'Removing...','Removed');}}};fx.docType=docType;function nameFieldChosen(butt){var jDocForm=$(butt).closest('.doc-form');var jNameRow=jDocForm.find('.doc-contents-name');var jNamesSelect=jNameRow.find('.name-field-select select');var name=jNamesSelect.find("option[value='"+jNamesSelect.val()+"']").text();jNameRow.attr('data-class',jNamesSelect.val());jNameRow.find('.kind-name').text(name);jNameRow.find('.field .edit-mode-element').removeClass('temp-hidden');jNameRow.find('.name-field-select').addClass('hidden');}
function nameFieldModifyClicked(onWhom){var jDocForm=$(onWhom).closest('.doc-form');jDocForm.find('.doc-contents-name .field .edit-mode-element').addClass('temp-hidden');jDocForm.find('.doc-contents-name .name-field-select').removeClass('hidden');}
function nameSetClicked(butt){var jButt=$(butt);var jNamesSelect=jButt.siblings('select');var jChosenOption=jNamesSelect.find("option").eq(jNamesSelect[0].selectedIndex);var jRow=jButt.closest('tr');if(jChosenOption.hasClass('custom')){var chosenValue=ask1Value('Enter new label',jRow.find('.name .view-mode-element').text());}else{var chosenValue=jNamesSelect.val();}
jRow.find('.name-change-block').addClass('hidden').removeClass('temp-visible');jRow.find('.name .view-mode-element, .name .edit-mode-element').removeClass('temp-hidden').text(chosenValue);}
function nameModifyClicked(butt){var jRow=$(butt).closest('tr');var name=jRow.find('.name .edit-mode-element').text();var gotOurs=false;jRow.find('.name-change-block option').each(function(){var jOption=$(this);if(jOption.text()===name){gotOurs=true;jOption.attr('selected','selected');}else{jOption.removeAttr('selected');}});if(!gotOurs){jRow.find('.name-change-block select').prepend('<option selected="selected">'+name+'</option>');}
jRow.find('.name .edit-mode-element').addClass('temp-hidden');jRow.find('.name .name-change-block').removeClass('hidden').addClass('temp-visible');}
function setupAddRemoveButts(jDocForm){jDocForm=$(jDocForm);var jFieldRows=jDocForm.find('.doc-contents').not('.temp-hidden');var jFieldRowsLen=jFieldRows.length;log('Got ',jFieldRowsLen,' rows');for(var i=0;i<jFieldRowsLen;i++){var currFieldRow=jFieldRows.eq(i);if((i+1>=jFieldRowsLen)||(jFieldRows.eq(i+1).attr('data-class')!==currFieldRow.attr('data-class'))){currFieldRow.find('.add-field-butt').removeClass('hidden');if(i+1<=jFieldRowsLen){currFieldRow.addClass('field-kinds-split');}else{currFieldRow.removeClass('field-kinds-split');}}else{currFieldRow.removeClass('field-kinds-split').find('.add-field-butt').addClass('hidden');}}}
function fieldRemoveClicked(where){var jThisRow=$(where).closest('.doc-contents');jThisRow.addClass('temp-hidden');setupAddRemoveButts(jThisRow.closest('.doc-form'));}
function fieldAddClicked(where){var jSourceFieldRow=$(where).closest('.doc-contents');var jDocForm=jSourceFieldRow.closest('.doc-form');var newRow=makeRowByClass(jSourceFieldRow.attr('data-class'),jDocForm,jSourceFieldRow.find('.name .view-mode-element').text());jSourceFieldRow.after(newRow);setupAddRemoveButts(jDocForm);}
function makeRowByClass(fieldClass,jDocForm,fieldName){var newFieldRow=jDocForm.find('.doc-contents-template').clone(false);newFieldRow.addClass('temp').addClass('doc-contents').removeClass('hidden').removeClass('doc-contents-template');var classTemplate=jDocForm.find('.doc-templates .template[data-class='+fieldClass+']');var newHtmlTemplate=classTemplate.find('.htmltemplate').children().clone(true);newFieldRow.find('.field .input').html(newHtmlTemplate);var nameOptions=classTemplate.find('.names-select option').clone(false);newFieldRow.find('.name .names-select').html(nameOptions);var setFieldName=fieldName?fieldName:nameOptions.eq(0).text();newFieldRow.find('.name .edit-mode-element, .name .view-mode-element').text(setFieldName);newFieldRow.attr('data-class',fieldClass);return newFieldRow;}
function fieldOtherAddClicked(where){var fieldClass=$(where).closest('td').find('.add-field-classes-select').val();var jDocForm=$(where).closest('.doc-form');var newRow=makeRowByClass(fieldClass,jDocForm);var inserted=false;var rows=jDocForm.find('.doc-contents').not('.temp-hidden');var rowsLen=rows.length;for(var i=0;i<rowsLen;i++){var jThisRow=$(rows[i]);if((i+1>=rowsLen)||(jThisRow.attr('data-class')===fieldClass&&$(rows[i+1]).attr('data-class')!==fieldClass)){jThisRow.after(newRow);log('Inserted after:',jThisRow);inserted=true;break;}}
if(!inserted){jDocForm.find('.doc-table').append(newRow);log('Inserted into table');}
setupAddRemoveButts(jDocForm);}
function docEditClicked(butt){var jDocForm=$(butt).closest('.doc-form');setupAddRemoveButts(jDocForm);jDocForm.removeClass('doc-in-view-mode');jDocForm.addClass('doc-in-edit-mode');}
function docCancelClicked(butt){var jDocForm=$(butt).closest('.doc-form');if(jDocForm.attr('data-template-mode')==='yes'){settingsTemplateCanceled(jDocForm);}
else
if(jDocForm.attr('data-it-is-new')==='yes'){hideNewDocForms();}else{jDocForm.removeClass('doc-in-edit-mode');jDocForm.addClass('doc-in-view-mode');}
jDocForm.find('.temp').remove();jDocForm.find('.temp-hidden').removeClass('temp-hidden');jDocForm.find('.temp-visible').removeClass('temp-visible').addClass('hidden');jDocForm.resetForm();}
function makeFieldDescrForSave(jFieldRow){var jFieldTd=jFieldRow.find('td.field');var fieldInputs={};jFieldRow.find(':input').not('[type=button], [type=submit], .temp-value').each(function(){var jInput=$(this);fieldInputs[jInput.attr('name')]=jInput.val();});var fieldDescr={};fieldDescr['name']=jFieldRow.find('.name span.view-mode-element').text();fieldDescr['class']=jFieldRow.attr('data-class');fieldDescr['inputs']=fieldInputs;return fieldDescr;}
function docSaveClicked(butt){var jDocForm=$(butt).closest('.doc-form');var templateMode=jDocForm.attr('data-template-mode')==='yes';var fields=[];params=getDataAttrs(jDocForm[0]);params['fields']=fields;jDocForm.find('.doc-contents').not('.temp-hidden').each(function(){fields.push(makeFieldDescrForSave($(this)));});if(templateMode){params['type-name']=jDocForm.find('.doc-contents-type-name .template-name').val();params['plural-name']=jDocForm.find('.doc-contents-plural-name .plural-name').val();}
var jNameFieldRow=jDocForm.find('.doc-contents-name');params['nameField']=makeFieldDescrForSave(jNameFieldRow);callAction('save',templateMode?'doctype':'doc',jDocForm.attr('data-self-id'),params,'Saving...','Saved');}
function docDeleteClicked(butt){if(confirm("Are you sure you want to move this to trash?")){var jDocForm=$(butt).closest('.doc-form');callAction('remove','doc',jDocForm.attr('data-self-id'),null,'Removing...','Removed');}}
$(document).ready(function(){$('.doc-form').resetForm();});function cloudShowMore(butt){var jCloudControl=$(butt).closest('.cloud-control');callAction('show-more','homer',null,{'first':jCloudControl.find('input[name=first]').val(),'items':jCloudControl.find('input[name=items]').val(),'search':jCloudControl.find('input[name=search]').val()},'Loading...');}
function cloudShowLess(butt){var jCloudControl=$(butt).closest('.cloud-control');callAction('show-less','homer',null,{'first':jCloudControl.find('input[name=first]').val(),'items':jCloudControl.find('input[name=items]').val(),'search':jCloudControl.find('input[name=search]').val()},'Loading...');}
function showNewDocForm(dtId){hideNewDocForms();$('#cloud-block').addClass('hidden');var newDocBlock=$('#new-doc-'+dtId);var jDocForm=newDocBlock.find('.doc-form').resetForm();setupAddRemoveButts(jDocForm);newDocBlock.removeClass('hidden');}
function hideNewDocForms(){$('.new-doc-form').addClass('hidden');$('#cloud-block').removeClass('hidden');}
fx.homer={hideWelcome:function(){callAction('hide-welcome','home',null,null,null,null);}};fx.search={clicked:function(){var newHash;var searchText=$('#top-search-input').val();if(!searchText){return false;}else{window.location='#search/'.concat(encodeURIComponent(searchText));}},clear:function(){$("#top-search-input").val('');}};fx.selectCheck={check1:function(elem){var $this=$(elem);var oldVal=$this.attr('data-last-value');var newVal=$this.val();if(oldVal!=newVal){$this.attr('data-last-value',newVal);setTimeout($this.attr('data-watch-func'),13);}},check1EachHelper:function(index,elem){fx.selectCheck.check1(elem);},checkAll:function(){$('.watched').each(fx.selectCheck.check1EachHelper);}};fx.timers.add(fx.selectCheck.checkAll);fx.settings={getDateFormat:function(){return $('.settings-schema-block').attr('data-date-format');},getWeekFirst:function(){if($('.settings-schema-block').attr('data-week-first')==='monday'){return 1;}else{return 0;}},isDemo:function(){return $('.settings-schema-block').attr('data-demo')==='yes';},setNewPhone:function(butt){var $phoneBlock=$(butt).closest('.settings-phone-block');$phoneBlock.find('.settings-old-phone').addClass('hidden');$phoneBlock.find('.settings-new-phone-form').removeClass('hidden');},verifyNewPhone:function(butt){var $phoneBlock=$(butt).closest('.settings-phone-block');callAction('verify-phone','settings',null,{'phone':$phoneBlock.find('.settings-new-phone-input').val()},'Sending sms...',null);},verifyPhoneCode:function(butt){var $phoneBlock=$(butt).closest('.settings-phone-block');callAction('verify-code','settings',null,{'code':$phoneBlock.find('.settings-phone-code-input').val()},'Checking code...',null);},newPhoneCancel:function(butt){var $phoneBlock=$(butt).closest('.settings-phone-block');$phoneBlock.find('.settings-new-phone-form, .settings-phone-code-form').addClass('hidden');$phoneBlock.find('.settings-old-phone').removeClass('hidden');},codeCheckCancel:function(butt){var $phoneBlock=$(butt).closest('.settings-phone-block');callAction('verify-phone-cancel','settings',null,null,'Canceling...',null);},removePhone:function(butt){callAction('remove-phone','settings',null,null,'Removing...',null);},updateDateTime:function(){var $form=$('#datetime-form');var first=$form.find(':input[checked][name=first]').val();var weekFirst=$form.find(':input[checked][name=weekfirst]').val();var time=$form.find(':input[checked][name=time]').val();var timezone=$form.find('select[name=timezone]').val();callAction('update-formats','settings',null,{'first':first,'time':time,'timezone':timezone,'weekfirst':weekFirst},'Updating...',null);}};function settingsEditBoardClicked(id){callAction("edit-board","board",id,null,"Opening...");}
function settingsBoardCancelClicked(){callAction("load-section","settings",null,{'section':'boards'});}
function settingsBoardStageAddClicked(){var newName=ask1Value("New stage name:");var newLi=$('<li></li>');newLi.attr('data-key','').text(newName).append('<span class="cross-icon empty-icon"></span>');$('#board-settings .board-stages').append(newLi);}
function settingsBoardSaveClicked(id){var stages=[];$('#board-settings .board-stages li').each(function(){var $this=$(this);stages.push({'key':$this.attr('data-key'),'name':$this.text()});});callAction("save-board","board",id,readForm('board-settings',{'stages':stages}),'Saving...');}
function settingsRemoveBoardClicked(name,id){if(confirm("Are you sure you want to remove board "+name+"? Everything on the board will NOT be deleted.")){callAction('remove','board',id,null,'Removing...','Removed');}}
function settingsNewBoardClicked(){callAction("edit-board","board","[new]",null,"Creating...");}
function settingsEditTemplateClicked(id){if(id){var jForm=$('#template-'+id);}else{var jForm=$('#new-template-form');}
var jDocForm=jForm.find('.doc-form');setupAddRemoveButts(jDocForm);$('#templates-list').addClass('hidden');jForm.removeClass('hidden');jDocForm.find('.template-name').focus();}
function settingsTemplateCanceled(jDocForm){$('.template-edit-form').addClass('hidden');$('#templates-list').removeClass('hidden');}
function settingsRemoveTemplateClicked(name,id){if(confirm("Are you sure you want to remove template "+name+"?")){callAction('remove','doctype',id,null,'Removing...','Removed');}}
function settingsAutoFillTemplatePlural(input){var jInput=$(input);if(jInput.val()){return;}
var singleName=jInput.closest('table').find('.doc-contents-type-name input.template-name').val();var lastLetter=singleName.substr(-1);var pluralName;if(!singleName){return;}
if((lastLetter==='s')||(lastLetter==='x')||(singleName.substr(-2)==='ch')){pluralName=singleName+'es';}else if(lastLetter==='y'){pluralName=singleName.slice(0,-1)+"ies";}else{pluralName=singleName+'s';}
jInput.val(pluralName);}
function settingsUpdateProfile(){$('#user .error').empty();callAction('update-profile','settings',null,readForm('user'),'Updating...');}
function settingsUpdatePassword(){$('#pass .error').empty();callAction('update-pass','settings',null,readForm('pass'),'Updating...');}
function settingsUserEdit(userId){$('#user-'+userId).removeClass('hidden').resetForm().find('.error').text('');$('#users-list').addClass('hidden');}
function settingsUserRemove(userId,userName){if(!confirm('Are you sure you want to remove user '+userName+'?')){return;}
if(!confirm('Last warning. You want to remove user '+userName+'. This will happen immediately and user can not be restored.')){return;}
callAction('remove-user','settings',null,{'id':userId},'Removing...');}
function settingsUserUpdate(userId){$('#user-'+userId+' .error').text('');callAction("update-user","settings",null,readForm("user-"+userId,{"id":userId}),"Updating...");}
function settingsRemoveAccount(){if(!confirm('Are you sure you want to remove your account?')){return;}
if(!confirm('Last warning. Are you sure you want to remove account and all data it contains?')){return;}
callAction('remove-account','settings',null,null,'Removing...');}
fx.tzs={'-11':'Pacific/Midway','-10':'US/Hawaii','-8':'US/Alaska','-7':'US/Pacific','-6':'US/Mountain','-5':'US/Central','-4':'US/Eastern','-3':'Atlantic/Bermuda','-1':'Atlantic/Cape_Verde','0':'GMT','1':'Europe/London','2':'Europe/Zurich','3':'Europe/Helsinki','4':'Europe/Moscow','5':'Indian/Maldives','6':'Asia/Yekaterinburg','7':'Asia/Jakarta','8':'Asia/Singapore','9':'Australia/Adelaide','10':'Australia/Melbourne','11':'Pacific/Norfolk','12':'Pacific/Auckland','13':'Pacific/Enderbury'};fx.signup={detectTimezone:function(){try{var today=new Date();var offset=-(today.getTimezoneOffset()/60);var detectedTimezone=fx.tzs[offset];if(detectedTimezone){$('select[name=timezone]').val(detectedTimezone);}}catch(e){}},choosePlan:function(plan,name){$(':input[name=plan]').val(plan);$('.plan-name-in-form').text(name);$('.signup-form-wrapper').removeClass('hidden');},checkForm:function(){var gotError=false;try{var nameInput=$("#signup-form-name input");var nameInputError=nameInput.closest('td').find('.error');if(!nameInput.val()){nameInputError.text('Please include your name.');gotError=true;}else{nameInputError.text('');}
var emailInput=$("#signup-form-email input");var emailInputError=emailInput.closest('td').find('.error');if(!emailInput.val()){emailInputError.text('Please include your email.');gotError=true;}else{emailInputError.text('');}
var pass1Input=$("#signup-form-password input");var pass1InputError=pass1Input.closest('td').find('.error');if(!pass1Input.val()){pass1InputError.text('Please choose and specify your password.');gotError=true;}else{pass1InputError.text('');}
var pass2Input=$("#signup-form-password2 input");var pass2InputError=pass2Input.closest('td').find('.error');if((pass1Input.val())&&(pass1Input.val()!=pass2Input.val())){pass2InputError.text('Please set the same password in both fields.');gotError=true;}else{pass2InputError.text('');}}catch(ex){}
return!gotError;}};var statusEvent={newPostClicked:function(butt){var $form=$(butt).closest('.status-new-form');var $error=$form.find('.status-new-error');var msg=$form.find('.status-new-textarea').not('.temp-value').val();if(!msg){$error.text('Please enter something in the message field above.');return;}else{$error.text('');}
callAction('update','statusevent',null,{doc:$form.attr('data-doc-id'),msg:msg},'Updating...',null);}};var tasks={installHighlight:function(){$('.task').not('.high-installed').mouseover(tasks.mouseOver).mouseout(tasks.mouseOut).addClass('high-installed');},mouseOver:function(){$('.task-high').removeClass('task-high');$(this).addClass('task-high');},mouseOut:function(){$('.task-high').removeClass('task-high');},deleteClicked:function(butt){if(confirm("Are you sure you want to delete this task?")){var $task=$(butt).closest('.task');callAction('delete','task',$task.attr('data-task-id'),{currentDoc:$task.attr('data-current-doc')},'Deleting...',null);}},showTaskForm:function(formId,buttId){var $butt=$(asId(buttId));var $form=$(asId(formId));$butt.addClass('hidden');$form.removeClass('hidden');},taskClicked:function(checkBox){var $checkBox=$(checkBox);var $task=$checkBox.closest('.task');if($checkBox.is(':checked')){tasks.doneTask($task);}else{tasks.undoneTask($task);}},doneTask:function($task){$task.addClass('task-is-done');setTimeout(function(){tasks.doneTaskSend2Server($task);},1000);},undoneTask:function($task){$task.removeClass('task-is-done');},doneTaskSend2Server:function($task){if($task.hasClass('task-is-done')){callAction('done','task',$task.attr('data-task-id'),{currentDoc:$task.attr('data-current-doc')},'Saving...',null);}},saveTask:function(formId){var $form=$(utils.asId(formId));var label=$form.find('input[name=label]').val();var dueType=$form.find('select[name=due]').val();var taskId=$form.attr('data-object-id');var docId=$form.attr('data-data');var labelErrorId=utils.asId(formId)+'-label-error';if((label==='')||(label===undefined)){$form.find(labelErrorId).text('Please enter task description.');return;}else{$form.find(labelErrorId).text('');}
var timeHour='';var timeMin='';var date='';var timeAP='';if(dueType=='exact-time'){var dueDate=$form.find('.calendar-holder').datepicker('getDate');date=$.datepicker.formatDate('yy-mm-dd',dueDate);timeHour=$form.find('select[name=hour]').val();timeMin=$form.find('select[name=minute]').val();timeAP=$form.find('select[name=ampm]').val();}
var params={label:label,dueType:dueType,date:date,timeHour:timeHour,timeMin:timeMin,timeAP:timeAP,docId:docId};callAction('save','task',taskId,params,'Saving...',null);},cancelTaskForm:function(formId,buttId){var $form=$(asId(formId));var $butt=$(asId(buttId));$form.addClass('hidden');$butt.removeClass('hidden');$form.resetForm();},dueDateSelected:function(dateText,inst){var $calendarHolder=$(this);tasks.dueDateLineSet($calendarHolder);},dueDateLineSet:function($calendarHolder){var $dateHolder=$calendarHolder.closest('.datetime-area').find('.date-holder');$dateHolder.text($.datepicker.formatDate(fx.settings.getDateFormat(),$calendarHolder.datepicker('getDate')));},dueChanged:function(formId){var $form=$(asId(formId));var $datetime=$form.find('.datetime-area');var firstDay=fx.settings.getWeekFirst();var $dueSelect=$form.find('select[name=due]');var $calendarHolder=$datetime.find('.calendar-holder');if($dueSelect.val()=='exact-time'){$calendarHolder.datepicker('destroy').datepicker({onSelect:tasks.dueDateSelected,dateFormat:'yy-mm-dd',firstDay:firstDay,defaultDate:$.datepicker.parseDate('yy-mm-dd',$calendarHolder.attr('data-date'))});tasks.dueDateLineSet($calendarHolder);$datetime.removeClass('hidden');}else{$datetime.addClass('hidden');}}};fx.updaters.add(tasks.installHighlight);function trashRecovery(id){callAction('recover','trash',null,{'id':id},'Recovering...','Recovered');}
function trashEmpty(){if(confirm('Are you sure you want to remove all items in trash permanently?')){callAction('empty','trash',null,null,'Emptying...','Trash is empty');}}
__boardLastPaddingCorrection=0;function boardSetupPadding(){var $docsList=$('.docs-list');if($docsList.length===0){return;}
var $footer=$('.footer');var footerHeight=$footer.height();var windowHeight=$(window).height();var $calendarBottom=$('#calendar-bottom');if($calendarBottom.css('display')!=='none'){windowHeight-=$calendarBottom.height();}
var padding=windowHeight-$docsList.offset().top-$docsList.height()-footerHeight-__boardLastPaddingCorrection;if(padding<0){padding=0;}
log("Setting padding to ",padding);$docsList.css('padding-bottom',padding+'px');if(padding>0){var footerTop=$footer.offset().top;var footerLowerThanNeeded=footerTop+footerHeight-windowHeight;if(footerLowerThanNeeded!=0){padding=padding-footerLowerThanNeeded;__boardLastPaddingCorrection=footerLowerThanNeeded;if(padding<0){padding=0;}
$docsList.css('padding-bottom',padding+'px');log("Correcting padding to ",padding);}}}
function boardSetupDrag(){$('.docs-list').droppable({accept:'.board-doc-block',drop:boardItemDropped,tolerance:'pointer'});var $boardBlocks=$('.board-doc-block');$boardBlocks.setSizesInStyle(true);$boardBlocks.draggable({forcePlaceholderSize:true,revert:'invalid',revertDuration:200,zIndex:1000,helper:'clone',opacity:0.5,appendTo:'body'});}
function boardItemDropped(event,ui){var $item=$(ui.draggable);var $helper=$(ui.helper);if($helper.calendarIsClaimed()){log('Board drop (will not process):',event,ui);}else{log('Board drop (will process):',event,ui);var $list=$(this);var $docs=$list.find('.board-doc-block').not("div[data-id='".concat($item.attr('data-id').concat("']")));if($docs.length===0){$item.appendTo($list).setSizesInStyle(true);}else{var topItem=$docs.eq(0);var bottomItem=$docs.eq($docs.length-1);log("Wow! This list is not empty!! length: ",$docs.length," My position: ",ui.absolutePosition.top,' top item: ',topItem.position().top,' bottom item: ',bottomItem.position().top);var itemTop=ui.absolutePosition.top;if(bottomItem.position().top<=itemTop){$item.appendTo($list).setSizesInStyle(true);}else{$docs.each(function(n){var $this=$(this);var thisTop=$this.position().top;log("Checking ",n,' top: ',thisTop);if(thisTop>itemTop){$item.insertBefore($this);return false;}
return true;});}}
boardSyncPositions($list);}}
fx.updaters.add(boardSetupPadding);fx.updaters.add(boardSetupDrag);function boardSyncPositions($stage){var order='';$stage.find('.board-doc-block').each(function(){if(order!==''){order+=',';}
order+=$(this).attr('data-id');});var boardId=$stage.closest('.board-table').attr('data-id');callAction('update-list','board',boardId,{'order':order,'stageKey':$stage.attr('data-key')},'Updating...');boardSetupPadding();}
fx.forms={removeMyRow:function(buttInRow){$(buttInRow).closest('.compact-form-row').remove();},hideRow:function(elementInRow){var formRow=$(elementInRow).closest('.compact-form-row');if(formRow.hasClass('temp-visible')){formRow.remove();}else{formRow.addClass('temp-hidden');}}};