Ext.BLANK_IMAGE_URL="/Images/s.gif";Ext.QuickTips.init();Ext.form.VTypes["phoneVal"]=/^(d{3}[-]?){1,2}(d{4})$/;
Ext.form.VTypes["phoneMask"]=/[d-]/;Ext.form.VTypes["phoneText"]="Not a valid phone number. Must be in the format 123-4567 or 123-456-7890 (dashes optional)";
Ext.form.VTypes["phone"]=function(A){return Ext.form.VTypes["phoneVal"].test(A);};
Ext.apply(Ext.form.VTypes,{emaillist:function(A,C){var B=ZapUtils.validateMultipleEmails(A);
if(B==null){return true;}else{this.emaillistText="The following "+B.length+" email addresses had problems: ";
for(var E=0;E<B.length;E++){var D=B[E];if(E>0){this.emaillistText+=", ";}this.emaillistText+=D;
}return false;}},emaillistText:"Email addresses"});Ext.override(Ext.form.HtmlEditor,{cleanHtml:function(A){A=String(A);
if(A.length>5){if(Ext.isSafari){A=A.replace(/\sclass="(?:Apple-style-span|khtml-block-placeholder)"/gi,"");
}}if(A=="&nbsp;"){A="";}else{A=A.replace(/<!(?:--.*?--\s*)?>/g,"");A=A.replace(/(<w:([^>]+)>([^<]+)<\/w([^>]+)>)/ig,"");
A=A.replace(/(<w:([^>]+)>)/ig,"");A=A.replace(/(<style>([^<]+)<\/style>)/ig,"");A=A.replace(/(<[/]?meta([^>]+)>)/ig,"");
A=A.replace(/(style=\"([^\"]+)\")/ig,"");A=A.replace(/(class=\"([^\"]+)\")/ig,"");
A=A.replace(/<[/]?(span|link|xml|del|ins|[ovwxp]:\w+)[^>]*?>/ig,"");A=A.replace(/(\u2018|\u2019)/g,"'");
}return A;}});Ext.ux.StaticTextField=Ext.extend(Ext.form.TextField,{fieldClass:"x-static-text-field",onRender:function(){this.readOnly=true;
this.disabled=!this.initialConfig.submitValue;Ext.ux.StaticTextField.superclass.onRender.apply(this,arguments);
}});Ext.reg("statictextfield",Ext.ux.StaticTextField);Ext.form.Action.Submit.prototype.run=Ext.form.Action.Submit.prototype.run.createInterceptor(function(){this.form.items.each(function(A){if(A.el.getValue()==A.emptyText){A.el.dom.value="";
}});});Ext.form.Action.Submit.prototype.run=Ext.form.Action.Submit.prototype.run.createSequence(function(){this.form.items.each(function(A){if(A.el.getValue()==""&&A.emptyText){A.el.dom.value=A.emptyText;
}});});Ext.override(Ext.grid.GridView,{scrollTop:function(){this.scroller.dom.scrollTop=0;
this.scroller.dom.scrollLeft=0;},scrollToTop:Ext.emptyFn});Ext.grid.CheckColumn=function(A){Ext.apply(this,A);
if(!this.id){this.id=Ext.id();}this.renderer=this.renderer.createDelegate(this);};
Ext.grid.CheckColumn.prototype={init:function(A){this.grid=A;this.grid.on("render",function(){var B=this.grid.getView();
B.mainBody.on("mousedown",this.onMouseDown,this);},this);},onMouseDown:function(D,A){if(A.className&&A.className.indexOf("x-grid3-cc-"+this.id)!=-1){D.stopEvent();
var E=this.grid.getView().findRowIndex(A);var C=this.grid.store.getAt(E);var B=true;
if(this.allowToggle&&typeof this.allowToggle=="function"){B=this.allowToggle.apply(this.scope||this,[C]);
}if(B){C.set(this.dataIndex,!C.data[this.dataIndex]);}}},renderer:function(C,D,A){D.css+=" x-grid3-check-col-td";
var B=true;if(this.allowToggle&&typeof this.allowToggle=="function"){B=this.allowToggle.apply(this.scope||this,[A]);
}if(B){return'<div class="x-grid3-check-col'+(C?"-on":"")+" x-grid3-cc-"+this.id+'">&#160;</div>';
}}};Ext.ux.StateCombo=Ext.extend(Ext.form.ComboBox,{stateData:[["AK","Alaska"],["AL","Alabama"],["AR","Arkansas"],["AZ","Arizona"],["CA","California"],["CO","Colorado"],["CT","Connecticut"],["DC","District of Columbia"],["DE","Delaware"],["FL","Florida"],["GA","Georgia"],["HI","Hawaii"],["IA","Iowa"],["ID","Idaho"],["IL","Illinois"],["IN","Indiana"],["KS","Kansas"],["KY","Kentucky"],["LA","Louisiana"],["MA","Massachusetts"],["MD","Maryland"],["ME","Maine"],["MI","Michigan"],["MN","Minnesota"],["MO","Missouri"],["MS","Mississippi"],["MT","Montana"],["NE","Nebraska"],["NC","North Carolina"],["ND","North Dakota"],["NH","New Hampshire"],["NJ","New Jersey"],["NM","New Mexico"],["NV","Nevada"],["NY","New York"],["OH","Ohio"],["OK","Oklahoma"],["OR","Oregon"],["PA","Pennsylvania"],["RI","Rhode Island"],["SC","South Carolina"],["SD","South Dakota"],["TN","Tennessee"],["TX","Texas"],["UT","Utah"],["VA","Virginia"],["VT","Vermont"],["WA","Washington"],["WI","Wisconsin"],["WV","West Virginia"],["WY","Wyoming"]],storeFields:["abbr","state"],typeAhead:true,displayField:"abbr",valueField:"abbr",mode:"local",triggerAction:"all",selectOnFocus:true,fieldLabel:"State",forceSelection:true,initComponent:function(){Ext.apply(this,{store:new Ext.data.SimpleStore({fields:this.storeFields,data:this.stateData}),width:(this.displayField=="abbr")?50:150});
Ext.ux.StateCombo.superclass.initComponent.call(this);this.store.sort(this.displayField);
}});Ext.reg("statecombo",Ext.ux.StateCombo);Ext.ux.MonthNumberCombo=Ext.extend(Ext.form.ComboBox,{monthNumberData:[["01","January"],["02","February"],["03","March"],["04","April"],["05","May"],["06","June"],["07","July"],["08","August"],["09","September"],["10","October"],["11","November"],["12","December"]],typeAhead:true,displayField:"num",valueField:"num",mode:"local",triggerAction:"all",selectOnFocus:true,forceSelection:true,initComponent:function(){Ext.apply(this,{store:new Ext.data.SimpleStore({fields:["num","month"],data:this.monthNumberData}),width:(this.displayField=="num")?45:130});
Ext.ux.MonthNumberCombo.superclass.initComponent.call(this);this.store.sort(this.displayField);
}});Ext.reg("monthnumcombo",Ext.ux.MonthNumberCombo);Ext.ux.YearNumberCombo=Ext.extend(Ext.form.ComboBox,{typeAhead:true,displayField:"num",valueField:"num",mode:"local",triggerAction:"all",selectOnFocus:true,forceSelection:true,initComponent:function(){var C=new Date();
var B=C.getFullYear();var D=new Array();for(var A=0;A<=15;A++){D[A]=[(B+A)+""];}Ext.apply(this,{store:new Ext.data.SimpleStore({fields:["num"],data:D}),width:65});
Ext.ux.YearNumberCombo.superclass.initComponent.call(this);this.store.sort(this.displayField);
}});Ext.reg("yearnumcombo",Ext.ux.YearNumberCombo);Ext.ux.CreditCardTypeCombo=Ext.extend(Ext.form.ComboBox,{monthNumberData:[[1,"Visa"],[2,"MasterCard"],[3,"American Express"],[4,"Discover"]],typeAhead:true,displayField:"name",valueField:"id",mode:"local",triggerAction:"all",selectOnFocus:true,forceSelection:true,initComponent:function(){Ext.apply(this,{store:new Ext.data.SimpleStore({fields:["id","name"],data:this.monthNumberData}),width:(this.displayField=="num")?45:130});
Ext.ux.CreditCardTypeCombo.superclass.initComponent.call(this);}});Ext.reg("cctypecombo",Ext.ux.CreditCardTypeCombo);
Ext.data.ObjectReader=function(A,B){A=A||{};Ext.data.ObjectReader.superclass.constructor.call(this,A,B||A.fields);
};Ext.extend(Ext.data.ObjectReader,Ext.data.DataReader,{read:function(B){if(undefined==B.objects){throw {message:"ObjectReader.read: Objects not available"};
}var A=this.readRecords(B.objects);if(undefined!=B.totalSize){A.totalRecords=B.totalSize;
}return A;},readRecords:function(H){var G=[];var D=this.recordType,E=D.prototype.fields;
var C=this.meta.id;for(var A=0;A<H.length;A++){var F=H[A];var I={};for(var B=0;B<E.length;
B++){var K=E.items[B];var L=F[K.mapping||K.name]||K.defaultValue;L=K.convert(L,F);
I[K.name]=L;}var J=C?F[C]:undefined;G[G.length]=new D(I,J);}return{records:G,totalRecords:G.length};
}});Ext.lib.Ajax.isCrossDomain=function(A){var B=/(?:(\w*:)\/\/)?([\w\.]*(?::\d*)?)/.exec(A);
if(!B[1]){return false;}return(B[1]!=location.protocol)||(B[2]!=location.host);};
Ext.override(Ext.data.Connection,{request:function(D){if(this.fireEvent("beforerequest",this,D)!==false){var I=D.params;
if(typeof I=="function"){I=I.call(D.scope||window,D);}if(typeof I=="object"){I=Ext.urlEncode(I);
}if(this.extraParams){var B=Ext.urlEncode(this.extraParams);I=I?(I+"&"+B):B;}var E=D.url||this.url;
if(typeof E=="function"){E=E.call(D.scope||window,D);}if(D.form){var C=Ext.getDom(D.form);
E=E||C.action;var F=C.getAttribute("enctype");if(D.isUpload||(F&&F.toLowerCase()=="multipart/form-data")){return this.doFormUpload(D,I,E);
}var H=Ext.lib.Ajax.serializeForm(C);I=I?(I+"&"+H):H;}var A=D.headers;if(this.defaultHeaders){A=Ext.apply(A||{},this.defaultHeaders);
if(!D.headers){D.headers=A;}}var J={success:this.handleResponse,failure:this.handleFailure,scope:this,argument:{options:D},timeout:this.timeout};
var G=D.method||this.method||(I?"POST":"GET");if(G=="GET"&&(this.disableCaching&&D.disableCaching!==false)||D.disableCaching===true){E+=(E.indexOf("?")!=-1?"&":"?")+"_dc="+(new Date().getTime());
}if(typeof D.autoAbort=="boolean"){if(D.autoAbort){this.abort();}}else{if(this.autoAbort!==false){this.abort();
}}if((G=="GET"&&I)||D.xmlData||D.jsonData){E+=(E.indexOf("?")!=-1?"&":"?")+I;I="";
}if(D.scriptTag||this.scriptTag||Ext.lib.Ajax.isCrossDomain(E)){this.transId=this.scriptRequest(G,E,J,I,D);
}else{this.transId=Ext.lib.Ajax.request(G,E,J,I,D);}return this.transId;}else{Ext.callback(D.callback,D.scope,[D,null,null]);
return null;}},scriptRequest:function(D,B,H,C,A){var I=++Ext.data.ScriptTagProxy.TRANS_ID;
var F={id:I,cb:A.callbackName||"stcCallback"+I,scriptId:"stcScript"+I,options:A};
B+=(B.indexOf("?")!=-1?"&":"?")+C+String.format("&{0}={1}",A.callbackParam||this.callbackParam||"callback",F.cb);
var G=this;window[F.cb]=function(J){G.handleScriptResponse(J,F);};F.timeoutId=this.handleScriptFailure.defer(H.timeout,this,[F]);
var E=document.createElement("script");E.setAttribute("src",B);E.setAttribute("type","text/javascript");
E.setAttribute("id",F.scriptId);document.getElementsByTagName("head")[0].appendChild(E);
return F;},handleScriptResponse:function(B,C){this.transId=false;this.destroyScriptTrans(C,true);
var D=C.options;var A;if(typeof B=="string"){if(window.ActiveXObject){A=new ActiveXObject("Microsoft.XMLDOM");
A.async="false";A.loadXML(B);}else{A=new DOMParser().parseFromString(B,"text/xml");
}}response={responseObject:B,responseText:(typeof B=="object")?Ext.util.JSON.encode(B):String(B),responseXML:A,argument:D.argument};
this.fireEvent("requestcomplete",this,response,D);Ext.callback(D.success,D.scope,[response,D]);
Ext.callback(D.callback,D.scope,[D,true,response]);},handleScriptFailure:function(A){this.transId=false;
this.destroyScriptTrans(A,false);var B=A.options;response={argument:B.argument,status:500,statusText:"Server failed to respond",responseText:""};
this.fireEvent("requestexception",this,response,B,{status:-1,statusText:"communication failure"});
Ext.callback(B.failure,B.scope,[response,B]);Ext.callback(B.callback,B.scope,[B,false,response]);
},destroyScriptTrans:function(A,B){document.getElementsByTagName("head")[0].removeChild(document.getElementById(A.scriptId));
clearTimeout(A.timeoutId);if(B){window[A.cb]=undefined;try{delete window[A.cb];}catch(C){}}else{window[A.cb]=function(){window[A.cb]=undefined;
try{delete window[A.cb];}catch(D){}};}}});Ext.form.FileUploadField=Ext.extend(Ext.form.TextField,{buttonText:"Browse...",buttonOnly:false,buttonOffset:3,readOnly:true,autoSize:Ext.emptyFn,initComponent:function(){Ext.form.FileUploadField.superclass.initComponent.call(this);
this.addEvents("fileselected");},onRender:function(A,C){Ext.form.FileUploadField.superclass.onRender.call(this,A,C);
this.wrap=this.el.wrap({cls:"x-form-field-wrap x-form-file-wrap"});this.el.addClass("x-form-file-text");
this.el.dom.removeAttribute("name");this.fileInput=this.wrap.createChild({id:this.getFileInputId(),name:this.name||this.getId(),cls:"x-form-file",tag:"input",type:"file",size:1});
var B=Ext.applyIf(this.buttonCfg||{},{text:this.buttonText});this.button=new Ext.Button(Ext.apply(B,{renderTo:this.wrap,cls:"x-form-file-btn"+(B.iconCls?" x-btn-icon":"")}));
if(this.buttonOnly){this.el.hide();this.wrap.setWidth(this.button.getEl().getWidth());
}this.fileInput.on("change",function(){var D=this.fileInput.dom.value;this.setValue(D);
this.fireEvent("fileselected",this,D);},this);},getFileInputId:function(){return this.id+"-file";
},onResize:function(A,B){Ext.form.FileUploadField.superclass.onResize.call(this,A,B);
this.wrap.setWidth(A);if(!this.buttonOnly){var A=this.wrap.getWidth()-this.button.getEl().getWidth()-this.buttonOffset;
this.el.setWidth(A);}},preFocus:Ext.emptyFn,getResizeEl:function(){return this.wrap;
},getPositionEl:function(){return this.wrap;},alignErrorIcon:function(){this.errorIcon.alignTo(this.wrap,"tl-tr",[2,0]);
}});Ext.reg("fileuploadfield",Ext.form.FileUploadField);Ext.ns("Ext.ux.form");Ext.ux.form.XCheckbox=Ext.extend(Ext.form.Checkbox,{submitOffValue:"false",submitOnValue:"true",onRender:function(){this.inputValue=this.submitOnValue;
Ext.ux.form.XCheckbox.superclass.onRender.apply(this,arguments);this.hiddenField=this.wrap.insertFirst({tag:"input",type:"hidden"});
if(this.tooltip){this.imageEl.set({qtip:this.tooltip});}this.updateHidden();},setValue:function(A){A=this.convertValue(A);
this.updateHidden(A);Ext.ux.form.XCheckbox.superclass.setValue.apply(this,arguments);
},updateHidden:function(A){A=undefined!==A?A:this.checked;A=this.convertValue(A);
if(this.hiddenField){this.hiddenField.dom.value=A?this.submitOnValue:this.submitOffValue;
this.hiddenField.dom.name=A?"":this.el.dom.name;}},convertValue:function(A){return(A===true||A==="true"||A===this.submitOnValue||String(A).toLowerCase()==="on");
}});Ext.reg("xcheckbox",Ext.ux.form.XCheckbox);Ext.namespace("Zapproved");Zapproved.SessionManager=function(A){if(A){Ext.apply(this,A);
}};Ext.extend(Zapproved.SessionManager,Ext.util.Observable,{loadMaskText:"Logging in...",errorSubject:"Login failed",accountErrorSubject:"Failed to load account",accountLoadMaskText:"Loading account...",successCallback:null,failureCallback:null,scope:null,login:function(B,A,D){var C=new Zapproved.Request({url:secureBaseUrl+"Services/Account/Login",scope:this,errorSubject:this.errorSubject,mask:new Ext.LoadMask(Ext.getBody(),{msg:this.loadMaskText}),params:{username:B,password:A,token:D,tz:tz,tza:tza},successCallback:this.afterLogin,failureCallback:this.failureCallback});
C.doRequest();},afterLogin:function(B,A){this.successCallback.apply(this.scope||this,[A]);
}});Zapproved.SessionManager.getAccount=function(){var B=readCookie(ACCOUNT_COOKIE);
if(B&&B.length>0){var A=Ext.decode(unescape(B));return A.data;}else{return null;}};
Ext.namespace("Ext.ux.form");Ext.ux.form.BrowseButton=Ext.extend(Ext.Button,{inputFileName:"file",debug:false,FLOAT_EL_WIDTH:60,FLOAT_EL_HEIGHT:18,buttonCt:null,clipEl:null,floatEl:null,inputFileEl:null,originalHandler:null,originalScope:null,initComponent:function(){Ext.ux.form.BrowseButton.superclass.initComponent.call(this);
this.originalHandler=this.handler;this.originalScope=this.scope;this.handler=null;
this.scope=null;},onRender:function(B,D){Ext.ux.form.BrowseButton.superclass.onRender.call(this,B,D);
this.buttonCt=this.el.child(".x-btn-center em");this.buttonCt.position("relative");
var A={position:"absolute",overflow:"hidden",top:"0px",left:"0px"};if(Ext.isIE){Ext.apply(A,{left:"-3px",top:"-3px"});
}else{if(Ext.isGecko){Ext.apply(A,{left:"-3px",top:"-3px"});}else{if(Ext.isSafari){Ext.apply(A,{left:"-4px",top:"-2px"});
}}}this.clipEl=this.buttonCt.createChild({tag:"div",style:A});this.setClipSize();
this.clipEl.on({"mousemove":this.onButtonMouseMove,"mouseover":this.onButtonMouseMove,scope:this});
this.floatEl=this.clipEl.createChild({tag:"div",style:{position:"absolute",width:this.FLOAT_EL_WIDTH+"px",height:this.FLOAT_EL_HEIGHT+"px",overflow:"hidden"}});
if(this.debug){this.clipEl.applyStyles({"background-color":"green"});this.floatEl.applyStyles({"background-color":"red"});
}else{this.clipEl.setOpacity(0);}var C=this.el.child(this.buttonSelector);C.on("focus",this.onButtonFocus,this);
C.on({"mousemove":this.onButtonMouseMove,"mouseover":this.onButtonMouseMove,scope:this});
if(Ext.isIE){this.el.on("keydown",this.onButtonKeyDown,this);}this.createInputFile();
},setClipSize:function(){if(this.clipEl){var B=this.buttonCt.getWidth();var A=this.buttonCt.getHeight();
if(B===0||A===0){this.setClipSize.defer(100,this);}else{if(Ext.isIE){B=B+5;A=A+5;
}else{if(Ext.isGecko){B=B+6;A=A+6;}else{if(Ext.isSafari){B=B+6;A=A+6;}}}this.clipEl.setSize(B,A);
}}},createInputFile:function(){this.floatEl.select("em").each(function(A){A.remove();
});this.inputFileEl=this.floatEl.createChild({tag:"input",type:"file",size:1,name:this.inputFileName||Ext.id(this.el),tabindex:this.tabIndex,style:{position:"absolute",cursor:"pointer",right:"0px",top:"0px"}});
this.inputFileEl=this.inputFileEl.child("input")||this.inputFileEl;this.inputFileEl.on({"click":this.onInputFileClick,"change":this.onInputFileChange,"focus":this.onInputFileFocus,"select":this.onInputFileFocus,"blur":this.onInputFileBlur,scope:this});
if(this.tooltip){if(typeof this.tooltip=="object"){Ext.QuickTips.register(Ext.apply({target:this.inputFileEl},this.tooltip));
}else{this.inputFileEl.dom[this.tooltipType]=this.tooltip;}}},onButtonFocus:function(A){if(this.inputFileEl){this.inputFileEl.focus();
A.stopEvent();}},onButtonKeyDown:function(A){if(this.inputFileEl&&A.getKey()==Ext.EventObject.SPACE){this.inputFileEl.dom.click();
A.stopEvent();}},onButtonMouseMove:function(B){var A=B.getXY();A[0]-=this.FLOAT_EL_WIDTH/2;
A[1]-=this.FLOAT_EL_HEIGHT/2;this.floatEl.setXY(A);},onInputFileFocus:function(A){if(!this.isDisabled){this.el.addClass("x-btn-over");
}},onInputFileBlur:function(A){this.el.removeClass("x-btn-over");},onInputFileClick:function(A){A.stopPropagation();
},onInputFileChange:function(){if(this.originalHandler){this.originalHandler.call(this.originalScope,this);
}},detachInputFile:function(A){var B=this.inputFileEl;if(typeof this.tooltip=="object"){Ext.QuickTips.unregister(this.inputFileEl);
}else{this.inputFileEl.dom[this.tooltipType]=null;}this.inputFileEl.removeAllListeners();
this.inputFileEl=null;if(!A){this.createInputFile();}return B;},getInputFile:function(){return this.inputFileEl;
},disable:function(){Ext.ux.form.BrowseButton.superclass.disable.call(this);this.inputFileEl.dom.disabled=true;
},enable:function(){Ext.ux.form.BrowseButton.superclass.enable.call(this);this.inputFileEl.dom.disabled=false;
}});Ext.reg("browsebutton",Ext.ux.form.BrowseButton);Ext.ux.FileUploader=function(A){Ext.apply(this,A);Ext.ux.FileUploader.superclass.constructor.apply(this,arguments);
this.addEvents("beforeallstart","allfinished","beforefilestart","filefinished","fileuploaded","progress","fileerror");
};Ext.extend(Ext.ux.FileUploader,Ext.util.Observable,{baseParams:{cmd:"upload",dir:"."},concurrent:true,enableProgress:true,jsonErrorText:"Cannot decode JSON object",maxFileSize:524288,progressIdName:"UPLOAD_IDENTIFIER",progressInterval:2000,progressUrl:"progress.php",progressMap:{bytes_total:"bytesTotal",bytes_uploaded:"bytesUploaded",est_sec:"estSec",files_uploaded:"filesUploaded",speed_average:"speedAverage",speed_last:"speedLast",time_last:"timeLast",time_start:"timeStart"},singleUpload:false,unknownErrorText:"Unknown error",upCount:0,createForm:function(B){var C=parseInt(Math.random()*10000000000,10);
var A=Ext.getBody().createChild({tag:"form",action:this.url,method:"post",cls:"x-hidden",id:Ext.id(),cn:[{tag:"input",type:"hidden",name:"APC_UPLOAD_PROGRESS",value:C},{tag:"input",type:"hidden",name:this.progressIdName,value:C},{tag:"input",type:"hidden",name:"MAX_FILE_SIZE",value:this.maxFileSize}]});
if(B){B.set("form",A);B.set("progressId",C);}else{this.progressId=C;}return A;},deleteForm:function(B,A){B.remove();
if(A){A.set("form",null);}},fireFinishEvents:function(A){if(true!==this.eventsSuspended&&!this.singleUpload){this.fireEvent("filefinished",this,A&&A.record);
}if(true!==this.eventsSuspended&&0===this.upCount){this.stopProgress();this.fireEvent("allfinished",this);
}},getIframe:function(B){var A=null;var C=B.get("form");if(C&&C.dom&&C.dom.target){A=Ext.get(C.dom.target);
}return A;},getOptions:function(C,A){var B={url:this.url,method:"post",isUpload:true,scope:this,cb:this.uploadCallback,callback:this.uploadCallback,record:C,params:this.getParams(C,A)};
return B;},getParams:function(B,A){var C={path:this.path};Ext.apply(C,this.baseParams||{},A||{});
return C;},processSuccess:function(D,B,A){var C=false;if(this.singleUpload){this.store.each(function(E){E.set("state","done");
E.set("error","");this.fireEvent("fileuploaded",this,E,A);E.commit();});}else{C=D.record;
if(typeof C!="undefined"&&C.get("removed")!="true"){C.set("state","done");C.set("error","");
this.fireEvent("fileuploaded",this,C,A);C.commit();}}this.deleteForm(D.form,C);},processFailure:function(D,B,E){var C=D.record;
var A;if(this.singleUpload){A=this.store.queryBy(function(F){return"done"!==F.get("state");
});A.each(function(F){var G=E.errors?E.errors[F.id]:this.unknownErrorText;if(G){F.set("state","failed");
F.set("error",G);Ext.getBody().appendChild(F.get("input"));}else{F.set("state","done");
F.set("error","");}F.commit();},this);this.deleteForm(D.form);}else{if(E&&"object"===Ext.type(E)){C.set("error",E.message);
}else{if(E){C.set("error",E);}else{if(B&&B.responseText){C.set("error",B.responseText);
}else{C.set("error",this.unknownErrorText);}}}C.set("state","failed");C.commit();
this.fireEvent("fileerror",this,C);}},requestProgress:function(){var B,C;var A={url:this.progressUrl,method:"post",params:{},scope:this,callback:function(G,D,F){var E;
if(true!==D){return ;}try{E=Ext.decode(F.responseText);}catch(H){return ;}if("object"!==Ext.type(E)||true!==E.success){return ;
}if(this.singleUpload){this.progress={};for(C in E){if(this.progressMap[C]){this.progress[this.progressMap[C]]=parseInt(E[C],10);
}}if(true!==this.eventsSuspended){this.fireEvent("progress",this,this.progress);}}else{for(C in E){if(this.progressMap[C]&&G.record){G.record.set(this.progressMap[C],parseInt(E[C],10));
}}if(G.record){G.record.commit();if(true!==this.eventsSuspended){this.fireEvent("progress",this,G.record.data,G.record);
}}}this.progressTask.delay(this.progressInterval);}};if(this.singleUpload){A.params[this.progressIdName]=this.progressId;
A.params.APC_UPLOAD_PROGRESS=this.progressId;Ext.Ajax.request(A);}else{B=this.store.query("state","uploading");
B.each(function(D){A.params[this.progressIdName]=D.get("progressId");A.params.APC_UPLOAD_PROGRESS=A.params[this.progressIdName];
A.record=D;(function(){Ext.Ajax.request(A);}).defer(250);},this);}},setPath:function(A){this.path=A;
},setUrl:function(A){this.url=A;},startProgress:function(){if(!this.progressTask){this.progressTask=new Ext.util.DelayedTask(this.requestProgress,this);
}this.progressTask.delay.defer(this.progressInterval/2,this.progressTask,[this.progressInterval]);
},stopProgress:function(){if(this.progressTask){this.progressTask.cancel();}},stopAll:function(){var A=this.store.query("state","uploading");
A.each(this.stopUpload,this);},stopUpload:function(B){var A=false;if(B){A=this.getIframe(B);
this.stopIframe(A);this.upCount--;this.upCount=0>this.upCount?0:this.upCount;B.set("state","stopped");
this.fireFinishEvents({record:B});}else{if(this.form){A=Ext.fly(this.form.dom.target);
this.stopIframe(A);this.upCount=0;this.fireFinishEvents();}}},stopIframe:function(A){if(A){try{A.dom.contentWindow.stop();
A.remove.defer(250,A);}catch(B){}}},upload:function(){var A=this.store.queryBy(function(B){return"queued"===B.get("state");
});if(!A.getCount()){return ;}if(true!==this.eventsSuspended&&false===this.fireEvent("beforeallstart",this)){return ;
}if(this.singleUpload){this.uploadSingle();}else{A.each(this.uploadFile,this);}if(true===this.enableProgress){this.startProgress();
}},uploadCallback:function(D,A,C){var B;this.upCount--;this.form=false;if(true===A){try{B=Ext.decode(C.responseText);
}catch(E){this.processFailure(D,C,this.jsonErrorText);this.fireFinishEvents(D);return ;
}if(true===B.success){this.processSuccess(D,C,B);}else{this.processFailure(D,C,B);
}}else{this.processFailure(D,C);}this.fireFinishEvents(D);},uploadFile:function(C,A){if(true!==this.eventsSuspended&&false===this.fireEvent("beforefilestart",this,C)){return ;
}var D=this.createForm(C);var E=C.get("input");E.set({name:E.id});D.appendChild(E);
var B=this.getOptions(C,A);B.form=D;C.set("state","uploading");C.set("pctComplete",0);
this.upCount++;Ext.Ajax.request(B);this.getIframe.defer(100,this,[C]);},uploadSingle:function(){var B=this.store.queryBy(function(D){return"done"!==D.get("state");
});if(!B.getCount()){return ;}var C=this.createForm();B.each(function(D){var E=D.get("input");
E.set({name:E.id});C.appendChild(E);D.set("state","uploading");},this);var A=this.getOptions();
A.form=C;this.form=C;this.upCount++;Ext.Ajax.request(A);}});Ext.reg("fileuploader",Ext.ux.FileUploader);
Ext.ux.UploadPanel=Ext.extend(Ext.Panel,{addIconCls:"icon-plus",addText:"Add",bodyStyle:"padding:2px",buttonsAt:"tbar",clickRemoveText:"Click to remove",clickStopText:"Click to stop",emptyText:"No files",enableProgress:true,errorText:"Error",fileCls:"file",fileQueuedText:"File <b>{0}</b> is queued for upload",fileDoneText:"File <b>{0}</b> has been successfully uploaded",fileFailedText:"File <b>{0}</b> failed to upload",fileStoppedText:"File <b>{0}</b> stopped by user",fileUploadingText:"Uploading file <b>{0}</b>",maxFileSize:524288,maxLength:18,removeAllIconCls:"icon-cross",removeAllText:"Remove All",removeIconCls:"icon-minus",removeText:"Remove",selectedClass:"ux-up-item-selected",singleUpload:false,stopAllText:"Stop All",stopIconCls:"icon-stop",uploadText:"Upload",uploadIconCls:"icon-upload",workingIconCls:"icon-working",initComponent:function(){var E={xtype:"browsebutton",text:this.addText+"...",iconCls:this.addIconCls,scope:this,handler:this.onAddFile};
var B={xtype:"button",iconCls:this.uploadIconCls,text:this.uploadText,scope:this,handler:this.onUpload,disabled:true};
var D={xtype:"button",iconCls:this.removeAllIconCls,tooltip:this.removeAllText,scope:this,handler:this.onRemoveAllClick,disabled:true};
if("body"!==this.buttonsAt){this[this.buttonsAt]=[E,B,"->",D];}var C=[{name:"id",type:"text",system:true},{name:"shortName",type:"text",system:true},{name:"fileName",type:"text",system:true},{name:"filePath",type:"text",system:true},{name:"fileCls",type:"text",system:true},{name:"input",system:true},{name:"form",system:true},{name:"state",type:"text",system:true},{name:"error",type:"text",system:true},{name:"progressId",type:"int",system:true},{name:"bytesTotal",type:"int",system:true},{name:"bytesUploaded",type:"int",system:true},{name:"estSec",type:"int",system:true},{name:"filesUploaded",type:"int",system:true},{name:"speedAverage",type:"int",system:true},{name:"speedLast",type:"int",system:true},{name:"timeLast",type:"int",system:true},{name:"timeStart",type:"int",system:true},{name:"pctComplete",type:"int",system:true}];
if(Ext.isArray(this.customFields)){C.push(this.customFields);}this.store=new Ext.data.SimpleStore({id:0,fields:C,data:[]});
Ext.apply(this,{items:[{xtype:"dataview",itemSelector:"div.ux-up-item",store:this.store,selectedClass:this.selectedClass,singleSelect:true,emptyText:this.emptyText,tpl:this.tpl||new Ext.XTemplate('<tpl for="."><div class="ux-up-item"><div class="ux-up-icon-file {fileCls}">&#160;</div><div class="ux-up-text x-unselectable" qtip="{fileName}">{shortName}</div><div id="remove-{[values.input.id]}" class="ux-up-icon-state ux-up-icon-{state}"qtip="{[this.scope.getQtip(values)]}">&#160;</div></div></tpl>',{scope:this}),listeners:{click:{scope:this,fn:this.onViewClick}}}]});
Ext.ux.UploadPanel.superclass.initComponent.apply(this,arguments);this.view=this.items.itemAt(0);
this.addEvents("beforefileadd","fileadd","beforefileremove","fileremove","beforequeueclear","queueclear","beforeupload");
this.relayEvents(this.view,["beforeclick","beforeselect","click","containerclick","contextmenu","dblclick","selectionchange"]);
var A={store:this.store,singleUpload:this.singleUpload,maxFileSize:this.maxFileSize,enableProgress:this.enableProgress,url:this.url,path:this.path};
if(this.baseParams){A.baseParams=this.baseParams;}this.uploader=new Ext.ux.FileUploader(A);
this.relayEvents(this.uploader,["beforeallstart","allfinished","progress"]);this.on({beforeallstart:{scope:this,fn:function(){this.uploading=true;
this.updateButtons();}},allfinished:{scope:this,fn:function(){this.uploading=false;
this.updateButtons();}},progress:{fn:this.onProgress.createDelegate(this)}});},onRender:function(){Ext.ux.UploadPanel.superclass.onRender.apply(this,arguments);
var A="tbar"===this.buttonsAt?this.getTopToolbar():this.getBottomToolbar();this.addBtn=Ext.getCmp(A.items.first().id);
this.uploadBtn=Ext.getCmp(A.items.itemAt(1).id);this.removeAllBtn=Ext.getCmp(A.items.last().id);
},getQtip:function(B){var A="";switch(B.state){case"queued":A=String.format(this.fileQueuedText,B.fileName);
A+="<br>"+this.clickRemoveText;break;case"uploading":A=String.format(this.fileUploadingText,B.fileName);
A+="<br>"+B.pctComplete+"% done";A+="<br>"+this.clickStopText;break;case"done":A=String.format(this.fileDoneText,B.fileName);
A+="<br>"+this.clickRemoveText;break;case"failed":A=String.format(this.fileFailedText,B.fileName);
A+="<br>"+this.errorText+":"+B.error;A+="<br>"+this.clickRemoveText;break;case"stopped":A=String.format(this.fileStoppedText,B.fileName);
A+="<br>"+this.clickRemoveText;break;}return A;},getFileName:function(A){return A.getValue().split(/[\/\\]/).pop();
},getFilePath:function(A){return A.getValue().replace(/[^\/\\]+$/,"");},getFileCls:function(A){var B=A.split(".");
if(1===B.length){return this.fileCls;}else{return this.fileCls+"-"+B.pop().toLowerCase();
}},onAddFile:function(D){if(true!==this.eventsSuspended&&false===this.fireEvent("beforefileadd",this,D.getInputFile())){return ;
}var C=D.detachInputFile();C.addClass("x-hidden");var B=this.getFileName(C);var A=new this.store.recordType({input:C,fileName:B,filePath:this.getFilePath(C),shortName:Ext.util.Format.ellipsis(B,this.maxLength),fileCls:this.getFileCls(B),state:"queued"},C.id);
A.commit();this.store.add(A);this.syncShadow();this.uploadBtn.enable();this.removeAllBtn.enable();
if(true!==this.eventsSuspended){this.fireEvent("fileadd",this,this.store,A);}},onDestroy:function(){if(this.uploader){this.uploader.stopAll();
this.uploader.purgeListeners();this.uploader=null;}if(this.view){this.view.purgeListeners();
this.view.destroy();this.view=null;}if(this.store){this.store.purgeListeners();this.store.destroy();
this.store=null;}},onProgress:function(I,E,K){var F,J,A,D,G,C,B,H;if(K){D=K.get("state");
F=K.get("bytesTotal")||1;J=K.get("bytesUploaded")||0;if("uploading"===D){A=Math.round(1000*J/F)/10;
}else{if("done"==="state"){A=100;}else{A=0;}}K.set("pctComplete",A);G=this.store.indexOf(K);
C=Ext.get(this.view.getNode(G));if(C){B=C.getWidth();C.applyStyles({"background-position":B*A/100+"px"});
}}},onRemoveFile:function(C){if(true!==this.eventsSuspended&&false===this.fireEvent("beforefileremove",this,this.store,C)){return ;
}var D=C.get("input");var B=D.up("em");D.remove();if(B){B.remove();}this.store.remove(C);
var A=this.store.getCount();this.uploadBtn.setDisabled(!A);this.removeAllBtn.setDisabled(!A);
if(true!==this.eventsSuspended){this.fireEvent("fileremove",this,this.store);this.syncShadow();
}},onRemoveAllClick:function(A){if(true===this.uploading){this.stopAll();}else{this.removeAll();
}},stopAll:function(){this.uploader.stopAll();},onViewClick:function(E,D,B,C){var A=C.getTarget("div:any(.ux-up-icon-queued|.ux-up-icon-failed|.ux-up-icon-done|.ux-up-icon-stopped)");
if(A){this.onRemoveFile(this.store.getAt(D));}A=C.getTarget("div.ux-up-icon-uploading");
if(A){this.uploader.stopUpload(this.store.getAt(D));}},onUpload:function(){if(true!==this.eventsSuspended&&false===this.fireEvent("beforeupload",this)){return false;
}this.uploader.upload();},setUrl:function(A){this.url=A;this.uploader.setUrl(A);},setPath:function(A){this.uploader.setPath(A);
},updateButtons:function(){if(true===this.uploading){this.addBtn.disable();this.uploadBtn.disable();
this.removeAllBtn.setIconClass(this.stopIconCls);this.removeAllBtn.getEl().child(this.removeAllBtn.buttonSelector).dom[this.removeAllBtn.tooltipType]=this.stopAllText;
}else{this.addBtn.enable();this.uploadBtn.enable();this.removeAllBtn.setIconClass(this.removeAllIconCls);
this.removeAllBtn.getEl().child(this.removeAllBtn.buttonSelector).dom[this.removeAllBtn.tooltipType]=this.removeAllText;
}},removeAll:function(){var A=this.eventsSuspended;if(false!==this.eventsSuspended&&false===this.fireEvent("beforequeueclear",this,this.store)){return false;
}this.suspendEvents();this.store.each(this.onRemoveFile,this);this.eventsSuspended=A;
if(true!==this.eventsSuspended){this.fireEvent("queueclear",this,this.store);}this.syncShadow();
},syncShadow:function(){if(this.contextmenu&&this.contextmenu.shadow){this.contextmenu.getEl().shadow.show(this.contextmenu.getEl());
}}});Ext.reg("uploadpanel",Ext.ux.UploadPanel);Ext.namespace("Zapproved");Zapproved.Request=function(A){if(A){Ext.apply(this,A);
}};Ext.extend(Zapproved.Request,Ext.util.Observable,{url:null,method:null,scope:null,params:null,errorRedirectUrl:null,ignoreError:false,successCallback:null,failureCallback:null,errorSubject:null,mask:null,method:"GET",autoAbort:false,failure:function(B,C){if(this.mask){this.mask.hide();
}if(typeof this.failureCallback=="function"){var A=this.failureCallback.apply(this.scope||this,[B,null]);
if(A==true){return ;}}if(!this.ignoreError){var D=new Zapproved.ErrorDialog({redirectUrl:this.errorRedirectUrl});
D.showServerError(this.errorSubject,B);}},success:function(B,C){if(this.mask){this.mask.hide();
}var A=Ext.util.JSON.decode(B.responseText);if(!A.success&&!this.ignoreError){if(typeof this.failureCallback=="function"){var E=this.failureCallback.apply(this.scope||this,[B,A]);
if(E==true){return ;}}var D=new Zapproved.ErrorDialog({redirectUrl:this.errorRedirectUrl});
if(A.errorCode){D.showErrorCode(this.errorSubject,A.errorCode);}else{D.showError(this.errorSubject,A.message);
}}else{if(typeof this.successCallback=="function"){this.successCallback.apply(this.scope||this,[A]);
}}},doRequest:function(){if(this.mask){this.mask.show();}Ext.Ajax.request({url:this.url,scope:this,params:this.params,success:this.success,failure:this.failure,method:this.method});
}});Zapproved.ErrorDialog=Ext.extend(Ext.Window,{AUTHORIZATION_REMOVED_MSG:"Access to this proposal is no longer permitted.  This may be because the list of Approvers on this proposal has changed.",MISSING_PARAMETER_MSG:"Missing parameter expected by server: {0}",PAYMENT_FAILED_MSG:"Payment processing failed.  Please check your payment information and ensure that the name matches the name on your credit card then try again.",UNKNOWN_CODE_MSG:"Unknown error code: ",ALREADY_TAKEN_MSG:"This email address already has a Zapproved account.  Click Welcome in the menu above to go to the home page, you can login using the fields in the top-right corner of the screen.",TOKEN_USED_MSG:"This account has already been confirmed.  If you have forgotten your password, use the Reset Password feature.",layout:"fit",width:400,autoHeight:true,closable:true,resizable:false,draggable:false,border:false,bodyBorder:false,plain:true,buttonAlign:"center",title:'<span class="error-text">Error</span>',modal:true,timeoutMessage:"The server took too long to respond or you are disconnected from the internet.  Please try again in a few minutes.",serverErrorMessage:"An error occurred while processing your request.",serverStatusCodeMessage:"<b>Server Response:</b></br>The server returned response code {0} with message: {1} <br/><br/><b>Response Headers:</b><br/>{2}",serverInvalidResponseMessage:"<b>Server Response:</b></br>The server returned an unexpected response: {0} <br/><br/><b>Response Headers:</b><br/>{1}",initComponent:function(){Ext.apply(this,{buttons:[{text:"Close",scope:this,handler:function(){this.hide();
if(this.redirectUrl){window.location.pathname=this.redirectUrl;}}}]});Zapproved.ErrorDialog.superclass.initComponent.apply(this,arguments);
},showError:function(B,A){this.addSimpleErrorPanel(B,A);this.show();},showErrorCode:function(D,C,A){var B=this.translateCode(C);
if(A&&A.length>0){B=String.format(B,A[0]);}this.addSimpleErrorPanel(D,B);this.show();
},showErrorWithDetails:function(C,B,A){this.addUnexpectedErrorPanel(C,B,A);this.show();
},showServerError:function(C,B,A){if(!B.responseText&&!B.status){}else{if(B.status==200){if(A&&A.errorCode){this.showErrorCode(C,A.errorCode,[A.message]);
}else{if(A&&A.errors){this.showErrorCode(C,A.errors[0].error,[A.message]);}else{if(A.message){this.showError(C,A.message);
}else{this.showErrorWithDetails(C,this.serverErrorMessage,String.format(this.serverInvalidResponseMessage,B.responseText,B.getAllResponseHeaders));
}}}}else{this.showErrorWithDetails(C,this.serverErrorMessage,String.format(this.serverStatusCodeMessage,B.status,B.statusText,B.getAllResponseHeaders));
}}},showFormError:function(E,B){var D=0;var F=new Array();for(i=0;i<B.items.items.length;
i++){var C=B.items.items[i];if(C.isValid&&!C.isValid()){var A=Ext.util.Format.stripTags(C.fieldLabel);
F[D]="<b>"+A+":</b> "+C.el.dom.qtip;D++;}}this.showError(E,F);},showUnexpectedExceptionError:function(A){var C="An error occurred while processing your request.";
var B="Exception message: "+A;},translateCode:function(A){if(A=="AuthorizationRemoved"){return this.AUTHORIZATION_REMOVED_MSG;
}else{if(A=="MissingParameter"){return this.MISSING_PARAMETER_MSG;}else{if(A=="PaymentFailed"){return this.PAYMENT_FAILED_MSG;
}else{if(A=="AlreadyTaken"){return this.ALREADY_TAKEN_MSG;}else{if(A=="TokenUsed"){return this.TOKEN_USED_MSG;
}else{return this.UNKNOWN_CODE_MSG+A;}}}}}},buildMessageSubject:function(A){if(!A||A.length==0){return"";
}return"<b>"+A+":</b></br>";},buildMessageList:function(B){var A='<ul style="margin-left:15px;list-style-type: disc">';
if(B instanceof Array){for(i=0;i<B.length;i++){A+="<li>"+B[i]+"</li>";}}else{A+="<li>"+B+"</li>";
}A+="</ul>";return A;},addSimpleErrorPanel:function(B,A){this.add(new Ext.Panel({frame:true,border:false,autoHeight:true,html:'<div style="padding-bottom: 5px">'+this.buildMessageSubject(B)+'</div><div class="ext-mb-icon" style="float: left"><img src="/Images/default/window/icon-error.gif" border="0"/></div><div class="ext-mb-content" style="margin-left: 50px; margin-top: 5px"><span class="ext-mb-text">'+this.buildMessageList(A)+"</span></div>"}));
},addUnexpectedErrorPanel:function(C,B,A){this.add(new Ext.Panel({frame:true,border:false,autoHeight:true,html:this.buildMessageSubject(C)+this.buildMessageList(B)}));
this.add(new Ext.Panel({frame:true,border:false,collapsed:true,collapsible:true,title:"Error Details",html:A}));
}});Ext.reg("errordialog",Zapproved.ErrorDialog);Zapproved.ErrorDialog.msg=function(C,A){var B=new Zapproved.ErrorDialog();
B.showError(C,A);};Zapproved.ErrorDialog.fromErrorCode=function(D,B,A){var C=new Zapproved.ErrorDialog();
C.showErrorCode(D,B,A);};Zapproved.ErrorDialog.fromServerError=function(D,B,A){var C=new Zapproved.ErrorDialog();
C.showServerError(D,B,A);};Zapproved.ErrorDialog.fromForm=function(C,A){var B=new Zapproved.ErrorDialog();
B.showFormError(C,A);};Zapproved.ProposalReader=function(){return new Ext.data.JsonReader({root:"data",totalProperty:"numRows",id:"requestId",fields:[{name:"requestId"},{name:"subject",type:"string"},{name:"description"},{name:"updated",type:"date",dateFormat:"n/j/Y g:i:s A"},{name:"dueDate",type:"date",dateFormat:"n/j/Y g:i:s A"},{name:"to"},{name:"from",type:"string"},{name:"recipients"},{name:"month",mapping:"updated",type:"date",dateFormat:"n/j/Y g:i:s A"},{name:"toSingle",type:"string"},{name:"closed",type:"bool"},{name:"numApproved"},{name:"numDenied"},{name:"numViewed"},{name:"numUnread"},{name:"status"},{name:"myLatestResponse"},{name:"hasAttachments",type:"bool"},{name:"project",type:"string"},{name:"priority",type:"int"},{name:"read",type:"bool"},{name:"checked",type:"bool",defaultValue:false}]});
};Zapproved.ProposalPanel=Ext.extend(Ext.Panel,{fromFieldLabel:"From",toComboBoxLabel:"Approvers",ccComboBoxLabel:"CC",alertFieldLabel:"Alert",titleFieldLabel:"Proposal Title",createDateFieldLabel:"Created",dueDateFieldLabel:"Due Date",projectFieldLabel:"Project",priorityFieldLabel:"Priority",statusFieldLabel:"Status",descriptionFieldLabel:"Message",attachmentsFieldLabel:"Attachments",loadingMessageText:"Loading Proposal...",loadErrorSubject:"Unable to load proposal",oldVersionAlertText1:"This is an older version of this proposal! You can view the current version of this proposal by",oldVersionAlertText2:"clicking here",sendEmailDialogTitle:"Send an Email Copy",sendEmailDialogText:"Email address:",emailSentSubject:"Email Sent",emailSentText:"The email copy was sent successfully.",sendReminderConfirmTitle:"Reminders Sent",sendReminderConfirmText:"<b>Reminders were sent to recipients who have not responded:</b><br />",emailFailedSubject:"Send Email Failed",reminderFailedSubject:"Send Reminder Failed",sendReminderDialogTitle:"Send a Reminder",sendReminderDialogText:"Send a reminder email to all recipients who have not yet responded?",requestId:null,requestToken:null,proposal:null,buttonsPanel:null,confirmPanel:null,command:null,border:false,autoHeight:true,width:600,autoHeight:true,labelAlign:"left",layout:"table",defaults:{bodyStyle:"padding: 0 5px 8px 0; vertical-align: top;"},layoutConfig:{columns:6},initComponent:function(){setRequestIdAndToken(this);
this.buttonsPanel=this.buildButtonsPanel();this.confirmPanel=new Zapproved.ConfirmPanel({colspan:6});
this.confirmPanel.addListener("cancelled",this.setCommandsDisabledState,this);this.proposalHistoryPanel=new Zapproved.ProposalHistoryPanel({colspan:6});
var A=[{xtype:"panel",id:"senderLogoPanel",border:false,bodyStyle:"padding: 5px 0 3px 0;",hidden:true,colspan:6},{xtype:"panel",id:"fromLabel",html:this.fromFieldLabel+":",cls:"x-form-label",cellCls:"due-date-lbl-cell",border:false},{xtype:"panel",id:"from",cls:"x-static-field",cellCls:"project-val-cell",border:false,colspan:3},{xtype:"panel",id:"createDateLabel",html:this.createDateFieldLabel+":",cls:"x-form-label",cellCls:"due-date-lbl-cell",border:false},{xtype:"panel",id:"createDate",cls:"x-static-field",cellCls:"due-date-lbl-cell",border:false},{xtype:"panel",id:"toEmailLabel",html:this.toComboBoxLabel+":",cls:"x-form-label",cellCls:"label-table-col",border:false},{xtype:"panel",id:"toEmail",cls:"x-static-field",border:true,height:this.printMode?"auto":65,style:"margin: 0 200px 10px 0;",bodyStyle:"padding: 2px 5px 8px 3px; vertical-align: top;",autoScroll:true,colspan:5},{xtype:"panel",id:"ccEmailLabel",html:this.ccComboBoxLabel+":",hidden:true,cls:"x-form-label",cellCls:"label-table-col",border:false},{xtype:"panel",id:"ccEmail",hidden:true,cls:"x-static-field",border:true,height:this.printMode?"auto":65,style:"margin: 0 200px 10px 0;",bodyStyle:"padding: 2px 5px 8px 3px; vertical-align: top;",autoScroll:true,colspan:5},{xtype:"panel",id:"dueDateLabel",html:this.dueDateFieldLabel+":",cls:"x-form-label",cellCls:"due-date-lbl-cell",border:false},{xtype:"panel",id:"dueDate",hidden:true,cls:"x-static-field",cellCls:"due-date-val-cell",border:false},{xtype:"panel",id:"projectLabel",html:this.projectFieldLabel+":",cls:"x-form-label",cellCls:"project-lbl-cell",border:false},{xtype:"panel",id:"project",hidden:true,cls:"x-static-field",cellCls:"project-val-cell",border:false},{xtype:"panel",id:"priorityLabel",html:this.priorityFieldLabel+":",cls:"x-form-label",cellCls:"priority-lbl-cell",border:false},{xtype:"panel",id:"priority",hidden:true,cls:"x-static-field",cellCls:"priority-val-cell",border:false},{xtype:"panel",id:"alertLabel",html:this.alertFieldLabel+":",hidden:true,cls:"x-form-label",style:"color: #CC0000;",border:false},{xtype:"panel",id:"alert",hidden:true,cls:"x-static-field",style:"font-weight: bold",border:false,colspan:5},{xtype:"panel",id:"description",border:false,title:this.titleFieldLabel,width:600,cls:"x-static-field",bodyStyle:"padding: 5px 5px 8px 25px; vertical-align: top;",colspan:6},{xtype:"panel",id:"attachments",hidden:true,border:false,title:this.attachmentsFieldLabel,width:600,cls:"x-static-field",style:"padding-top: 10px",bodyStyle:"padding: 5px 5px 8px 25px; vertical-align: top;",colspan:6},this.buttonsPanel,{xtype:"panel",border:false,html:'<a name="afterConfirmResponse"/>',colspan:6},this.confirmPanel,{xtype:"panel",id:"postConfirmResponsePanelAnchor",border:false,colspan:6},this.proposalHistoryPanel];
Ext.apply(this,{items:A});Zapproved.ProposalPanel.superclass.initComponent.apply(this,arguments);
},loadProposal:function(){if(this.requestId&&!userHasSession()){var A="/Login?autoLogin=true&returnUrl="+escape(window.location.pathname);
window.location.href=window.location.protocol+"//"+window.location.host+A;return ;
}var C="/Home";if(!userHasSession()){C="/Welcome";}var B=new Zapproved.Request({url:"/Services/GetRequest",scope:this,errorSubject:this.loadErrorSubject,errorRedirectUrl:C,mask:new Ext.LoadMask(Ext.getBody(),{msg:this.loadingMessageText}),params:{id:this.requestId,token:this.requestToken,tz:tz,tza:tza},successCallback:this.afterLoad});
B.doRequest();},afterLoad:function(B){this.proposal=B.data;if(this.proposal.senderLogoUrl&&this.proposal.senderLogoUrl.length>0){var E=Ext.getCmp("senderLogoPanel");
E.body.update('<img src="'+this.proposal.senderLogoUrl+'" />');E.show();}ZapUtils.showField(this.proposal.from,"from","fromLabel");
ZapUtils.showField(addIconsToEmails(this.proposal.to),"toEmail");if(this.proposal.cc!=null&&this.proposal.cc!=""){ZapUtils.showField(addIconsToEmails(this.proposal.cc),"ccEmail","ccEmailLabel");
}var C=null;if(this.proposal.currentRequestId){C='<p style="color:#c33">'+this.oldVersionAlertText1+' <a href="/View/'+this.proposal.currentRequestId+'">'+this.oldVersionAlertText2+"</a>.<br></p>";
}ZapUtils.showField(C,"alert","alertLabel");var D=Date.parseDate(this.proposal.createDate,"n/j/Y g:i:s A");
ZapUtils.showField(D.format("m/d/Y"),"createDate","createDateLabel");if(this.proposal.dueDate&&this.proposal.dueDate.length>0){var A=Date.parseDate(this.proposal.dueDate,"n/j/Y g:i:s A");
if(A){ZapUtils.showField(A.format("m/d/Y"),"dueDate","dueDateLabel");}}ZapUtils.showField(ZapUtils.truncateTo(this.proposal.project,23),"project","projectLabel");
ZapUtils.showField(this.proposal.priority,"priority","priorityLabel");Ext.getCmp("description").setTitle(this.titleFieldLabel+":&nbsp;&nbsp;&nbsp;"+this.proposal.subject);
ZapUtils.showField(this.proposal.description,"description");this.renderAttachmentsPanel();
this.proposalHistoryPanel.loadHistory(this.proposal.responses);if(!this.printMode){this.configureButtons();
this.initCommentPanel();this.initTitleBarButtons();}},initCommentPanel:function(){this.command=getParam("Command");
if((this.command=="Approve"||this.command=="Deny")&&!this.proposal.canApprove){this.command="Comment";
}if(this.proposal.closed||this.proposal.status=="Cancelled"){this.command=null;}if(this.command){if(this.command==this.confirmPanel.COMMENT_MODE){this.commentRequest();
}else{if(this.command==this.confirmPanel.APPROVE_MODE){this.approveRequest();}else{if(this.command==this.confirmPanel.DENY_MODE){this.denyRequest();
}}}}},buildButtonsPanel:function(){var A=new Ext.Panel({border:false,colspan:6,buttonAlign:"center",buttons:[{text:"Approve",cls:"btn-orange btn-bold",id:"approveBtn",scope:this,hidden:true,handler:this.approveRequest},{text:"Deny",id:"declineBtn",scope:this,hidden:true,handler:this.denyRequest},{text:"Comment",cls:"btn-orange btn-bold",id:"commentBtn",scope:this,hidden:true,handler:this.commentRequest},{text:"Home",id:"exitBtn",scope:this,hidden:true,handler:this.viewRequestClose},{text:"Close Proposal",id:"closeBtn",scope:this,hidden:true,handler:this.closeRequest},{text:"Cancel Proposal",id:"cancelBtn",scope:this,hidden:true,handler:this.cancelRequest},{text:"Edit Proposal",id:"editBtn",scope:this,hidden:true,handler:this.editRequest},{text:"Archive",id:"archiveBtn",scope:this,hidden:true,handler:this.archiveRequest},{text:"Unarchive",id:"unarchiveBtn",scope:this,hidden:true,handler:this.unarchiveRequest}]});
return A;},renderAttachmentsPanel:function(){var A="";if(this.proposal.attachments!=null){for(i=0;
i<this.proposal.attachments.length;i++){if(i>0){A+="<br/>";}A+=renderIcon(this.proposal.attachments[i].extension)+"&nbsp;";
A+='<a href="/Services/DownloadFile?id='+this.proposal.attachments[i].fileId+"&token="+this.requestToken+'" target="_blank">'+this.proposal.attachments[i].fileName+"</a>";
}Ext.getCmp("attachments").body.update(A);Ext.getCmp("attachments").show();}return A;
},getMyResponse:function(){var A=null;if((typeof (this.proposal.myLatestResponse)!="undefined")&&this.proposal.myLatestResponse){A=this.proposal.myLatestResponse.response;
}return A;},configureButtons:function(){var C=this.getMyResponse();var F=this.proposal.closed;
var B=this.proposal.isSender;var D=this.proposal.currentRequestId;var E=this.proposal.canApprove;
var A=false;if(!B&&!E){A=true;}if(!F&&!D&&!B&&this.proposal.canApprove){this.buttonsPanel.buttons[0].show();
}if(C=="Approved"){this.buttonsPanel.buttons[0].disable();}if(!F&&!D&&!B&&this.proposal.canApprove){this.buttonsPanel.buttons[1].show();
}if(C=="Denied"){this.buttonsPanel.buttons[1].disable();}if(!F&&!D){this.buttonsPanel.buttons[2].show();
}if(userHasSession()){this.buttonsPanel.buttons[3].show();}if(!F&&!D&&B&&userHasSession()){this.buttonsPanel.buttons[4].show();
}if(!F&&!D&&B&&userHasSession()){this.buttonsPanel.buttons[5].show();}if(!F&&!D&&B&&userHasSession()){this.buttonsPanel.buttons[6].show();
}if((F||C=="Approved"||C=="Denied"||A)&&userHasSession()&&!this.proposal.archived){this.buttonsPanel.buttons[7].show();
}if((F||C=="Approved"||C=="Denied"||A)&&userHasSession()&&this.proposal.archived){this.buttonsPanel.buttons[8].show();
}},approveRequest:function(){var A=this.confirmPanel;A.proposal=this.proposal;A.setMode(A.APPROVE_MODE);
A.show();this.setCommandsDisabledState("approve");},denyRequest:function(){var A=this.confirmPanel;
A.proposal=this.proposal;A.setMode(A.DENY_MODE);A.show();this.setCommandsDisabledState("deny");
},commentRequest:function(){var A=this.confirmPanel;A.proposal=this.proposal;A.setMode(A.COMMENT_MODE);
A.show();this.setCommandsDisabledState("comment");},setCommandsDisabledState:function(A){if(this.proposal.canApprove){var B=this.getMyResponse();
if(B!="Denied"){Ext.getCmp("declineBtn").setDisabled(A=="deny");}if(B!="Approved"){Ext.getCmp("approveBtn").setDisabled(A=="approve");
}}Ext.getCmp("commentBtn").setDisabled(A=="comment");},viewRequestClose:function(){window.location.pathname="/Home";
},closeRequest:function(){Ext.MessageBox.confirm("Confirm","Are you sure you want to close this proposal? This will lock the proposal from any further comments or decisions.",this.closeRequestConfirm,this);
},closeRequestConfirm:function(B,C){if(B!="yes"){return ;}var A=new Zapproved.Request({url:"/Services/CloseRequest",scope:this,errorSubject:"Close Proposal Failed",params:{id:this.requestId,tz:tz,tza:tza},successCallback:function(D){window.location.pathname="/Home";
}});A.doRequest();},cancelRequest:function(){Ext.MessageBox.confirm("Cancel","Are you sure you want to cancel this proposal? This will lock the proposal from any further comments or decisions.",this.cancelRequestConfirm,this);
},cancelRequestConfirm:function(B,C){if(B!="yes"){return ;}var A=new Zapproved.Request({url:"/Services/CancelRequest",scope:this,errorSubject:"Cancel Proposal Failed",params:{id:this.requestId,tz:tz,tza:tza},successCallback:function(D){window.location.pathname="/Home";
}});A.doRequest();},archiveRequest:function(){Ext.MessageBox.confirm("Archive",'Are you sure you want to archive this proposal? This will remove the proposal from your Message Center, though you can find it under the "Archives" page.',this.archiveRequestConfirm,this);
},archiveRequestConfirm:function(B,C){if(B!="yes"){return ;}var A=new Zapproved.Request({url:"/Services/ArchiveRequest",scope:this,errorSubject:"Archive Proposal Failed",params:{id:this.requestId,tz:tz,tza:tza},successCallback:function(D){window.location.pathname="/Home";
}});A.doRequest();},unarchiveRequest:function(){var A=new Zapproved.Request({url:"/Services/UnarchiveRequest",scope:this,errorSubject:"Unarchive Proposal Failed",params:{id:this.requestId,tz:tz,tza:tza},successCallback:function(B){window.location.pathname="/Home";
}});A.doRequest();},editRequest:function(){window.location.pathname="/Edit/"+this.requestId;
},initTitleBarButtons:function(){var B=Ext.get("printButton");B.show();if(this.proposal.from=="Me"&&!this.proposal.closed&&!this.proposal.archived){var A=Ext.get("reminderButton");
A.show();}var C=Ext.get("emailButton");C.show();},showPrintWin:function(){var A=window.open("/Print/"+getUrlTail(),"printProposal","left=20,top=20,width=700,height=600,toolbar=0,scrollbars=1");
},sendEmail:function(){Ext.Msg.prompt(this.sendEmailDialogTitle,this.sendEmailDialogText,function(B,C){if(B=="ok"){var A=new Zapproved.Request({url:"/Services/Proposal/SendEmailCopy/"+this.proposal.requestId,scope:this,errorSubject:this.emailFailedSubject,mask:new Ext.LoadMask(Ext.getBody(),{msg:"Sending..."}),params:{emailAddress:C,tz:tz,tza:tza},successCallback:function(D){Ext.quickPopup.msg(this.emailSentSubject,3,this.emailSentText);
}});A.doRequest();}},this);},sendReminder:function(){Ext.Msg.confirm(this.sendReminderDialogTitle,this.sendReminderDialogText,function(B){if(B=="yes"){var A=new Zapproved.Request({url:"/Services/Proposal/SendManualReminder/"+this.proposal.requestId,scope:this,errorSubject:this.reminderFailedSubject,mask:new Ext.LoadMask(Ext.getBody(),{msg:"Sending..."}),params:{tz:tz,tza:tza},successCallback:function(C){var E="";
for(var D=0;D<C.data.length;D++){if(D!=0){E+=", ";}if(C.data[D].displayName){E+=C.data[D].displayName;
}else{E+=C.data[D].emailAddress;}}Ext.MessageBox.show({title:this.sendReminderConfirmTitle,msg:this.sendReminderConfirmText+E,buttons:Ext.MessageBox.OK,icon:Ext.MessageBox.INFO});
}});A.doRequest();}},this);}});Ext.reg("proposalpanel",Zapproved.ProposalPanel);Zapproved.ProposalPreviewPanel=Ext.extend(Ext.Panel,{toComboBoxLabel:"Approvers",titleFieldLabel:"Proposal Title",statusFieldLabel:"Status",descriptionFieldLabel:"Message",proposal:null,showDelay:1000,hideDelay:200,frame:true,border:false,autoHeight:true,width:500,hidden:true,floating:{shadow:true,shim:true,useDisplay:true,constrain:false},labelAlign:"left",layout:"table",defaults:{bodyStyle:"padding: 0 5px 8px 0; vertical-align: top;"},layoutConfig:{columns:2},delayHide:function(){if(!this.hidden&&!this.hideTimer){this.hideTimer=this.hide.defer(this.hideDelay,this);
}},initComponent:function(){var A=this.proposal.description;A=ZapUtils.truncateTo(A,250);
Ext.apply(this,{items:[{xtype:"panel",html:this.titleFieldLabel+":",cellCls:"label-table-col",cls:"x-form-label",border:false},{xtype:"panel",id:"subject",html:this.proposal.subject,cls:"x-static-field",style:"font-weight: bold",border:false},{xtype:"panel",html:this.descriptionFieldLabel+":",cls:"x-form-label",border:false,colspan:2},{xtype:"panel",id:"description",border:false,html:A,width:450,cls:"x-static-field",colspan:2}]});
Zapproved.ProposalPreviewPanel.superclass.initComponent.call(this);},delayShow:function(){this.clearTimer("hide");
if(this.hidden&&!this.showTimer){this.showTimer=this.showAt.defer(this.showDelay,this);
}else{if(!this.hidden&&this.autoHide!==false){this.showAt();}}},showAt:function(){this.clearTimers();
if(!this.rendered){this.render(Ext.getBody());}var A=this.getEl();A.alignTo(this.target,"tl-bl",[0,0]);
A.slideIn("t");},clearTimer:function(A){A=A+"Timer";clearTimeout(this[A]);delete this[A];
},clearTimers:function(){this.clearTimer("show");this.clearTimer("hide");}});Ext.reg("proposalpreviewpanel",Zapproved.ProposalPreviewPanel);
Zapproved.ProposalFormPanel=Ext.extend(Ext.FormPanel,{previousDecisionsTitle:"Keep Previous Decisions?",previousDecisionsText:'Would you like to keep all existing decisions (they will be linked to the previous version)?<br/>Please select "Yes" to keep any decisions that have already been made, "No" to reset all decisions to undecided, or "Cancel" to return to the edit screen',toComboBoxEmptyText:"(required)",toComboBoxLabel:"Approvers<br>(email)",ccComboBoxLabel:"CC<br>(email)",titleFieldEmptyText:"(required)",titleFieldLabel:"Proposal Title",titleFieldBlankText:"Proposal Title is required",dueDateFieldLabel:"Due Date",projectFieldLabel:"Project",priorityFieldLabel:"Priority",descriptionFieldLabel:"Message",sendButtonTextSend:"Send",sendButtonTextSave:"Save",draftButtonText:"Save As Draft",cancelButtonText:"Cancel",deleteButtonText:"Delete",loadingMessageText:"Loading Proposal...",loadErrorSubject:"Unable to load proposal",unloadMessage:"You are attempting to leave this page. If you leave before clicking the Send button, your changes will be lost. Are you sure you want to exit this page?",sendingMessageText:"Sending Proposal...",savingMessageText:"Saving Proposal...",validationErrorTitle:"Problems were found in your proposal data.",saveErrorSubject:"Unable to save proposal",deletingMessageText:"Deleting Proposal...",deleteFailedText:"Delete Proposal Failed",errorUploadInProgressTitle:"Upload In Progress",errorUploadInProgressText:"A file upload is still in progress.  Please wait for file upload to complete before sending your proposal.",id:"proposalFormPanel",requestId:null,requestToken:null,submitted:false,priorityId:"2",resetResponses:false,editStatus:0,isDraft:false,hasResponses:true,formMode:"new",uploadGrid:null,border:false,autoHeight:true,width:600,autoHeight:true,labelAlign:"left",initComponent:function(){setRequestIdAndToken(this);
if(!userHasSession()){this.uploadGrid=createFileUploadGrid(true);}else{this.uploadGrid=createFileUploadGrid(false);
}Ext.apply(this,{items:[createContactComboBox("toEmail",this.toComboBoxEmptyText,this.toComboBoxLabel,true),createContactComboBox("ccEmail",null,this.ccComboBoxLabel,false),{xtype:"textfield",id:"subject",fieldLabel:this.titleFieldLabel,allowBlank:false,emptyText:this.titleFieldEmptyText,blankText:this.titleFieldBlankText,name:"subject",anchor:"95%"},{layout:"column",border:false,items:[{columnWidth:0.4,layout:"form",border:false,items:[{xtype:"datefield",id:"dueDate",fieldLabel:this.dueDateFieldLabel,name:"dueDate",maskRe:/[0-9-\/]/,minValue:currentDateZeroHour(),anchor:"90%"}]},{columnWidth:0.33,layout:"form",border:false,labelWidth:50,items:[createProjectComboBox("project",null,this.projectFieldLabel)]},{columnWidth:0.24,layout:"form",border:false,labelWidth:50,items:[{xtype:"combo",id:"priority",store:getPriorityStore(),displayField:"name",typeAhead:true,mode:"local",triggerAction:"all",selectOnFocus:true,editable:false,forceSelection:true,value:"Normal",fieldLabel:this.priorityFieldLabel,name:"priorityCombo",anchor:"90%",listeners:{select:function(B,A,C){this.priorityId=A.data.id;
},scope:this}}]}]},{xtype:"htmleditor",id:"description",fieldLabel:this.descriptionFieldLabel,enableAlignments:false,enableSourceEdit:false,enableLists:(!Ext.isIE),enableLinks:false,enableFont:false,height:200,width:600,value:"",anchor:"95%",listeners:{initialize:function(A){A.execCmd("delete");
if(Ext.isIE){A.updateToolbar();}},beforesync:function(B){var C=Ext.getCmp("toEmail");
C.collapse();var A=Ext.getCmp("ccEmail");A.collapse();}}},this.uploadGrid],buttons:[{text:userHasSession()?this.sendButtonTextSend:this.sendButtonTextSave,cls:"btn-bold",scope:this,handler:function(){this.submitRequest(false);
}},{text:this.draftButtonText,id:"save-draft-btn",cls:"btn-orange",scope:this,handler:function(){this.submitRequest(true);
}},{text:this.cancelButtonText,cls:"btn-orange",scope:this,handler:this.goHome},{text:this.deleteButtonText,id:"delete-draft-btn",cls:"btn-orange",scope:this,handler:this.deleteDraft,hidden:true}]});
window.onbeforeunload=this.confirmExit;Zapproved.ProposalFormPanel.superclass.initComponent.apply(this,arguments);
},loadProposal:function(){if(this.requestId&&!userHasSession()){var A="/Login?autoLogin=true&returnUrl="+escape(window.location.pathname);
window.location.href=window.location.protocol+"//"+window.location.host+A;return ;
}this.getForm().load({url:"/Services/GetRequest",method:"GET",waitMsg:this.loadingMessageText,params:{id:this.requestId,token:this.requestToken,tz:tz,tza:tza},scope:this,success:this.afterLoad,failure:function(C,B){Zapproved.ErrorDialog.fromServerError(this.loadErrorSubject,B.response,B.result);
}});},afterLoad:function(D,C){var F=C.result.data;if(F.status=="Draft"){this.isDraft=true;
}if(!this.isDraft){Ext.getCmp("save-draft-btn").hide();}if(this.isDraft){Ext.getCmp("delete-draft-btn").show();
}this.hasResponses=F.hasResponses;var E=Date.parseDate(F.dueDate,"n/j/Y g:i:s A");
Ext.getCmp("dueDate").setValue(E);if(F.attachments){for(var B=F.attachments.length-1;
B>=0;--B){var A=F.attachments[B];manualAddFileUploadGrid(this.uploadGrid,A.fileName,A.extension,A.fileId);
}}},init:function(){var A=Ext.getCmp("toEmail");A.focus("",10);},confirmExit:function(){var A=Ext.getCmp("proposalFormPanel");
if(A.submitted==true){return ;}else{return A.unloadMessage;}},goHome:function(){this.submitted=true;
window.location.pathname="/Home";},deleteDraft:function(){Ext.MessageBox.confirm("Delete Draft","Are you sure you want to delete this draft proposal?",this.submitDeleteDraft,this);
},submitDeleteDraft:function(B,C){if(B!="yes"){return ;}var A=new Zapproved.Request({url:"/Services/DeleteRequest",scope:this,method:"POST",errorSubject:this.deleteFailedText,mask:new Ext.LoadMask(Ext.getBody(),{msg:this.deletingMessageText}),params:{id:this.requestId,tz:tz,tza:tza},successCallback:function(D){this.submitted=true;
window.location.pathname="/Home";}});A.doRequest();},submitRequest:function(A){if(this.submitted==true){return ;
}if(this.uploadGrid.numActiveDownloads>0){Ext.MessageBox.show({title:this.errorUploadInProgressTitle,msg:this.errorUploadInProgressText,buttons:Ext.MessageBox.OK,icon:Ext.MessageBox.WARNING});
return ;}if(A){this.isDraft=true;this.editStatus=0;this.submitRequestConfirm("no");
}else{if(this.formMode=="new"||this.isDraft==true){this.isDraft=false;this.editStatus=1;
this.submitRequestConfirm("no");}else{this.isDraft=false;this.editStatus=1;if(this.hasResponses){Ext.Msg.show({title:this.previousDecisionsTitle,msg:this.previousDecisionsText,buttons:Ext.Msg.YESNOCANCEL,fn:this.submitRequestConfirm,scope:this,icon:Ext.MessageBox.QUESTION});
}else{this.submitRequestConfirm("no");}}}},submitRequestConfirm:function(D){if(D=="cancel"){return ;
}var B;if(D=="no"){B=true;}else{B=false;}var C=this.uploadGrid.attachedRecords;var F=Ext.getCmp("toEmail").getValue();
var H=Ext.getCmp("ccEmail").getValue();var A;var E;var G;if(this.formMode=="new"){A="/Services/AddRequest";
E={approvers:F,viewers:H,status:this.editStatus,priority:this.priorityId,attachments:C.join(","),tz:tz,tza:tza};
if(userHasSession()&&!this.isDraft){G=this.sendingMessageText;}else{G=this.savingMessageText;
}}else{A="/Services/EditRequest";E={approvers:F,viewers:H,requestId:this.requestId,resetResponses:B,status:this.editStatus,priority:this.priorityId,attachments:C.join(","),tz:tz,tza:tza};
G=this.sendingMessageText;}this.getForm().submit({url:A,params:E,timeout:120000,scope:this,waitMsg:G,success:function(J,I){this.submitted=true;
if(userHasSession()){window.location.href="/Home";}else{if(userIsMember()){window.location.href="/Login?autoLogin=true&returnUrl=/Home";
}else{var K=I.result.token;window.location.href="/Welcome/SignUpOrLogin?newProposal=true&token="+K;
}}},failure:function(J,I){if(I.failureType=="client"){Zapproved.ErrorDialog.fromForm(this.validationErrorTitle,J);
}else{Zapproved.ErrorDialog.fromServerError(this.saveErrorSubject,I.response,I.result);
}}});}});Ext.reg("proposalformpanel",Zapproved.ProposalFormPanel);Zapproved.ConfirmPanel=Ext.extend(Ext.Panel,{COMMENT_MODE:"Comment",APPROVE_MODE:"Approve",DENY_MODE:"Deny",submitUrl:null,requestId:null,requestToken:null,proposal:null,commentUrl:"/Services/CommentRequest",approveUrl:"/Services/ApproveRequest",denyUrl:"/Services/DenyRequest",label:"Please enter your comments below",action:"Comment",id:"confirmPanel",hidden:true,frame:false,border:false,commentInstructions:"Please enter your comments below",approveInstructions:"Confirm your decision, with optional comments, by clicking the button below.",denyInstructions:"Confirm your decision, with optional comments, by clicking the button below.",commentConfirmButtonText:"Submit Comments",approveConfirmButtonText:"Confirm Approve",denyConfirmButtonText:"Confirm Deny",initComponent:function(){Ext.apply(this,{items:[new Ext.Panel({id:"confirmPanelWrap",border:false,style:"margin: 10px;",items:[new Ext.Panel({id:"confirmPanelInstructions",frame:false,border:false,width:580,style:"font-size: 14px;"}),new Ext.form.FormPanel({id:"confirmResponseExtPanel",frame:false,border:false,autoHeight:true,layout:"fit",width:580,style:"text-align:left;margin-top: 0px;margin-bottom: 10px;",buttonAlign:"center",items:[{xtype:"htmleditor",id:"comment",hidden:true,width:580,height:120,enableAlignments:false,enableLinks:false,enableLists:false,enableSourceEdit:false,enableColors:false,value:"",anchor:"100%",listeners:{initialize:function(B){if(Ext.isIE){B.execCmd("delete");
B.updateToolbar();}}}},{xtype:"panel",buttonAlign:"center",buttons:[{text:this.action,cls:"btn-orange btn-bold",id:"confirmBtn",scope:this,disabled:false,handler:this.confirmResponseHandler},{text:"Cancel",id:"confirmPanelCloseBtn",scope:this,disabled:false,handler:this.cancel}],frame:false,border:false}]})]})]});
var A=getUrlToken();if(isValidGuid(A)){this.requestId=A;}else{this.requestToken=A;
}Zapproved.ConfirmPanel.superclass.initComponent.apply(this,arguments);this.addEvents("confirmSuccess");
this.addEvents("cancelled");},cancel:function(){this.hide();this.fireEvent("cancelled");
},confirmResponseHandler:function(){var B=Ext.getCmp("comment");B.syncValue();var C=B.getValue();
if((this.action=="Comment")&&((C==null)||(C=="")||(C=="&nbsp;"))){Zapproved.ErrorDialog.msg("Comment required","You must enter a comment to continue");
B.focus();return ;}var A=Ext.getCmp("confirmResponseExtPanel");A.getForm().submit({url:this.submitUrl,params:{id:this.requestId,token:this.requestToken,tz:tz,tza:tza},scope:this,waitMsg:"Sending Response...",success:function(E,D){if(userHasSession()){window.location.pathname="/Home";
}else{if(this.proposal.isMember){window.location.pathname="/Login";}else{window.location.href=window.location.protocol+"//"+window.location.host+"/Welcome/ThankYou?returnUrl="+escape("/View/"+this.requestToken);
}}},failure:function(E,D){Zapproved.ErrorDialog.msg("Response Failed!","Your response could not be sent!");
}});},show:function(){Zapproved.ConfirmPanel.superclass.show.apply(this);var A=Ext.getCmp("comment");
if(!Ext.isGecko){A.updateToolbar();}A.focus(true);if(!Ext.isIE){window.location.hash="afterConfirmResponse";
}else{Ext.get("postConfirmResponsePanelAnchor").scrollIntoView(document.documentElement);
}this.body.highlight("ffff9c",{duration:3});},hide:function(){Zapproved.ConfirmPanel.superclass.hide.apply(this);
},setMode:function(A){var B=Ext.getCmp("confirmPanelInstructions");var E=Ext.getCmp("confirmBtn");
this.action=A;var C='<table class="proposaltable" style="margin-top: 25px;"><tr><td class="proposalleftcol proposalname">';
var D=":</td></tr></table>";if(A==this.COMMENT_MODE){B.body.update(C+this.commentInstructions+D);
E.setText(this.commentConfirmButtonText);this.submitUrl=this.commentUrl;}else{if(A==this.APPROVE_MODE){B.body.update(C+this.approveInstructions+D);
E.setText(this.approveConfirmButtonText);this.submitUrl=this.approveUrl;}else{if(A==this.DENY_MODE){B.body.update(C+this.denyInstructions+D);
E.setText(this.denyConfirmButtonText);this.submitUrl=this.denyUrl;}}}}});Ext.reg("confirmpanel",Zapproved.ConfirmPanel);
Zapproved.ProposalHistoryPanel=Ext.extend(Ext.Panel,{historyPanelLabel:"Proposal History",noHistoryText:"No one has responded to this proposal.",meText:"Me",previousVersionText1:"This response was to a",previousVersionText2:"previous version of this proposal",dataView:null,frame:false,border:false,initComponent:function(){var B=new Ext.data.Store({fields:["response","previousRequestId","comment","from","fromMe","responseAgo","displayType","statusIcon","pictureUrl","responseLabel"]});
this.dataView=new Ext.DataView({emptyText:this.noHistoryText,tpl:new Ext.XTemplate('<tpl for=".">',"<tpl if=\"displayType == 'Viewed' || displayType == 'Approved' || displayType == 'Denied'\"><div class=\"proposalhistory\">",'<tpl if="fromMe">','<div class="proposalhistoryheader"><div class="proposalhistoryfrom">{statusIcon} <span class="proposalhistoryfromtext">'+this.meText+'</span></div><span class="proposalhistorydate">{responseDate}</span></div>',"</tpl>",'<tpl if="!fromMe">','<div class="proposalhistoryheader"><div class="proposalhistoryfrom">{statusIcon} <span class="proposalhistoryfromtext">{from}</span></div><span class="proposalhistorydate">{responseDate}</span></div>',"</tpl>",'<div style="float:left; margin-right: 8px;"><img style="border: 1px solid #ccc; border-top:none" src="{pictureUrl}" alt="{from}" width="40" height="40" /></div>','<tpl if="previousRequestId">','<span style="color:#999;font-size:smaller">'+this.previousVersionText1+' <a href="/View/{previousRequestId}">'+this.previousVersionText2+"</a>.</p>","</tpl>",'<div class="proposalhistorytext">{responseLabel}: {comment}</div>','<div style="clear:both; height: 20px"> </div>',"</div></tpl>","</tpl>"),itemSelector:"div.proposalhistory",store:B});
var A=new Ext.Panel({border:false,html:'<div class="proposalname" style="font-size: 14px; margin-top: 20px; margin-bottom: 8px;">'+this.historyPanelLabel+":</div>"});
Ext.apply(this,{items:[A,this.dataView]});Zapproved.ProposalHistoryPanel.superclass.initComponent.call(this);
},loadHistory:function(A){var B=Ext.data.Record.create([{name:"response"},{name:"previousRequestId"},{name:"comment"},{name:"from"},{name:"fromMe"},{name:"responseDate",convert:this.formatAgoDate},{name:"displayType",convert:this.determineDisplayType},{name:"statusIcon",convert:this.buildStatusIcon},{name:"pictureUrl"},{name:"responseLabel",convert:this.getResponseLabel}]);
var C=new Ext.data.ObjectReader({},B);var D=C.readRecords(A);this.dataView.store.add(D.records);
},formatAgoDate:function(A,B){return renderDateTime(A);},determineDisplayType:function(B,C){var A=C.response;
if(A=="Unread"||A=="ApprovedOld"||A=="DeniedOld"){return"none";}if((A=="Viewed")&&((C.comment==null)||(C.comment==""))){return"none";
}return A;},buildStatusIcon:function(C,D){var A='<img class="proposalhistoryicon" width="13" height="13" border="0" ';
var B=D.response;if((B=="Approved")||(B=="ApprovedOld")){A+='alt="Approved" title="Approved" src="/Images/site/icon/yes.gif"/>';
}else{if((B=="Denied")||(B=="DeniedOld")){A+='alt="Denied" title="Denied" src="/Images/site/icon/no.gif"/>';
}else{if((B=="Viewed")&&(D.comment!=null)&&(D.comment!="")){A+='alt="Viewed" title="Viewed" src="/Images/site/icon/viewed.gif"/>';
}else{if(B=="Viewed"){A+='alt="Viewed" title="Viewed" src="/Images/site/icon/viewed.gif"/>';
}else{if(B=="Unread"){A+='alt="No Reply" title="No Reply" src="/Images/site/icon/no_reply.gif"/>';
}}}}}return A;},getResponseLabel:function(B,C){var A=C.response;if(A=="Viewed"){return"Comment";
}else{return A;}}});Ext.reg("proposalhistorypanel",Zapproved.ProposalHistoryPanel);
Ext.form.TriggerField.override({afterRender:function(){Ext.form.TriggerField.superclass.afterRender.call(this);
var A;if(Ext.isIE&&!this.hideTrigger&&this.el.getY()!=(A=this.trigger.getY())){this.el.position();
this.el.setY(A);}}});Ext.form.ComboBoxMulti=function(A){this.typeAhead=false;this.hideTrigger=true;
this.defaultAutoCreate={tag:"textarea",autocomplete:"off"};this.sep=A.sep;this.pad=A.pad;
Ext.form.ComboBoxMulti.superclass.constructor.call(this,A);};Ext.form.ComboBoxMulti=Ext.extend(Ext.form.ComboBoxMulti,Ext.form.ComboBox,{onSelect:function(A,C){if(this.fireEvent("beforeselect",this,A,C)!==false){var B=this.getValue();
var D=B.lastIndexOf(this.sep);if(D>0){this.setValue(B.substr(0,D)+this.sep+this.pad+A.data.value+this.sep+this.pad);
}else{this.setValue(A.data.value+this.sep+this.pad);}this.collapse();this.fireEvent("select",this,A,C);
}}});Ext.reg("combomulti",Ext.form.ComboBoxMulti);var contactStore;var contactTemplate;
function createContactComboBox(A,B,C,E){var D=false;if(E&&E==true){D=true;}if(contactStore==null){contactStore=new Ext.data.Store({baseParams:{tz:tz,tza:tza},proxy:new Ext.data.HttpProxy({url:"/Services/SearchContacts"}),reader:new Ext.data.JsonReader({root:"contacts",totalProperty:"numContacts"},[{name:"value"},{name:"firstName"},{name:"lastName"},{name:"displayName"},{name:"emailAddress"}])});
contactTemplate=new Ext.XTemplate('<tpl for="."><div class="search-item">',"{displayName} &lt;{emailAddress}&gt;","</div></tpl>");
}return new Ext.form.ComboBoxMulti({store:contactStore,displayField:"value",name:A,id:A,allowBlank:(!D),emptyText:B,loadingText:"Searching...",fieldLabel:C,vtype:"emaillist",validationEvent:"blur",minChars:1,maxHeight:100,queryDelay:10,typeAheadDelay:10,anchor:"95%",height:75,sep:",",pad:" ",tpl:contactTemplate,itemSelector:"div.search-item",listeners:{"blur":function(F){F.collapse();
}}});}var projectStore;function createProjectComboBox(A,B,C){if(projectStore==null){projectStore=new Ext.data.Store({baseParams:{tz:tz,tza:tza},proxy:new Ext.data.HttpProxy({url:"/Services/GetProjects"}),reader:new Ext.data.JsonReader({root:"rows",totalProperty:"numRows",id:"id"},[{name:"id"},{name:"name"}])});
projectStore.load();}return new Ext.form.ComboBox({xtype:"combo",store:projectStore,displayField:"name",typeAhead:true,mode:"local",triggerAction:"all",selectOnFocus:true,editable:true,emptyText:B,forceSelection:false,loadingText:"Loading projects...",fieldLabel:C,name:A,id:A,anchor:"90%"});
}function createFileUploadGrid(A){var C=new Ext.data.SimpleStore({id:0,fields:[{name:"id",type:"text",system:true},{name:"shortName",type:"text",system:true},{name:"fileName",type:"text",system:true},{name:"filePath",type:"text",system:true},{name:"fileCls",type:"text",system:true},{name:"input",system:true},{name:"form",system:true},{name:"state",type:"text",system:true},{name:"error",type:"text",system:true},{name:"progressId",type:"int",system:true},{name:"bytesTotal",type:"int",system:true},{name:"bytesUploaded",type:"int",system:true},{name:"estSec",type:"int",system:true},{name:"filesUploaded",type:"int",system:true},{name:"speedAverage",type:"int",system:true},{name:"speedLast",type:"int",system:true},{name:"timeLast",type:"int",system:true},{name:"timeStart",type:"int",system:true},{name:"pctComplete",type:"int",system:true},{name:"ext"},{name:"fileId"}],data:[]});
function I(N){if(N=="queued"){return'<img width="16" height="16" border="0" alt="Queued" src="/Images/site/grid/up.png"/>';
}else{if(N=="uploading"){return'<img width="18" height="18" border="0" alt="Uploading" src="/Images/default/grid/wait.gif"/>';
}else{if(N=="done"){return'<img width="16" height="16" border="0" alt="Uploading" src="/Images/site/grid/accept.png"/>';
}else{if(N=="failed"){return'<img width="16" height="16" border="0" alt="Uploading" src="/Images/site/grid/error.png"/>';
}else{if(N=="stopped"){return'<img width="16" height="16" border="0" alt="Uploading" src="/Images/site/grid/error.png"/>';
}}}}}}var J;if(A){J=new Ext.grid.GridPanel({store:C,columns:[{header:"",width:28,renderer:renderIcon,dataIndex:"ext"},{header:"File",width:150,sortable:true,id:"file",dataIndex:"fileName"},{header:"",width:28,renderer:I,dataIndex:"state"}],tbar:[{xtype:"browsebutton",text:"Attach File",tooltip:"Add a file attachment",iconCls:"addbutton",disabled:true,scope:this,handler:F},"-",{text:"Remove File",tooltip:"Remove the selected attachment",iconCls:"deletebutton",disabled:true,scope:this,handler:B},"-","You must be logged in to attach files"],hideHeaders:true,stripeRows:true,autoExpandColumn:"file",autoHeight:true,anchor:"95%"});
}else{J=new Ext.grid.GridPanel({store:C,columns:[{header:"",width:28,renderer:renderIcon,dataIndex:"ext"},{header:"File",width:150,sortable:true,id:"file",dataIndex:"fileName"},{header:"",width:28,renderer:I,dataIndex:"state"}],tbar:[{xtype:"browsebutton",text:"Attach File",tooltip:"Add a file attachment",iconCls:"addbutton",disabled:false,scope:this,handler:F},"-",{text:"Remove File",tooltip:"Remove the selected attachment",iconCls:"deletebutton",disabled:false,scope:this,handler:B},"-","Maximum attachment size is currently "+ZapUtils.kbToMb(Zapproved.SessionManager.getAccount().maxAttachmentSizeKb)+"MB"],hideHeaders:true,stripeRows:true,autoExpandColumn:"file",autoHeight:true,anchor:"95%"});
}J.attachedRecords=new Array();J.numActiveDownloads=0;J.uploader=new Ext.ux.FileUploader({store:C,singleUpload:false,maxFileSize:524288,enableProgress:false,url:"/Services/UploadFile",path:""});
J.uploader.on("beforeallstart",M,J);J.uploader.on("allfinished",L,J);J.uploader.on("fileuploaded",E,J);
J.uploader.on("fileerror",G,J);function M(){this.numActiveDownloads++;}function L(){this.numActiveDownloads--;
}function E(P,N,O){N.set("fileId",O.fileId);J.attachedRecords.push(O.fileId);}function G(O,N){Ext.MessageBox.show({title:"Upload Error",msg:"<b>Upload Failed:</b>"+N.get("error"),buttons:Ext.MessageBox.OK,icon:Ext.MessageBox.ERROR});
J.attachedRecords.remove(N.data.fileId);J.store.remove(N);}function H(N){var O=N.split(".");
if(O.length==1){return"";}else{return O.pop().toLowerCase();}}function D(N){return N.getValue().split(/[\/\\]/).pop();
}function K(N){return N.getValue().replace(/[^\/\\]+$/,"");}function F(R){var Q=R.detachInputFile();
Q.addClass("x-hidden");var O=D(Q);var N=J.getStore();var P=new N.recordType({input:Q,fileName:O,filePath:K(Q),ext:H(O),state:"queued"},Q.id);
P.commit();N.add(P);J.uploader.upload();}function B(O){var N=J.getSelectionModel();
fileRecord=N.getSelected();if(fileRecord!=null){if(fileRecord.get("state")!="done"){J.numActiveDownloads--;
fileRecord.set("removed","true");fileRecord.commit();}J.attachedRecords.remove(fileRecord.data.fileId);
J.store.remove(fileRecord);}}return J;}function manualAddFileUploadGrid(B,D,F,E){var C=B.store;
var A=new C.recordType({fileName:D,filePath:"",ext:F,state:"done",fileId:E},E);A.commit();
C.add(A);B.attachedRecords.push(E);}Ext.namespace("ZapUtils");var ACCOUNT_COOKIE="ZapprovedAccount";var USER_SESSION_COOKIE="ZapprovedHasSession";
var HOME_TAB_COOKIE="ZapprovedHomeTab";function currentDateZeroHour(){var A=new Date();
A.setHours(0);A.setMinutes(0);A.setSeconds(0);A.setMilliseconds(0);return A;}function renderDateTime(A){if(A){A=Date.parseDate(A,"n/j/Y g:i:s A");
var B=new Date();if(B.getDate()==A.getDate()){return"Today at "+A.dateFormat("g:i A");
}if((B.getDate()-1)==A.getDate()){return"Yesterday at "+A.dateFormat("g:i A");}return A.format("n/j/y g:i A");
}else{return"";}}function renderDate(A){if(A){var B=new Date();if(B.getDate()==A.getDate()){return"Today";
}if((B.getDate()-1)==A.getDate()){return"Yesterday";}return A.format("n/j/y");}else{return"";
}}function renderStatusBox(E,D,C){var A='ext:qtip="<div align=left>'+renderName(C.data.to)+'</div>" ext:qtitle="Status" ext:hide="true"';
var B="";if(!C.data.read){B+="<b "+A+">";}B+=renderGraph(C.data,A);if(C.data.dueDate&&!C.data.closed){var F=new Date();
if(F>C.data.dueDate){B+="<p "+A+' style="color:#c33">Past due</p>';}else{B+="<p "+A+">Due "+renderDueDate(C.data.dueDate)+"</p>";
}}if(!C.data.read){B+="</b>";}D.attr=A;return B;}function renderGraph(H,G){if(H.closed){if((H.status=="Approved")||(H.status=="ApprovedOld")){return'<img width="13" height="13" border="0" align=texttop alt="Approved" src="/Images/site/icon/yes.gif" '+G+"/> Approved";
}if((H.status=="Denied")||(H.status=="DeniedOld")){return'<img width="13" height="13" border="0" align=texttop alt="Denied" src="/Images/site/icon/no.gif" '+G+"/> Denied";
}if(H.status=="Cancelled"){return'<img width="13" height="13" border="0" align=texttop alt="Cancelled" src="/Images/site/icon/cancel.gif" '+G+"/> Cancelled";
}return'<img width="13" height="13" border="0" align=texttop alt="Closed" src="/Images/site/icon/closed.gif" '+G+"/> Closed";
}var E=H.numApproved+H.numDenied+H.numViewed+H.numUnread;var C=60;var F=8;var A=H.requestId.substring(0,8);
var D='<table id="'+A+'" border="0" cellspacing="0" cellpadding="0" width="'+C+'" style="border:solid 1px #999;margin: 4px 0px 2px 0px ; padding: 0px;" '+G+'><tr style="height:'+F+'px;">';
function B(K,J,L,N,M){var O=J/L*K;var I=Math.round(O);if(I<1){return"";}return'<td width="'+I+'" style="background-color:'+N+'" '+M+"></td>";
}if(E==0){D+=B(C,1,1,"#ccc",G);}else{D+=B(C,H.numApproved,E,"#3c3",G);D+=B(C,H.numDenied,E,"#c33",G);
D+=B(C,H.numViewed+H.numUnread,E,"#ccc",G);}D+="</tr></table>";return D;}function renderName(A){A=A.replace(/\[A\]/g,"<img width=13 height=13 border=0 align=texttop src=/Images/site/icon/yes.gif />");
A=A.replace(/\[D\]/g,"<img width=13 height=13 border=0 align=texttop src=/Images/site/icon/no.gif />");
A=A.replace(/\[V\]/g,"<img width=13 height=13 border=0 align=texttop src=/Images/site/icon/viewed.gif />");
A=A.replace(/\[U\]/g,"<img width=13 height=13 border=0 align=texttop src=/Images/site/icon/no_reply.gif />");
A=A.replace(/\[AP\]/g,"<img width=13 height=13 border=0 align=texttop src=/Images/site/icon/yes.gif />");
A=A.replace(/\[DP\]/g,"<img width=13 height=13 border=0 align=texttop src=/Images/site/icon/no.gif />");
return A;}function isPastDue(A,C){if(C!="Send"){return false;}if(A){var B=new Date();
if(B>A){return true;}else{return false;}}else{return false;}}function sameDay(A,B){if((A.getFullYear()==B.getFullYear())&&(A.getMonth()==B.getMonth())&&(A.getDate()==B.getDate())){return true;
}else{return false;}}function renderDueDate(C){if(!C){return"";}var D=new Date();
var B=D.clearTime(true);var A=C.clearTime(true);if(sameDay(B,A)){return"Today";}if(sameDay(B.add(Date.DAY,1),A)){return"Tomorrow";
}if(sameDay(B.add(Date.DAY,-1),A)){return"Yesterday";}if(C.between(B,B.add(Date.DAY,6))){return C.format("l");
}if(D.getFullYear()==C.getFullYear()){return C.format("M j");}return C.format("n/j/y");
}function renderSimple(C,B,A){if(!C){return"";}if(!A.data.read){return"<b>"+C+"</b>";
}else{return C;}}function renderSimpleNoHtml(C,B,A){if(!C){return"";}else{return C;
}}function renderUpdateDate(F,D,C){if(!F){return"";}var B="";if(!C.data.read){B+="<b>";
}var G=new Date();var E=G.clearTime(true);var A=F.clearTime(true);if(sameDay(E,A)){B+=F.dateFormat("g:i a");
}else{if(sameDay(E.add(Date.DAY,-1),A)){B+="Yesterday";}else{if(F.between(E.add(Date.DAY,-7),E)){B+=F.format("D, M j");
}else{if(G.getFullYear()==F.getFullYear()){B+=F.format("M j");}else{B+=F.format("n/j/y");
}}}}if(!C.data.read){B+="</b>";}return B;}function renderSubject(D,C,B){var A=B.data.description;
if(A){A=A.replace(/&(lt|gt);/g,function(E,F){return(F=="lt")?"<":">";});A=A.replace(/<\/?[^>]+(>|$)/g,"");
if(A.length>65){A=A.substring(0,65)+"...";}}if(B.data.status=="Draft"){return String.format('<b><i>Draft: {0}</i></b><br/><p style="color:#999">{1}</p>',D,A);
}else{return String.format('<b>{0}</b><br/><p style="color:#999">{1}</p>',D,A);}}function renderStatus(A){if(A=="Send"){return"Pending";
}else{return A;}}function renderPriority(D,C,B){var A;if(D==1){A='<img width="8" height="16" border="0" alt="High Priority" src="/Images/site/icon/high_priority.jpg"/>';
}else{if(D==2){A="";}else{A='<img width="15" height="11" border="0" alt="Low Priority" src="/Images/site/icon/low_priority.gif"/>';
}}if(B.data.hasAttachments){A+='<img width="13" height="13" border="0" alt="Attachment(s)" src="/Images/site/icon/attachment.gif"/>';
}return A;}function createCookie(A,E,D){var C;if(D){var B=new Date();B.setTime(B.getTime()+(D*24*60*60*1000));
C="; expires="+B.toGMTString();}else{C="";}document.cookie=A+"="+E+C+"; path=/";}function setCookie(A,B){createCookie(A,B,366);
}function readCookie(A){var E=A+"=";var B=document.cookie.split(";");for(var D=0;
D<B.length;D++){var C=B[D];while(C.charAt(0)==" "){C=C.substring(1,C.length);}if(C.indexOf(E)==0){return C.substring(E.length,C.length);
}}return null;}function cookieSet(A){var B=readCookie(A);return(B&&B.length>0);}function userHasSession(){return cookieSet(USER_SESSION_COOKIE);
}function setHomeTabCookie(A){setCookie(HOME_TAB_COOKIE,A);}function getHomeTabCookie(){return readCookie(HOME_TAB_COOKIE);
}function userIsMember(){return cookieSet(ACCOUNT_COOKIE);}function userIsAdmin(){var A=Zapproved.SessionManager.getAccount();
if(!A){return false;}return A.isAdmin;}function addIconsToEmails(A){if(!A){return"";
}A=A.replace(/\[A\]/g,'<img width="13" height="13" border="0" align=texttop alt="Approved" title="Approved" src="/Images/site/icon/yes.gif"/>');
A=A.replace(/\[D\]/g,'<img width="13" height="13" border="0" align=texttop alt="Denied" title="Denied" src="/Images/site/icon/no.gif"/>');
A=A.replace(/\[V\]/g,'<img width="13" height="13" border="0" align=texttop alt="Viewed" title="Viewed" src="/Images/site/icon/viewed.gif"/>');
A=A.replace(/\[U\]/g,'<img width="13" height="13" border="0" align=texttop alt="No Reply" title="No Reply" src="/Images/site/icon/no_reply.gif"/>');
A=A.replace(/\[AP\]/g,'<span style="font-size:smaller">(<i>approved older version</i>)</span>');
A=A.replace(/\[DP\]/g,'<span style="font-size:smaller">(<i>denied older version</i>)</span>');
return A;}function getPriorityStore(){var A=[[1,"High"],[2,"Normal"],[3,"Low"]];var B=new Ext.data.SimpleStore({fields:[{name:"id",type:"int"},{name:"name"}]});
B.loadData(A);return B;}function getUrlTail(){var A=window.location.pathname;return A.substring(A.lastIndexOf("/")+1);
}function getUrlToken(){var B=window.location.pathname;var A=B.substring(B.lastIndexOf("/")+1);
if((A.length==36)||(A.length==16)){return A;}else{return null;}}function setRequestIdAndToken(A){var D=getUrlToken();
var B=null;var C=null;if(isValidGuid(D)){A.requestId=D;}else{A.requestToken=D;}}function isValidGuid(A){if((A==null)||(A.length!=36)||(A.indexOf("-")!=8)||(A.lastIndexOf("-")!=23)){return false;
}return true;}function getParam(A){A=A.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");
var B="[\\?&]"+A+"=([^&#]*)";var C=new RegExp(B);var D=C.exec(window.location.href);
if(D==null){return"";}else{return D[1];}}Ext.quickPopup=function(){var B;function A(D,C){return['<div class="msg">','<div class="x-box-tl"><div class="x-box-tr"><div class="x-box-tc"></div></div></div>','<div class="x-box-ml"><div class="x-box-mr"><div class="x-box-mc"><h3>',D,"</h3>",C,"</div></div></div>",'<div class="x-box-bl"><div class="x-box-br"><div class="x-box-bc"></div></div></div>',"</div>"].join("");
}return{msg:function(E,F,G){if(!B){B=Ext.get("msg-div");}B.alignTo(document,"t-t");
var D=String.format.apply(String,Array.prototype.slice.call(arguments,2));var C=Ext.DomHelper.overwrite(B,{html:A(E,D)},true);
C.slideIn("t").pause(F).ghost("t",{remove:true});},init:function(){}};}();Ext.onReady(Ext.quickPopup.init,Ext.quickPopup);
function renderIcon(B){B=B.toLowerCase();var A="noextension16.gif";if((B=="jpg")||(B=="jpeg")){A="JPG16.gif";
}else{if(B=="gif"){A="JPG16.gif";}else{if(B=="png"){A="JPG16.gif";}else{if(B=="pdf"){A="PDF16.gif";
}else{if((B=="doc")||(B=="docx")){A="DOC16.gif";}else{if((B=="xls")||(B=="xlsx")){A="XLS16.gif";
}else{if((B=="ppt")||(B=="pptx")){A="PPT16.gif";}else{if(B=="txt"){A="TXT16.gif";
}else{if(B=="bmp"){A="BMP16.gif";}}}}}}}}}return'<img width="16" height="16" border="0" alt="'+B+'" src="/Images/site/file/'+A+'"/>';
}ZapUtils.showField=function(A,E,C){if(A!=null&&A!=""){if(C){var B=Ext.getCmp(C);
if(B.hidden){B.show();}}if(E){var D=Ext.getCmp(E);if(D.hidden){D.show();}D.body.update(A);
}}};ZapUtils.truncateTo=function(A,B){if(A&&A.length>B){return A.substring(0,B)+"...";
}else{return A;}};ZapUtils.trimEmailsToMax=function(C,A){if(C.length<=A){return C;
}var B=C.lastIndexOf(",",A);return C.substring(0,B)+"...";};ZapUtils.isEmailValid=function(B){var A=B.match(/[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.(?:[a-zA-Z]{2}|com|edu|int|org|net|gov|mil|biz|info|mobi|name|aero|jobs|museum)/);
if(B.indexOf("<contact group>")!=-1){return true;}else{return(A!=null);}};ZapUtils.validateMultipleEmails=function(D){var C=D.split(/[;,]/);
var B=new Array();var F=0;for(var E=0;E<C.length;E++){var A=C[E].trim();if(A.length>0){if(!ZapUtils.isEmailValid(A)){B[F]=A;
F++;}}}if(F==0){return null;}else{return B;}};ZapUtils.isFreeAccount=function(){var A=Zapproved.SessionManager.getAccount();
return(A.currentPlanId==1);};ZapUtils.kbToMb=function(A){return Math.round(A/1024);
};ZapUtils.kbToMbWithTenths=function(A){var B=Math.round((A*10)/1024);return B/10;
};